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
Possibly Parallel 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
