On Tue, Mar 28, 2006 at 11:16:19AM -0800, Dave Hansen wrote: > Could you explain a bit how this works on ia64? I know about the > vmem_map. Is the time spent on filling TLB entries when you hit a > 'struct page' that isn't backed by real memory? Time is wasted trying to fill the TLB entry for the vmem_map. When it fails, we show_mem() advances to the next page which repeats the sequence. Jack had thrown out a couple suggestions. One was essentially what you proposed below. The other was advance i to point the next page of pfns. He frowned when saying the second, but I don't recall exactly why he frowned. > Maybe something like this in your show_mem(): > > for_each_pgdat(pgdat) { > ... > for(i = 0; i < pgdat->node_spanned_pages; i++) { > struct page *page; > if (pfn_valid(pgdat->node_start_pfn + i)) > page = pfn_to_page(pgdat->node_start_pfn + i); > else > - continue; > + /* -1 to offset i++ */ > + pfn += hole_nr_pages(pfn) - 1; > - : send the line "unsubscribe linux-ia64" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html
![]() |