Izik Eidus wrote:
Avi Kivity wrote:
Izik Eidus wrote:
change the dirty page tracking to work with dirty bity instead of
page fault.
right now the dirty page tracking work with the help of page faults,
when we
want to track a page for being dirty, we write protect it and we
mark it dirty
when we have write page fault, this code move into looking at the
dirty bit
of the spte.
I'm concerned about performance during the later stages of live
migration. Even if only 1000 pages are dirty, you still have to look
at 2,000,000 or more ptes (for an 8GB guest). That's a lot of overhead.
I think we need to use the page table hierarchy, write protect the
upper page table so we know which page tables we need to look at.
Great idea, so i add another bitmap for the page directory?
No, why?
You need to drop write access to the shadow root ptes. When you get a
fault, restore write access to the root ptes, but drop access from the
L3 ptes, and so on until you reach the L1 ptes. There you clear the
dirty bits, and add the page to a list of pages that need to be checked
for dirty bits. This way you only check ptes that have a chance to be
dirty.
I'm not sure that will be faster, but there's a good chance.
--
error compiling committee.c: too many arguments to function
--
To unsubscribe from this list: send the line "unsubscribe kvm" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html