f21db3090d
This patch add Loongson-3 Virtual IPI interrupt support in the kernel. The current implementation of IPI emulation in QEMU is based on GIC for MIPS, but Loongson-3 doesn't use GIC. Furthermore, IPI emulation in QEMU is too expensive for performance (because of too many context switches between Host and Guest). With current solution, the IPI delay may even cause RCU stall warnings in a multi-core Guest. So, we design a faster solution that emulate IPI interrupt in kernel (only used by Loongson-3 now). Reviewed-by: Aleksandar Markovic <aleksandar.qemu.devel@gmail.com> Signed-off-by: Huacai Chen <chenhc@lemote.com> Co-developed-by: Jiaxun Yang <jiaxun.yang@flygoat.com> Message-Id: <1590220602-3547-11-git-send-email-chenhc@lemote.com> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
28 lines
615 B
Makefile
28 lines
615 B
Makefile
# SPDX-License-Identifier: GPL-2.0
|
|
# Makefile for KVM support for MIPS
|
|
#
|
|
|
|
common-objs-y = $(addprefix ../../../virt/kvm/, kvm_main.o coalesced_mmio.o eventfd.o)
|
|
|
|
EXTRA_CFLAGS += -Ivirt/kvm -Iarch/mips/kvm
|
|
|
|
common-objs-$(CONFIG_CPU_HAS_MSA) += msa.o
|
|
|
|
kvm-objs := $(common-objs-y) mips.o emulate.o entry.o \
|
|
interrupt.o stats.o commpage.o \
|
|
fpu.o
|
|
kvm-objs += hypcall.o
|
|
kvm-objs += mmu.o
|
|
ifdef CONFIG_CPU_LOONGSON64
|
|
kvm-objs += loongson_ipi.o
|
|
endif
|
|
|
|
ifdef CONFIG_KVM_MIPS_VZ
|
|
kvm-objs += vz.o
|
|
else
|
|
kvm-objs += dyntrans.o
|
|
kvm-objs += trap_emul.o
|
|
endif
|
|
obj-$(CONFIG_KVM) += kvm.o
|
|
obj-y += callback.o tlb.o
|