diff options
author | Keir Fraser <keir.fraser@citrix.com> | 2009-07-29 09:20:46 +0100 |
---|---|---|
committer | Keir Fraser <keir.fraser@citrix.com> | 2009-07-29 09:20:46 +0100 |
commit | 41859f692541d9ee99d9033166de2e5d3cac41b1 (patch) | |
tree | fb44a7b8077ea6b8654fc03b8b6faa2527bd2e3f /tools/xm-test/lib | |
parent | d0c233bbf877e7424fc9a52a69a8af155572bf2f (diff) | |
download | xen-41859f692541d9ee99d9033166de2e5d3cac41b1.tar.gz xen-41859f692541d9ee99d9033166de2e5d3cac41b1.tar.bz2 xen-41859f692541d9ee99d9033166de2e5d3cac41b1.zip |
xm-test: Fix memset 01 and 02 tests: add support for sysfs memory interface
From: Andreas Florath <xen@flonatel.org>
Signed-off-by: Keir Fraser <keir.fraser@citrix.com>
Diffstat (limited to 'tools/xm-test/lib')
-rw-r--r-- | tools/xm-test/lib/XmTestLib/XenMemory.py | 68 | ||||
-rw-r--r-- | tools/xm-test/lib/XmTestLib/__init__.py | 1 | ||||
-rw-r--r-- | tools/xm-test/lib/XmTestLib/arch.py | 1 |
3 files changed, 69 insertions, 1 deletions
diff --git a/tools/xm-test/lib/XmTestLib/XenMemory.py b/tools/xm-test/lib/XmTestLib/XenMemory.py new file mode 100644 index 0000000000..e8da5ebbe3 --- /dev/null +++ b/tools/xm-test/lib/XmTestLib/XenMemory.py @@ -0,0 +1,68 @@ +""" + XenMemory.py - grep memory from domU + + This module can handle the /proc/xen/balloon as well as the sysfs + memory interface. + + Copyright (C) flonatel GmbH & Co. KG, 2009 + Author: Andreas Florath + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; under version 2 of the License. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +""" + +import os + +from Test import * + +class XenMemory: + + def __init__(self, console): + self.console = console + self.sysfs_mem_dir = "/sys/devices/system/xen_memory/xen_memory0" + + try: + res = self.console.runCmd("ls " + self.sysfs_mem_dir) + self.use_sysfs = res['return'] == 0 + except ConsoleError, e: + FAIL(str(e)) + + + def get_mem_from_domU_sysfs(self): + try: + run = self.console.runCmd( + "cat " + os.path.join(self.sysfs_mem_dir, "info/current_kb")) + except ConsoleError, e: + FAIL(str(e)) + + return int(run["output"]) / 1024 + + def get_mem_from_domU_balloon(self): + try: + run = self.console.runCmd("cat /proc/xen/balloon | grep Current"); + except ConsoleError, e: + FAIL(str(e)) + + match = re.match("^Current allocation:\s+(\d+)\skB", run["output"]) + if not match: + FAIL("Invalid domU meminfo line") + + return int(match.group(1)) / 1024 + + # Prefer sysfs interface + def get_mem_from_domU(self): + if self.use_sysfs: + return self.get_mem_from_domU_sysfs() + else: + return self.get_mem_from_domU_balloon() + diff --git a/tools/xm-test/lib/XmTestLib/__init__.py b/tools/xm-test/lib/XmTestLib/__init__.py index 40aacf7ecd..1aa7afe634 100644 --- a/tools/xm-test/lib/XmTestLib/__init__.py +++ b/tools/xm-test/lib/XmTestLib/__init__.py @@ -10,6 +10,7 @@ from XenDomain import * from config import * from XenDevice import * from NetConfig import * +from XenMemory import * # Give this test a clean slate destroyAllDomUs() diff --git a/tools/xm-test/lib/XmTestLib/arch.py b/tools/xm-test/lib/XmTestLib/arch.py index a6607d91db..d505cc0ac1 100644 --- a/tools/xm-test/lib/XmTestLib/arch.py +++ b/tools/xm-test/lib/XmTestLib/arch.py @@ -70,7 +70,6 @@ ia_ParavirtDefaults = {"memory" : 64, "kernel" : ia_getDefaultKernel(), "root" : "/dev/ram0", "ramdisk" : getRdPath() + "/initrd.img", - "extra" : "console=xvc0", } ia_HVMDefaults = {"memory" : 64, "vcpus" : 1, |