On
8/20/2020 6:23 PM, Haibin Zhang wrote:
On Aug 20, 2020, at 5:08 PM, Ying Fang <fangying1@huawei.com> wrote:
On 8/20/2020 3:44 PM, Haibin Zhang wrote:
Hi, Ying Fang,
I use qemu(https://gitee.com/src-openeuler/qemu.git) launch a openEuler guest, but it hung.
Qcow2 is downloaded from
https://repo.openeuler.org/openEuler-20.03-LTS/virtual_machine_img/aarch64/openEuler-20.03-LTS.aarch64.qcow2.xz
Qemu command:
qemu-system-aarch64 -name guest=12345,debug-threads=on -machine virt,accel=kvm,usb=off,dump-guest-core=off,gic-version=3 \
-cpu host -m 122880 -object iothread,id=iothread1 \
-object memory-backend-ram,id=ram-node0,size=64424509440,host-nodes=0,policy=preferred -numa node,nodeid=0,cpus=0-29,memdev=ram-node0 \
-object memory-backend-ram,id=ram-node1,size=64424509440,host-nodes=1,policy=preferred -numa node,nodeid=1,cpus=30-59,memdev=ram-node1 \
It works after getting rid of these two memory-backend-ram objects
I
am wondering whether there is enough memory on each NUMA node you specified in the command line on your host. You can use numactl -H to check numa info of your host.
I have specified policy=preferred not strict.
I get some clues below:
It says numa confguration is conflict with cpu affinity specified by MPIDR
-smp 60,sockets=2,cores=30,threads=1 -bios /usr/share/AAVMF/AAVMF_CODE.fd \
-device pcie-root-port,port=0x8,chassis=1,id=pci.1,bus=pcie.0,multifunction=on,addr=0x1 \
-device pcie-root-port,port=0x9,chassis=2,id=pci.2,bus=pcie.0,addr=0x1.0x1 \
-drive file=/data/euler/euler.qcow2,format=qcow2,if=none,id=drive-virtio-disk0,cache=none \
-device virtio-blk-pci,scsi=off,bus=pci.1,addr=0x0,drive=drive-virtio-disk0,id=virtio-disk0,bootindex=1 \
-net none -serial telnet::9001,server,nowait -monitor stdio
Guest startup logs:
[ 3.769390] smp: Brought up 2 nodes, 60 CPUs
[ 4.125100] SMP: Total of 60 processors activated.
[ 4.126246] CPU features: detected: Privileged Access Never
[ 4.127625] CPU features: detected: LSE atomic instructions
[ 4.128969] CPU features: detected: User Access Override
[ 4.130261] CPU features: detected: Data cache clean to Point of Persistence
[ 4.131949] CPU features: detected: RAS Extension Support
[ 4.133253] CPU features: detected: ARM64 MPAM Extension Support
[ 4.134704] CPU features: detected: CRC32 instructions
[ 4.184286] CPU: All CPU(s) started at EL1
[ 4.185891] alternatives: patching kernel code
[ 64.308834] rcu: INFO: rcu_sched detected stalls on CPUs/tasks:
[ 64.310827] rcu: (detected by 0, t=15002 jiffies, g=-719, q=0)
[ 64.312260] rcu: All QSes seen, last rcu_sched kthread activity 15002 (4294908290-4294893288), jiffies_till_next_fqs=1, root ->qsmask 0x0
[ 64.315251] swapper/0 R running task 0 1 0 0x0000002a
[ 64.316930] Call trace:
[ 64.317533] dump_backtrace+0x0/0x198
[ 64.318432] show_stack+0x24/0x30
[ 64.319248] sched_show_task+0x12c/0x160
[ 64.320206] rcu_check_callbacks+0x780/0x7a8
[ 64.321253] update_process_times+0x34/0x60
[ 64.322296] tick_periodic+0x48/0x100
[ 64.323193] tick_handle_periodic+0x38/0xd8
[ 64.324224] arch_timer_handler_virt+0x38/0x58
[ 64.325320] handle_percpu_devid_irq+0x90/0x248
[ 64.326419] generic_handle_irq+0x34/0x50
[ 64.327383] __handle_domain_irq+0x68/0xc0
[ 64.328367] gic_handle_irq+0x6c/0x170
[ 64.329275] el1_irq+0xb8/0x140
[ 64.330040] __bitmap_weight+0x48/0xa0
[ 64.330942] build_sched_domains+0xd58/0xf50
[ 64.331962] sched_init_domains+0xd4/0x108
[ 64.332950] sched_init_smp+0x3c/0x8c
[ 64.333842] kernel_init_freeable+0x17c/0x34c
[ 64.334891] kernel_init+0x18/0x118
[ 64.335735] ret_from_fork+0x10/0x18
You mean there is something wrong with the NUMA feature, right ?
please try using the xml below and see if you can luanch your VM.
No numa specified in below xml file.
<domain type='kvm' id='17'>
<name>openeuler-test</name>
<memory unit='GiB'>32</memory>
<currentMemory unit='GiB'>32</currentMemory>
<memtune>
<hard_limit unit='GiB'>32</hard_limit>
</memtune>
<vcpu placement='static' cpuset='7-10'>60</vcpu>
<iothreads>5</iothreads>
<cputune>
<emulatorpin cpuset='7-10'/>
</cputune>
<resource>
<partition>/machine</partition>
</resource>
<os>
<type arch='aarch64' machine='virt-4.1'>hvm</type>
<loader readonly='yes' type='pflash'>/usr/share/edk2/aarch64/QEMU_EFI-pflash.raw</loader>
<nvram>/var/lib/libvirt/qemu/nvram/fangying_openeuler_VARS.fd</nvram>
<boot dev='hd'/>
<boot dev='cdrom'/>
</os>
<features>
<gic version='3'/>
<acpi/>
</features>
<cpu mode='host-passthrough' check='none'>
<topology sockets='2' cores='30' threads='1'/>
</cpu>
<clock offset='utc'>
</clock>
<on_poweroff>destroy</on_poweroff>
<on_reboot>restart</on_reboot>
<on_crash>restart</on_crash>
<devices>
<emulator>/usr/bin/qemu-kvm</emulator>
<disk type='file' device='disk'>
<driver name='qemu' type='qcow2' cache='none' io='native'/>
<source file='/root/fangying/vm/openEuler-20.03-LTS.aarch64.qcow2'/>
<backingStore/>
<target dev='sda' bus='scsi'/>
<alias name='scsi0-0-0-0'/>
<address type='drive' controller='0' bus='0' target='0' unit='0'/>
</disk>
<controller type='usb' index='0' model='ehci'>
<alias name='usb'/>
<address type='pci' domain='0x0000' bus='0x03' slot='0x01' function='0x0'/>
</controller>
<controller type='scsi' index='0' model='virtio-scsi'>
<alias name='scsi0'/>
<address type='pci' domain='0x0000' bus='0x04' slot='0x00' function='0x0'/>
</controller>
<controller type='pci' index='0' model='pcie-root'>
<alias name='pcie.0'/>
</controller>
<controller type='pci' index='1' model='pcie-root-port'>
<model name='pcie-root-port'/>
<target chassis='1' port='0x8'/>
<alias name='pci.1'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x0' multifunction='on'/>
</controller>
<controller type='pci' index='2' model='pcie-root-port'>
<model name='pcie-root-port'/>
<target chassis='2' port='0x9'/>
<alias name='pci.2'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x1'/>
</controller>
<controller type='pci' index='3' model='pcie-to-pci-bridge'>
<model name='pcie-pci-bridge'/>
<alias name='pci.3'/>
<address type='pci' domain='0x0000' bus='0x01' slot='0x00' function='0x0'/>
</controller>
<controller type='pci' index='4' model='pcie-root-port'>
<model name='pcie-root-port'/>
<target chassis='4' port='0xa'/>
<alias name='pci.4'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x2'/>
</controller>
<controller type='pci' index='5' model='pcie-root-port'>
<model name='pcie-root-port'/>
<target chassis='5' port='0xb'/>
<alias name='pci.5'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x3'/>
</controller>
<controller type='pci' index='6' model='pcie-root-port'>
<model name='pcie-root-port'/>
<target chassis='6' port='0xc'/>
<alias name='pci.6'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x4'/>
</controller>
<controller type='pci' index='7' model='pcie-root-port'>
<model name='pcie-root-port'/>
<target chassis='7' port='0xd'/>
<alias name='pci.7'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x5'/>
</controller>
<controller type='pci' index='8' model='pcie-root-port'>
<model name='pcie-root-port'/>
<target chassis='8' port='0xe'/>
<alias name='pci.8'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x6'/>
</controller>
<controller type='pci' index='9' model='pcie-root-port'>
<model name='pcie-root-port'/>
<target chassis='9' port='0xf'/>
<alias name='pci.9'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x7'/>
</controller>
<controller type='pci' index='10' model='pcie-root-port'>
<model name='pcie-root-port'/>
<target chassis='10' port='0x10'/>
<alias name='pci.10'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x0' multifunction='on'/>
</controller>
<controller type='pci' index='11' model='pcie-root-port'>
<model name='pcie-root-port'/>
<target chassis='11' port='0x11'/>
<alias name='pci.11'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x1'/>
</controller>
<controller type='pci' index='12' model='pcie-root-port'>
<model name='pcie-root-port'/>
<target chassis='12' port='0x12'/>
<alias name='pci.12'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x2'/>
</controller>
<controller type='pci' index='13' model='pcie-root-port'>
<model name='pcie-root-port'/>
<target chassis='13' port='0x13'/>
<alias name='pci.13'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x3'/>
</controller>
<controller type='pci' index='14' model='pcie-root-port'>
<model name='pcie-root-port'/>
<target chassis='14' port='0x14'/>
<alias name='pci.14'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x4'/>
</controller>
<controller type='pci' index='15' model='pcie-root-port'>
<model name='pcie-root-port'/>
<target chassis='15' port='0x15'/>
<alias name='pci.15'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x5'/>
</controller>
<controller type='pci' index='16' model='pcie-root-port'>
<model name='pcie-root-port'/>
<target chassis='16' port='0x16'/>
<alias name='pci.16'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x6'/>
</controller>
<controller type='pci' index='17' model='pcie-root-port'>
<model name='pcie-root-port'/>
<target chassis='17' port='0x17'/>
<alias name='pci.17'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x7'/>
</controller>
<controller type='pci' index='18' model='pcie-root-port'>
<model name='pcie-root-port'/>
<target chassis='18' port='0x18'/>
<alias name='pci.18'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0' multifunction='on'/>
</controller>
<controller type='pci' index='19' model='pcie-root-port'>
<model name='pcie-root-port'/>
<target chassis='19' port='0x19'/>
<alias name='pci.19'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x1'/>
</controller>
<controller type='pci' index='20' model='pcie-root-port'>
<model name='pcie-root-port'/>
<target chassis='20' port='0x1a'/>
<alias name='pci.20'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x2'/>
</controller>
<controller type='pci' index='21' model='pcie-root-port'>
<model name='pcie-root-port'/>
<target chassis='21' port='0x1b'/>
<alias name='pci.21'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x3'/>
</controller>
<controller type='pci' index='22' model='pcie-root-port'>
<model name='pcie-root-port'/>
<target chassis='22' port='0x1c'/>
<alias name='pci.22'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x4'/>
</controller>
<controller type='pci' index='23' model='pcie-root-port'>
<model name='pcie-root-port'/>
<target chassis='23' port='0x1d'/>
<alias name='pci.23'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x5'/>
</controller>
<controller type='pci' index='24' model='pcie-root-port'>
<model name='pcie-root-port'/>
<target chassis='24' port='0x1e'/>
<alias name='pci.24'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x6'/>
</controller>
<controller type='pci' index='25' model='pcie-root-port'>
<model name='pcie-root-port'/>
<target chassis='25' port='0x1f'/>
<alias name='pci.25'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x7'/>
</controller>
<controller type='pci' index='26' model='pcie-root-port'>
<model name='pcie-root-port'/>
<target chassis='26' port='0x20'/>
<alias name='pci.26'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x04' function='0x0' multifunction='on'/>
</controller>
<controller type='pci' index='27' model='pcie-root-port'>
<model name='pcie-root-port'/>
<target chassis='27' port='0x21'/>
<alias name='pci.27'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x04' function='0x1'/>
</controller>
<controller type='pci' index='28' model='pcie-root-port'>
<model name='pcie-root-port'/>
<target chassis='28' port='0x22'/>
<alias name='pci.28'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x04' function='0x2'/>
</controller>
<controller type='pci' index='29' model='pcie-root-port'>
<model name='pcie-root-port'/>
<target chassis='29' port='0x23'/>
<alias name='pci.29'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x04' function='0x3'/>
</controller>
<controller type='pci' index='30' model='pcie-root-port'>
<model name='pcie-root-port'/>
<target chassis='30' port='0x24'/>
<alias name='pci.30'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x04' function='0x4'/>
</controller>
<controller type='virtio-serial' index='0'>
<alias name='virtio-serial0'/>
<address type='pci' domain='0x0000' bus='0x03' slot='0x02' function='0x0'/>
</controller>
<serial type='pty'>
<source path='/dev/pts/2'/>
<target port='0'/>
<alias name='serial0'/>
</serial>
<console type='pty' tty='/dev/pts/2'>
<source path='/dev/pts/2'/>
<target type='serial' port='0'/>
<alias name='serial0'/>
</console>
<channel type='unix'>
<source mode='bind' path='/var/run/libvirt/qemu/fangying-test.extend'/>
<target type='virtio' name='org.qemu.guest_agent.1' state='connected'/>
<alias name='channel0'/>
<address type='virtio-serial' controller='0' bus='0' port='1'/>
</channel>
<channel type='unix'>
<source mode='bind' path='/var/run/libvirt/qemu/fangying-test.agent'/>
<target type='virtio' name='org.qemu.guest_agent.0' state='connected'/>
<alias name='channel1'/>
<address type='virtio-serial' controller='0' bus='0' port='2'/>
</channel>
<channel type='unix'>
<source mode='bind' path='/var/run/libvirt/qemu/fangying-test.hostd'/>
<target type='virtio' name='org.qemu.guest_agent.2' state='connected'/>
<alias name='channel2'/>
<address type='virtio-serial' controller='0' bus='0' port='3'/>
</channel>
<channel type='unix'>
<source mode='bind' path='/var/run/libvirt/qemu/fangying-test.upgraded'/>
<target type='virtio' name='org.qemu.guest_agent.3' state='connected'/>
<alias name='channel3'/>
<address type='virtio-serial' controller='0' bus='0' port='4'/>
</channel>
<input type='tablet' bus='usb'>
<alias name='input0'/>
<address type='usb' bus='0' port='1'/>
</input>
<input type='keyboard' bus='usb'>
<alias name='input1'/>
<address type='usb' bus='0' port='2'/>
</input>
<graphics type='vnc' port='5903' autoport='yes' listen='0.0.0.0'>
<listen type='address' address='0.0.0.0'/>
</graphics>
<video>
<model type='virtio' heads='1' primary='yes'/>
<alias name='video0'/>
<address type='pci' domain='0x0000' bus='0x03' slot='0x04' function='0x0'/>
</video>
<memballoon model='virtio'>
<alias name='balloon0'/>
<address type='pci' domain='0x0000' bus='0x03' slot='0x03' function='0x0'/>
</memballoon>
</devices>
<seclabel type='dynamic' model='dac' relabel='yes'>
<label>+0:+0</label>
<imagelabel>+0:+0</imagelabel>
</seclabel>
</domain>
I will test your cmdline way later to see if it can be reproduced.
Thanks.
Ying.
.