Re: page fault scalability patch V11 [0/7]: overview

Linus Torvalds
2004-11-20T02:06:52Z

On Fri, 19 Nov 2004, Linus Torvalds wrote:
>
> Not that I really see any overwhelming evidence of anybody ever really
> caring, but it's nice to know that you have the option.

Btw, if you are going to look at doing this rss thing, you need to make
sure that thread exit ends up adding its rss to _some_ remaining sibling.

I guess that was obvious, but it's worth pointing out. That may actually
be the only case where we do _not_ have a nice SMP-safe access: we do have
a stable sibling (tsk->thread_leader), but we don't have any good
serialization _except_ for taking mmap_sem for writing. Which we currently
don't do: we take it for reading (and then we possibly upgrade it to a
write lock if we notice that there is a core-dump starting).

We can avoid this too by having a per-mm atomic rss "spill" counter. So
exit_mm() would basically do:

...
tsk->mm = NULL;
atomic_add(tsk->rss, &mm->rss_spill);
...

and then the algorithm for getting rss would be:

rss = atomic_read(mm->rss_spill);
for_each_thread(..)
rss += tsk->rss;

Or does anybody see any better approaches?

Linus