Hi,
This enables us to share the same page table code for
both radix and hash. Radix use a hardware defined big endian
page table
This is measurably worse (a little over 2% on POWER8) on a futex
microbenchmark:
#define _GNU_SOURCE
#include <unistd.h>
#include <sys/syscall.h>
#include <linux/futex.h>
#define ITERATIONS 10000000
#define futex(A, B, C, D, E, F) syscall(__NR_futex, A, B, C, D, E, F)
int main(void)
{
unsigned long i = ITERATIONS;
while (i--) {
unsigned int addr = 0;
futex(&addr, FUTEX_WAKE, 1, NULL, NULL, 0);
}
return 0;
}
Is there any way to avoid the radix tax here?
Anton