curtin-dev team mailing list archive
-
curtin-dev team
-
Mailing list archive
-
Message #03074
[Merge] ~dbungert/curtin:swap-logging into curtin:master
Dan Bungert has proposed merging ~dbungert/curtin:swap-logging into curtin:master.
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.
Requested reviews:
curtin developers (curtin-dev)
For more details, see:
https://code.launchpad.net/~dbungert/curtin/+git/curtin/+merge/450289
--
Your team curtin developers is requested to review the proposed merge of ~dbungert/curtin:swap-logging into curtin:master.
diff --git a/curtin/swap.py b/curtin/swap.py
index a1df5cb..7d427ee 100644
--- a/curtin/swap.py
+++ b/curtin/swap.py
@@ -7,6 +7,7 @@ from .log import LOG
from . import util
from curtin import paths
from curtin import distro
+from curtin.util import bytes2human
def 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):
projections when the filesystem hasn't yet been populated. If avail and
fsys are both supplied, fsys takes precedence. Optional.
"""
+ def log_swap_diagnostic(suggested, reason):
+ def b2h(val):
+ try:
+ return bytes2human(val)
+ except: # noqa: E722
+ return val
+ LOG.debug(
+ "swap suggestion analysis: "
+ f"available: {b2h(avail)} "
+ f"maxsize: {b2h(maxsize)} "
+ f"memsize: {b2h(memsize)} "
+ f"size before decision: {b2h(size)} "
+ f"suggested size: {b2h(suggested)} "
+ f"reason: {b2h(reason)}")
+
if memsize is None:
memsize = util.get_meminfo()['total']
@@ -65,9 +81,12 @@ def suggested_swapsize(memsize=None, maxsize=None, fsys=None, avail=None):
if memsize <= top:
size = min(func(memsize), maxsize)
if size < (memsize / 2) and size < 4 * GB:
+ log_swap_diagnostic(0, "size < memsize/2 and size < 4GiB")
return 0
+ log_swap_diagnostic(size, "lesser of formula or maxsize")
return size
+ log_swap_diagnostic(maxsize, "exceeded formula table so maxsize")
return maxsize
Follow ups