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

[RHEL9.5.0][virtio_fs][s390x] after hot-unplug the vhost-user-fs-ccw device, the device is failed to hot-plug again

    • qemu-kvm-9.0.0-7.el9
    • Yes
    • None
    • Regression, CustomerScenariosInitiative
    • 1
    • rhel-sst-virtualization-hwe
    • ssg_virtualization
    • 20
    • 22
    • 200
    • False
    • Hide

      None

      Show
      None
    • None
    • Red Hat Enterprise Linux
    • zKVM CY24Q3
    • python3 ConfigTest.py --guestname=RHEL.9.5.0 --platform=s390x --testcase=virtio_fs_hotplug.plug.one_fs_source.with_repetition --clone=no
    • Proposed
    • s390x
    • None

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

      Hot-unplug and hot-plug vhost-user-fs-ccw and mount it to see if the I/O is as expected

      Please provide the package NVR for which bug is seen:

      kernel version: kernel-5.14.0-447.el9.s390x

      qemu version: qemu-kvm-9.0.0-2.el9.s390x

      libvirt version: libvirt-10.0.0-7.el9.s390x

      How reproducible:

      100%

      Steps to reproduce

      1. boot up guest without virtiofs device
      2. Running virtiofs daemon command
        1. /usr/libexec/virtiofsd --socket-path=/tmp/vhostqemu -o source=/home/virtiofs_test -o cache=auto
      3. hotplug the vhost-user-fs-ccw device
        1. {"execute": "chardev-add", "arguments": {"id": "char_virtiofs_fs", "backend": {"type": "socket", "data": {"addr": {"type": "unix", "data": {"path": "/tmp/vhostqemu"}}, "server": false}}}, "id": "hNeu2XwD"}
        2. {"execute": "device_add", "arguments": \{"id": "vufs_virtiofs_fs", "chardev": "char_virtiofs_fs", "tag": "myfs", "queue-size": 1024, "driver": "vhost-user-fs-ccw", "bus": "virtual-css"}

          , "id": "g81TVOH9"}

      4. mount the divice and do simple I/O test
        1. mount -t virtiofs myfs /mnt/myfs
        2. dd if=/dev/urandom of=/mnt/myfs/test_file bs=1M count=200 oflag=direct
        3. md5sum /mnt/myfs/test_file
      5. unplug the vhost-user-fs-ccw device
        1. fuser -km /mnt/myfs
        2. umount /mnt/myfs
        3. rm -rf /mnt/myfs
        4. {"execute": "device_del", "arguments": \{"id": "vufs_virtiofs_fs"}

          , "id": "fQhD033H"}

        5. {"execute": "chardev-remove", "arguments": \{"id": "char_virtiofs_fs"}

          , "id": "3TqUdSKY"}

      6. Running virtiofs daemon command again
        1. /usr/libexec/virtiofsd --socket-path=/tmp/vhostqemu -o source=/home/virtiofs_test -o cache=auto
      7. hot plug the vhost-user-fs-ccw device again
        1. {"execute": "chardev-add", "arguments": {"id": "char_virtiofs_fs", "backend": {"type": "socket", "data": {"addr": {"type": "unix", "data": {"path": "/tmp/vhostqemu"}}, "server": false}}}, "id": "hNeu2XwD"}
        2. {"execute": "device_add", "arguments": \{"id": "vufs_virtiofs_fs", "chardev": "char_virtiofs_fs", "tag": "myfs", "queue-size": 1024, "driver": "vhost-user-fs-ccw", "bus": "virtual-css"}

          , "id": "1TtPmAcA"}

      Expected results

      virtio-fs device could hostplug successfully

      Actual results

      QEMU 9.0.0 monitor - type 'help' for more information
      (qemu) qemu-kvm: virtio_bus_set_host_notifier: unable to assign ioeventfd: -17
      qemu-kvm: vhost VQ 0 notifier binding failed: 17
      qemu-kvm: Error enabling host notifiers: 17
      qemu-kvm: virtio_bus_set_host_notifier: unable to assign ioeventfd: -17
      qemu-kvm: virtio_bus_start_ioeventfd: failed. Fallback to userspace (slower).

       

      and the device is not able to mount

       

      Additional info

      [root@localhost ~]# [  391.494776] SELinux: (dev virtiofs, type virtiofs) getxattr errno 4

              thuth@redhat.com Thomas Huth
              bfu@redhat.com Leo Fu
              Michael S Tsirkin
              IBM Confidential Group
              virt-maint virt-maint
              Leo Fu Leo Fu
              Votes:
              0 Vote for this issue
              Watchers:
              17 Start watching this issue

                Created:
                Updated:
                Resolved: