Messages in this thread | | | Date | Thu, 13 Jan 2005 11:42:14 +1100 | From | Nick Piggin <> | Subject | Re: page table lock patch V15 [0/7]: overview |
| |
Christoph Lameter wrote: > On Thu, 13 Jan 2005, Nick Piggin wrote: > > >>>Pointer operations and word size operations are atomic. So this is mostly >>>okay. >>> >>>The issue arises on architectures that have a large pte size than the >>>wordsize. This is only on i386 PAE mode and S/390. S/390 falls back to >>>the page table lock for these operations. PAE mode should do the same and >>>not use atomic ops if they cannot be made to work in a reasonable manner. >>> >> >>Yep well you should be OK then. Your implementation has the advantage >>that it only instantiates previously clear ptes... hmm, no I'm wrong, >>your ptep_set_access_flags path modifies an existing pte. I think this >>can cause subtle races in copy_page_range, and maybe other places, >>can't it? > > > ptep_set_access_flags is only used after acquiring the page_table_lock and > does not clear a pte. That is safe. The only critical thing is if a pte > would be cleared while holding the page_table_lock. That used to occur in > the swapper code but we modified that. >
I mean what used to be the ptep_set_access_flags path. Where you are now modifying a pte without the ptl. However after a second look, it seems like that won't be a problem.
> There is still an issue as Hugh rightly observed. One cannot rely on a > read of a pte/pud/pmd being atomic if the pte is > word size. This occurs > for all higher levels in handle_mm_fault. Thus we would need to either > acuire the page_table_lock for some architectures or provide primitives > get_pgd, get_pud etc that take the page_table_lock on PAE mode. ARGH. >
Yes I know. I would say that having arch-definable accessors for the page tables wouldn't be a bad idea anyway, and the flexibility may come in handy for other things.
It would be a big, annoying patch though :(
- 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/
| |