Re: Virtual address space exhaustion (was Discontigmem virt_to_page() )

Daniel Phillips
2002-05-03T18:09:28Z

On Friday 03 May 2002 18:58, Andrea Arcangeli wrote:
> On Fri, May 03, 2002 at 06:41:15PM +0200, Daniel Phillips wrote:
> > On Friday 03 May 2002 18:20, Andrea Arcangeli wrote:
> > > On Fri, May 03, 2002 at 06:02:18PM +0200, Daniel Phillips wrote:
> > > > and solves 75% of the problem. It's not just ia32 numa that will benefit
> > > > from it. For example, MIPS supports 16K pages in software, which will
> > >
> > > the whole change would be specific to ia32, I don't see the connection
> > > with mips. There would be nothing to share between ia32 2M pages and
> > > mips 16K pages.
> >
> > The topic here is 'page clustering'. The idea is to use one struct page for
> > every four 4K page frames on ia32.
>
> ah ok, I meant physical hardware pages. physical hardware pages should
> be doable without common code changes, a software PAGE_SIZE or the
> PAGE_CACHE_SIZE raises non trivial problems instead.

Yes, it's not too bad though. In the swap-in path, the locking would be against
mem_map + (pfn >> 2). The four pages don't have to be read in and valid all at
the same time - it's ok to take multiple faults on the cluster, not recommended,
but ok. In the swap-out path, all four page frames have to be swapped out and
invalidated at the same time.

--
Daniel