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
diff --git a/curtin/swap.py b/curtin/swap.py
index a1df5cb..03bea70 100644
--- a/curtin/swap.py
+++ b/curtin/swap.py
@@ -7,6 +7,7 @@ from .log import LOG
7from . import util7from . import util
8from curtin import paths8from curtin import paths
9from curtin import distro9from curtin import distro
10from curtin.util import bytes2human
1011
1112
12def suggested_swapsize(memsize=None, maxsize=None, fsys=None, avail=None):13def suggested_swapsize(memsize=None, maxsize=None, fsys=None, avail=None):
@@ -27,6 +28,21 @@ def suggested_swapsize(memsize=None, maxsize=None, fsys=None, avail=None):
27 projections when the filesystem hasn't yet been populated. If avail and28 projections when the filesystem hasn't yet been populated. If avail and
28 fsys are both supplied, fsys takes precedence. Optional.29 fsys are both supplied, fsys takes precedence. Optional.
29 """30 """
31 def log_swap_diagnostic(suggested, reason):
32 def b2h(val):
33 try:
34 return bytes2human(val)
35 except: # noqa: E722
36 return val
37 LOG.debug(
38 "swap suggestion analysis: "
39 f"available: {b2h(avail)} "
40 f"maxsize: {b2h(maxsize)} "
41 f"memsize: {b2h(memsize)} "
42 f"size before decision: {b2h(size)} "
43 f"suggested size: {b2h(suggested)} "
44 f"reason: {reason}")
45
30 if memsize is None:46 if memsize is None:
31 memsize = util.get_meminfo()['total']47 memsize = util.get_meminfo()['total']
3248
@@ -65,9 +81,12 @@ def suggested_swapsize(memsize=None, maxsize=None, fsys=None, avail=None):
65 if memsize <= top:81 if memsize <= top:
66 size = min(func(memsize), maxsize)82 size = min(func(memsize), maxsize)
67 if size < (memsize / 2) and size < 4 * GB:83 if size < (memsize / 2) and size < 4 * GB:
84 log_swap_diagnostic(0, "size < memsize/2 and size < 4GiB")
68 return 085 return 0
86 log_swap_diagnostic(size, "lesser of formula or maxsize")
69 return size87 return size
7088
89 log_swap_diagnostic(maxsize, "exceeded formula table so maxsize")
71 return maxsize90 return maxsize
7291
7392

Subscribers

People subscribed via source and target branches