All of lore.kernel.org
 help / color / mirror / Atom feed
From: Avi Kivity <avi@redhat.com>
To: Xiao Guangrong <xiaoguangrong@linux.vnet.ibm.com>
Cc: kvm@vger.kernel.org, Marcelo Tosatti <mtosatti@redhat.com>
Subject: Re: [PATCH 0/2] Simplify RCU freeing of shadow pages
Date: Sun, 22 Apr 2012 16:24:03 +0300	[thread overview]
Message-ID: <4F940673.1030407@redhat.com> (raw)
In-Reply-To: <4F90E08D.7000903@linux.vnet.ibm.com>

On 04/20/2012 07:05 AM, Xiao Guangrong wrote:
> On 04/20/2012 12:26 AM, Avi Kivity wrote:
>
> > This patchset simplifies the freeing by RCU of mmu pages.
> > 
> > Xiao, I'm sure you thought of always freeing by RCU.  Why didn't you choose
> > this way?  I saves a couple of atomics in the fast path.
> > 
>
>
> Avi, we have discussed it last year:
>
> https://lkml.org/lkml/2011/6/29/177

Here are my own measurements (4 way guest on 24-way host):

time make -j8

ept=0, with patch

real    3m54.526s
user    11m7.074s
sys    3m29.678s

real    3m53.806s
user    11m13.654s
sys    3m26.577s

real    3m53.578s
user    11m13.491s
sys    3m26.095s

real    3m53.956s
user    11m14.866s
sys    3m25.075s

ept=1, with patch


real    2m36.510s
user    8m18.905s
sys    1m31.712s

real    2m36.642s
user    8m18.706s
sys    1m31.898s

real    2m36.952s
user    8m20.041s
sys    1m31.929s

real    2m37.036s
user    8m20.204s
sys    1m31.947s

ept=0, unpatched

real    3m51.299s
user    11m23.770s
sys    3m28.049s

real    3m52.982s
user    11m28.419s
sys    3m29.645s

real    3m52.634s
user    11m27.325s
sys    3m29.752s

real    3m53.696s
user    11m30.215s
sys    3m30.146s

ept=1, unpatched

real    2m37.134s
user    8m26.707s
sys    1m33.152s

real    2m36.838s
user    8m26.255s
sys    1m33.078s

real    2m36.826s
user    8m26.917s
sys    1m32.449s

real    2m36.877s
user    8m26.226s
sys    1m32.074s


So there is a small degradation with ept=0 and an even smaller
improvement with ept=1.  But certainly we should give more weight to
ept=1, and also factor in the code simplification.

> I have optimized/simplified for "write flood" a lot, but, unfortunately,
> the zapping sp is still frequently.
>
> Maybe we can cache the zapped sp in a invalid_sp_list to reduce the
> frequency.

To recover the time for re-initializing sp->spt?

> Or, we may use SLAB_DESTROY_BY_RCU to free the shadow page.

IIUC a kmem_cache_alloc() can reuse an allocation freed using
SLAB_DESTROY_BY_RCU before a grace period has elapsed.

-- 
error compiling committee.c: too many arguments to function


  reply	other threads:[~2012-04-22 13:24 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-04-19 16:26 [PATCH 0/2] Simplify RCU freeing of shadow pages Avi Kivity
2012-04-19 16:26 ` [PATCH 1/2] KVM: MMU: Always free shadow pages using RCU Avi Kivity
2012-04-19 16:26 ` [PATCH 2/2] KVM: MMU: Recover space used by rcu_head in struct kvm_mmu_page Avi Kivity
2012-04-20  4:05 ` [PATCH 0/2] Simplify RCU freeing of shadow pages Xiao Guangrong
2012-04-22 13:24   ` Avi Kivity [this message]
2012-04-23  7:28     ` Xiao Guangrong
2012-04-21  2:31 ` Marcelo Tosatti
2012-04-22 11:39   ` Avi Kivity
2012-04-23  7:39     ` Xiao Guangrong
2012-04-23  8:53       ` 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=4F940673.1030407@redhat.com \
    --to=avi@redhat.com \
    --cc=kvm@vger.kernel.org \
    --cc=mtosatti@redhat.com \
    --cc=xiaoguangrong@linux.vnet.ibm.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.