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

Nick Piggin
2004-09-14T01:59:59Z

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.