![]() | |||||||||||||
Messages in this thread |
William Lee Irwin III wrote: > > ... > A 16KB or 64KB kernel allocation unit would then annihilate You want to be careful about this: CPU: L1 I cache: 16K, L1 D cache: 16K Because instantiating a 16k page into user pagetables in one hit means that it must all be zeroed. With these large pagesizes that means that the application is likely to get 100% L1 misses against the new page, whereas it currently gets 100% hits. I'd expect this performance dropoff to occur when going from 8k to 16k. By the time you get to 32k it would be quite bad. One way to address this could be to find a way of making the pages present, but still cause a fault on first access. Then have a special-case fastpath in the fault handler to really wipe the page just before it is used. I don't know how though - maybe _PAGE_USER? get_user_pages() would need attention too - you don't want to allow the user to perform O_DIRECT writes of uninitialised pages to their files... - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/ | ||||||||||||
| Last update: 2005-03-22 12:31 [from the cache] ©2003-2008 | |||||||||||||