From: Avi Kivity <avi-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
To: Alexander Graf <agraf-l3A5Bk7waGM@public.gmane.org>
Cc: kvm-ppc-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
KVM list <kvm-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>,
linuxppc-dev
<linuxppc-dev-uLR06cmDAlY/bJ5BZ2RsiQ@public.gmane.org>
Subject: Re: [PATCH 0/2] Faster MMU lookups for Book3s v3
Date: Thu, 01 Jul 2010 15:43:54 +0300 [thread overview]
Message-ID: <4C2C8D8A.7080103@redhat.com> (raw)
In-Reply-To: <4C2C89D6.3090401-l3A5Bk7waGM@public.gmane.org>
On 07/01/2010 03:28 PM, Alexander Graf wrote:
>
>>
>>> Wouldn't it speed up dirty bitmap flushing
>>> a lot if we'd just have a simple linked list of all sPTEs belonging to
>>> that memslot?
>>>
>>>
>> The complexity is O(pages_in_slot) + O(sptes_for_slot).
>>
>> Usually, every page is mapped at least once, so sptes_for_slot
>> dominates. Even when it isn't so, iterating the rmap base pointers is
>> very fast since they are linear in memory, while sptes are scattered
>> around, causing cache misses.
>>
> Why would pages be mapped often?
It's not a question of how often they are mapped (shadow: very often;
tdp: very rarely) but what percentage of pages are mapped. It's usually
100%.
> Don't you use lazy spte updates?
>
We do, but given enough time, the guest will touch its entire memory.
>> Another consideration is that on x86, an spte occupies just 64 bits
>> (for the hardware pte); if there are multiple sptes per page (rare on
>> modern hardware), there is also extra memory for rmap chains;
>> sometimes we also allocate 64 bits for the gfn. Having an extra
>> linked list would require more memory to be allocated and maintained.
>>
> Hrm. I was thinking of not having an rmap but only using the chain. The
> only slots that would require such a chain would be the ones with dirty
> bitmapping enabled, so no penalty for normal RAM (unless you use kemari
> or live migration of course).
>
You could also only chain writeable ptes.
> But then again I probably do need an rmap for the mmu_notifier magic,
> right? But I'd rather prefer to have that code path be slow and the
> dirty bitmap invalidation fast than the other way around. Swapping is
> slow either way.
>
It's not just swapping, it's also page ageing. That needs to be fast.
Does ppc have a hardware-set referenced bit? If so, you need a fast
rmap for mmu notifiers.
--
error compiling committee.c: too many arguments to function
next prev parent reply other threads:[~2010-07-01 12:43 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-06-30 13:18 [PATCH 0/2] Faster MMU lookups for Book3s v3 Alexander Graf
[not found] ` <1277903926-12786-1-git-send-email-agraf-l3A5Bk7waGM@public.gmane.org>
2010-06-30 13:18 ` [PATCH 1/2] KVM: PPC: Add generic hpte management functions Alexander Graf
2010-06-30 13:18 ` [PATCH 2/2] KVM: PPC: Make use of hash based Shadow MMU Alexander Graf
2010-07-01 7:29 ` [PATCH 0/2] Faster MMU lookups for Book3s v3 Avi Kivity
[not found] ` <4C2C43C0.4000400-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2010-07-01 8:18 ` Alexander Graf
[not found] ` <7F9C2F52-3E95-4A22-B973-DACEBC95E5F4-l3A5Bk7waGM@public.gmane.org>
2010-07-01 8:40 ` Avi Kivity
2010-07-01 10:00 ` Alexander Graf
2010-07-01 11:14 ` Avi Kivity
2010-07-01 12:28 ` Alexander Graf
[not found] ` <4C2C89D6.3090401-l3A5Bk7waGM@public.gmane.org>
2010-07-01 12:43 ` Avi Kivity [this message]
[not found] ` <4C2C8D8A.7080103-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2010-07-01 12:52 ` Alexander Graf
[not found] ` <4C2C8FA8.1030702-l3A5Bk7waGM@public.gmane.org>
2010-07-01 13:42 ` Avi Kivity
2010-07-02 2:54 ` Benjamin Herrenschmidt
2010-07-02 2:50 ` Benjamin Herrenschmidt
2010-07-01 15:40 ` Marcelo Tosatti
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=4C2C8D8A.7080103@redhat.com \
--to=avi-h+wxahxf7alqt0dzr+alfa@public.gmane.org \
--cc=agraf-l3A5Bk7waGM@public.gmane.org \
--cc=kvm-ppc-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
--cc=kvm-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
--cc=linuxppc-dev-uLR06cmDAlY/bJ5BZ2RsiQ@public.gmane.org \
/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