Re: [PATCH 3/4] KVM: MMU: track dirty page in speculative path properly

From: Avi Kivity
Date: Wed Jul 14 2010 - 10:25:18 EST


On 07/14/2010 05:06 PM, Marcelo Tosatti wrote:

Yeah, you are right, and i want to use another way to do it since track dirty bit
is too heavy, also it's dangerous if we miss to set page dirty.

How about just track access bit for speculative path, we set page both accessed and
dirty(if it's writable) only if the access bit is set?
A useful thing to do would be to allow read-only mappings, in the fault
path (Lai sent a few patches in that direction sometime ago but there
was no follow up).

So in the case of a read-only fault from the guest, you'd inform
get_user_pages() that read-only access is acceptable (so swapcache pages
can be mapped, or qemu can mprotect(PROT_READ) guest memory).

I'd like get_user_pages_ptes_fast(), that returns the pte along with the page. It can be used for a couple of purposes:

- on read faults or speculative mappings, ask for read access, but allow write if the pte is writeable
- stick the page size into free bits (need 2 to support 1G pages) to speed up host_mapping_level()

--
I have a truly marvellous patch that fixes the bug which this
signature is too narrow to contain.

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/