qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Bug 1920013] [NEW] Unable to pass-through PCIe devices from a ppc64le h


From: cyrozap
Subject: [Bug 1920013] [NEW] Unable to pass-through PCIe devices from a ppc64le host to an x86_64 guest
Date: Thu, 18 Mar 2021 12:22:57 -0000

Public bug reported:

Attempting to pass through a PCIe device from a ppc64le host to an
x86_64 guest with QEMU v5.2.0-3031-g571d413b5d (built from git master)
fails with the following error:

    include/exec/memory.h:43:IOMMU_MEMORY_REGION: Object 0x10438eb00 is
not an instance of type qemu:iommu-memory-region

To reproduce this issue, simply run the following command on a POWER9
system:

    qemu-system-x86_64 -machine q35 -device vfio-pci,host=$DBSF

Where $DBSF is a domain:bus:slot.function PCIe device address.

This also fails with QEMU 3.1.0 (from Debian Buster), so I assume this
has never worked. Helpfully, the error message it prints seems to
indicate where the problem is:

    hw/vfio/spapr.c:147:vfio_spapr_create_window: Object 0x164473510 is
not an instance of type qemu:iommu-memory-region

My kernel (Linux v5.8.0 plus some small unrelated patches) is built with
the page size set to 4k, so this issue shouldn't be due to a page size
mismatch. And as I stated earlier, my host arch is ppc64le, so it
shouldn't be an endianness issue, either.

I assume this should be possible (in theory) since I've seen reports of
others getting PCIe passthrough working with aarch64 guests on x86_64
hosts, but of course that (passthrough to weird guest arch on x86) is
somewhat the opposite of what I'm trying to do (passthrough to x86 on
weird host arch) so I don't know for sure. If it is possible, I'm
willing to develop a fix myself, but I'm almost completely unfamiliar
with QEMU's internals so if anyone has any advice on where to start I'd
greatly appreciate it.

** Affects: qemu
     Importance: Undecided
         Status: New


** Tags: ppc

-- 
You received this bug notification because you are a member of qemu-
devel-ml, which is subscribed to QEMU.
https://bugs.launchpad.net/bugs/1920013

Title:
  Unable to pass-through PCIe devices from a ppc64le host to an x86_64
  guest

Status in QEMU:
  New

Bug description:
  Attempting to pass through a PCIe device from a ppc64le host to an
  x86_64 guest with QEMU v5.2.0-3031-g571d413b5d (built from git master)
  fails with the following error:

      include/exec/memory.h:43:IOMMU_MEMORY_REGION: Object 0x10438eb00
  is not an instance of type qemu:iommu-memory-region

  To reproduce this issue, simply run the following command on a POWER9
  system:

      qemu-system-x86_64 -machine q35 -device vfio-pci,host=$DBSF

  Where $DBSF is a domain:bus:slot.function PCIe device address.

  This also fails with QEMU 3.1.0 (from Debian Buster), so I assume this
  has never worked. Helpfully, the error message it prints seems to
  indicate where the problem is:

      hw/vfio/spapr.c:147:vfio_spapr_create_window: Object 0x164473510
  is not an instance of type qemu:iommu-memory-region

  My kernel (Linux v5.8.0 plus some small unrelated patches) is built
  with the page size set to 4k, so this issue shouldn't be due to a page
  size mismatch. And as I stated earlier, my host arch is ppc64le, so it
  shouldn't be an endianness issue, either.

  I assume this should be possible (in theory) since I've seen reports
  of others getting PCIe passthrough working with aarch64 guests on
  x86_64 hosts, but of course that (passthrough to weird guest arch on
  x86) is somewhat the opposite of what I'm trying to do (passthrough to
  x86 on weird host arch) so I don't know for sure. If it is possible,
  I'm willing to develop a fix myself, but I'm almost completely
  unfamiliar with QEMU's internals so if anyone has any advice on where
  to start I'd greatly appreciate it.

To manage notifications about this bug go to:
https://bugs.launchpad.net/qemu/+bug/1920013/+subscriptions



reply via email to

[Prev in Thread] Current Thread [Next in Thread]