[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <20250805140925.GO26511@ziepe.ca>
Date: Tue, 5 Aug 2025 11:09:25 -0300
From: Jason Gunthorpe <jgg@...pe.ca>
To: Alistair Popple <apopple@...dia.com>
Cc: David Hildenbrand <david@...hat.com>,
Matthew Wilcox <willy@...radead.org>,
Yonatan Maman <ymaman@...dia.com>,
Jérôme Glisse <jglisse@...hat.com>,
Andrew Morton <akpm@...ux-foundation.org>,
Leon Romanovsky <leon@...nel.org>, Lyude Paul <lyude@...hat.com>,
Danilo Krummrich <dakr@...nel.org>,
David Airlie <airlied@...il.com>, Simona Vetter <simona@...ll.ch>,
Ben Skeggs <bskeggs@...dia.com>,
Michael Guralnik <michaelgur@...dia.com>,
Or Har-Toov <ohartoov@...dia.com>,
Daisuke Matsuda <dskmtsd@...il.com>, Shay Drory <shayd@...dia.com>,
linux-mm@...ck.org, linux-rdma@...r.kernel.org,
dri-devel@...ts.freedesktop.org, nouveau@...ts.freedesktop.org,
linux-kernel@...r.kernel.org, Gal Shalom <GalShalom@...dia.com>
Subject: Re: [PATCH v2 1/5] mm/hmm: HMM API to enable P2P DMA for device
private pages
On Mon, Aug 04, 2025 at 11:51:38AM +1000, Alistair Popple wrote:
> On Fri, Aug 01, 2025 at 01:57:49PM -0300, Jason Gunthorpe wrote:
> > On Fri, Aug 01, 2025 at 06:50:18PM +0200, David Hildenbrand wrote:
> > > On 01.08.25 18:40, Jason Gunthorpe wrote:
> > > > On Fri, Jul 25, 2025 at 10:31:25AM +1000, Alistair Popple wrote:
> > > >
> > > > > The only issue would be if there were generic code paths that somehow have a
> > > > > raw pfn obtained from neither a page-table walk or struct page. My assumption
> > > > > (yet to be proven/tested) is that these paths don't exist.
> > > >
> > > > hmm does it, it encodes the device private into a pfn and expects the
> > > > caller to do pfn to page.
>
> What callers need to do pfn to page when finding a device private pfn via
> hmm_range_fault()? GPU drivers don't, they tend just to use the pfn as an offset
> from the start of the pgmap to find whatever data structure they are using to
> track device memory allocations.
All drivers today must. You have no idea if the PFN returned is a
private or CPU page. The only way to know is to check the struct page
type, by looking inside the struct page.
> So other than adding a HMM_PFN flag to say this is really a device index I don't
> see too many issues here.
Christoph suggested exactly this, and it would solve the issue. Seems
quite easy too. Let's do it.
Jason
Powered by blists - more mailing lists