All of lore.kernel.org
 help / color / mirror / Atom feed
From: Sairaj Kodilkar <sarunkod@amd.com>
To: <qemu-devel@nongnu.org>, <alejandro.j.jimenez@oracle.com>
Cc: <mst@redhat.com>, <pbonzini@redhat.com>,
	<richard.henderson@linaro.org>, <philmd@linaro.org>,
	<suravee.suthikulpanit@amd.com>, <vasant.hegde@amd.com>,
	 <marcel.apfelbaum@gmail.com>, <eduardo@habkost.net>,
	<aik@amd.com>, "Sairaj Kodilkar" <sarunkod@amd.com>
Subject: [PATCH v3 0/2] amd_iommu: Cleanups and fixes (PART 2)
Date: Fri, 17 Oct 2025 11:43:20 +0530	[thread overview]
Message-ID: <20251017061322.1584-1-sarunkod@amd.com> (raw)

This series provide fixes for following two issues:

1. AMD IOMMU fails to detect the devices when they are attached to PCI bus with
   bus id != 0.
   e.g. With following command line, dhclient command fails inside the guest

    -device pcie-root-port,port=0x10,chassis=1,id=pci.1,bus=pcie.0,multifunction=on,addr=0x5 \
    -netdev user,id=USER0,hostfwd=tcp::3333-:22 \
    -device virtio-net-pci,id=vnet0,iommu_platform=on,disable-legacy=on,romfile=,netdev=USER0,bus=pci.1,addr=0 \

2. Current AMD IOMMU supports IOVAs upto 60 bit which cause failure while
   setting up the devices when guest is booted with command line 
   "iommu.forcedac=1".

   One example of the failure is when there are two virtio ethernet devices
   attached to the guest with command line
   
       -netdev user,id=USER0 \
       -netdev user,id=USER1 \
       -device virtio-net-pci,id=vnet0,iommu_platform=on,disable-legacy=on,romfile=,netdev=USER0 \
       -device virtio-net-pci,id=vnet1,iommu_platform=on,disable-legacy=on,romfile=,netdev=USER1 \
   
   In this case dhclient fails for second device with following dmesg
   
   [   24.802644] virtio_net virtio0 enp0s1: TX timeout on queue: 0, sq: output.0, vq: 0x1, name: output.0, 5664000 usecs ago
   [   29.856716] virtio_net virtio0 enp0s1: NETDEV WATCHDOG: CPU: 59: transmit queue 0 timed out 10720 ms
   [   29.858585] virtio_net virtio0 enp0s1: TX timeout on queue: 0, sq: output.0, vq: 0x1, name: output.0, 10720000 usecs ago

-------------------------------------------------------------------------------

Change log:
----------

* Changes since V2:
https://lore.kernel.org/qemu-devel/20251013050046.393-1-sarunkod@amd.com/
P1:
 - Remove cast from the pointer assignment [MST]
 - Rename struct amdvi_as_key to AMDViAsKey [Alejandro, MST]
 - Fix compilation error due to missing 'static' [Alejandro]

P2:
 - Rename struct amdvi_iotlb_key to AMDViIOTLBKey [Alejandro, MST]
 - Fix compilation error [Alejandro]


* Changes Since V1:
https://lore.kernel.org/qemu-devel/20251008164324.21553-1-sarunkod@amd.com/
P1:
 - Use fixed type uint8_t for devfn
 - Use uintptr_t instead of uint64_t
 - Build hash key using lower 56 bits of bus pointer and 8 bits of devfn
 - Use gboolean instead of int for amdvi_find_as_by_devid
 - Update comments
 - Use IOMMU_NOTIFIER_NONE instead of IOMMU_NONE

P2:
 - Reword commit message
 - Correctly initialize `struct amdvi_iotlb_key`
 - Remove unused macro

-------------------------------------------------------------------------------

Base commit: (qemu uptream) eb7abb4a719f

-------------------------------------------------------------------------------


Sairaj Kodilkar (2):
  amd_iommu: Fix handling device on buses != 0
  amd_iommu: Support 64 bit address for IOTLB lookup

 hw/i386/amd_iommu.c | 179 +++++++++++++++++++++++++++-----------------
 hw/i386/amd_iommu.h |   6 +-
 2 files changed, 113 insertions(+), 72 deletions(-)

-- 
2.34.1



             reply	other threads:[~2025-10-17  6:19 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-10-17  6:13 Sairaj Kodilkar [this message]
2025-10-17  6:13 ` [PATCH v3 1/2] amd_iommu: Fix handling device on buses != 0 Sairaj Kodilkar
2025-10-21  5:27   ` Vasant Hegde
2025-11-03 16:14   ` Michael S. Tsirkin
2025-11-03 19:16     ` Alejandro Jimenez
2025-10-17  6:13 ` [PATCH v3 2/2] amd_iommu: Support 64 bit address for IOTLB lookup Sairaj Kodilkar
2025-10-21  5:28   ` Vasant Hegde
2025-11-03 16:12   ` Michael S. Tsirkin
2025-11-03 19:20     ` Alejandro Jimenez
2025-10-17  6:18 ` [PATCH v3 0/2] amd_iommu: Cleanups and fixes (PART 2) Sairaj Kodilkar
2025-10-19 16:42 ` Alejandro Jimenez
2025-10-21  5:21   ` Vasant Hegde

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20251017061322.1584-1-sarunkod@amd.com \
    --to=sarunkod@amd.com \
    --cc=aik@amd.com \
    --cc=alejandro.j.jimenez@oracle.com \
    --cc=eduardo@habkost.net \
    --cc=marcel.apfelbaum@gmail.com \
    --cc=mst@redhat.com \
    --cc=pbonzini@redhat.com \
    --cc=philmd@linaro.org \
    --cc=qemu-devel@nongnu.org \
    --cc=richard.henderson@linaro.org \
    --cc=suravee.suthikulpanit@amd.com \
    --cc=vasant.hegde@amd.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.