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? ~Andrew