WARNING - OLD ARCHIVES

This is an archived copy of the Xen.org mailing list, which we have preserved to ensure that existing links to archives are not broken. The live archive, which contains the latest emails, can be found at http://lists.xen.org/
   
 
 
Xen 
 
Home Products Support Community News
 
   
 

xen-devel

[Xen-devel] Re: [Xen-staging] [xen-unstable] Added some more fields to h

To: Keir Fraser <keir@xxxxxxxxxxxxx>
Subject: [Xen-devel] Re: [Xen-staging] [xen-unstable] Added some more fields to host_cpu.
From: Hollis Blanchard <hollisb@xxxxxxxxxx>
Date: Wed, 07 Mar 2007 11:54:19 -0600
Cc: Jimi Xenidis <jimix@xxxxxxxxxxxxxx>, xen-devel <xen-devel@xxxxxxxxxxxxxxxxxxx>, ewan@xxxxxxxxxxxxx, Alex Williamson <alex.williamson@xxxxxx>
Delivery-date: Wed, 07 Mar 2007 09:54:49 -0800
Envelope-to: www-data@xxxxxxxxxxxxxxxxxx
In-reply-to: <1172867986.5941.49.camel@bling>
List-help: <mailto:xen-devel-request@lists.xensource.com?subject=help>
List-id: Xen developer discussion <xen-devel.lists.xensource.com>
List-post: <mailto:xen-devel@lists.xensource.com>
List-subscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=unsubscribe>
Organization: IBM Linux Technology Center
References: <200702270156.l1R1uLfk014775@xxxxxxxxxxxxxxxxxxxxxxx> <1172867986.5941.49.camel@bling>
Reply-to: Hollis Blanchard <hollisb@xxxxxxxxxx>
Sender: xen-devel-bounces@xxxxxxxxxxxxxxxxxxx
Hi Keir, I see the patch you've committed for this issue
(http://xenbits2.xensource.com/staging/xen-unstable.hg?rev/ae203b55e7c8), but 
my concern goes a littler further.

What will this data be used for? Will higher-level tools expect to find
"stepping" and break if they don't? Will XenSource's management tools
(which I assume will make use of this data) function properly in this
case? I agree that hardware-specific data needs to be visible somehow to
higher-level tools, but it makes me nervous...

(I don't have any particular objection to your fix; just voicing my
concerns.)

On Fri, 2007-03-02 at 13:39 -0700, Alex Williamson wrote:
> Hi Ewan,
> 
>    There are a couple problems with this patch for non-x86 (and maybe
> even on x86), see below:
> 
> On Tue, 2007-02-27 at 01:56 +0000, Xen staging patchbot-unstable wrote:
> > diff -r e7b2a282c9e7 -r 50e0616fd012 tools/python/xen/xend/XendNode.py
> > --- a/tools/python/xen/xend/XendNode.py     Mon Feb 26 17:20:36 2007 +0000
> > +++ b/tools/python/xen/xend/XendNode.py     Tue Feb 27 00:37:27 2007 +0000
> > @@ -81,7 +81,7 @@ class XendNode:
> >          for cpu_uuid, cpu in saved_cpus.items():
> >              self.cpus[cpu_uuid] = cpu
> >  
> > -        # verify we have enough cpus here
> > +        cpuinfo = parse_proc_cpuinfo()
> >          physinfo = self.physinfo_dict()
> >          cpu_count = physinfo['nr_cpus']
> >          cpu_features = physinfo['hw_caps']
> > @@ -91,12 +91,23 @@ class XendNode:
> >          if cpu_count != len(self.cpus):
> >              self.cpus = {}
> >              for i in range(cpu_count):
> > -                cpu_uuid = uuid.createString()
> > -                cpu_info = {'uuid': cpu_uuid,
> > -                            'host': self.uuid,
> > -                            'number': i,
> > -                            'features': cpu_features}
> > -                self.cpus[cpu_uuid] = cpu_info
> > +                u = uuid.createString()
> > +                self.cpus[u] = {'uuid': u, 'number': i }
> > +
> > +        for u in self.cpus.keys():
> > +            log.error(self.cpus[u])
> > +            number = self.cpus[u]['number']
> > +            log.error(number)
> > +            log.error(cpuinfo)
> > +            self.cpus[u].update(
> > +                { 'host'     : self.uuid,
> > +                  'features' : cpu_features,
> > +                  'speed'    : int(float(cpuinfo[number]['cpu MHz'])),
> > +                  'vendor'   : cpuinfo[number]['vendor_id'],
> > +                  'modelname': cpuinfo[number]['model name'],
> > +                  'stepping' : cpuinfo[number]['stepping'],
> > +                  'flags'    : cpuinfo[number]['flags'],
> > +                })
> 
>    On ia64, dom0 doesn't automatically get vcpus for each physical cpu,
> so the first problem is that we're not going to have a /proc/cpuinfo
> entry for every cpu in self.cpus.keys.  I think it's likely x86 could
> run into this problem too if a cpu was hotplugged or booted with the
> dom0_max_vcpus options.
> 
>    The second problem is that /proc/cpuinfo fields are very architecture
> specific.  I'd suggest importing arch and having separate cases for x86,
> ia64, and powerpc.  For ia64, think the most appropriate mapping would
> be:
> 
>                 self.cpus[u].update(
>                     { 'host'     : self.uuid,
>                       'features' : cpu_features,
>                       'speed'    : int(float(cpuinfo[0]['cpu MHz'])),
>                       'vendor'   : cpuinfo[0]['vendor'],
>                       'modelname': cpuinfo[0]['family'],
>                       'stepping' : cpuinfo[0]['model'],
>                       'flags'    : cpuinfo[0]['features'],
>                     })
> 
> Hollis or Jimi might be able to chime in with identifiers that would
> work on powerpc.  Thanks,
> 
>       Alex
-- 
Hollis Blanchard
IBM Linux Technology Center


_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel