Re: [PATCH RFC 7/7] mm: better document PG_reserved

From: Matthew Wilcox
Date: Wed Dec 05 2018 - 12:32:06 EST


On Wed, Dec 05, 2018 at 04:05:12PM +0100, David Hildenbrand wrote:
> On 05.12.18 15:35, Matthew Wilcox wrote:
> > On Wed, Dec 05, 2018 at 01:28:51PM +0100, David Hildenbrand wrote:
> >> I don't see a reason why we have to document "Some of them might not even
> >> exist". If there is a user, we should document it. E.g. for balloon
> >> drivers we now use PG_offline to indicate that a page might currently
> >> not be backed by memory in the hypervisor. And that is independent from
> >> PG_reserved.
> >
> > I think you're confused by the meaning of "some of them might not even
> > exist". What this means is that there might not be memory there; maybe
> > writes to that memory will be discarded, or maybe they'll cause a machine
> > check. Maybe reads will return ~0, or 0, or cause a machine check.
> > We just don't know what's there, and we shouldn't try touching the memory.
>
> If there are users, let's document it. And I need more details for that :)
>
> 1. machine check: if there is a HW error, we set PG_hwpoison (except
> ia64 MCA, see the list)
>
> 2. Writes to that memory will be discarded
>
> Who is the user of that? When will we have such pages right now?
>
> 3. Reads will return ~0, / 0?
>
> I think this is a special case of e.g. x86? But where do we have that,
> are there any user?

When there are gaps in the physical memory. As in, if you put that
physical address on the bus (or in a packet), no device will respond
to it. Look:

00000000-00000fff : Reserved
00001000-00057fff : System RAM
00058000-00058fff : Reserved
00059000-0009dfff : System RAM
0009e000-000fffff : Reserved

Those examples I gave are examples of how various different architectures
respond to "no device responded to this memory access".