Bug 8392 - [Anolis8.9][RC1][loongarch64]源虚拟机先重启后迁移,源虚拟机在grub倒计时卡死
Summary: [Anolis8.9][RC1][loongarch64]源虚拟机先重启后迁移,源虚拟机在grub倒计时卡死
Status: CLOSED FIXED
Alias: None
Product: Anolis OS 8
Classification: Anolis OS
Component: kernel - anck-4.19 (show other bugs) kernel - anck-4.19
Version: 8.9
Hardware: loongarch Linux
: P3-Medium S3-normal
Target Milestone: ---
Assignee: wenlong
QA Contact: shuming
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2024-02-28 16:46 UTC by wuzhiguo
Modified: 2025-02-25 14:27 UTC (History)
1 user (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description wuzhiguo loongson_group 2024-02-28 16:46:03 UTC
Description of problem:
源虚拟机先重启后迁移,源虚拟机在grub倒计时卡死

Version-Release number of selected component (if applicable):
kernel版本: 4.19.190-7.7.an8.loongarch64
qemu版本:QEMU emulator version 6.2.0 (qemu-kvm-6.2.0-41.0.1.module+an8.9.0+11168+98c7cfc6.1)


How reproducible:
源虚拟机先重启后迁移


Steps to Reproduce:
1. 源虚拟机启动,命令如下:
MALLOC_PERTURB_=1  /usr/libexec/qemu-kvm \
    -S \
    -name 'avocado-vt-vm1' \
    -machine loongson7a,memory-backend=mem-machine_mem \
    -device pcie-root-port,id=pcie-root-port-0,multifunction=on,bus=pcie.0,addr=0x1,chassis=1 \
    -device pcie-pci-bridge,id=pcie-pci-bridge-0,addr=0x0,bus=pcie-root-port-0  \
    -nodefaults \
    -device VGA,bus=pcie.0,addr=0x2 \
    -m 2048 \
    -object memory-backend-ram,size=2048M,id=mem-machine_mem  \
    -smp 2,maxcpus=2,cores=2,threads=1,sockets=1  \
    -cpu 'Loongson-3A5000' \
    -device pcie-root-port,id=pcie-root-port-1,port=0x1,addr=0x1.0x1,bus=pcie.0,chassis=2 \
    -device qemu-xhci,id=usb1,bus=pcie-root-port-1,addr=0x0 \
    -device usb-tablet,id=usb-tablet1,bus=usb1.0,port=1 \
    -device pcie-root-port,id=pcie-root-port-2,port=0x2,addr=0x1.0x2,bus=pcie.0,chassis=3 \
    -device virtio-scsi-pci,id=virtio_scsi_pci0,bus=pcie-root-port-2,addr=0x0 \
    -blockdev node-name=file_image1,driver=file,filename=AnolisOS-8.9-loongarch64.qcow2 \
    -blockdev node-name=drive_image1,driver=qcow2,file=file_image1 \
    -device scsi-hd,id=image1,drive=drive_image1 \
    -device pcie-root-port,id=pcie-root-port-3,port=0x3,addr=0x1.0x3,bus=pcie.0,chassis=4 \
    -vnc :1  \
    -rtc base=utc,clock=host  \
    -boot menu=off,order=cdn,once=c,strict=off \
    -bios loongarch_bios.bin \
    -enable-kvm \
    -device pcie-root-port,id=pcie_extra_root_port_0,multifunction=on,bus=pcie.0,addr=0x3,chassis=5 \
    -incoming tcp:0:6666 \
    -serial stdio \
    -monitor telnet:localhost:4445,server,nowait

2. 目的虚拟机启动,命令如下:
MALLOC_PERTURB_=1  /usr/libexec/qemu-kvm \
    -S \
    -name 'avocado-vt-vm1' \
    -machine loongson7a,memory-backend=mem-machine_mem \
    -device pcie-root-port,id=pcie-root-port-0,multifunction=on,bus=pcie.0,addr=0x1,chassis=1 \
    -device pcie-pci-bridge,id=pcie-pci-bridge-0,addr=0x0,bus=pcie-root-port-0  \
    -nodefaults \
    -device VGA,bus=pcie.0,addr=0x2 \
    -m 2048 \
    -object memory-backend-ram,size=2048M,id=mem-machine_mem  \
    -smp 2,maxcpus=2,cores=2,threads=1,sockets=1  \
    -cpu 'Loongson-3A5000' \
    -device pcie-root-port,id=pcie-root-port-1,port=0x1,addr=0x1.0x1,bus=pcie.0,chassis=2 \
    -device qemu-xhci,id=usb1,bus=pcie-root-port-1,addr=0x0 \
    -device usb-tablet,id=usb-tablet1,bus=usb1.0,port=1 \
    -device pcie-root-port,id=pcie-root-port-2,port=0x2,addr=0x1.0x2,bus=pcie.0,chassis=3 \
    -device virtio-scsi-pci,id=virtio_scsi_pci0,bus=pcie-root-port-2,addr=0x0 \
    -blockdev node-name=file_image1,driver=file,filename=AnolisOS-8.9-loongarch64.qcow2 \
    -blockdev node-name=drive_image1,driver=qcow2,file=file_image1 \
    -device scsi-hd,id=image1,drive=drive_image1 \
    -device pcie-root-port,id=pcie-root-port-3,port=0x3,addr=0x1.0x3,bus=pcie.0,chassis=4 \
    -vnc :1  \
    -rtc base=utc,clock=host  \
    -boot menu=off,order=cdn,once=c,strict=off \
    -bios loongarch_bios.bin \
    -enable-kvm \
    -device pcie-root-port,id=pcie_extra_root_port_0,multifunction=on,bus=pcie.0,addr=0x3,chassis=5 \
    -incoming tcp:0:6666 \
    -serial stdio \
    -monitor telnet:localhost:4445,server,nowait

3. 连接源虚拟机的 qemu monitor,等待备用
# telnet localhost 4444
Trying ::1...
Connected to localhost.
Escape character is '^]'.
QEMU 6.2.0 monitor - type 'help' for more information
(qemu) 

4. 登录源虚拟机,执行 reboot 命令

5. 立马在源虚拟机的 qemu monitor 进行迁移操作,命令如下:
(qemu) migrate tcp:localhost:6666


Actual results:
源虚拟机在 grub 倒计时卡死

      Anolis OS (4.19.190-7.7.an8.loongarch64) 8.9                                                 
      Anolis OS (0-rescue-7b0239e499db4dddbbf03a3175b500cb) 8.9                                    
                                                                                                   
      Use the ^ and v keys to change the selection.                                           
      Press 'e' to edit the selected item, or 'c' for a command prompt.                       
   The selected entry will be started automatically in 2s.      

Expected results:
源虚拟机继续重启动作。
Comment 1 wuzhiguo loongson_group 2025-02-25 14:27:22 UTC
在Anolis 8.10 RC1 测试时此问题未复现。
kernel-4.19.190-7.11.an8.loongarch64 + qemu-kvm-6.2.0-53.0.3.module+an8.9.0+11292+334bc2d1.2.loongarch64