On Thu, 10 May 2007, William Lee Irwin III wrote: >> Looking more closely at it, the entire attempt to avoid struct page >> pointers is far beyond pointless. The freeing functions unconditionally >> require struct page pointers to either be passed or computed and the >> allocation function's virtual address it returns as a result is not >> directly usable. The callers all have to do arithmetic on the result. >> One might as well stash precomputed pfn's (if not paddrs) and vaddrs in >> page->private and page->mapping, chain them with ->lru (use only .next >> if you care to stay singly-linked), and handle struct page pointers
On Thu, May 10, 2007 at 10:09:32PM -0700, Christoph Lameter wrote: > Well then you'd have to rewrite the existing ways of fiddling with page > structs. This way all is clear and you fiddle as you want. It just works. > Could we get this in? You acked it once already? I guess I can say I'm microoptimizing things by getting rid of the lock. I can also do without mucking with fields in the page or generation numbers given a method of dumping the entire cache for such catastrophic reorganizations, which is actually better because it makes change_page_attr() and vmalloc_sync() bear the entire cost, apart from the loss of the cache in their aftermath. I'll post one of those two in a follow-up. -- wli - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/