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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox