[PATCH] [RFC] Emulate "lwsync" to run standard user land on e500 cores
James Yang
James.Yang at freescale.com
Sat Oct 26 02:25:26 EST 2013
On Fri, 25 Oct 2013, Scott Wood wrote:
> Has anyone measured how much this slows things down with a typical
> userspace?
Not a measurement of the patch in question but an older similar patch
on 3.0.51 (8572 running Debian 5.0.3):
$ ./test-lwsync
cycles per emulated lwsync = 371
cycles per sync = 36
----------------------------------------------------------
#include <stdio.h>
int main (void) {
unsigned long atb_start, atb_stop;
unsigned long i;
asm volatile ("mfspr %0,526" : "=r" (atb_start));
for (i = 0; i < 100; i++) {
asm volatile ("lwsync");
}
asm volatile ("mfspr %0,526" : "=r" (atb_stop));
printf("cycles per emulated lwsync = %lu\n", (atb_stop -
atb_start) / 100);
asm volatile ("mfspr %0,526" : "=r" (atb_start));
for (i = 0; i < 100; i++) {
asm volatile ("sync");
}
asm volatile ("mfspr %0,526" : "=r" (atb_stop));
printf("cycles per sync = %lu\n", (atb_stop - atb_start) /
100);
return 0;
}
----------------------------------------------------------
More information about the Linuxppc-dev
mailing list