From: Joerg Roedel <joro@8bytes.org> To: Linus Torvalds <torvalds@linux-foundation.org> Cc: linux-kernel@vger.kernel.org, iommu@lists.linux-foundation.org Subject: [git pull] IOMMU Fixes for Linux v5.7-rc4 Date: Sun, 10 May 2020 14:26:40 +0200 [thread overview] Message-ID: <20200510122634.GA32616@8bytes.org> (raw) [-- Attachment #1: Type: text/plain, Size: 2583 bytes --] Hi Linus, The following changes since commit 0e698dfa282211e414076f9dc7e83c1c288314fd: Linux 5.7-rc4 (2020-05-03 14:56:04 -0700) are available in the Git repository at: git://git.kernel.org/pub/scm/linux/kernel/git/joro/iommu.git tags/iommu-fixes-v5.7-rc4 for you to fetch changes up to fb3637a113349f53830f7d6ca45891b7192cd28f: iommu/virtio: Reverse arguments to list_add (2020-05-08 17:31:18 +0200) ---------------------------------------------------------------- IOMMU Fixes for Linux v5.7-rc4 Including: - The race condition fixes for the AMD IOMMU driver. This are 5 patches fixing two race conditions around increase_address_space(). The first race condition was around the non-atomic update of the domain page-table root pointer and the variable containing the page-table depth (called mode). This is fixed now be merging page-table root and mode into one 64-bit field which is read/written atomically. The second race condition was around updating the page-table root pointer and making it public before the hardware caches were flushed. This could cause addresses to be mapped and returned to drivers which are not reachable by IOMMU hardware yet, causing IO page-faults. This is fixed too by adding the necessary flushes before a new page-table root is published. Related to the race condition fixes these patches also add a missing domain_flush_complete() barrier to update_domain() and a fix to bail out of the loop which tries to increase the address space when the call to increase_address_space() fails. Qian was able to trigger the race conditions under high load and memory pressure within a few days of testing. He confirmed that he has seen no issues anymore with the fixes included here. - Fix for a list-handling bug in the VirtIO IOMMU driver. ---------------------------------------------------------------- Joerg Roedel (5): iommu/amd: Fix race in increase_address_space()/fetch_pte() iommu/amd: Do not loop forever when trying to increase address space iommu/amd: Call domain_flush_complete() in update_domain() iommu/amd: Update Device Table in increase_address_space() iommu/amd: Do not flush Device Table in iommu_map_page() Julia Lawall (1): iommu/virtio: Reverse arguments to list_add drivers/iommu/amd_iommu.c | 198 +++++++++++++++++++++++++++++++--------- drivers/iommu/amd_iommu_types.h | 9 +- drivers/iommu/virtio-iommu.c | 2 +- 3 files changed, 162 insertions(+), 47 deletions(-) Please pull. Thanks, Joerg [-- Attachment #2: Digital signature --] [-- Type: application/pgp-signature, Size: 833 bytes --]
WARNING: multiple messages have this Message-ID (diff)
From: Joerg Roedel <joro@8bytes.org> To: Linus Torvalds <torvalds@linux-foundation.org> Cc: iommu@lists.linux-foundation.org, linux-kernel@vger.kernel.org Subject: [git pull] IOMMU Fixes for Linux v5.7-rc4 Date: Sun, 10 May 2020 14:26:40 +0200 [thread overview] Message-ID: <20200510122634.GA32616@8bytes.org> (raw) [-- Attachment #1.1: Type: text/plain, Size: 2583 bytes --] Hi Linus, The following changes since commit 0e698dfa282211e414076f9dc7e83c1c288314fd: Linux 5.7-rc4 (2020-05-03 14:56:04 -0700) are available in the Git repository at: git://git.kernel.org/pub/scm/linux/kernel/git/joro/iommu.git tags/iommu-fixes-v5.7-rc4 for you to fetch changes up to fb3637a113349f53830f7d6ca45891b7192cd28f: iommu/virtio: Reverse arguments to list_add (2020-05-08 17:31:18 +0200) ---------------------------------------------------------------- IOMMU Fixes for Linux v5.7-rc4 Including: - The race condition fixes for the AMD IOMMU driver. This are 5 patches fixing two race conditions around increase_address_space(). The first race condition was around the non-atomic update of the domain page-table root pointer and the variable containing the page-table depth (called mode). This is fixed now be merging page-table root and mode into one 64-bit field which is read/written atomically. The second race condition was around updating the page-table root pointer and making it public before the hardware caches were flushed. This could cause addresses to be mapped and returned to drivers which are not reachable by IOMMU hardware yet, causing IO page-faults. This is fixed too by adding the necessary flushes before a new page-table root is published. Related to the race condition fixes these patches also add a missing domain_flush_complete() barrier to update_domain() and a fix to bail out of the loop which tries to increase the address space when the call to increase_address_space() fails. Qian was able to trigger the race conditions under high load and memory pressure within a few days of testing. He confirmed that he has seen no issues anymore with the fixes included here. - Fix for a list-handling bug in the VirtIO IOMMU driver. ---------------------------------------------------------------- Joerg Roedel (5): iommu/amd: Fix race in increase_address_space()/fetch_pte() iommu/amd: Do not loop forever when trying to increase address space iommu/amd: Call domain_flush_complete() in update_domain() iommu/amd: Update Device Table in increase_address_space() iommu/amd: Do not flush Device Table in iommu_map_page() Julia Lawall (1): iommu/virtio: Reverse arguments to list_add drivers/iommu/amd_iommu.c | 198 +++++++++++++++++++++++++++++++--------- drivers/iommu/amd_iommu_types.h | 9 +- drivers/iommu/virtio-iommu.c | 2 +- 3 files changed, 162 insertions(+), 47 deletions(-) Please pull. Thanks, Joerg [-- Attachment #1.2: Digital signature --] [-- Type: application/pgp-signature, Size: 833 bytes --] [-- Attachment #2: Type: text/plain, Size: 156 bytes --] _______________________________________________ iommu mailing list iommu@lists.linux-foundation.org https://lists.linuxfoundation.org/mailman/listinfo/iommu
next reply other threads:[~2020-05-10 12:26 UTC|newest] Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top 2020-05-10 12:26 Joerg Roedel [this message] 2020-05-10 12:26 ` [git pull] IOMMU Fixes for Linux v5.7-rc4 Joerg Roedel 2020-05-10 18:34 ` Linus Torvalds 2020-05-10 18:34 ` Linus Torvalds 2020-05-10 22:25 ` Joerg Roedel 2020-05-10 22:25 ` Joerg Roedel 2020-05-10 19:45 ` pr-tracker-bot 2020-05-10 19:45 ` pr-tracker-bot
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=20200510122634.GA32616@8bytes.org \ --to=joro@8bytes.org \ --cc=iommu@lists.linux-foundation.org \ --cc=linux-kernel@vger.kernel.org \ --cc=torvalds@linux-foundation.org \ /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: linkBe 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.