From: Xiao Guangrong <xiaoguangrong@linux.vnet.ibm.com>
To: Avi Kivity <avi@redhat.com>
Cc: kvm@vger.kernel.org, Marcelo Tosatti <mtosatti@redhat.com>
Subject: Re: [PATCH 0/2] Simplify RCU freeing of shadow pages
Date: Mon, 23 Apr 2012 15:28:29 +0800 [thread overview]
Message-ID: <4F95049D.2050304@linux.vnet.ibm.com> (raw)
In-Reply-To: <4F940673.1030407@redhat.com>
On 04/22/2012 09:24 PM, Avi Kivity wrote:
> 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 agree.
>> 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?
Batch free shadow page, for example, list 10 sp in the invalid_list, then
just need one rcu_free to free them.
>
>> 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.
>
Yes. So we need a refcount out of mmu-lock, and see the shadow page
is stil pointed the upper level (prevent not re-alloced). This way
may make code more complex.
next prev parent reply other threads:[~2012-04-23 7:28 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
2012-04-23 7:28 ` Xiao Guangrong [this message]
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=4F95049D.2050304@linux.vnet.ibm.com \
--to=xiaoguangrong@linux.vnet.ibm.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.