powerpc: Fix hypervisor TLB batching
commitb6dcde5c74d1cbf16da37202a14fa187dce6e4c0
authorAnton Blanchard <anton@samba.org>
Sun, 11 Oct 2009 21:47:34 +0000 (11 21:47 +0000)
committerBenjamin Herrenschmidt <benh@kernel.crashing.org>
Wed, 14 Oct 2009 05:58:37 +0000 (14 16:58 +1100)
tree8d99ceec9f8473d171bea309614d0c08e9440db2
parent8d8997f34e66124577db52f6e7ee10ab5f869e07
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