in rd-agent/src/misc/sideloader.py [0:0]
def __init__(self):
global args, config
self.fix = not args.dont_fix
self.main_cgrp = f"{CGRP_BASE}/{config.main_slice}"
self.host_cgrp = f"{CGRP_BASE}/{config.host_slice}"
self.side_cgrp = f"{CGRP_BASE}/{config.side_slice}"
self.active = False
self.last_check_at = 0
self.last_warns = []
self.warns = []
self.fixed = False
self.root_part = None
self.root_dev = None
self.root_devnr = None
self.mem_total = 0
self.swap_avail = 0
self.swap_free = 0
self.swappiness = 0
self.hugetlb = 0
# find the root device maj/min
if args.dev is None:
for line in read_lines("/proc/mounts"):
toks = line.split()
if toks[1] == "/":
if toks[0].startswith("/dev/"):
self.root_part = toks[0][len("/dev/") :]
break
if self.root_part is None:
warn("SYSCFG: failed to find root mount")
return
if self.root_part.startswith("sd"):
self.root_dev = re.sub(r"^(sd[^0-9]*)[0-9]*$", r"\1", self.root_part)
elif self.root_part.startswith("nvme"):
self.root_dev = re.sub(r"^(nvme[^p]*)(p[0-9])?$", r"\1", self.root_part)
else:
raise Exception(f"unknown device {self.root_part}")
else:
self.root_dev = args.dev
try:
out = subprocess.run(
["stat", "-c", "0x%t 0x%T", f"/dev/{self.root_dev}"],
stdout=subprocess.PIPE,
).stdout.decode("utf-8")
toks = out.split()
self.root_devnr = f"{int(toks[0], 0)}:{int(toks[1], 0)}"
except Exception as e:
warn(f"SYSCFG: failed to find root device ({e})")