Re: [PATCH] Rmap speedup

Andrew Morton
2002-08-05T18:03:35Z

Rik van Riel wrote:
>
> On Mon, 5 Aug 2002, Daniel Phillips wrote:
>
> > > Despite the fact that the number of pte_chain references in
> > > page_add/remove_rmap now just averages two in that test.
> >
> > It's weird that it only averages two. It's a four way and your running
> > 10 in parallel, plus a process to watch for completion, right?
>
> I explained this one in the comment above the declaration of
> struct pte_chain ;)
>
> * A singly linked list should be fine for most, if not all, workloads.
> * On fork-after-exec the mapping we'll be removing will still be near
> * the start of the list, on mixed application systems the short-lived
> * processes will have their mappings near the start of the list and
> * in systems with long-lived applications the relative overhead of
> * exit() will be lower since the applications are long-lived.

I don't think so - the list walks in there are fairly long.
What seems to be happening is that, as Daniel mentioned,
all the pte_chains for page N happen to have good locality
with the pte_chains for page N+1. Like parallel lines.

That might not hold up for longer-lived processes, slab cache
fragmentation, longer chains, etc...