Re: [rfc] no ZERO_PAGE?

Linus Torvalds
2007-04-04T15:35:30Z

On Wed, 4 Apr 2007, Nick Piggin wrote:
>
> Shall I do a more complete patchset and ask Andrew to give it a
> run in -mm?

Do this trivial one first. See how it fares.

Although I don't know how much -mm will do for it. There is certainly not
going to be any correctness problems, afaik, just *performance* problems.
Does anybody do any performance testing on -mm?

That said, talking about correctness/performance problems:

> + page_table = pte_offset_map_lock(mm, pmd, address, &ptl);
> + if (likely(!pte_none(*page_table))) {
> inc_mm_counter(mm, anon_rss);
> lru_cache_add_active(page);
> page_add_new_anon_rmap(page, vma, address);

Isn't that test the wrong way around?

Shouldn't it be

if (likely(pte_none(*page_table))) {

without any logical negation? Was this patch tested?

Anyway, I'm not against this, but I can see somebody actually *wanting*
the ZERO page in some cases. I've used the fact for TLB testing, for
example, by just doing a big malloc(), and knowing that the kernel will
re-use the ZERO_PAGE so that I don't get any cache effects (well, at least
not any *physical* cache effects. Virtually indexed cached will still show
effects of it, of course, but I haven't cared).

That's an example of an app that actually cares about the page allocation
(or, in this case, the lack there-of). Not an important one, but maybe
there are important ones that care?

Linus