KVM: Reduce misfirings of the fork detector
authorAvi Kivity <avi@qumranet.com>
Mon, 30 Apr 2007 14:05:38 +0000 (17:05 +0300)
committerAvi Kivity <avi@qumranet.com>
Mon, 16 Jul 2007 09:05:38 +0000 (12:05 +0300)
commita25f7e1f8c1ff68213a63dada9d5e32dc1a0f587
treef1c08d4c6f6736561a42dd4d9462fb97db9c75c3
parent05e0c8c344dd356b42e81bdf0d47d2b884bf49b5
KVM: Reduce misfirings of the fork detector

The kvm mmu tries to detects forks by looking for repeated writes to a
page table.  If it sees a fork, it unshadows the page table so the page
table copying can proceed at native speed instead of being emulated.

However, the detector also triggered on simple demand paging access patterns:
a linear walk of memory would of course cause repeated writes to the same
pagetable page, causing it to unshadow prematurely.

Fix by resetting the fork detector if we detect a demand fault.

Signed-off-by: Avi Kivity <avi@qumranet.com>
drivers/kvm/paging_tmpl.h