Messages in this thread | | | Date | Thu, 10 May 2012 16:42:31 -0500 | From | Rob Landley <> | Subject | Re: [PATCH v4 3/7] x86/flush_tlb: try flush_tlb_single one by one in flush_tlb_range |
| |
On 05/10/2012 03:50 AM, Alex Shi wrote: >> > >> Ok, question: >> >> we're comparing TLB size with the amount of pages mapped by this mm >> struct. AFAICT, that doesn't mean that all those mapped pages do have >> respective entries in the TLB, does it? >> >> If so, then the actual entries number is kinda inaccurate, no? We don't >> really know how many TLB entries actually belong to this mm struct. Or am I >> missing something? > > No, we can not know the exactly TLB entires for. But usually, when you > process is doing the mprotect/munmap etc system call, your process has > taken much of memory and already filled lots of TLB entries.
$ strace true 2>&1 | grep mprotect mprotect(0x7f67a934b000, 2093056, PROT_NONE) = 0 mprotect(0x7f67a954a000, 16384, PROT_READ) = 0 mprotect(0x607000, 4096, PROT_READ) = 0 mprotect(0x7f67a9773000, 4096, PROT_READ) = 0
This appears to be part of glibc process setup. Define "usually".
Rob -- GNU/Linux isn't: Linux=GPLv2, GNU=GPLv3+, they can't share code. Either it's "mere aggregation", or a license violation. Pick one.
| |