# Getting host information.
#
- def info(self):
- return (self.nodeinfo() + self.physinfo() + self.xeninfo() +
+ def info(self, show_numa = 1):
+ return (self.nodeinfo() + self.physinfo(show_numa) + self.xeninfo() +
self.xendinfo())
def nodeinfo(self):
str='none\n'
return str[:-1];
- def physinfo(self):
+ def physinfo(self, show_numa):
info = self.xc.physinfo()
tinfo = self.xc.topologyinfo()
ninfo = self.xc.numainfo()
info['total_memory'] = info['total_memory'] / 1024
info['free_memory'] = info['free_memory'] / 1024
- info['cpu_topology'] = \
- self.format_cpu_to_core_socket_node(tinfo)
-
- info['numa_info'] = \
- self.format_numa_info(ninfo)
-
ITEM_ORDER = ['nr_cpus',
'nr_nodes',
'cores_per_socket',
'virt_caps',
'total_memory',
'free_memory',
- 'cpu_topology',
- 'numa_info',
]
+ if show_numa != 0:
+ info['cpu_topology'] = \
+ self.format_cpu_to_core_socket_node(tinfo)
+
+ info['numa_info'] = \
+ self.format_numa_info(ninfo)
+
+ ITEM_ORDER += [ 'cpu_topology', 'numa_info' ]
+
return [[k, info[k]] for k in ITEM_ORDER]
def pciinfo(self):
def xeninfo_dict(self):
return dict(self.xeninfo())
def physinfo_dict(self):
- return dict(self.physinfo())
+ return dict(self.physinfo(1))
def info_dict(self):
return dict(self.info())
'domname' : ('<DomId>', 'Convert a domain id to domain name.'),
'dump-core' : ('[-L|--live] [-C|--crash] [-R|--reset] <Domain> [Filename]',
'Dump core for a specific domain.'),
- 'info' : ('[-c|--config]', 'Get information about Xen host.'),
+ 'info' : ('[-c|--config] [-n|--numa]',
+ 'Get information about Xen host.'),
'log' : ('', 'Print Xend log'),
'rename' : ('<Domain> <NewDomainName>', 'Rename a domain.'),
'sched-sedf' : ('<Domain> [options]', 'Get/set EDF parameters.'),
),
'info': (
('-c', '--config', 'List Xend configuration parameters'),
+ ('-n', '--numa', 'List host NUMA topology information'),
),
'tmem-list': (
('-l', '--long', 'List tmem stats.'),
arg_check(args, "info", 0, 1)
try:
- (options, params) = getopt.gnu_getopt(args, 'c', ['config'])
+ (options, params) = getopt.gnu_getopt(args, 'cn', ['config','numa'])
except getopt.GetoptError, opterr:
err(opterr)
usage('info')
show_xend_config = 0
+ show_numa_topology = 0
for (k, v) in options:
if k in ['-c', '--config']:
show_xend_config = 1
+ if k in ['-n', '--numa']:
+ show_numa_topology = 1
if show_xend_config:
for name, obj in inspect.getmembers(xoptions):
for (k, v) in sorted:
print "%-23s:" % k, v
else:
- info = server.xend.node.info()
+ info = server.xend.node.info(show_numa_topology)
for x in info[1:]:
if len(x) < 2:
print "%-23s: (none)" % x[0]