From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ryan Harper Subject: Re: [PATCH] tools: convert cpumap bitmap to list Date: Thu, 20 Oct 2005 10:24:55 -0500 Message-ID: <20051020152455.GD2004@us.ibm.com> References: <20051019224507.GC2004@us.ibm.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Return-path: Content-Disposition: inline In-Reply-To: List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xensource.com Errors-To: xen-devel-bounces@lists.xensource.com To: Keir Fraser Cc: xen-devel@lists.xensource.com List-Id: xen-devel@lists.xenproject.org * Keir Fraser [2005-10-20 05:39]: > > On 19 Oct 2005, at 23:45, Ryan Harper wrote: > > >This patch modifies the lowlevel xc vcpuinfo call to convert a vcpu's > >cpumap to a list of int. XendDomainInfo.py filters the cpumap into a > >smaller list that is bound by the number of vcpus allocated to a > >domain. > > Two things: > > First, there is no correspondence between size of cpumap and > max_vcpu_id, because there is no direct relationship between sizes of > virtual and physical CPU spaces. We could have a system with more vcpus > than physical cpus, or vice versa. And cpumap represents sets of > physical cpus, not sets of virtual cpus. Right. I was carrying through the previous incorrect behavior: cpumap = sxp.child_value(info, 'cpumap', []) mask = ((int(sxp.child_value(info, 'vcpus', '0')))**2) - 1 > > Second, I meant that the cpumap list should contain just the list of > physical cpus that that vcpu can run on. So, for example, a cpumap > bitmask of 0x5 would correspond to the cpumap list [0, 2], not the list > [0, -1, 2, -1, -1, ...]. The latter is a weird and redundant > representation. OK. That was my poor hack around python/c blowing up if you didn't fill out every spot in the list you created. I'm going to switch to using PyList_Append() rather than creating the list size up front. Are you interested in any modification of the cpumap to list conversion? Or is it ok if vcpu-list shows a long list of integers? I would think mapping cpu % nr_cpus, throwing away duplicates would be best. With [0,1,2,3] and nr_cpus=2, cpumap would be [0,1]. -- Ryan Harper Software Engineer; Linux Technology Center IBM Corp., Austin, Tx (512) 838-9253 T/L: 678-9253 ryanh@us.ibm.com