Hi list,
I have installed latest xen-4.0-testing.hg and have a problem with setting
number of vcpus in dom0.
On boot all phys cpus are used in dom0
# xm vcpu-list
Name                                ID  VCPU   CPU State   Time(s) CPU Affinity
Domain-0                             0     0     0   r--      31.3 any cpu
Domain-0                             0     1     1   -b-      15.7 any cpu
# xm vcpu-set 0 1
# xm vcpu-list
Name                                ID  VCPU   CPU State   Time(s) CPU Affinity
Domain-0                             0     0     0   r--      32.1 any cpu
Domain-0                             0     1     -   --p      16.4 any cpu
And setting back to 2 vcpus:
# xm vcpu-set 0 2
# xm vcpu-list
Name                                ID  VCPU   CPU State   Time(s) CPU Affinity
Domain-0                             0     0     0   r--      32.1 any cpu
Domain-0                             0     1     -   --p      16.4 any cpu
But in xenstore I can see:
tool = ""
 xenstored = ""
vm = ""
 00000000-0000-0000-0000-000000000000 = ""
  on_xend_stop = "ignore"
  shadow_memory = "0"
  uuid = "00000000-0000-0000-0000-000000000000"
  on_reboot = "restart"
  image = "(linux (kernel ) (superpages 0) (nomigrate 0) (tsc_mode
0))"
   ostype = "linux"
   kernel = ""
   cmdline = ""
   ramdisk = ""
  on_poweroff = "destroy"
  bootloader_args = ""
  on_xend_start = "ignore"
  on_crash = "restart"
  xend = ""
   restart_count = "0"
  vcpus = "2"
  vcpu_avail = "3"
  bootloader = ""
  name = "Domain-0"
local = ""
 domain = ""
  0 = ""
   vm = "/vm/00000000-0000-0000-0000-000000000000"
   device = ""
   control = ""
    platform-feature-multiprocessor-suspend = "1"
   error = ""
   memory = ""
    target = "3639236"
   guest = ""
   hvmpv = ""
   data = ""
   cpu = ""
    1 = ""
     availability = "online"
    0 = ""
     availability = "online"
   description = ""
   console = ""
    limit = "1048576"
    type = "xenconsoled"
   domid = "0"
   name = "Domain-0"
And "xm log" says
[2010-05-11 07:32:31 5406] INFO (XendDomainInfo:1987) Set VCPU count on domain
Domain-0 to 2
 
