From: Mike Rapoport <rppt@kernel.org>
To: Uladzislau Rezki <urezki@gmail.com>
Cc: David Laight <david.laight.linux@gmail.com>,
Dave Hansen <dave.hansen@intel.com>,
jacob.pan@linux.microsoft.com, Jason Gunthorpe <jgg@nvidia.com>,
Lu Baolu <baolu.lu@linux.intel.com>,
Joerg Roedel <joro@8bytes.org>, Will Deacon <will@kernel.org>,
Robin Murphy <robin.murphy@arm.com>,
Kevin Tian <kevin.tian@intel.com>, Jann Horn <jannh@google.com>,
Vasant Hegde <vasant.hegde@amd.com>,
Alistair Popple <apopple@nvidia.com>,
Peter Zijlstra <peterz@infradead.org>,
Jean-Philippe Brucker <jean-philippe@linaro.org>,
Andy Lutomirski <luto@kernel.org>,
iommu@lists.linux.dev, security@kernel.org,
linux-kernel@vger.kernel.org, stable@vger.kernel.org
Subject: Re: [PATCH 1/1] iommu/sva: Invalidate KVA range on kernel TLB flush
Date: Mon, 14 Jul 2025 17:50:09 +0300 [thread overview]
Message-ID: <aHUZIVbLV9KAoZ3H@kernel.org> (raw)
In-Reply-To: <aHUD1cklhydR-gE5@pc636>
On Mon, Jul 14, 2025 at 03:19:17PM +0200, Uladzislau Rezki wrote:
> On Mon, Jul 14, 2025 at 01:39:20PM +0100, David Laight wrote:
> > On Wed, 9 Jul 2025 11:22:34 -0700
> > Dave Hansen <dave.hansen@intel.com> wrote:
> >
> > > On 7/9/25 11:15, Jacob Pan wrote:
> > > >>> Is there a use case where a SVA user can access kernel memory in the
> > > >>> first place?
> > > >> No. It should be fully blocked.
> > > >>
> > > > Then I don't understand what is the "vulnerability condition" being
> > > > addressed here. We are talking about KVA range here.
> > >
> > > SVA users can't access kernel memory, but they can compel walks of
> > > kernel page tables, which the IOMMU caches. The trouble starts if the
> > > kernel happens to free that page table page and the IOMMU is using the
> > > cache after the page is freed.
> > >
> > > That was covered in the changelog, but I guess it could be made a bit
> > > more succinct.
But does this really mean that every flush_tlb_kernel_range() should flush
the IOMMU page tables as well? AFAIU, set_memory flushes TLB even when bits
in pte change and it seems like an overkill...
> > Is it worth just never freeing the page tables used for vmalloc() memory?
> > After all they are likely to be reallocated again.
> >
> >
> Do we free? Maybe on some arches? According to my tests(AMD x86-64) i did
> once upon a time, the PTE entries were not freed after vfree(). It could be
> expensive if we did it, due to a global "page_table_lock" lock.
>
> I see one place though, it is in the vmap_try_huge_pud()
>
> if (pud_present(*pud) && !pud_free_pmd_page(pud, addr))
> return 0;
>
> it is when replace a pud by a huge-page.
There's also a place that replaces a pmd by a smaller huge page, but other
than that vmalloc does not free page tables.
> --
> Uladzislau Rezki
--
Sincerely yours,
Mike.
next prev parent reply other threads:[~2025-07-14 14:50 UTC|newest]
Thread overview: 23+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-07-04 13:30 [PATCH 1/1] iommu/sva: Invalidate KVA range on kernel TLB flush Lu Baolu
2025-07-04 13:38 ` Jason Gunthorpe
2025-07-05 3:50 ` Baolu Lu
2025-07-05 9:06 ` Vasant Hegde
2025-07-08 5:42 ` Baolu Lu
2025-07-08 12:27 ` Jason Gunthorpe
2025-07-08 14:06 ` Jason Gunthorpe
2025-07-09 1:25 ` Baolu Lu
2025-07-09 15:51 ` Jacob Pan
2025-07-09 16:27 ` Jason Gunthorpe
2025-07-09 18:15 ` Jacob Pan
2025-07-09 18:22 ` Dave Hansen
2025-07-09 18:44 ` Jacob Pan
2025-07-09 18:54 ` Jason Gunthorpe
2025-07-14 12:39 ` David Laight
2025-07-14 13:19 ` Uladzislau Rezki
2025-07-14 14:50 ` Mike Rapoport [this message]
2025-07-15 0:05 ` Tian, Kevin
2025-07-15 1:19 ` Baolu Lu
2025-07-10 2:57 ` Baolu Lu
2025-07-10 15:28 ` Jacob Pan
2025-07-10 15:35 ` Jason Gunthorpe
2025-07-11 14:36 ` Dave Hansen
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=aHUZIVbLV9KAoZ3H@kernel.org \
--to=rppt@kernel.org \
--cc=apopple@nvidia.com \
--cc=baolu.lu@linux.intel.com \
--cc=dave.hansen@intel.com \
--cc=david.laight.linux@gmail.com \
--cc=iommu@lists.linux.dev \
--cc=jacob.pan@linux.microsoft.com \
--cc=jannh@google.com \
--cc=jean-philippe@linaro.org \
--cc=jgg@nvidia.com \
--cc=joro@8bytes.org \
--cc=kevin.tian@intel.com \
--cc=linux-kernel@vger.kernel.org \
--cc=luto@kernel.org \
--cc=peterz@infradead.org \
--cc=robin.murphy@arm.com \
--cc=security@kernel.org \
--cc=stable@vger.kernel.org \
--cc=urezki@gmail.com \
--cc=vasant.hegde@amd.com \
--cc=will@kernel.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: 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.