mirror of
https://github.com/FEX-Emu/linux.git
synced 2025-01-01 23:01:29 +00:00
KVM: add kvm_arch_sched_in
Introduce preempt notifiers for architecture specific code. Advantage over creating a new notifier in every arch is slightly simpler code and guaranteed call order with respect to kvm_sched_in. Signed-off-by: Radim Krčmář <rkrcmar@redhat.com> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
This commit is contained in:
parent
6689fbe3cf
commit
e790d9ef64
@ -288,6 +288,10 @@ void kvm_arch_vcpu_uninit(struct kvm_vcpu *vcpu)
|
|||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void kvm_arch_sched_in(struct kvm_vcpu *vcpu, int cpu)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
void kvm_arch_vcpu_load(struct kvm_vcpu *vcpu, int cpu)
|
void kvm_arch_vcpu_load(struct kvm_vcpu *vcpu, int cpu)
|
||||||
{
|
{
|
||||||
vcpu->cpu = cpu;
|
vcpu->cpu = cpu;
|
||||||
|
@ -1002,6 +1002,10 @@ void kvm_arch_vcpu_uninit(struct kvm_vcpu *vcpu)
|
|||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void kvm_arch_sched_in(struct kvm_vcpu *vcpu, int cpu)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
int kvm_arch_vcpu_ioctl_translate(struct kvm_vcpu *vcpu,
|
int kvm_arch_vcpu_ioctl_translate(struct kvm_vcpu *vcpu,
|
||||||
struct kvm_translation *tr)
|
struct kvm_translation *tr)
|
||||||
{
|
{
|
||||||
|
@ -720,6 +720,10 @@ void kvm_arch_vcpu_uninit(struct kvm_vcpu *vcpu)
|
|||||||
kvmppc_subarch_vcpu_uninit(vcpu);
|
kvmppc_subarch_vcpu_uninit(vcpu);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void kvm_arch_sched_in(struct kvm_vcpu *vcpu, int cpu)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
void kvm_arch_vcpu_load(struct kvm_vcpu *vcpu, int cpu)
|
void kvm_arch_vcpu_load(struct kvm_vcpu *vcpu, int cpu)
|
||||||
{
|
{
|
||||||
#ifdef CONFIG_BOOKE
|
#ifdef CONFIG_BOOKE
|
||||||
|
@ -555,6 +555,10 @@ void kvm_arch_vcpu_uninit(struct kvm_vcpu *vcpu)
|
|||||||
/* Nothing todo */
|
/* Nothing todo */
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void kvm_arch_sched_in(struct kvm_vcpu *vcpu, int cpu)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
void kvm_arch_vcpu_load(struct kvm_vcpu *vcpu, int cpu)
|
void kvm_arch_vcpu_load(struct kvm_vcpu *vcpu, int cpu)
|
||||||
{
|
{
|
||||||
save_fp_ctl(&vcpu->arch.host_fpregs.fpc);
|
save_fp_ctl(&vcpu->arch.host_fpregs.fpc);
|
||||||
|
@ -7171,6 +7171,10 @@ void kvm_arch_vcpu_uninit(struct kvm_vcpu *vcpu)
|
|||||||
static_key_slow_dec(&kvm_no_apic_vcpu);
|
static_key_slow_dec(&kvm_no_apic_vcpu);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void kvm_arch_sched_in(struct kvm_vcpu *vcpu, int cpu)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
int kvm_arch_init_vm(struct kvm *kvm, unsigned long type)
|
int kvm_arch_init_vm(struct kvm *kvm, unsigned long type)
|
||||||
{
|
{
|
||||||
if (type)
|
if (type)
|
||||||
|
@ -624,6 +624,8 @@ void kvm_arch_exit(void);
|
|||||||
int kvm_arch_vcpu_init(struct kvm_vcpu *vcpu);
|
int kvm_arch_vcpu_init(struct kvm_vcpu *vcpu);
|
||||||
void kvm_arch_vcpu_uninit(struct kvm_vcpu *vcpu);
|
void kvm_arch_vcpu_uninit(struct kvm_vcpu *vcpu);
|
||||||
|
|
||||||
|
void kvm_arch_sched_in(struct kvm_vcpu *vcpu, int cpu);
|
||||||
|
|
||||||
void kvm_arch_vcpu_free(struct kvm_vcpu *vcpu);
|
void kvm_arch_vcpu_free(struct kvm_vcpu *vcpu);
|
||||||
void kvm_arch_vcpu_load(struct kvm_vcpu *vcpu, int cpu);
|
void kvm_arch_vcpu_load(struct kvm_vcpu *vcpu, int cpu);
|
||||||
void kvm_arch_vcpu_put(struct kvm_vcpu *vcpu);
|
void kvm_arch_vcpu_put(struct kvm_vcpu *vcpu);
|
||||||
|
@ -3124,6 +3124,8 @@ static void kvm_sched_in(struct preempt_notifier *pn, int cpu)
|
|||||||
if (vcpu->preempted)
|
if (vcpu->preempted)
|
||||||
vcpu->preempted = false;
|
vcpu->preempted = false;
|
||||||
|
|
||||||
|
kvm_arch_sched_in(vcpu, cpu);
|
||||||
|
|
||||||
kvm_arch_vcpu_load(vcpu, cpu);
|
kvm_arch_vcpu_load(vcpu, cpu);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user