From mboxrd@z Thu Jan 1 00:00:00 1970 From: George Dunlap Subject: [PATCH] xl, cpupools: Create empty pool if no cpus are specified Date: Thu, 5 Apr 2012 14:14:43 +0100 Message-ID: Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Return-path: List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xen.org Errors-To: xen-devel-bounces@lists.xen.org To: xen-devel@lists.xensource.com Cc: george.dunlap@eu.citrix.com List-Id: xen-devel@lists.xenproject.org Currently, if "xl cpupool-create" is called with no cpus configured, xl will choose a cpu at random from the list of unassigned cpus, and if no unassigned cpus are available, it will fail. This seems to me to be a poor interface. For one, it makes it impossible to create an empty cpupool using the xl command-line, except by creating a pool and then removing the cpus from it. For two, I don't think assigning a random cpu is a feature; it's not unreasonable for the user to specify which cpus to add to which pools. This patch changes the behavior of "xl cpupool-create" to create an empty pool if no cpus are specified. I believe this interface to be more expected and more script-friendly. Signed-off-by: George Dunlap diff -r 7530af17cfcf -r c53f124c8c44 tools/libxl/xl_cmdimpl.c --- a/tools/libxl/xl_cmdimpl.c Thu Apr 05 14:04:53 2012 +0100 +++ b/tools/libxl/xl_cmdimpl.c Thu Apr 05 14:14:32 2012 +0100 @@ -5734,20 +5734,8 @@ int main_cpupoolcreate(int argc, char ** libxl_cpumap_set(&cpumap, i); n_cpus++; } - } else { - n_cpus = 1; - n = 0; - libxl_for_each_cpu(i, freemap) - if (libxl_cpumap_test(&freemap, i)) { - n++; - libxl_cpumap_set(&cpumap, i); - break; - } - if (n < n_cpus) { - fprintf(stderr, "no free cpu found\n"); - return -ERROR_FAIL; - } - } + } else + n_cpus = 0; libxl_uuid_generate(&uuid);