I wrote these patches sometime ago to explore PCID and INVPCID. I haven't thought through whether how to use both in Xen yet. But seeing Juergen laid out his thought on PCID and INVPCID I think some of the patches can be useful.
I had done some benchmark on the speed in one of my older branch by inserting some trace points before and after the flush. It showed that twiddling CR4.PGE is 3 to 5 times slower than invpcid. This series is in incomplete -- obviously we have CR4.PGE twiddling in a few other places. But if you think it is beneficial I can try to convert those places as well. Wei. Wei Liu (4): x86: introduce cpu_has_invpcid x86: report if PCID and INVPCID are supported x86: add invpcid.h x86: use invpcid to do global flush xen/arch/x86/flushtlb.c | 22 ++++++++++++--- xen/arch/x86/setup.c | 7 +++++ xen/include/asm-x86/cpufeature.h | 1 + xen/include/asm-x86/invpcid.h | 61 ++++++++++++++++++++++++++++++++++++++++ 4 files changed, 87 insertions(+), 4 deletions(-) create mode 100644 xen/include/asm-x86/invpcid.h -- 2.11.0 _______________________________________________ Xen-devel mailing list [email protected] https://lists.xenproject.org/mailman/listinfo/xen-devel
