Re: [PATCH 0/2] Faster MMU lookups for Book3s v3
From: Alexander Graf <hidden>
Date: 2010-07-01 10:00:48
Also in:
kvm
From: Alexander Graf <hidden>
Date: 2010-07-01 10:00:48
Also in:
kvm
Avi Kivity wrote:
On 07/01/2010 11:18 AM, Alexander Graf wrote:quoted
How does dirty bitmap flushing work on x86 atm? I loop through all mapped pages and flush the ones that match the range of the region I need to flush. But wouldn't it be a lot more efficient to have an hlist in the memslot and loop through that when I need to flush that memslot?x86 loops through the reverse-map link list rooted at the memory slot. The linked list links all sptes for a single hva. So, it's like you describe, except it's an array of lists instead of a single list. We need per-page rmap lists to be able to remove a page's sptes in response to an mmu notifier callback, and to be able to write protect a guest page if it's used as a page table.
But doesn't that mean that you still need to loop through all the hvas that you want to invalidate? 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? Alex