Re: [pagevec] resize pagevec to O(lg(NR_CPUS))

From: Nick Piggin
Date: Mon Sep 13 2004 - 21:01:20 EST


Marcelo Tosatti wrote:
Sure. And when you fill it with pages, they'll use up 32KB of dcache
by using a single 64B line per page. Now that you've blown the cache,
when you go to move those pages to another list, you'll have to pull
them out of L2 again one at a time.

OK, so a 511 item pagevec is pretty unlikely. How about a 64 item one
with 128 byte cachelines, and you're touching two cachelines per
page operation? That's 16K.


Nick,

Note that you dont read/write data to the actual pages most of the times pagevec's are used. The great majority is just page management code. So we dont really blow the caches like you said.


You're often pulling them off lists though which is what will do it.
Not the actual page, but the struct page.

I agree we need more tests :)


Yep.

-
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/