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

[PATCH v3 0/4] x86/ioapic: fix edge triggered interrupt migration


  • To: xen-devel@xxxxxxxxxxxxxxxxxxxx
  • From: Roger Pau Monne <roger.pau@xxxxxxxxxx>
  • Date: Wed, 26 Jul 2023 14:55:04 +0200
  • Arc-authentication-results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com; dkim=pass header.d=citrix.com; arc=none
  • Arc-message-signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=941+6Z5AEQVFDdrwbl2Gn52ILruhhjASKWT6E8DQ61Q=; b=b/KDyKUcl8gG7ODXTw8Z+RuPDLgUGsfMWiZtijC/3Aqaw01WitSVR0XEwX0oCCfUCTqXuMNNFCN8zkJTZsxxUrxbtxIHq8kmeG6JydZ7Td84Y0FwGKKZLABEUqruMRIESu085j9Snb/c17OlCIZ5SEvRWbSf307g2amH3fgbhFmazYLI34TJzus2efyPuajfPwq24Ht0ufV2SOf8ZaHEELi42APWgkZEFzQ5Yi5GZPnDjptyU9rpQcAmYKCD1bNke8xXIVBF1Vfb2VyeOE7ZYKPPJjdhVFuNGN5L+DPSH9KRKsZO/saFp80hVFWhqgfLj3UjjaakryCM4f51H7Omcg==
  • Arc-seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=ekE9ZPfTSMGRoqn9tpy3J1VtC886DfN/ZiIXIClea0wc6ERZHC8bZ1/JAZttTCUSI+Ob3epaIDzJWUMhF/V93MjQO5hAny8VD3RwUKohkLn7QjY9l49f4gjOPTOjOyNCejdMIA1k/A0gL22Cuoh7WqP40wZKdAkTNqJSWsD73mM8IlsRbChHrnsZkka816BKItE4ebtlYi7x+EmlWOLxn4EVjwQD5GkPsNZKOK1en1sRC9p0v8wnOxpRtstXQHkIz1zmjRv2Gf9dMaVHpOd73dGkSCgEYx5twW665O7Q3T4P5YboSOu8douMHR19tLt5Elbl9nqVI0KE+MgZTd708Q==
  • Authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=citrix.com;
  • Cc: Roger Pau Monne <roger.pau@xxxxxxxxxx>, Jan Beulich <jbeulich@xxxxxxxx>, Andrew Cooper <andrew.cooper3@xxxxxxxxxx>, Wei Liu <wl@xxxxxxx>, Kevin Tian <kevin.tian@xxxxxxxxx>, Paul Durrant <paul@xxxxxxx>
  • Delivery-date: Wed, 26 Jul 2023 12:55:38 +0000
  • Ironport-data: A9a23:NuKOsqzm9QTAwKTDWOF6t+f1xyrEfRIJ4+MujC+fZmUNrF6WrkUOm mYdXDyObPvZNGP1edp+aN+z80MO7Z/WyN8wTQVq+SAxQypGp/SeCIXCJC8cHc8wwu7rFxs7s ppEOrEsCOhuExcwcz/0auCJQUFUjP3OHfykTrafYEidfCc8IA85kxVvhuUltYBhhNm9Emult Mj75sbSIzdJ4RYtWo4vw/zF8EoHUMja4mtC5QRhP64T5TcyqlFOZH4hDfDpR5fHatE88t6SH 47r0Ly/92XFyBYhYvvNfmHTKxBirhb6ZGBiu1IOM0SQqkEqSh8ai87XAME0e0ZP4whlqvgqo Dl7WT5cfi9yVkHEsLx1vxC1iEiSN4UekFPMCSDXXcB+UyQq2pYjqhljJBheAGEWxgp4KX4W3 +A1BxQNVSGaiOOZway5V/Rvqf12eaEHPKtH0p1h5RfwKK9/BLrlE+DN79Ie2yosjMdTG/qYf 9AedTdkcBXHZVtIJ0sTD5U92uyvgxETcRUB8A7T+fVxvjiVlVIguFTuGIO9ltiiX8Jak1zev mvb12/4HgsbJJqUzj/tHneE37WXxHmkBdJCfFG+3vw6kUOc3kcfMT4TSgWEitTgpkznZesKf iT4/QJr98De7neDXtT7GhG1vnOAlhodQMZLVf037hmXzajZ6BrfAXILJhZDYtE7sM49RRQxy 0SE2djuAFRHr7m9WX+bsLCOoluaOiULLGlEeS4NSyME5cXupMc4iRenZs5qDaqdntDzXzbqz Fi3QDMWgrwSiYsB0fW99FWe2ja0/MGXH0gy+xndWX+j4kVhfom5aoe06F/dq/FdMIKeSVrHt 38B8ySD0N0z4Vi2vHTlaI0w8HuBvJ5p7BW0bYZTIqQc
  • Ironport-hdrordr: A9a23:EshOta5Vcb4Ca1RpagPXwOTXdLJyesId70hD6qkoc20wTiSZ// rDoB1p726StN9xYgBapTnuAsm9qB/nn6KdpLNhWItKPzOWwldATrsSjrcKqgeIc0bDH6xmpM VdmsNFZ+EYeGIasS+M2meF+rgbreVvu5rY49s2h00dND2CRZsQlztENg==
  • List-id: Xen developer discussion <xen-devel.lists.xenproject.org>

Hello,

Following series attempts to solve the issue with IO-APIC edge triggered
interrupts seeing an inconsistent IRTE when injected while being
migrated.

It's been simplified a bit from the original RFC, and does make the
logic in the IOMMU RTE update handlers cleaner, as those get passed the
full RTE.

When not using interrupt remapping the logic is left as-is.  One further
change would be to mask edge triggered interrupts, as destination and
vector cannot be changed atomically when dealing with plain IO-APIC
RTEs.

The previously final patch to switch AMD IOMMU to use atomic RTE updates
has been drop pending feedback from AMD on whether that approach is
suitable.

Thanks, Roger.

Roger Pau Monne (4):
  x86/ioapic: add a raw field to RTE struct
  x86/ioapic: RTE modifications must use ioapic_write_entry
  iommu/vtd: rename io_apic_read_remap_rte() local variable
  x86/iommu: pass full IO-APIC RTE for remapping table update

 xen/arch/x86/include/asm/io_apic.h       |  65 ++++++-----
 xen/arch/x86/include/asm/iommu.h         |   3 +-
 xen/arch/x86/io_apic.c                   |  46 ++++----
 xen/drivers/passthrough/amd/iommu.h      |   2 +-
 xen/drivers/passthrough/amd/iommu_intr.c | 106 ++---------------
 xen/drivers/passthrough/vtd/extern.h     |   2 +-
 xen/drivers/passthrough/vtd/intremap.c   | 140 +++++++++++------------
 xen/drivers/passthrough/x86/iommu.c      |   4 +-
 xen/include/xen/iommu.h                  |   3 +-
 9 files changed, 142 insertions(+), 229 deletions(-)

-- 
2.41.0




 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.