At OLS I gave a talk on some of the Xen scalability inhibitors, and one
of these was writable page tables. We went over why the feature does
not scale, but just as important, we found that the uniprocessor case
does not provide any advantage either. These tests were done on x86_64,
so I wanted to run the 1-way test on 32 bit to show the same problem.
So, I have run with writable PTs and with emulation forced on for
several benchmarks:
on Xeon MP processor, uniprocessor dom0 kernel, pae=y:
benchmark c/s 10729 force_emulate
------------------------ --------- -------------
lmbench fork+exit: 469.5833 470.3913 usec, lower is better
lmbench fork+execve: 1241.0000 1225.7778 usec, lower is better
lmbench fork+/sbin/bash: 12190.000 12119.000 usec, lower is better
dbench 3.03 186.354 191.278 MB/sec
reaim_aim9 1890.01 2055.97 jobs/min
reaim_compute 2538.75 2522.90 jobs/min
reaim_dbase 3852.14 3739.38 jobs/min
reaim_fserver 4437.93 4389.71 jobs/min
reaim_shared 2365.85 2362.97 jobs/min
SPEC SDET 4315.91 4312.02 scripts/hr
These are all within the noise level (some slightly better, some
slightly worse for emulate). There really isn't much of difference
here. I'd like to propose turning on the emulate path all the time in
xen.
-Andrew Theurer
Applies to c/s 10729
Signed-off-by: Andrew Theurer <habanero@xxxxxxxxxx>
diff -Naurp xen-unstable.hg-10729/xen/arch/x86/mm.c
xen-unstable.hg-10729-emulate/xen/arch/x86/mm.c
--- xen-unstable.hg-10729/xen/arch/x86/mm.c 2006-07-25 17:05:33.000000000
-0500
+++ xen-unstable.hg-10729-emulate/xen/arch/x86/mm.c 2006-07-25
17:03:40.000000000 -0500
@@ -3582,7 +3582,7 @@ int ptwr_do_page_fault(struct domain *d,
return 0;
}
-#if 0 /* Leave this in as useful for debugging */
+#if 1 /* Leave this in as useful for debugging */
goto emulate;
#endif
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel
|