mirror of
https://github.com/torvalds/linux.git
synced 2024-11-23 04:31:50 +00:00
mm: unrig VMA cache hit ratio
Current code doesn't count first FIND operation after VMA cache flush (which happen surprisingly often) artificially increasing cache hit ratio. On my regular setup the difference is: Before After ========================================================== * boot, login into KDE vmacache_find_calls 446216 vmacache_find_calls 492741 vmacache_find_hits 277596 vmacache_find_hits 276096 ~62.2% ~56.0% * rebuild kernel (no changes to code, usual config) vmacache_find_calls 1943007 vmacache_find_calls 2083718 vmacache_find_hits 1246123 vmacache_find_hits 1244146 ~64.1% ~59.7% * rebuild kernel (full rebuild, usual config) vmacache_find_calls 32163155 vmacache_find_calls 33677183 vmacache_find_hits 27889956 vmacache_find_hits 27877591 ~88.2% ~84.3% Total: ~4% cache hit ratio. If someone is counting _relative_ cache _miss_ ratio, misreporting is much higher. Link: http://lkml.kernel.org/r/20160822225009.GA3934@p183.telecom.by Signed-off-by: Alexey Dobriyan <adobriyan@gmail.com> Cc: Davidlohr Bueso <dave@stgolabs.net> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
parent
f7e2355f0f
commit
131ddc5c7d
@ -87,11 +87,11 @@ struct vm_area_struct *vmacache_find(struct mm_struct *mm, unsigned long addr)
|
||||
{
|
||||
int i;
|
||||
|
||||
count_vm_vmacache_event(VMACACHE_FIND_CALLS);
|
||||
|
||||
if (!vmacache_valid(mm))
|
||||
return NULL;
|
||||
|
||||
count_vm_vmacache_event(VMACACHE_FIND_CALLS);
|
||||
|
||||
for (i = 0; i < VMACACHE_SIZE; i++) {
|
||||
struct vm_area_struct *vma = current->vmacache[i];
|
||||
|
||||
@ -115,11 +115,11 @@ struct vm_area_struct *vmacache_find_exact(struct mm_struct *mm,
|
||||
{
|
||||
int i;
|
||||
|
||||
count_vm_vmacache_event(VMACACHE_FIND_CALLS);
|
||||
|
||||
if (!vmacache_valid(mm))
|
||||
return NULL;
|
||||
|
||||
count_vm_vmacache_event(VMACACHE_FIND_CALLS);
|
||||
|
||||
for (i = 0; i < VMACACHE_SIZE; i++) {
|
||||
struct vm_area_struct *vma = current->vmacache[i];
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user