On Sun, 15 Aug 2004, David S. Miller wrote: >> munmap() can destroy pmd and pte tables. somehow we have >> to protect against that, and currently that is having the >> VMA semaphore held for reading, see free_pgtables(). On Sun, Aug 15, 2004 at 08:29:11PM -0700, Christoph Lameter wrote: > It looks to me like the code takes care to provide the correct > sequencing so that the integrity of pgd,pmd and pte links is > guaranteed from the viewpoint of the MMU in the CPUs. munmap is there to > protect one kernel thread messing with the addresses of these entities > that might be stored in another threads register. > Therefore it is safe to walk the chain only holding the semaphore read > lock? Detached pagetables are assumed to be freeable after a TLB flush IPI. Previously holding ->page_table_lock would prevent the shootdowns of links to the pagetable page from executing concurrently with modifications to the pagetable page. Disabling interrupts or otherwise inhibiting the progress of the IPI'ing cpu is needed to prevent dereferencing freed pagetables and incorrect accounting based on contents of about-to-be-freed pagetables. Reference counting pagetable pages may help here, where the final put would be responsible for unaccounting the various things in the pagetable page. -- wli - To unsubscribe from this list: send the line "unsubscribe linux-ia64" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.htmlReceived on Mon Aug 16 10:39:35 2004
This archive was generated by hypermail 2.1.8 : 2005-08-02 09:20:29 EST