[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] Fwd: Re: struct page field arrangement
On 16/3/07 11:58, "Jan Beulich" <jbeulich@xxxxxxxxxx> wrote: >> Since the pin/unpin walking only cares about pgd/pud/pmd entries, >> synchronization >> is guaranteed through mm->page_table_lock. The pte lock is used only for leaf >> entries, which are of no concern to (un)pinning. > > I'm afraid I have to correct myself. Stress testing has shown severe > problems, and after a few hours of staring at this I'm almost certain there > is a race condition here: While no new pte-s can ever appear, the logic in > mm/vmscan.c may try to modify pte-s in an mm currently being unpinned > (at least through ptep_clear_flush_young() called from > page_referenced_one() in mm/rmap.c). If this happens when > xen_pgd_unpin() has already passed the respective pte page, but > mm_walk() hasn't reached the page, yet, the update will fail (if done > directly, ptwr will no pick this up, and if done through a hypercall, the > call would fail, likely producing a BUG()). What kind of stress test did you run? I was expecting that unpin would be okay because we only call mm_unpin() from _arch_exit_mmap() if the mm_count is 1 (which I believe means the mm is not active in any task). -- Keir _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxxxxxxxx http://lists.xensource.com/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |