Re: Bug: Discontigmem virt_to_page() [Alpha,ARM,Mips64?]

William Lee Irwin III
2002-05-03T11:11:09Z

On Fri, May 03, 2002 at 12:30:09PM +0200, Andrea Arcangeli wrote:
> Putting the mem_map in highmem would be the first step, after that you
> should be just at at the 90% of work done to make it general purpose,
> you should wrap most actions on the page struct with wrappers and it
> will be quite an invasive change (much more invasive than pte-highmem),
> but it could be done. For this one (unlike pte-highmem) you definitely
> need a config option to select it, most people doesn't need this feature
> enabled because they've less than 8G of ram and also considering it will
> have a significant runtime cost.

Invasive or not, if running is impossible without it, it must be done.

This is a probable first order of business given that it is the single
largest consumer of KVA with only really enough mitigation for
bootability provided by my prior efforts at reducing the size of struct
page. A clean, perhaps even mergeable design for this would be a great
boon to all users of larger highmem systems. IIRC buffer_heads were the
specific reported problem, and though they themselves consume excessive
KVA only under some circumstances, they present a much greater danger
in combination with the excessively large boot-time KVA allocation.

Martin, can you take over? I've got plenty of ideas about what to code
up, but you've actually got your hands on the machine and are knee-deep
in the issues. I'm getting hit up for specifics I can't answer.

Andrea, it might also be helpful to hear your input during the LSE
conference call tomorrow. The topic is KVA exhaustion scenarios, which
seem to be of interest to you as well.

Cheers,
Bill