![]() | |||||||||||||
Messages in this thread |
Hello, > > + pte = huge_pte_alloc(mm, address); > > + set_huge_pte(mm, vma, page, pte, vma->vm_flags & VM_WRITE); > > This looks broken. Another CPU could have raced to the same fault > and already added an PTE here. You have to handle that. > > (my i386 version originally had the same problem) Yes, you are true. In the fault handler, we should use find_lock_page() instead of find_get_page() to find a hugepage associated with the fault address. After that pte_none(*pte) should be called again to check whether some races has happened. > > +/* update_mmu_cache(vma, address, *pte); */ > > I have not studied low level IA64 VM in detail, but don't you need > some kind of TLB flush here? > > -Andi Thank you, Hirokazu Takahashi. - 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/ | ||||||||||||
| Last update: 2005-03-22 13:01 [from the cache] ©2003-2008 | |||||||||||||