Commit e3353000 authored by Paolo Bonzini's avatar Paolo Bonzini
Browse files

Merge tag 'loongarch-kvm-6.15' of...

Merge tag 'loongarch-kvm-6.15' of git://git.kernel.org/pub/scm/linux/kernel/git/chenhuacai/linux-loongson into HEAD

LoongArch KVM changes for v6.15

1. Remove unnecessary header include path.
2. Remove PGD saving during VM context switch.
3. Add perf events support for guest VM.
parents abab683b 6bfb3a71
Loading
Loading
Loading
Loading
+6 −0
Original line number Diff line number Diff line
@@ -12,6 +12,7 @@
#include <linux/kvm.h>
#include <linux/kvm_types.h>
#include <linux/mutex.h>
#include <linux/perf_event.h>
#include <linux/spinlock.h>
#include <linux/threads.h>
#include <linux/types.h>
@@ -176,6 +177,9 @@ struct kvm_vcpu_arch {
	/* Pointers stored here for easy accessing from assembly code */
	int (*handle_exit)(struct kvm_run *run, struct kvm_vcpu *vcpu);

	/* GPA (=HVA) of PGD for secondary mmu */
	unsigned long kvm_pgd;

	/* Host registers preserved across guest mode execution */
	unsigned long host_sp;
	unsigned long host_tp;
@@ -289,6 +293,8 @@ static inline int kvm_get_pmu_num(struct kvm_vcpu_arch *arch)
	return (arch->cpucfg[6] & CPUCFG6_PMNUM) >> CPUCFG6_PMNUM_SHIFT;
}

bool kvm_arch_pmi_in_guest(struct kvm_vcpu *vcpu);

/* Debug: dump vcpu state */
int kvm_arch_vcpu_dump_regs(struct kvm_vcpu *vcpu);

+1 −0
Original line number Diff line number Diff line
@@ -296,6 +296,7 @@ static void __used output_kvm_defines(void)
	OFFSET(KVM_ARCH_HSP, kvm_vcpu_arch, host_sp);
	OFFSET(KVM_ARCH_HTP, kvm_vcpu_arch, host_tp);
	OFFSET(KVM_ARCH_HPGD, kvm_vcpu_arch, host_pgd);
	OFFSET(KVM_ARCH_KVMPGD, kvm_vcpu_arch, kvm_pgd);
	OFFSET(KVM_ARCH_HANDLE_EXIT, kvm_vcpu_arch, handle_exit);
	OFFSET(KVM_ARCH_HEENTRY, kvm_vcpu_arch, host_eentry);
	OFFSET(KVM_ARCH_GEENTRY, kvm_vcpu_arch, guest_eentry);
+1 −0
Original line number Diff line number Diff line
@@ -33,6 +33,7 @@ config KVM
	select KVM_MMIO
	select KVM_XFER_TO_GUEST_WORK
	select SCHED_INFO
	select GUEST_PERF_EVENTS if PERF_EVENTS
	help
	  Support hosting virtualized guest machines using
	  hardware virtualization extensions. You will need
+0 −2
Original line number Diff line number Diff line
@@ -3,8 +3,6 @@
# Makefile for LoongArch KVM support
#

ccflags-y += -I $(src)

include $(srctree)/virt/kvm/Makefile.kvm

obj-$(CONFIG_KVM) += kvm.o
+3 −0
Original line number Diff line number Diff line
@@ -394,6 +394,7 @@ static int kvm_loongarch_env_init(void)
	}

	kvm_init_gcsr_flag();
	kvm_register_perf_callbacks(NULL);

	/* Register LoongArch IPI interrupt controller interface. */
	ret = kvm_loongarch_register_ipi_device();
@@ -425,6 +426,8 @@ static void kvm_loongarch_env_exit(void)
		}
		kfree(kvm_loongarch_ops);
	}

	kvm_unregister_perf_callbacks();
}

static int kvm_loongarch_init(void)
Loading