From: Nikunj A Dadhania <nikunj@linux.vnet.ibm.com>
To: Marcelo Tosatti <mtosatti@redhat.com>
Cc: peterz@infradead.org, mingo@elte.hu, avi@redhat.com,
raghukt@linux.vnet.ibm.com, kvm@vger.kernel.org,
linux-kernel@vger.kernel.org, x86@kernel.org, jeremy@goop.org,
vatsa@linux.vnet.ibm.com, hpa@zytor.com
Subject: Re: [PATCH v2 5/7] KVM: Introduce PV kick in flush tlb
Date: Thu, 05 Jul 2012 11:23:01 +0530 [thread overview]
Message-ID: <87pq8aah4y.fsf@abhimanyu.in.ibm.com> (raw)
In-Reply-To: <20120705023746.GC3652@amt.cnet>
On Wed, 4 Jul 2012 23:37:46 -0300, Marcelo Tosatti <mtosatti@redhat.com> wrote:
> On Tue, Jul 03, 2012 at 01:55:02PM +0530, Nikunj A Dadhania wrote:
> > On Tue, 3 Jul 2012 05:07:13 -0300, Marcelo Tosatti <mtosatti@redhat.com> wrote:
> > > On Mon, Jun 04, 2012 at 10:38:17AM +0530, Nikunj A. Dadhania wrote:
> > > > In place of looping continuously introduce a halt if we do not succeed
> > > > after some time.
> > > >
> > > > For vcpus that were running an IPI is sent. In case, it went to sleep
> > > > between this, we will be doing flush_on_enter(harmless). But as a
> > > > flush IPI was already sent, that will be processed in ipi handler,
> > > > this might result into something undesireable, i.e. It might clear the
> > > > flush_mask of a new request.
> > > >
> > > > So after sending an IPI and waiting for a while, do a halt and wait
> > > > for a kick from the last vcpu.
> > > >
> > > > Signed-off-by: Srivatsa Vaddagiri <vatsa@linux.vnet.ibm.com>
> > > > Signed-off-by: Nikunj A. Dadhania <nikunj@linux.vnet.ibm.com>
> > >
> > > Again, was it determined that this is necessary from data of
> > > benchmarking on the in-guest-mode/out-guest-mode patch?
> > >
> > No, this is more of a fix wrt algo.
>
> Please have numbers for the improvement relative to the previous
> patch.
>
I would consider this more of a correctness fix, rather than an
improvement. In this scenario, suppose vcpu1 was pre-empted out before
the delivery of the IPI. After the loop count, we find that vcpu1 did
not respond and is found pre-empted. We set the flush_on_enter flag for
the vcpu1 and proceed. During vcpu1's guest_enter we would do a
flush_on_enter. Now the vcpu1 will also receive an ipi interrupt in guest
mode, in which it will try to clear the flush_mask and acknowledge to
the interrupt. This processing of ipi would not be correct. So with this
patch, we execute a halt and wait for vcpu1 to clear the flush_mask
through the ipi interrupt.
> It introduces a dependency, these (pvtlbflush and pvspinlocks) are
> separate features. It is useful to switch them on/off individually.
>
Agree, we can also get the pv kick feature separated which can be useful
to both of the approaches, so they can become independent.
Although, tests suggests that for best results both these features
should be enabled.
Nikunj
next prev parent reply other threads:[~2012-07-05 6:01 UTC|newest]
Thread overview: 37+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-06-04 5:05 [PATCH v2 0/7] KVM paravirt remote " Nikunj A. Dadhania
2012-06-04 5:06 ` [PATCH v2 1/7] KVM Guest: Add VCPU running/pre-empted state for guest Nikunj A. Dadhania
2012-06-12 22:43 ` Marcelo Tosatti
2012-06-19 6:03 ` Nikunj A Dadhania
2012-06-04 5:06 ` [PATCH v2 2/7] KVM-HV: " Nikunj A. Dadhania
2012-06-04 5:07 ` [PATCH v2 3/7] KVM: Add paravirt kvm_flush_tlb_others Nikunj A. Dadhania
2012-06-12 23:02 ` Marcelo Tosatti
2012-06-19 6:11 ` Nikunj A Dadhania
2012-06-21 12:26 ` Marcelo Tosatti
2012-07-03 7:55 ` Marcelo Tosatti
2012-07-03 8:19 ` Nikunj A Dadhania
2012-07-05 2:09 ` Marcelo Tosatti
2012-07-05 5:55 ` Nikunj A Dadhania
2012-07-06 9:47 ` Nikunj A Dadhania
2012-07-03 8:11 ` Marcelo Tosatti
2012-07-03 8:27 ` Nikunj A Dadhania
2012-06-04 5:07 ` [PATCH v2 4/7] KVM: export kvm_kick_vcpu for pv_flush Nikunj A. Dadhania
2012-06-04 5:08 ` [PATCH v2 5/7] KVM: Introduce PV kick in flush tlb Nikunj A. Dadhania
2012-07-03 8:07 ` Marcelo Tosatti
2012-07-03 8:25 ` Nikunj A Dadhania
2012-07-05 2:37 ` Marcelo Tosatti
2012-07-05 5:53 ` Nikunj A Dadhania [this message]
2012-06-04 5:08 ` [PATCH v2 6/7] kvm,x86: RCU based table free Nikunj A. Dadhania
2012-06-05 10:48 ` Stefano Stabellini
2012-06-05 11:08 ` Nikunj A Dadhania
2012-06-05 11:58 ` Stefano Stabellini
2012-06-05 13:04 ` Nikunj A Dadhania
2012-06-05 13:08 ` Peter Zijlstra
2012-06-05 13:26 ` Stefano Stabellini
2012-06-05 13:31 ` Peter Zijlstra
2012-06-05 13:41 ` Stefano Stabellini
2012-08-01 11:23 ` Stefano Stabellini
2012-08-01 12:12 ` Nikunj A Dadhania
2012-08-01 12:59 ` Stefano Stabellini
2012-06-05 15:29 ` Nikunj A Dadhania
2012-06-05 13:21 ` Stefano Stabellini
2012-06-04 5:08 ` [PATCH v2 7/7] Flush page-table pages before freeing them Nikunj A. Dadhania
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=87pq8aah4y.fsf@abhimanyu.in.ibm.com \
--to=nikunj@linux.vnet.ibm.com \
--cc=avi@redhat.com \
--cc=hpa@zytor.com \
--cc=jeremy@goop.org \
--cc=kvm@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@elte.hu \
--cc=mtosatti@redhat.com \
--cc=peterz@infradead.org \
--cc=raghukt@linux.vnet.ibm.com \
--cc=vatsa@linux.vnet.ibm.com \
--cc=x86@kernel.org \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
Powered by JetHome