On 03/29/2012 07:11 PM, Avi Kivity wrote: >> +/* Return true if the spte is dropped. */ >> +static bool spte_write_protect(struct kvm *kvm, u64 *sptep, bool large, >> + int *flush) > > bool *flush > Okay, will fix. >> +{ >> + u64 spte = *sptep; >> + >> + if (!is_writable_pte(spte)) >> + return false; >> + >> + *flush |= true; >> + >> + if (large) { >> + pgprintk("rmap_write_protect(large): spte %p %llx\n", >> + spte, *spte); >> + BUG_ON(!is_large_pte(spte)); >> + >> + drop_spte(kvm, sptep); >> + --kvm->stat.lpages; >> + return true; >> + } > > As I mentioned before, write-protecting a large spte is a good idea, > since it moves some work from protect-time to fault-time, so it reduces > jitter. This removes the need for the return value. > > It may also be a good idea to populate the lower level instead of > dropping the spte. > > All outside this patch set of course. I'd add those ideas to the wiki > but it won't let me edit at the moment. > I saw your idea, i will pick it up after this patch if no one does it at that time. :) -- 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