Uploaded image for project: 'RHEL'
  1. RHEL
  2. RHEL-134989

Hotplugged interface device can not be shown in the guest

Linking RHIVOS CVEs to...Migration: Automation ...SWIFT: POC ConversionSync from "Extern...XMLWordPrintable

    • Yes
    • None
    • rhel-virt-core
    • None
    • False
    • False
    • Hide

      None

      Show
      None
    • None
    • None
    • None
    • None
    • Unspecified
    • Unspecified
    • Unspecified
    • aarch64
    • None

      What were you trying to do that didn't work?

      Hotplug an interface device the guest, but can not see it within the geust. It can be seen after rebooting the guest

      Please provide the package NVR for which the bug is seen:

      qemu-kvm-10.1.0-5.el10.aarch64
      kernel-6.12.0-167.el10.aarch64
      libvirt-11.10.0-1.el10.aarch64
      virtlab2502-ghp.virt.eng.rdu2.dc.redhat.com

      How reproducible is this bug?:

      100%

      Steps to reproduce

      Prepare a guest without any interface device
      Prepare an interface device xml below

      <controller type='pci' index='8' model='pcie-root-port'>
      <model name='pcie-root-port'/>
      <target chassis='8' port='0xf'/>
      <alias name='pci.8'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x7'/>
      </controller>

      <interface type='network'>
      <mac address='52:54:00:34:f0:b1'/>
      <source network='default' portid='4a55a6aa-3c48-4135-8e1d-2e1166e45596' bridge='virbr0'/>
      <target dev='test'/>
      <model type='virtio'/>
      <driver name='vhost' txmode='iothread' ioeventfd='on' event_idx='off' queues='4' rx_queue_size='1024' tx_queue_size='256' rss='on' rss_hash_report='on' page_per_vq='on'>
      <host csum='off' gso='off' tso4='off' tso6='off' ecn='off' ufo='off' mrg_rxbuf='off'/>
      <guest csum='off' tso4='off' tso6='off' ecn='off' ufo='off'/>
      </driver>
      <alias name='net0'/>
      <address type='pci' domain='0x0000' bus='0x08' slot='0x00' function='0x0'/>
      </interface>

      Start vm, and hotplug the device to the guest. Login the vm and check interface device

      (.libvirt-ci-venv-ci-runtest-A6mAAn) root@virtlab2502-ghp:~# virsh attach-device vm1 interfae.xml Device attached successfully
      (.libvirt-ci-venv-ci-runtest-A6mAAn) root@virtlab2502-ghp:~# virsh console vm1
      Connected to domain 'vm1'
      Escape character is ^] (Ctrl + ])

      [root@localhost ~]# ifconfig
      lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
              inet 127.0.0.1  netmask 255.0.0.0
              inet6 ::1  prefixlen 128  scopeid 0x10<host>
              loop  txqueuelen 1000  (Local Loopback)
              RX packets 0  bytes 0 (0.0 B)
              RX errors 0  dropped 0  overruns 0  frame 0
              TX packets 0  bytes 0 (0.0 B)
              TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

      [root@localhost ~]# lspci
      00:00.0 Host bridge: Red Hat, Inc. QEMU PCIe Host bridge
      00:01.0 PCI bridge: Red Hat, Inc. QEMU PCIe Root port
      ...
      07:00.0 Display controller: Red Hat, Inc. Virtio 1.0 GPU (rev 01)
      08:00.0 Ethernet controller: Red Hat, Inc. Virtio 1.0 network device (rev 01)

      Check virsh dumpxml vm1

        <interface type='network'>
            <mac address='52:54:00:34:f0:b1'/>
            <source network='default' portid='effc9cc2-be89-4b2d-b42e-6803d4415016' bridge='virbr0'/>
            <target dev='test'/>
            <model type='virtio'/>
            <driver name='vhost' txmode='iothread' ioeventfd='on' event_idx='off' queues='4' rx_queue_size='1024' tx_queue_size='256' rss='on' rss_hash_report='on' page_per_vq='on'>
              <host csum='off' gso='off' tso4='off' tso6='off' ecn='off' ufo='off' mrg_rxbuf='off'/>
              <guest csum='off' tso4='off' tso6='off' ecn='off' ufo='off'/>
            </driver>
            <alias name='net0'/>
            <address type='pci' domain='0x0000' bus='0x08' slot='0x00' function='0x0'/>
          </interface>

      Reboot the guest and then the interface can be seen.

      [root@localhost ~]# reboot

      Red Hat Enterprise Linux 10.2 Beta (Coughlan)
      Kernel 6.12.0-167.el10.aarch64+64k on aarch64

      localhost login: root
      Password: 
      Last login: Wed Dec 10 18:31:20 on ttyAMA0
      [root@localhost ~]# ifconfig
      enp8s0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
              inet 192.168.122.238  netmask 255.255.255.0  broadcast 192.168.122.255
              inet6 fe80::98d:d347:2d5b:1a19  prefixlen 64  scopeid 0x20<link>
              ether 52:54:00:34:f0:b1  txqueuelen 1000  (Ethernet)
              RX packets 63  bytes 5923 (5.7 KiB)
              RX errors 0  dropped 35  overruns 0  frame 0
              TX packets 48  bytes 4084 (3.9 KiB)
              TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

      lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
              inet 127.0.0.1  netmask 255.0.0.0
              inet6 ::1  prefixlen 128  scopeid 0x10<host>
              loop  txqueuelen 1000  (Local Loopback)
              RX packets 0  bytes 0 (0.0 B)
              RX errors 0  dropped 0  overruns 0  frame 0
              TX packets 0  bytes 0 (0.0 B)
              TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

      Expected results

      The interface could be seen in the guest via ip a or ifconfig

      Actual results

      ifconfig or ip a can not list the interface, but lspci could list it.

      Additional info:

      With qemu-kvm-10.1.0-4.el10.aarch64, this issue does not exist.

      X86_64 also has no issue with qemu-kvm-10.1.0-7.el10.aarch64

              virt-maint virt-maint
              rhn-support-dzheng Dan Zheng
              virt-maint virt-maint
              virt-bugs virt-bugs
              Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

                Created:
                Updated: