[XenPPC] Re: [Xen-devel] architecture-specific stuff in xend
On Wed, Aug 09, 2006 at 10:07:12AM -0500, Hollis Blanchard wrote: > On Wed, 2006-08-09 at 10:28 +0100, Ewan Mellor wrote: > > On Tue, Aug 08, 2006 at 04:59:53PM +0100, John Levon wrote: > > > > > On Tue, Aug 08, 2006 at 10:34:25AM -0500, Hollis Blanchard wrote: > > > > > > > I'm not sure how/where to instantiate the arch object though. > > > > > > Presumably you could do the instance() singleton trick? > > > > This being Python, you don't actually need singletons -- the containing > > module > > is a singleton in its own right. You can just write > > > > Platform.py: > > > > import os > > > > if os.uname()[4] in ('ia64', 'ppc64'): > > def init_reservation(mem_kb): > > return something_else(mem_kb) > > > > else: > > def init_reservation(mem_kb): > > return mem_kb > > > > and then > > > > import Platform > > Platform.init_reservation(100) > > > > will do the right thing. > > Ewan, does this mean you think the proposal is going in the right > direction and you're waiting for a patch? Yes, your proposal sounds fine to me. Ewan. ___ Xen-ppc-devel mailing list Xen-ppc-devel@lists.xensource.com http://lists.xensource.com/xen-ppc-devel
[XenPPC] Re: [Xen-devel] architecture-specific stuff in xend
On Wed, 2006-08-09 at 10:28 +0100, Ewan Mellor wrote: > On Tue, Aug 08, 2006 at 04:59:53PM +0100, John Levon wrote: > > > On Tue, Aug 08, 2006 at 10:34:25AM -0500, Hollis Blanchard wrote: > > > > > I'm not sure how/where to instantiate the arch object though. > > > > Presumably you could do the instance() singleton trick? > > This being Python, you don't actually need singletons -- the containing module > is a singleton in its own right. You can just write > > Platform.py: > > import os > > if os.uname()[4] in ('ia64', 'ppc64'): > def init_reservation(mem_kb): > return something_else(mem_kb) > > else: > def init_reservation(mem_kb): > return mem_kb > > and then > > import Platform > Platform.init_reservation(100) > > will do the right thing. Ewan, does this mean you think the proposal is going in the right direction and you're waiting for a patch? -- Hollis Blanchard IBM Linux Technology Center ___ Xen-ppc-devel mailing list Xen-ppc-devel@lists.xensource.com http://lists.xensource.com/xen-ppc-devel
[XenPPC] Re: [Xen-devel] architecture-specific stuff in xend
On Tue, Aug 08, 2006 at 04:59:53PM +0100, John Levon wrote: > On Tue, Aug 08, 2006 at 10:34:25AM -0500, Hollis Blanchard wrote: > > > Rather than having these inline tests everywhere ("if os.uname()[4] in > > ('ia64', 'ppc64'):"), would it make more sense to have some sort of > > "architecture" object, and do things like: > > It'd be good if it were slightly more general and covered other system > stuff too (namely OS). On Solaris some of the Xen binaries/scripts live > in different locations in order to meet our file system requirements. > > > I'm not sure how/where to instantiate the arch object though. > > Presumably you could do the instance() singleton trick? This being Python, you don't actually need singletons -- the containing module is a singleton in its own right. You can just write Platform.py: import os if os.uname()[4] in ('ia64', 'ppc64'): def init_reservation(mem_kb): return something_else(mem_kb) else: def init_reservation(mem_kb): return mem_kb and then import Platform Platform.init_reservation(100) will do the right thing. Ewan. ___ Xen-ppc-devel mailing list Xen-ppc-devel@lists.xensource.com http://lists.xensource.com/xen-ppc-devel
[XenPPC] Re: [Xen-devel] architecture-specific stuff in xend
On Tue, Aug 08, 2006 at 11:15:18AM -0500, Hollis Blanchard wrote: > > On Solaris some of the Xen binaries/scripts live > > in different locations in order to meet our file system requirements. > > Does that impact code under tools/python/xen much? Very little, but it does affect the location of the network scripts, for example. > > Presumably you could do the instance() singleton trick? > > Not sure what you mean. See XendRoot.py's instance(). > Actually, you bring up a good point: since we have no state (at least > not in the examples I'm thinking of), we really don't want/need a class; > a module would do just fine. So we could have separate files/modules > with just plain functions: > > platform/ia64.py: > def init_reservation(mem_kb): > return something > > platform/platform.py: > import xen.xend.platform.ia64 as platform We'd still need something to import the right bits... regards john ___ Xen-ppc-devel mailing list Xen-ppc-devel@lists.xensource.com http://lists.xensource.com/xen-ppc-devel
[XenPPC] Re: [Xen-devel] architecture-specific stuff in xend
On Tue, 2006-08-08 at 16:59 +0100, John Levon wrote: > On Tue, Aug 08, 2006 at 10:34:25AM -0500, Hollis Blanchard wrote: > > > Rather than having these inline tests everywhere ("if os.uname()[4] in > > ('ia64', 'ppc64'):"), would it make more sense to have some sort of > > "architecture" object, and do things like: > > It'd be good if it were slightly more general and covered other system > stuff too (namely OS). Sure, we could make it "class Platform" and have it represent an architecture/OS pair. > On Solaris some of the Xen binaries/scripts live > in different locations in order to meet our file system requirements. Does that impact code under tools/python/xen much? > > I'm not sure how/where to instantiate the arch object though. > > Presumably you could do the instance() singleton trick? Not sure what you mean. Actually, you bring up a good point: since we have no state (at least not in the examples I'm thinking of), we really don't want/need a class; a module would do just fine. So we could have separate files/modules with just plain functions: platform/ia64.py: def init_reservation(mem_kb): return something platform/platform.py: import xen.xend.platform.ia64 as platform ... or something. Like I said, I really don't know modules, but as long as we don't have any arch-specific state we need to save, I'm pretty sure modules are the right solution to this problem. -- Hollis Blanchard IBM Linux Technology Center ___ Xen-ppc-devel mailing list Xen-ppc-devel@lists.xensource.com http://lists.xensource.com/xen-ppc-devel
[XenPPC] Re: [Xen-devel] architecture-specific stuff in xend
On Tue, Aug 08, 2006 at 10:34:25AM -0500, Hollis Blanchard wrote: > Rather than having these inline tests everywhere ("if os.uname()[4] in > ('ia64', 'ppc64'):"), would it make more sense to have some sort of > "architecture" object, and do things like: It'd be good if it were slightly more general and covered other system stuff too (namely OS). On Solaris some of the Xen binaries/scripts live in different locations in order to meet our file system requirements. > I'm not sure how/where to instantiate the arch object though. Presumably you could do the instance() singleton trick? regards john ___ Xen-ppc-devel mailing list Xen-ppc-devel@lists.xensource.com http://lists.xensource.com/xen-ppc-devel