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".