Jeremy Fitzhardinge
2008-Nov-14 22:47 UTC
[Xen-devel] [PATCH] tools: use sysfs interface to balloon driver if present
The pvops dom0 kernel does not expose the balloon driver via /proc/xen, so use the sysfs interface. Signed-off-by: Jeremy Fitzhardinge <jeremy.fitzhardinge@citrix.com> diff -r 1944c39d0007 tools/python/xen/xend/osdep.py --- a/tools/python/xen/xend/osdep.py Fri Nov 14 09:57:33 2008 -0800 +++ b/tools/python/xen/xend/osdep.py Fri Nov 14 12:26:51 2008 -0800 @@ -38,7 +38,10 @@ "SunOS": "vif-vnic" } -def _linux_balloon_stat(label): +PROC_XEN_BALLOON = ''/proc/xen/balloon'' +SYSFS_XEN_MEMORY = ''/sys/devices/system/xen_memory/xen_memory0'' + +def _linux_balloon_stat_proc(label): """Returns the value for the named label, or None if an error occurs.""" xend2linux_labels = { ''current'' : ''Current allocation'', @@ -47,7 +50,6 @@ ''high-balloon'' : ''High-mem balloon'', ''limit'' : ''Xen hard limit'' } - PROC_XEN_BALLOON = ''/proc/xen/balloon'' f = file(PROC_XEN_BALLOON, ''r'') try: for line in f: @@ -61,6 +63,29 @@ return None finally: f.close() + +def _linux_balloon_stat_sysfs(label): + sysfiles = { ''target'' : ''target_kb'', + ''current'' : ''info/current_kb'', + ''low-balloon'' : ''info/low_kb'', + ''high-balloon'' : ''info/high_kb'', + ''limit'' : ''info/hard_limit_kb'' } + + name = os.path.join(SYSFS_XEN_MEMORY, sysfiles[label]) + f = file(name, ''r'') + + val = f.read().strip() + if val.isdigit(): + return int(val) + return None + +def _linux_balloon_stat(label): + if os.access(PROC_XEN_BALLOON, os.F_OK): + return _linux_balloon_stat_proc(label) + elif os.access(SYSFS_XEN_MEMORY, os.F_OK): + return _linux_balloon_stat_sysfs(label) + + return None def _solaris_balloon_stat(label): """Returns the value for the named label, or None if an error occurs.""" _______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel
Maybe Matching Threads
- messages logs flooded with xen_balloon: reserve_additional_memory: add_memory() failed
- xen_balloon: reserve_additional_memory: add_memory() Errors
- [PATCH 1/2] xen: balloon: Fix checkpatch issues
- [PATCH 1/2] xen: balloon: Fix checkpatch issues
- [PATCH 1/2] xen: balloon: Fix checkpatch issues