From mboxrd@z Thu Jan 1 00:00:00 1970 From: Paolo Bonzini Subject: Re: [PART1 RFC v3 04/12] KVM: split kvm_vcpu_wake_up from kvm_vcpu_kick Date: Fri, 18 Mar 2016 11:11:34 +0100 Message-ID: <56EBD456.106@redhat.com> References: <1458281388-14452-1-git-send-email-Suravee.Suthikulpanit@amd.com> <1458281388-14452-5-git-send-email-Suravee.Suthikulpanit@amd.com> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: QUOTED-PRINTABLE Cc: kvm@vger.kernel.org, linux-kernel@vger.kernel.org, wei@redhat.com, sherry.hurwitz@amd.com To: Suravee Suthikulpanit , rkrcmar@redhat.com, joro@8bytes.org, bp@alien8.de, gleb@kernel.org, alex.williamson@redhat.com Return-path: In-Reply-To: <1458281388-14452-5-git-send-email-Suravee.Suthikulpanit@amd.com> Sender: linux-kernel-owner@vger.kernel.org List-Id: kvm.vger.kernel.org On 18/03/2016 07:09, Suravee Suthikulpanit wrote: > From: Radim Kr=C4=8Dm=C3=A1=C5=99 >=20 > AVIC has a use for kvm_vcpu_wake_up. >=20 > Signed-off-by: Radim Kr=C4=8Dm=C3=A1=C5=99 > Tested-by: Suravee Suthikulpanit > --- > include/linux/kvm_host.h | 1 + > virt/kvm/kvm_main.c | 19 +++++++++++++------ > 2 files changed, 14 insertions(+), 6 deletions(-) >=20 > diff --git a/include/linux/kvm_host.h b/include/linux/kvm_host.h > index 5276fe0..673749d 100644 > --- a/include/linux/kvm_host.h > +++ b/include/linux/kvm_host.h > @@ -651,6 +651,7 @@ void kvm_vcpu_mark_page_dirty(struct kvm_vcpu *vc= pu, gfn_t gfn); > void kvm_vcpu_block(struct kvm_vcpu *vcpu); > void kvm_arch_vcpu_blocking(struct kvm_vcpu *vcpu); > void kvm_arch_vcpu_unblocking(struct kvm_vcpu *vcpu); > +void kvm_vcpu_wake_up(struct kvm_vcpu *vcpu); > void kvm_vcpu_kick(struct kvm_vcpu *vcpu); > int kvm_vcpu_yield_to(struct kvm_vcpu *target); > void kvm_vcpu_on_spin(struct kvm_vcpu *vcpu); > diff --git a/virt/kvm/kvm_main.c b/virt/kvm/kvm_main.c > index 5460325..e8fe787 100644 > --- a/virt/kvm/kvm_main.c > +++ b/virt/kvm/kvm_main.c > @@ -2048,13 +2048,8 @@ out: > EXPORT_SYMBOL_GPL(kvm_vcpu_block); > =20 > #ifndef CONFIG_S390 > -/* > - * Kick a sleeping VCPU, or a guest VCPU in guest mode, into host ke= rnel mode. > - */ > -void kvm_vcpu_kick(struct kvm_vcpu *vcpu) > +void kvm_vcpu_wake_up(struct kvm_vcpu *vcpu) > { > - int me; > - int cpu =3D vcpu->cpu; > struct swait_queue_head *wqp; > =20 > wqp =3D kvm_arch_vcpu_wq(vcpu); > @@ -2063,6 +2058,18 @@ void kvm_vcpu_kick(struct kvm_vcpu *vcpu) > ++vcpu->stat.halt_wakeup; > } > =20 > +} > +EXPORT_SYMBOL_GPL(kvm_vcpu_wake_up); > + > +/* > + * Kick a sleeping VCPU, or a guest VCPU in guest mode, into host ke= rnel mode. > + */ > +void kvm_vcpu_kick(struct kvm_vcpu *vcpu) > +{ > + int me; > + int cpu =3D vcpu->cpu; > + > + kvm_vcpu_wake_up(vcpu); > me =3D get_cpu(); > if (cpu !=3D me && (unsigned)cpu < nr_cpu_ids && cpu_online(cpu)) > if (kvm_arch_vcpu_should_kick(vcpu)) >=20 Reviewed-by: Paolo Bonzini