Can anybody point me where in the code the acpi cpu hotplug gets triggered to
add the vcpu again to the dom0 kernel after setting the xenstore!
Thanks!
Dietmar.
# xm info
host                   : amur
release                : 2.6.31.13-xen-hahn
version                : #3 SMP Fri May 7 09:32:24 CEST 2010
machine                : x86_64
nr_cpus                : 2
nr_nodes               : 1
cores_per_socket       : 2
threads_per_core       : 1
cpu_mhz                : 3166
hw_caps                :
bfebfbff:20100800:00000000:00000940:0408e3fd:00000000:00000001:00000000
virt_caps              : hvm
total_memory           : 3735
free_memory            : 131
node_to_cpu            : node0:0-1
node_to_memory         : node0:131
node_to_dma32_mem      : node0:65
max_node_id            : 0
xen_major              : 4
xen_minor              : 0
xen_extra              : .1-rc1-pre
xen_caps               : xen-3.0-x86_64 xen-3.0-x86_32p hvm-3.0-x86_32
hvm-3.0-x86_32p hvm-3.0-x86_64
xen_scheduler          : credit
xen_pagesize           : 4096
platform_params        : virt_start=0xffff800000000000
xen_changeset          : Fri Apr 23 08:45:16 2010 +0100 21122:7d1d4abd8b44
xen_commandline        : iommu=off loglvl=all guest_loglvl=all console=vga
cc_compiler            : gcc version 4.4.1 [gcc-4_4-branch revision 150839]
(SUSE Linux)
cc_compile_by          : hahn
cc_compile_domain      : mch.fsc.net
cc_compile_date        : Mon Apr 26 10:29:16 CEST 2010
xend_config_format     : 4
-- 
Company details: http://ts.fujitsu.com/imprint.html
_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xensource.com
http://lists.xensource.com/xen-devel
>>> Dietmar Hahn <dietmar.hahn@ts.fujitsu.com> 11.05.10 08:19 >>> >Can anybody point me where in the code the acpi cpu hotplug gets triggered to >add the vcpu again to the dom0 kernel after setting the xenstore!No, ACPI hotplug code is not involved in pv domains'' vCPU adding or removal. Instead, the pv kernels create a xenstore watch on their domain''s "cpu" node, reading cpu/<id>/availability when the watch fires. See drivers/xen/core/cpu_hotplug.c (for the forward ported kernels) or drivers/xen/cpu_hotplug.c (for the pv-ops ones). Jan _______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel
Am 11.05.2010 schrieb Jan Beulich:> >>> Dietmar Hahn <dietmar.hahn@ts.fujitsu.com> 11.05.10 08:19 >>> > >Can anybody point me where in the code the acpi cpu hotplug gets triggered to > >add the vcpu again to the dom0 kernel after setting the xenstore! > > No, ACPI hotplug code is not involved in pv domains'' vCPU adding or > removal. Instead, the pv kernels create a xenstore watch on their > domain''s "cpu" node, reading cpu/<id>/availability when the watch > fires. See drivers/xen/core/cpu_hotplug.c (for the forward ported > kernels) or drivers/xen/cpu_hotplug.c (for the pv-ops ones). > > JanIt''s the pv-ops kernel from within the xen-4.0-testing.hg tree. Thanks, Jan ;-) Pointing to the right place I found a missing cpu_up() call in the vcpu_hotplug() function. Now all my vcpus are back again on my machine ;-) Thanks. Dietmar. Signed-off-by: Dietmar Hahn <dietmar.hahn@ts.fujitsu.com> diff --git a/drivers/xen/cpu_hotplug.c b/drivers/xen/cpu_hotplug.c index bdfd584..f3f0c1e 100644 --- a/drivers/xen/cpu_hotplug.c +++ b/drivers/xen/cpu_hotplug.c @@ -49,6 +49,7 @@ static void vcpu_hotplug(unsigned int cpu) switch (vcpu_online(cpu)) { case 1: enable_hotplug_cpu(cpu); + (void)cpu_up(cpu); break; case 0: (void)cpu_down(cpu); -- Company details: http://ts.fujitsu.com/imprint.html _______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel
Yes, acpi hotplug is for hvm vcpu hotplug. To get more xenstore refer, you can access http://wiki.xensource.com/xenwiki/XenStore?highlight=%28xenstore%29 http://wiki.xensource.com/xenwiki/XenStoreReference?highlight=%28xenstore%29 Attached is the tool to dump xenstore, with it, you can get info for dom0 vcpu add/remove, like: xm vcpu-set 0 1 /local/domain/0/cpu/1/availability=offline /local/domain/0/cpu/0/availability=online xm vcpu-set 0 2 /local/domain/0/cpu/1/availability=online /local/domain/0/cpu/0/availability=online pv vcpu hotplug code is as what Jan said. Thanks, Jinsong Jan Beulich wrote:>>>> Dietmar Hahn <dietmar.hahn@ts.fujitsu.com> 11.05.10 08:19 >>> >> Can anybody point me where in the code the acpi cpu hotplug gets >> triggered to add the vcpu again to the dom0 kernel after setting the >> xenstore! > > No, ACPI hotplug code is not involved in pv domains'' vCPU adding or > removal. Instead, the pv kernels create a xenstore watch on their > domain''s "cpu" node, reading cpu/<id>/availability when the watch > fires. See drivers/xen/core/cpu_hotplug.c (for the forward ported > kernels) or drivers/xen/cpu_hotplug.c (for the pv-ops ones). > > Jan > > > _______________________________________________ > Xen-devel mailing list > Xen-devel@lists.xensource.com > http://lists.xensource.com/xen-devel_______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel
Dietmar Hahn wrote:> Am 11.05.2010 schrieb Jan Beulich: >>>>> Dietmar Hahn <dietmar.hahn@ts.fujitsu.com> 11.05.10 08:19 >>> >>> Can anybody point me where in the code the acpi cpu hotplug gets >>> triggered to add the vcpu again to the dom0 kernel after setting >>> the xenstore! >> >> No, ACPI hotplug code is not involved in pv domains'' vCPU adding or >> removal. Instead, the pv kernels create a xenstore watch on their >> domain''s "cpu" node, reading cpu/<id>/availability when the watch >> fires. See drivers/xen/core/cpu_hotplug.c (for the forward ported >> kernels) or drivers/xen/cpu_hotplug.c (for the pv-ops ones). >> >> Jan > > It''s the pv-ops kernel from within the xen-4.0-testing.hg tree. > Thanks, Jan ;-) > Pointing to the right place I found a missing cpu_up() call > in the vcpu_hotplug() function. > Now all my vcpus are back again on my machine ;-) > Thanks. > > Dietmar. > > > Signed-off-by: Dietmar Hahn <dietmar.hahn@ts.fujitsu.com> > > diff --git a/drivers/xen/cpu_hotplug.c b/drivers/xen/cpu_hotplug.c > index bdfd584..f3f0c1e 100644 > --- a/drivers/xen/cpu_hotplug.c > +++ b/drivers/xen/cpu_hotplug.c > @@ -49,6 +49,7 @@ static void vcpu_hotplug(unsigned int cpu) > switch (vcpu_online(cpu)) { > case 1: > enable_hotplug_cpu(cpu); > + (void)cpu_up(cpu); > break; > case 0: > (void)cpu_down(cpu);No, I don''t think you need update pv-ops kernel so. vcpu-add just set it to cpu present map, not online map. It provide user chance to echo 1 > /sys/devices/system/cpux/online to make cpu work (means, to add cpu to online map). The original pv-ops vcpu hotplug logic is right. Thanks, Jinosng _______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel