Paravirt ops is currently only capable of either replacing a lot of Linux internal code or none at all. The are users that don't need all of the possibilities pv-ops delivers though. On KVM for example we're perfectly fine not using the PV MMU, thus not touching any MMU code. That way we don't have to improve pv-ops to become fast, we just don't compile the MMU parts in! This patchset splits pv-ops into several smaller config options split by feature category and then converts the KVM pv-ops code to use only the bits that are required, lowering overhead. Alexander Graf (3): Split paravirt ops by functionality Only export selected pv-ops feature structs Split the KVM pv-ops support by feature arch/x86/Kconfig | 72 +++++++++++++++++++++++++- arch/x86/include/asm/apic.h | 2 +- arch/x86/include/asm/desc.h | 4 +- arch/x86/include/asm/fixmap.h | 2 +- arch/x86/include/asm/highmem.h | 2 +- arch/x86/include/asm/io_32.h | 4 +- arch/x86/include/asm/io_64.h | 2 +- arch/x86/include/asm/irqflags.h | 21 ++++++-- arch/x86/include/asm/mmu_context.h | 4 +- arch/x86/include/asm/msr.h | 4 +- arch/x86/include/asm/paravirt.h | 44 ++++++++++++++++- arch/x86/include/asm/paravirt_types.h | 12 +++++ arch/x86/include/asm/pgalloc.h | 2 +- arch/x86/include/asm/pgtable-3level_types.h | 2 +- arch/x86/include/asm/pgtable.h | 2 +- arch/x86/include/asm/processor.h | 2 +- arch/x86/include/asm/required-features.h | 2 +- arch/x86/include/asm/smp.h | 2 +- arch/x86/include/asm/system.h | 13 +++-- arch/x86/include/asm/tlbflush.h | 4 +- arch/x86/kernel/head_64.S | 2 +- arch/x86/kernel/kvm.c | 22 ++++++--- arch/x86/kernel/paravirt.c | 37 +++++++++++-- arch/x86/kernel/tsc.c | 2 +- arch/x86/kernel/vsmp_64.c | 2 +- arch/x86/xen/Kconfig | 2 +- 26 files changed, 219 insertions(+), 50 deletions(-) _______________________________________________ Virtualization mailing list Virtualization@xxxxxxxxxxxxxxxxxxxxxxxxxx https://lists.linux-foundation.org/mailman/listinfo/virtualization