From: Gleb Natapov <gleb@redhat.com>
To: mtosatti@redhat.com
Cc: kvm@vger.kernel.org, avi@redhat.com
Subject: Re: [patch 3/4] KVM: use smp_send_reschedule in kvm_vcpu_kick
Date: Fri, 8 May 2009 10:13:25 +0300 [thread overview]
Message-ID: <20090508071325.GB25357@redhat.com> (raw)
In-Reply-To: <20090507205536.827800402@amt.cnet>
On Thu, May 07, 2009 at 05:55:12PM -0300, mtosatti@redhat.com wrote:
> KVM uses a function call IPI to cause the exit of a guest running on a
> physical cpu. For virtual interrupt notification there is no need to
> wait on IPI receival, or to execute any function.
>
> This is exactly what the reschedule IPI does, without the overhead
> of function IPI. So use it instead of smp_call_function_single in
> kvm_vcpu_kick.
>
> Also change the "guest_mode" variable to a bit in vcpu->requests, and
> use that to collapse multiple IPI's that would be issued between the
> first one and zeroing of guest mode.
>
> This allows kvm_vcpu_kick to called with interrupts disabled.
>
> Signed-off-by: Marcelo Tosatti <mtosatti@redhat.com>
>
Acked-by: Gleb Natapov <gleb@redhat.com>
Except one small nitpick below.
> Index: kvm-pending/arch/x86/kvm/x86.c
> ===================================================================
> --- kvm-pending.orig/arch/x86/kvm/x86.c
> +++ kvm-pending/arch/x86/kvm/x86.c
> @@ -3259,6 +3259,9 @@ static int vcpu_enter_guest(struct kvm_v
>
> local_irq_disable();
>
> + clear_bit(KVM_REQ_KICK, &vcpu->requests);
> + smp_mb__after_clear_bit();
> +
> if (vcpu->requests || need_resched() || signal_pending(current)) {
> local_irq_enable();
> preempt_enable();
> @@ -3266,13 +3269,6 @@ static int vcpu_enter_guest(struct kvm_v
> goto out;
> }
>
> - vcpu->guest_mode = 1;
> - /*
> - * Make sure that guest_mode assignment won't happen after
> - * testing the pending IRQ vector bitmap.
> - */
> - smp_wmb();
> -
Can you leave this comment. I like it :)
--
Gleb.
next prev parent reply other threads:[~2009-05-08 7:13 UTC|newest]
Thread overview: 19+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-04-27 21:07 [patch 0/4] use smp_send_reschedule in vcpu_kick / assigned dev host intx race fix mtosatti
2009-04-27 21:07 ` [patch 1/4] qemu: external module: smp_send_reschedule compat mtosatti
2009-05-07 13:28 ` Avi Kivity
2009-04-27 21:07 ` [patch 2/4] KVM: x86: wake up waitqueue before calling get_cpu() mtosatti
2009-04-27 21:07 ` [patch 3/4] KVM: use smp_send_reschedule in kvm_vcpu_kick mtosatti
2009-04-27 21:07 ` [patch 4/4] KVM: protect assigned dev workqueue, int handler and irq acker mtosatti
2009-04-28 7:08 ` [patch 0/4] use smp_send_reschedule in vcpu_kick / assigned dev host intx race fix Sheng Yang
2009-04-29 17:47 ` Marcelo Tosatti
2009-04-30 0:56 ` Sheng Yang
2009-04-30 1:59 ` Sheng Yang
2009-05-06 5:07 ` Sheng Yang
2009-05-07 13:21 ` Avi Kivity
2009-05-07 20:55 ` [patch 0/4] smp_send_reschedule / assigned dev host intx race v2 mtosatti
2009-05-07 20:55 ` [patch 1/4] kvm-kmod: nr_cpu_ids compat mtosatti
2009-05-07 20:55 ` [patch 2/4] kvm-kmod: smp_send_reschedule compat mtosatti
2009-05-07 20:55 ` [patch 3/4] KVM: use smp_send_reschedule in kvm_vcpu_kick mtosatti
2009-05-08 7:13 ` Gleb Natapov [this message]
2009-05-07 20:55 ` [patch 4/4] KVM: protect assigned dev workqueue, int handler and irq acker mtosatti
2009-05-10 16:31 ` [patch 0/4] smp_send_reschedule / assigned dev host intx race v2 Avi Kivity
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20090508071325.GB25357@redhat.com \
--to=gleb@redhat.com \
--cc=avi@redhat.com \
--cc=kvm@vger.kernel.org \
--cc=mtosatti@redhat.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.