Re: Hugetlbpages in very large memory machines.......

From: Hirokazu Takahashi
Date: Mon Mar 15 2004 - 21:36:14 EST


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@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/