On 12/02/2018 15:38, Benjamin Herrenschmidt wrote: > On Mon, 2018-02-12 at 12:01 +0100, Paolo Bonzini wrote: >> On 12/02/2018 11:54, Benjamin Herrenschmidt wrote: >>> On Mon, 2018-02-12 at 11:41 +0100, Paolo Bonzini wrote: >>>> In fact I don't know about PPC but on x86 we actually do >>>> write-protection except on the newest processors that have a dirty page >>>> _log_ in addition to the bits. >>> >>> Can you explain ? I'm not sure I got what you mean here. >> >> On recent processors you can get an exit to the hypervisor every time N >> dirty pages are marked dirty, and the processor also keeps a log of >> _which_ pages are marked dirty. Without the log, you'd have to walk the >> entire radix tree to find the dirty pages, which is so expensive that >> without the log we don't use dirty bits at all. > > Oh interesting. How is that log "kept" ? Some kind of HW fifo ? Yeah, forced vmexit after 512 dirty pages, plus a pointer to the last written entry (kept in the hypervisor->processor communication block). Pretty clever. Paolo