Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1757286AbcCRKLz (ORCPT ); Fri, 18 Mar 2016 06:11:55 -0400 Received: from mail-wm0-f44.google.com ([74.125.82.44]:37463 "EHLO mail-wm0-f44.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1757256AbcCRKLl (ORCPT ); Fri, 18 Mar 2016 06:11:41 -0400 Subject: Re: [PART1 RFC v3 04/12] KVM: split kvm_vcpu_wake_up from kvm_vcpu_kick To: Suravee Suthikulpanit , rkrcmar@redhat.com, joro@8bytes.org, bp@alien8.de, gleb@kernel.org, alex.williamson@redhat.com References: <1458281388-14452-1-git-send-email-Suravee.Suthikulpanit@amd.com> <1458281388-14452-5-git-send-email-Suravee.Suthikulpanit@amd.com> Cc: kvm@vger.kernel.org, linux-kernel@vger.kernel.org, wei@redhat.com, sherry.hurwitz@amd.com From: Paolo Bonzini Message-ID: <56EBD456.106@redhat.com> Date: Fri, 18 Mar 2016 11:11:34 +0100 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.6.0 MIME-Version: 1.0 In-Reply-To: <1458281388-14452-5-git-send-email-Suravee.Suthikulpanit@amd.com> Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 2115 Lines: 67 On 18/03/2016 07:09, Suravee Suthikulpanit wrote: > From: Radim Krčmář > > AVIC has a use for kvm_vcpu_wake_up. > > Signed-off-by: Radim Krčmář > Tested-by: Suravee Suthikulpanit > --- > include/linux/kvm_host.h | 1 + > virt/kvm/kvm_main.c | 19 +++++++++++++------ > 2 files changed, 14 insertions(+), 6 deletions(-) > > 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 *vcpu, 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); > > #ifndef CONFIG_S390 > -/* > - * Kick a sleeping VCPU, or a guest VCPU in guest mode, into host kernel mode. > - */ > -void kvm_vcpu_kick(struct kvm_vcpu *vcpu) > +void kvm_vcpu_wake_up(struct kvm_vcpu *vcpu) > { > - int me; > - int cpu = vcpu->cpu; > struct swait_queue_head *wqp; > > wqp = kvm_arch_vcpu_wq(vcpu); > @@ -2063,6 +2058,18 @@ void kvm_vcpu_kick(struct kvm_vcpu *vcpu) > ++vcpu->stat.halt_wakeup; > } > > +} > +EXPORT_SYMBOL_GPL(kvm_vcpu_wake_up); > + > +/* > + * Kick a sleeping VCPU, or a guest VCPU in guest mode, into host kernel mode. > + */ > +void kvm_vcpu_kick(struct kvm_vcpu *vcpu) > +{ > + int me; > + int cpu = vcpu->cpu; > + > + kvm_vcpu_wake_up(vcpu); > me = get_cpu(); > if (cpu != me && (unsigned)cpu < nr_cpu_ids && cpu_online(cpu)) > if (kvm_arch_vcpu_should_kick(vcpu)) > Reviewed-by: Paolo Bonzini