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

From: Linus Torvalds
Date: Fri Nov 19 2004 - 21:16:59 EST




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
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/