![]() | |||||||||||||
Messages in this thread |
On Thu, 17 Aug 2006 23:17:54 -0700 (PDT) Christoph Lameter <clameter@sgi.com> wrote: > > So we only have a single lookup of vmem_map from memory in order to > calculate the address of struct page. The cacheline for vmem_map is > heavily used and certainly in memory. virt_to_page seems to be a very > efficient means to get to struct page. The problem scope may simply be > to minimize the cachelines touched during free and alloc. Just a note: with SPARSEMEM, we need more calculation and access to mem_section[] table and page structs(mem_map). > vmalloc_to_addr is certainly slower due to the page table walking. But the > user already is aware of the fact that vmalloc memory is not as fast as > direct mapped. Hmm. I wonder.... == vmalloc() area is backed-up by VHPT(16Kb page size). And direct-mapped-area is backed-up by software-tlb-miss-handler (16MB/64MB page size) If TLB misses frequently, prefetch will work well in virtually-mapped area (region5) rather direct-mapped-area (region 7) because of hardware assist of 'VHPT walker'. (just I think. I have no data) Considering some code walking through a list of objects scattered over all memory, Is virtually-mapped area really slow ? -Kame - 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: 2006-08-18 09:17 [from the cache] ©2003-2008 | |||||||||||||