]> git.baikalelectronics.ru Git - kernel.git/commit
powerpc: Fix hypervisor TLB batching
authorAnton Blanchard <anton@samba.org>
Sun, 11 Oct 2009 21:47:34 +0000 (21:47 +0000)
committerBenjamin Herrenschmidt <benh@kernel.crashing.org>
Wed, 14 Oct 2009 05:58:37 +0000 (16:58 +1100)
commit142078330f591ccfdcf78755bab5d72cb97705b5
tree8d99ceec9f8473d171bea309614d0c08e9440db2
parent574296aea2ee8aa1e68b2592ab09999a5ce77da4
powerpc: Fix hypervisor TLB batching

Profiling of a page fault scalability microbenchmark shows flush_hash_range
is not calling the batch hpte invalidate hcall (H_BULK_REMOVE).

It turns out we have a duplicate firmware feature for hcall-bulk and the
current setup code stops after finding the first match. This meant we never
batch and always do individual invalidates.

The patch below removes the duplicate and shifts FW_FEATURE_CMO to close
the gap. With the patch applied the single threaded page fault rate improves
from 217169 to 238755 per second on a POWER5 test box, a 10% improvement.

Signed-off-by: Anton Blanchard <anton@samba.org>
Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
arch/powerpc/include/asm/firmware.h
arch/powerpc/platforms/pseries/firmware.c