On 2/28/23 12:49 AM, Andrew Cooper wrote: > On 28/02/2023 6:44 am, Joe Jin wrote: >> Hi, >> >> We encountered a vcpu-set issue on old xen, when I tried to confirm >> if xen upstream xen has the same issue I find neither my upstream build >> nor ubuntu 22.04 xen-hypervisor-4.16 work. >> >> I can add vcpus(8->16) to my guest but I can not reduce vcpu number: >> >> root@ubuntu2204:~/vm# xl list >> Name ID Mem VCPUs State >> Time(s) >> Domain-0 0 255424 32 r----- >> 991.9 >> testvm 1 4088 16 -b---- >> 94.6 >> root@ubuntu2204:~/vm# xl vcpu-set testvm 8 >> root@ubuntu2204:~/vm# xl list >> Name ID Mem VCPUs State >> Time(s) >> Domain-0 0 255424 32 r----- >> 998.5 >> testvm 1 4088 16 -b---- >> 97.3 >> >> After xl vcpu-set, xenstore showed online cpu number reduced to 8: >> >> /local/domain/1/vm = "/vm/aa109ea0-2fde-4712-81d8-75f73bd73715" >> /local/domain/1/name = "testvm" >> /local/domain/1/cpu = "" >> /local/domain/1/cpu/0 = "" >> /local/domain/1/cpu/0/availability = "online" >> /local/domain/1/cpu/1 = "" >> /local/domain/1/cpu/1/availability = "online" >> /local/domain/1/cpu/2 = "" >> /local/domain/1/cpu/2/availability = "online" >> /local/domain/1/cpu/3 = "" >> /local/domain/1/cpu/3/availability = "online" >> /local/domain/1/cpu/4 = "" >> /local/domain/1/cpu/4/availability = "online" >> /local/domain/1/cpu/5 = "" >> /local/domain/1/cpu/5/availability = "online" >> /local/domain/1/cpu/6 = "" >> /local/domain/1/cpu/6/availability = "online" >> /local/domain/1/cpu/7 = "" >> /local/domain/1/cpu/7/availability = "online" >> /local/domain/1/cpu/8 = "" >> /local/domain/1/cpu/8/availability = "offline" >> /local/domain/1/cpu/9 = "" >> /local/domain/1/cpu/9/availability = "offline" >> /local/domain/1/cpu/10 = "" >> /local/domain/1/cpu/10/availability = "offline" >> /local/domain/1/cpu/11 = "" >> /local/domain/1/cpu/11/availability = "offline" >> /local/domain/1/cpu/12 = "" >> /local/domain/1/cpu/12/availability = "offline" >> /local/domain/1/cpu/13 = "" >> /local/domain/1/cpu/13/availability = "offline" >> /local/domain/1/cpu/14 = "" >> /local/domain/1/cpu/14/availability = "offline" >> /local/domain/1/cpu/15 = "" >> /local/domain/1/cpu/15/availability = "offline" >> /local/domain/1/cpu/16 = "" >> /local/domain/1/cpu/16/availability = "offline" >> >> But guest did not received any offline events at all. >> >> From source code my understand is for cpu online, libxl will >> send device_add to qemu to trigger vcpu add, for cpu offline, >> it still rely on xenstore, is this correct? anything can block >> cpu scale down? >> >> Appreciate for any suggestions! > Your mention of Qemu suggests this is an HVM guest. Can you confirm? Yes it's HVM guest.
Thanks, Joe