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