Re: [PATCH 18/22] mm: mark DEVICE_PUBLIC as broken

From: Jason Gunthorpe
Date: Wed Jun 19 2019 - 15:32:45 EST


On Thu, Jun 13, 2019 at 06:23:04PM -0700, John Hubbard wrote:
> On 6/13/19 5:43 PM, Ira Weiny wrote:
> > On Thu, Jun 13, 2019 at 07:58:29PM +0000, Jason Gunthorpe wrote:
> >> On Thu, Jun 13, 2019 at 12:53:02PM -0700, Ralph Campbell wrote:
> >>>
> ...
> >> Hum, so the only thing this config does is short circuit here:
> >>
> >> static inline bool is_device_public_page(const struct page *page)
> >> {
> >> return IS_ENABLED(CONFIG_DEV_PAGEMAP_OPS) &&
> >> IS_ENABLED(CONFIG_DEVICE_PUBLIC) &&
> >> is_zone_device_page(page) &&
> >> page->pgmap->type == MEMORY_DEVICE_PUBLIC;
> >> }
> >>
> >> Which is called all over the place..
> >
> > <sigh> yes but the earlier patch:
> >
> > [PATCH 03/22] mm: remove hmm_devmem_add_resource
> >
> > Removes the only place type is set to MEMORY_DEVICE_PUBLIC.
> >
> > So I think it is ok. Frankly I was wondering if we should remove the public
> > type altogether but conceptually it seems ok. But I don't see any users of it
> > so... should we get rid of it in the code rather than turning the config off?
> >
> > Ira
>
> That seems reasonable. I recall that the hope was for those IBM Power 9
> systems to use _PUBLIC, as they have hardware-based coherent device (GPU)
> memory, and so the memory really is visible to the CPU. And the IBM team
> was thinking of taking advantage of it. But I haven't seen anything on
> that front for a while.

Does anyone know who those people are and can we encourage them to
send some patches? :)

Jason