Re: [PATCH] vmscan: improve reclaim throuput to bail out patch



I evaluate rvr bailout and skip-freeing patch in this week conteniously.
I'd like to dump first output here.



Rik, could you please review following?
==
vmscan bail out patch move nr_reclaimed variable to struct scan_control.
Unfortunately, indirect access can easily happen cache miss.
More unfortunately, Some architecture (e.g. ia64) don't access global
variable so fast.

That is amazing. Especially considering that the scan_control
is a local variable on the stack.

Ahhhhh, I did want to write "indirect access(or likes global variables)",
but my brain was sucked. sorry.

I'll post description fixed version soon. thanks.


if heavy memory pressure happend, that's ok.
cache miss already plenty. it is not observable.

but, if memory pressure is lite, performance degression is obserbable.

about 4-5% degression.

Then, this patch introduce temporal local variable.

OK. the degression is disappeared.

I can't argue with the numbers, though :)

Maybe all the scanning we do ends up evicting the cache lines
with the scan_control struct in it from the fast part of the
CPU cache?

Yeah, I think so.



Signed-off-by: KOSAKI Motohiro <kosaki.motohiro@xxxxxxxxxxxxxx>

Acked-by: Rik van Riel <riel@xxxxxxxxxx>
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/



Relevant Pages

  • Re: missing madvise functionality
    ... takes significant time, ... Could you please add this patch and see if it helps on your machine? ... In case find_vmahits the cache, we dont need to access the begining of mm_struct. ... struct rb_root mm_rb; ...
    (Linux-Kernel)
  • Re: Possible memory leak via slub kmem_cache_create
    ... The patch below fixes this issue for proto_register. ... kmem_cache_name is no longer guaranteed to return the same pointer ... the module calling this has to destroy the cache before getting unloaded. ... struct request_sock *req); ...
    (Linux-Kernel)
  • [PATCH] x86_64 : vsyscall_gtod_data diet and vgettimeofday() fix
    ... This patch should be applied after x86_64: fix vtimevsyscall ... Current vsyscall_gtod_data is large (3 or 4 cache lines dirtied at timer interrupt). ... Instead of copying a whole struct clocksource, ... This patch fixes one oddity in vgettimeofday: It can returns a timeval with tv_usec = 1000000. ...
    (Linux-Kernel)
  • Re: [PATCH] vmscan: improve reclaim throuput to bail out patch
    ... I evaluate rvr bailout and skip-freeing patch in this week conteniously. ... vmscan bail out patch move nr_reclaimed variable to struct scan_control. ... indirect access can easily happen cache miss. ...
    (Linux-Kernel)
  • System crash when using mt command
    ... _crashtime: struct { ... _config: struct { ... 287625 cache ... 10652 ksh ...
    (Tru64-UNIX-Managers)