Re: [PATCH RFC] mm/madvise: introduce MADV_POPULATE to prefault/prealloc memory

From: Michal Hocko
Date: Thu Feb 18 2021 - 08:43:59 EST


On Thu 18-02-21 11:54:48, David Hildenbrand wrote:
> > > > If we hit
> > > > hardware errors on pages, ignore them - nothing we really can or
> > > > should do.
> > > > 3. On errors during MADV_POPULATED, some memory might have been
> > > > populated. Callers have to clean up if they care.
> > >
> > > How does caller find out? madvise reports 0 on success so how do you
> > > find out how much has been populated?
> >
> > If there is an error, something might have been populated. In my QEMU
> > implementation, I simply discard the range again, good enough. I don't
> > think we need to really indicate "error and populated" or "error and not
> > populated".
>
> Clarifying again: if madvise(MADV_POPULATED) succeeds, it returns 0. If
> there was a problem poopulating memory, it returns -ENOMEM (similar to
> MADV_WILLNEED). Callers can detect the error and discard.

As responded to the previous mail. I wouldn't really bother telling
callers what they should do. The interface will not give them any means
to identify the error. They just have to live with the fact that the
operation has failed.
--
Michal Hocko
SUSE Labs