From: Takuya Yoshikawa <yoshikawa.takuya@oss.ntt.co.jp>
To: Avi Kivity <avi@redhat.com>
Cc: Takuya Yoshikawa <takuya.yoshikawa@gmail.com>,
Marcelo Tosatti <mtosatti@redhat.com>,
kvm@vger.kernel.org
Subject: Re: [PATCH 4/4] KVM: MMU: Make mmu_shrink() scan nr_to_scan shadow pages
Date: Mon, 19 Dec 2011 18:22:31 +0900 [thread overview]
Message-ID: <4EEF0257.9090507@oss.ntt.co.jp> (raw)
In-Reply-To: <4EEEF92F.9020807@redhat.com>
(2011/12/19 17:43), Avi Kivity wrote:
> Well, if one guest is twice as large as other guests, then it will want
> twice as many shadow pages. So our goal should be to zap pages from the
> guest with the highest (shadow pages / memory) ratio.
>
>>>
>>> Can you measure whether there is a significant difference in a synthetic
>>> workload, and what that change is? Perhaps apply {moderate, high} memory
>>> pressure load with {2, 4, 8, 16} VMs or something like that.
>>>
>>
>> I was running 4 VMs on my machine with enough high memory pressure. The problem
>> was that mmu_shrink() was not tuned to be called in usual memory pressures: what
>> I did was changing the seeks and batch parameters and making ept=0.
>>
>> At least, I have checked that if I make one VM do meaningless many copies, letting
>> others keep silent, the shrinker frees shadow pages intensively from that one.
>>
>>
>> Anyway, I don't think making the shrinker call mmu_shrink() with the default batch
>> size, nr_to_scan=128, and just trying to free one shadow page is a good behaviour.
>
> Yes, it's very conservative. But on the other hand the shrinker is
> tuned for dcache and icache, where there are usually tons of useless
> objects. If we have to free something, I'd rather free them instead of
> mmu pages which tend to get recreated soon.
>
OK, to satisfy the requirements, I will do:
1. find the guest with the highest (shadow pages / memory) ratio
2. just zap one page from that guest, keeping the current conservative rate
I will update the patch.
Takuya
next prev parent reply other threads:[~2011-12-19 9:21 UTC|newest]
Thread overview: 19+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-12-11 22:22 [PATCH 0/4] KVM: Make mmu_shrink() scan nr_to_scan shadow pages Takuya Yoshikawa
2011-12-11 22:24 ` [PATCH 1/4] KVM: Rename vm_list to kvm_list to avoid confusion Takuya Yoshikawa
2011-12-12 3:16 ` Xiao Guangrong
2011-12-12 4:04 ` Takuya Yoshikawa
2011-12-12 4:51 ` Xiao Guangrong
2011-12-12 7:10 ` Takuya Yoshikawa
2011-12-11 22:24 ` [PATCH 2/4] KVM: MMU: Make common preparation code for zapping sp into a function Takuya Yoshikawa
2011-12-11 22:25 ` [PATCH 3/4] KVM: MMU: Make preparation for zapping some sp into a separate function Takuya Yoshikawa
2011-12-12 1:19 ` Takuya Yoshikawa
2011-12-11 22:26 ` [PATCH 4/4] KVM: MMU: Make mmu_shrink() scan nr_to_scan shadow pages Takuya Yoshikawa
2011-12-16 11:06 ` Marcelo Tosatti
2011-12-16 14:58 ` Takuya Yoshikawa
2011-12-19 8:43 ` Avi Kivity
2011-12-19 9:22 ` Takuya Yoshikawa [this message]
2011-12-19 9:26 ` Avi Kivity
2011-12-19 9:56 ` Takuya Yoshikawa
2011-12-19 10:03 ` Avi Kivity
2011-12-19 10:21 ` Takuya Yoshikawa
2011-12-19 10:24 ` 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=4EEF0257.9090507@oss.ntt.co.jp \
--to=yoshikawa.takuya@oss.ntt.co.jp \
--cc=avi@redhat.com \
--cc=kvm@vger.kernel.org \
--cc=mtosatti@redhat.com \
--cc=takuya.yoshikawa@gmail.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.