Andres Lagar-Cavilla 5712846808 kvm: Fix page ageing bugs
1. We were calling clear_flush_young_notify in unmap_one, but we are
within an mmu notifier invalidate range scope. The spte exists no more
(due to range_start) and the accessed bit info has already been
propagated (due to kvm_pfn_set_accessed). Simply call
clear_flush_young.

2. We clear_flush_young on a primary MMU PMD, but this may be mapped
as a collection of PTEs by the secondary MMU (e.g. during log-dirty).
This required expanding the interface of the clear_flush_young mmu
notifier, so a lot of code has been trivially touched.

3. In the absence of shadow_accessed_mask (e.g. EPT A bit), we emulate
the access bit by blowing the spte. This requires proper synchronizing
with MMU notifier consumers, like every other removal of spte's does.

Signed-off-by: Andres Lagar-Cavilla <andreslc@google.com>
Acked-by: Rik van Riel <riel@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
2014-09-24 14:07:58 +02:00
..
2014-04-18 14:20:46 +02:00
2014-04-18 14:20:46 +02:00
2012-03-28 18:11:12 +01:00
2011-05-02 17:24:48 +02:00
2014-05-02 11:34:17 -07:00
2012-03-28 18:11:12 +01:00
2014-03-04 21:47:51 +01:00
2011-04-18 09:26:48 -07:00
2012-03-20 21:48:30 +08:00
2014-05-08 08:15:34 +02:00
2013-08-05 06:35:33 -07:00
2013-02-03 18:16:27 -05:00
2014-04-07 16:36:15 -07:00
2010-10-26 16:52:08 -07:00
2012-06-25 13:48:30 +02:00
2014-09-24 14:07:58 +02:00
2011-07-22 14:39:50 +09:30
2013-04-22 15:45:03 +09:30
2010-06-09 11:12:36 +02:00
2014-02-27 08:07:39 -08:00
2014-04-07 16:36:13 -07:00
2011-03-15 15:34:15 -07:00
2012-02-20 12:52:05 -08:00
2014-06-06 16:08:11 -07:00
2014-06-04 16:53:57 -07:00
2014-04-18 14:20:46 +02:00
2012-03-28 18:11:12 +01:00