Messages in this thread | | | Date | Wed, 24 Mar 2004 15:47:58 +0100 | From | Andrea Arcangeli <> | Subject | Re: nonlinear swapping w/o pte_chains [Re: VMA_MERGING_FIXUP and patch] |
| |
On Wed, Mar 24, 2004 at 12:18:12PM +0000, Hugh Dickins wrote: > This subtlety in try_to_unmap_nonlinear_pte: > > page_map_lock(page); > /* check that we're not in between set_pte and page_add_rmap */ > if (page_mapped(page)) { > unmap_pte_page(page, vma, address + offset, ptep); > > Harmless, but isn't our acquisition of the page_table_lock guaranteeing > that it cannot be in between set_pte and page_add_rmap?
I find that fragile, see the way I implemented do_anonymous_page, other places always do page_add_rmap under the page_table_lock, but there's no reason to require that, the swapout code already checks explicitly for page_mapped after taking the page_map_lock, it has to do that anyways, so I find it nicer to do it like the above and in do_anonymous_page. - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |