Re: race with page_referenced_one->ptep_test_and_clear_young and pagetable setup/pulldown

Jeremy Fitzhardinge
2007-10-05T20:35:50Z

Keir Fraser wrote:
> The PREEMPT_BITS limitation is a good argument for at least taking the pte
> locks in small batches though (small batches is preferable to one-by-one
> since we will want to batch the make-readonly-and-pin hypercall requests to
> amortise the cost of the hypervisor trap).

Hm, I don't see how we can avoid holding locks for the whole pagetable
at once. We need to hold the locks from between marking a particular
pte page RO until the whole pagetable is pinned; if we don't, pte
updates can come in from other cpus, which will fault on the RO but
won't be fixed up by Xen.

Could we avoid it by doing a series of partial pins, locking and
unlocking each one in the process, and then pin the whole pagetable?

J