Takuya Yoshikawa <yoshikawa.tak...@oss.ntt.co.jp> wrote: > + while (mask) { > + rmapp = &slot->rmap[gfn_offset + __ffs(mask)]; > + __rmap_write_protect(kvm, rmapp, PT_PAGE_TABLE_LEVEL); > > - return write_protected; > + /* clear the first set bit */ > + mask &= mask - 1; > + } > }
while (mask) { fsbit = __ffs(mask); gfn_offset += fsbit; mask >>= fsbit + 1; rmapp = &slot->rmap[gfn_offset]; __rmap_write_protect(kvm, rmapp, PT_PAGE_TABLE_LEVEL); } Seems to be better: BSF friendly. I will update this function and post the result with dirty-log-perf output! Takuya -- To unsubscribe from this list: send the line "unsubscribe kvm" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html