All of lore.kernel.org
 help / color / mirror / Atom feed
From: Marcelo Tosatti <marcelo@kvack.org>
To: Avi Kivity <avi@qumranet.com>
Cc: kvm-devel@lists.sourceforge.net
Subject: Re: [patch 2/5] KVM: hypercall based pte updates and TLB flushes
Date: Sun, 17 Feb 2008 11:51:48 -0300	[thread overview]
Message-ID: <20080217145148.GA31750@dmt> (raw)
In-Reply-To: <47B8330B.6050405@qumranet.com>

On Sun, Feb 17, 2008 at 03:13:47PM +0200, Avi Kivity wrote:
> Avi Kivity wrote:
> >Marcelo Tosatti wrote:
> >>Hypercall based pte updates are faster than faults, and also allow use
> >>of the lazy MMU mode to batch operations.
> >>
> >>Don't report the feature if two dimensional paging is enabled.
> >>
> >>Signed-off-by: Marcelo Tosatti <mtosatti@redhat.com>
> >>+/*
> >>+ * We only need to hook operations that are MMU writes.  We hook 
> >>these so that
> >>+ * we can use lazy MMU mode to batch these operations.  We could 
> >>probably
> >>+ * improve the performance of the host code if we used some of the 
> >>information
> >>+ * here to simplify processing of batched writes.
> >>+ */
> >>  
> >
> >One option is, if the guest promises never to write to a page table 
> >directly, is to avoid write protecting guest page tables.  I think the 
> >shadow code can handle it (since the gfn/spte relationship is 
> >maintained by shadow code, and doesn't require reading the guest page 
> >tables), but am not sure.
> >
> 
> In addition to reducing mmu work for write protection, this allows more 
> efficient use of large pages.

Yes, and gets rid of the remote TLB flushing.

Issue is the paravirt_ops code in Linux does not cover all pte updates
(bit updates, ptep_get_and_clear, etc).

The plan is to get the basic infrastructure merged into KVM first (which
is a significant improvement already) and then later have paravirt_ops
cover all updates, disabling write protection.

-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2008.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/

  reply	other threads:[~2008-02-17 14:51 UTC|newest]

Thread overview: 21+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <20080216220924.733723618@redhat.com>
2008-02-16 22:09 ` [patch 1/5] KVM: add basic paravirt support Marcelo Tosatti
2008-02-16 22:09 ` [patch 2/5] KVM: hypercall based pte updates and TLB flushes Marcelo Tosatti
2008-02-16 22:09 ` [patch 3/5] KVM: hypercall batching Marcelo Tosatti
2008-02-16 22:09 ` [patch 4/5] KVM: ignore zapped root pagetables Marcelo Tosatti
2008-02-16 22:09 ` [patch 5/5] KVM: VMX cr3 cache support Marcelo Tosatti
2008-02-16 23:37 ` [patch 0/5] KVM paravirt MMU updates and cr3 caching Anthony Liguori
2008-02-17  2:24   ` Marcelo Tosatti
     [not found] ` <20080216221220.843135254@redhat.com>
2008-02-17  8:28   ` [patch 2/5] KVM: hypercall based pte updates and TLB flushes Avi Kivity
2008-02-17 13:13     ` Avi Kivity
2008-02-17 14:51       ` Marcelo Tosatti [this message]
2008-02-17 14:57         ` Avi Kivity
2008-02-18  5:00           ` Marcelo Tosatti
2008-02-17  8:32   ` Avi Kivity
     [not found] ` <20080216221221.002948712@redhat.com>
2008-02-17  8:52   ` [patch 4/5] KVM: ignore zapped root pagetables Avi Kivity
     [not found] ` <20080216221220.924823582@redhat.com>
2008-02-17  8:40   ` [patch 3/5] KVM: hypercall batching Avi Kivity
2008-02-18 16:47     ` Marcelo Tosatti
2008-02-17 18:40   ` Hollis Blanchard
2008-02-18  8:06     ` Avi Kivity
2008-02-18  8:43       ` Christian Borntraeger
2008-02-18  8:47         ` Avi Kivity
     [not found]       ` <1203361276.3428.6.camel@basalt>
2008-02-19  8:30         ` 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=20080217145148.GA31750@dmt \
    --to=marcelo@kvack.org \
    --cc=avi@qumranet.com \
    --cc=kvm-devel@lists.sourceforge.net \
    /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.