How to get the 2nd vCPU running in the Industry scenario?
Currently only SOS cmdline of hybrid scenario might need this setting as a workaround, to avoid enumerating all cpus when bootup APs.
When SOS MADT table could be customized, then this workaround is valueless also.
BR,
Victor
From: acrn-users@... <acrn-users@...> On Behalf Of Geoffroy Van Cutsem
Sent: Thursday, November 28, 2019 3:23 PM
To: acrn-users@...
Subject: Re: [acrn-users] How to get the 2nd vCPU running in the Industry scenario?
On Thu, 2019-11-28 at 02:04 +0000, Liu, Fuzhong wrote:
Hi TonnyIs there any value at all in having this maxcpus parameter *anywhere*?
You should copy
https://github.com/projectacrn/acrn-hypervisor/blob/master/devicemodel
/samples/nuc/launch_hard_rt_vm.sh for RTVM; Not maxcpus parameter in
it.
Not
https://github.com/projectacrn/acrn-hypervisor/blob/master/devicemodel
/samples/nuc/launch_uos.sh
My thinking is that it's ACRN that determines how many vCPUs are visible to any User VM, and we'd want our User VM to always use as many as are available, regardless of whether this is an RTVM or a standard User VM, wouldn't we?
Thanks,
Geoffroy
Hi TonnyIs there any value at all in having this maxcpus parameter *anywhere*?
You should copy
https://github.com/projectacrn/acrn-hypervisor/blob/master/devicemodel/samples/nuc/launch_hard_rt_vm.sh
for RTVM; Not maxcpus parameter in it.
Not
https://github.com/projectacrn/acrn-hypervisor/blob/master/devicemodel/samples/nuc/launch_uos.sh
My thinking is that it's ACRN that determines how many vCPUs are
visible to any User VM, and we'd want our User VM to always use as many
as are available, regardless of whether this is an RTVM or a standard
User VM, wouldn't we?
Thanks,
Geoffroy
Hi Tonny
You should copy https://github.com/projectacrn/acrn-hypervisor/blob/master/devicemodel/samples/nuc/launch_hard_rt_vm.sh for RTVM; Not maxcpus parameter in it.
Not https://github.com/projectacrn/acrn-hypervisor/blob/master/devicemodel/samples/nuc/launch_uos.sh
BR.
Fuzhong
Sent: Thursday, November 28, 2019 9:21 AM
To: acrn-users@...
Subject: Re: [acrn-users] How to get the 2nd vCPU running in the Industry scenario?
Hi Fuzhong,
You are right! I just copied this comment line to my kernel command line without noticing it limits the vCPU to 1. Both vCPU are running now, though you may consider to remove this misleading parameter in the sample launch script. 😊
Regards,
Tonny
From:
acrn-users@... <acrn-users@...>
On Behalf Of Liu, Fuzhong
Sent: Thursday, November 28, 2019 9:12 AM
To: acrn-users@...
Subject: Re: [acrn-users] How to get the 2nd vCPU running in the Industry scenario?
Hi Tonny
About the secondary vCPU is in “Init” mode after I launch user VM. The HV console indicates:
ACRN:\>vcpu_list
VM ID PCPU ID VCPU ID VCPU ROLE VCPU STATE
===== ======= ======= ========= ==========
0 0 0 PRIMARY Running
2 2 0 PRIMARY Running
2 3 1 SECONDARY Init
I think you add maxcpus=1 in your kernel comline; Could you please share the user VM kernel comline?
ACRN:\>vcpu_list(without maxcpus=1)
VM ID PCPU ID VCPU ID VCPU ROLE VCPU STATE
===== ======= ======= ========= ==========
0 0 0 PRIMARY Running
2 2 0 PRIMARY Running
2 3 1 SECONDARY Running
ACRN:\>vcpu_list(with maxcpus=1)
VM ID PCPU ID VCPU ID VCPU ROLE VCPU STATE
===== ======= ======= ========= ==========
0 0 0 PRIMARY Running
2 2 0 PRIMARY Running
2 3 1 SECONDARY Init
BR.
Fuzhong
From:
acrn-users@... <acrn-users@...>
On Behalf Of Victor Sun
Sent: Wednesday, November 27, 2019 8:17 PM
To: acrn-users@...
Subject: Re: [acrn-users] How to get the 2nd vCPU running in the Industry scenario?
Hi Tonny,
This is a known issue. In current implementation, SOS will offline all vcpus except BSP before launch any user VM(i.e. offline pCPU1/2/3 in your case), and your launched user VM2 only init pCPU2/3 to run, this cause pCPU1 always be offlined until you launch user VM1.
In our new implementation, acrn-config tool will do a modification in launch script, that only pCPUs belong to the launched VM could be offlined, then it will resolve your issue.
or you can modify the launch script by manual:
for i in `ls -d /sys/devices/system/cpu/cpu[1-99]`; do
+ # do not offline the CPU which not belong to the UOS
+ if [ "i" = "/sys/devices/system/cpu/cpu1" ]; then continue; fi
online=`cat $i/online`
BR,
Victor
On 11/27/2019 5:15 PM, Tzeng, Tonny wrote:
Hi,
It looks to me two cores are now assigned to the VM2 in the Industry scenario, but only the primary vCPU is shown in “Running” state, the secondary vCPU is in “Init” mode after I launch my user VM. The HV console indicates:
ACRN:\>vcpu_list
VM ID PCPU ID VCPU ID VCPU ROLE VCPU STATE
===== ======= ======= ========= ==========
0 0 0 PRIMARY Running
2 2 0 PRIMARY Running
2 3 1 SECONDARY Init
Is it a bug or how can I move the secondary vCPU to “Running” mode? Thanks.
Regards,
Tonny
Thanks Fuzhong to correct my misunderstanding!
BR,
Victor
Sent: Thursday, November 28, 2019 9:21 AM
To: acrn-users@...
Subject: Re: [acrn-users] How to get the 2nd vCPU running in the Industry scenario?
Hi Fuzhong,
You are right! I just copied this comment line to my kernel command line without noticing it limits the vCPU to 1. Both vCPU are running now, though you may consider to remove this misleading parameter in the sample launch script. 😊
Regards,
Tonny
From:
acrn-users@... <acrn-users@...>
On Behalf Of Liu, Fuzhong
Sent: Thursday, November 28, 2019 9:12 AM
To: acrn-users@...
Subject: Re: [acrn-users] How to get the 2nd vCPU running in the Industry scenario?
Hi Tonny
About the secondary vCPU is in “Init” mode after I launch user VM. The HV console indicates:
ACRN:\>vcpu_list
VM ID PCPU ID VCPU ID VCPU ROLE VCPU STATE
===== ======= ======= ========= ==========
0 0 0 PRIMARY Running
2 2 0 PRIMARY Running
2 3 1 SECONDARY Init
I think you add maxcpus=1 in your kernel comline; Could you please share the user VM kernel comline?
ACRN:\>vcpu_list(without maxcpus=1)
VM ID PCPU ID VCPU ID VCPU ROLE VCPU STATE
===== ======= ======= ========= ==========
0 0 0 PRIMARY Running
2 2 0 PRIMARY Running
2 3 1 SECONDARY Running
ACRN:\>vcpu_list(with maxcpus=1)
VM ID PCPU ID VCPU ID VCPU ROLE VCPU STATE
===== ======= ======= ========= ==========
0 0 0 PRIMARY Running
2 2 0 PRIMARY Running
2 3 1 SECONDARY Init
BR.
Fuzhong
From:
acrn-users@... <acrn-users@...>
On Behalf Of Victor Sun
Sent: Wednesday, November 27, 2019 8:17 PM
To: acrn-users@...
Subject: Re: [acrn-users] How to get the 2nd vCPU running in the Industry scenario?
Hi Tonny,
This is a known issue. In current implementation, SOS will offline all vcpus except BSP before launch any user VM(i.e. offline pCPU1/2/3 in your case), and your launched user VM2 only init pCPU2/3 to run, this cause pCPU1 always be offlined until you launch user VM1.
In our new implementation, acrn-config tool will do a modification in launch script, that only pCPUs belong to the launched VM could be offlined, then it will resolve your issue.
or you can modify the launch script by manual:
for i in `ls -d /sys/devices/system/cpu/cpu[1-99]`; do
+ # do not offline the CPU which not belong to the UOS
+ if [ "i" = "/sys/devices/system/cpu/cpu1" ]; then continue; fi
online=`cat $i/online`
BR,
Victor
On 11/27/2019 5:15 PM, Tzeng, Tonny wrote:
Hi,
It looks to me two cores are now assigned to the VM2 in the Industry scenario, but only the primary vCPU is shown in “Running” state, the secondary vCPU is in “Init” mode after I launch my user VM. The HV console indicates:
ACRN:\>vcpu_list
VM ID PCPU ID VCPU ID VCPU ROLE VCPU STATE
===== ======= ======= ========= ==========
0 0 0 PRIMARY Running
2 2 0 PRIMARY Running
2 3 1 SECONDARY Init
Is it a bug or how can I move the secondary vCPU to “Running” mode? Thanks.
Regards,
Tonny
Hi Fuzhong,
You are right! I just copied this comment line to my kernel command line without noticing it limits the vCPU to 1. Both vCPU are running now, though you may consider to remove this misleading parameter in the sample launch script. 😊
Regards,
Tonny
Sent: Thursday, November 28, 2019 9:12 AM
To: acrn-users@...
Subject: Re: [acrn-users] How to get the 2nd vCPU running in the Industry scenario?
Hi Tonny
About the secondary vCPU is in “Init” mode after I launch user VM. The HV console indicates:
ACRN:\>vcpu_list
VM ID PCPU ID VCPU ID VCPU ROLE VCPU STATE
===== ======= ======= ========= ==========
0 0 0 PRIMARY Running
2 2 0 PRIMARY Running
2 3 1 SECONDARY Init
I think you add maxcpus=1 in your kernel comline; Could you please share the user VM kernel comline?
ACRN:\>vcpu_list(without maxcpus=1)
VM ID PCPU ID VCPU ID VCPU ROLE VCPU STATE
===== ======= ======= ========= ==========
0 0 0 PRIMARY Running
2 2 0 PRIMARY Running
2 3 1 SECONDARY Running
ACRN:\>vcpu_list(with maxcpus=1)
VM ID PCPU ID VCPU ID VCPU ROLE VCPU STATE
===== ======= ======= ========= ==========
0 0 0 PRIMARY Running
2 2 0 PRIMARY Running
2 3 1 SECONDARY Init
BR.
Fuzhong
From:
acrn-users@... <acrn-users@...>
On Behalf Of Victor Sun
Sent: Wednesday, November 27, 2019 8:17 PM
To: acrn-users@...
Subject: Re: [acrn-users] How to get the 2nd vCPU running in the Industry scenario?
Hi Tonny,
This is a known issue. In current implementation, SOS will offline all vcpus except BSP before launch any user VM(i.e. offline pCPU1/2/3 in your case), and your launched user VM2 only init pCPU2/3 to run, this cause pCPU1 always be offlined until you launch user VM1.
In our new implementation, acrn-config tool will do a modification in launch script, that only pCPUs belong to the launched VM could be offlined, then it will resolve your issue.
or you can modify the launch script by manual:
for i in `ls -d /sys/devices/system/cpu/cpu[1-99]`; do
+ # do not offline the CPU which not belong to the UOS
+ if [ "i" = "/sys/devices/system/cpu/cpu1" ]; then continue; fi
online=`cat $i/online`
BR,
Victor
On 11/27/2019 5:15 PM, Tzeng, Tonny wrote:
Hi,
It looks to me two cores are now assigned to the VM2 in the Industry scenario, but only the primary vCPU is shown in “Running” state, the secondary vCPU is in “Init” mode after I launch my user VM. The HV console indicates:
ACRN:\>vcpu_list
VM ID PCPU ID VCPU ID VCPU ROLE VCPU STATE
===== ======= ======= ========= ==========
0 0 0 PRIMARY Running
2 2 0 PRIMARY Running
2 3 1 SECONDARY Init
Is it a bug or how can I move the secondary vCPU to “Running” mode? Thanks.
Regards,
Tonny
Hi Tonny
About the secondary vCPU is in “Init” mode after I launch user VM. The HV console indicates:
ACRN:\>vcpu_list
VM ID PCPU ID VCPU ID VCPU ROLE VCPU STATE
===== ======= ======= ========= ==========
0 0 0 PRIMARY Running
2 2 0 PRIMARY Running
2 3 1 SECONDARY Init
I think you add maxcpus=1 in your kernel comline; Could you please share the user VM kernel comline?
ACRN:\>vcpu_list(without maxcpus=1)
VM ID PCPU ID VCPU ID VCPU ROLE VCPU STATE
===== ======= ======= ========= ==========
0 0 0 PRIMARY Running
2 2 0 PRIMARY Running
2 3 1 SECONDARY Running
ACRN:\>vcpu_list(with maxcpus=1)
VM ID PCPU ID VCPU ID VCPU ROLE VCPU STATE
===== ======= ======= ========= ==========
0 0 0 PRIMARY Running
2 2 0 PRIMARY Running
2 3 1 SECONDARY Init
BR.
Fuzhong
Sent: Wednesday, November 27, 2019 8:17 PM
To: acrn-users@...
Subject: Re: [acrn-users] How to get the 2nd vCPU running in the Industry scenario?
Hi Tonny,
This is a known issue. In current implementation, SOS will offline all vcpus except BSP before launch any user VM(i.e. offline pCPU1/2/3 in your case), and your launched user VM2 only init pCPU2/3 to run, this cause pCPU1 always be offlined until you launch user VM1.
In our new implementation, acrn-config tool will do a modification in launch script, that only pCPUs belong to the launched VM could be offlined, then it will resolve your issue.
or you can modify the launch script by manual:
for i in `ls -d /sys/devices/system/cpu/cpu[1-99]`; do
+ # do not offline the CPU which not belong to the UOS
+ if [ "i" = "/sys/devices/system/cpu/cpu1" ]; then continue; fi
online=`cat $i/online`
BR,
Victor
On 11/27/2019 5:15 PM, Tzeng, Tonny wrote:
Hi,
It looks to me two cores are now assigned to the VM2 in the Industry scenario, but only the primary vCPU is shown in “Running” state, the secondary vCPU is in “Init” mode after I launch my user VM. The HV console indicates:
ACRN:\>vcpu_list
VM ID PCPU ID VCPU ID VCPU ROLE VCPU STATE
===== ======= ======= ========= ==========
0 0 0 PRIMARY Running
2 2 0 PRIMARY Running
2 3 1 SECONDARY Init
Is it a bug or how can I move the secondary vCPU to “Running” mode? Thanks.
Regards,
Tonny
Hi Tonny,
This is a known issue. In current implementation, SOS will offline all vcpus except BSP before launch any user VM(i.e. offline pCPU1/2/3 in your case), and your launched user VM2 only init pCPU2/3 to run, this cause pCPU1 always be offlined until you launch user VM1.
In our new implementation, acrn-config tool will do a modification in launch script, that only pCPUs belong to the launched VM could be offlined, then it will resolve your issue.
or you can modify the launch script by manual:
for i in `ls -d /sys/devices/system/cpu/cpu[1-99]`; do
+ # do not offline the CPU which not belong to the UOS
+ if [ "i" = "/sys/devices/system/cpu/cpu1" ]; then continue; fi
online=`cat $i/online`
Hi,
It looks to me two cores are now assigned to the VM2 in the Industry scenario, but only the primary vCPU is shown in “Running” state, the secondary vCPU is in “Init” mode after I launch my user VM. The HV console indicates:
ACRN:\>vcpu_list
VM ID PCPU ID VCPU ID VCPU ROLE VCPU STATE
===== ======= ======= ========= ==========
0 0 0 PRIMARY Running
2 2 0 PRIMARY Running
2 3 1 SECONDARY Init
Is it a bug or how can I move the secondary vCPU to “Running” mode? Thanks.
Regards,
Tonny
Hi,
It looks to me two cores are now assigned to the VM2 in the Industry scenario, but only the primary vCPU is shown in “Running” state, the secondary vCPU is in “Init” mode after I launch my user VM. The HV console indicates:
ACRN:\>vcpu_list
VM ID PCPU ID VCPU ID VCPU ROLE VCPU STATE
===== ======= ======= ========= ==========
0 0 0 PRIMARY Running
2 2 0 PRIMARY Running
2 3 1 SECONDARY Init
Is it a bug or how can I move the secondary vCPU to “Running” mode? Thanks.
Regards,
Tonny