Merge ~dbungert/curtin:swap-logging into curtin:master

Proposed by Dan Bungert
Status: Merged
Approved by: Dan Bungert
Approved revision: 040f267de253f5de67ea0b59e0717a18a4dd0a2c
Merge reported by: Server Team CI bot
Merged at revision: not available
Proposed branch: ~dbungert/curtin:swap-logging
Merge into: curtin:master
Diff against target: 45 lines (+19/-0)
1 file modified
curtin/swap.py (+19/-0)
Reviewer Review Type Date Requested Status
Michael Hudson-Doyle Approve
Server Team CI bot continuous-integration Approve
Review via email: mp+450289@code.launchpad.net

Commit message

swap: add logging

The suggested swap size code just sort of returns 0 sometimes and
figuring out why is a complicated analysis of several variables.

Provide diagnostic info on those values, and the reason for the
decision.

To post a comment you must log in.
Revision history for this message
Server Team CI bot (server-team-bot) wrote :
review: Approve (continuous-integration)
Revision history for this message
Michael Hudson-Doyle (mwhudson) :
review: Approve

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1diff --git a/curtin/swap.py b/curtin/swap.py
2index a1df5cb..03bea70 100644
3--- a/curtin/swap.py
4+++ b/curtin/swap.py
5@@ -7,6 +7,7 @@ from .log import LOG
6 from . import util
7 from curtin import paths
8 from curtin import distro
9+from curtin.util import bytes2human
10
11
12 def suggested_swapsize(memsize=None, maxsize=None, fsys=None, avail=None):
13@@ -27,6 +28,21 @@ def suggested_swapsize(memsize=None, maxsize=None, fsys=None, avail=None):
14 projections when the filesystem hasn't yet been populated. If avail and
15 fsys are both supplied, fsys takes precedence. Optional.
16 """
17+ def log_swap_diagnostic(suggested, reason):
18+ def b2h(val):
19+ try:
20+ return bytes2human(val)
21+ except: # noqa: E722
22+ return val
23+ LOG.debug(
24+ "swap suggestion analysis: "
25+ f"available: {b2h(avail)} "
26+ f"maxsize: {b2h(maxsize)} "
27+ f"memsize: {b2h(memsize)} "
28+ f"size before decision: {b2h(size)} "
29+ f"suggested size: {b2h(suggested)} "
30+ f"reason: {reason}")
31+
32 if memsize is None:
33 memsize = util.get_meminfo()['total']
34
35@@ -65,9 +81,12 @@ def suggested_swapsize(memsize=None, maxsize=None, fsys=None, avail=None):
36 if memsize <= top:
37 size = min(func(memsize), maxsize)
38 if size < (memsize / 2) and size < 4 * GB:
39+ log_swap_diagnostic(0, "size < memsize/2 and size < 4GiB")
40 return 0
41+ log_swap_diagnostic(size, "lesser of formula or maxsize")
42 return size
43
44+ log_swap_diagnostic(maxsize, "exceeded formula table so maxsize")
45 return maxsize
46
47

Subscribers

People subscribed via source and target branches