Thread (9 messages) 9 messages, 2 authors, 2012-10-26

Re: [PATCH 1/2] numa, mm: drop redundant check in do_huge_pmd_numa_page()

From: Kirill A. Shutemov <hidden>
Date: 2012-10-26 14:34:04
Also in: lkml

On Fri, Oct 26, 2012 at 04:07:44PM +0200, Peter Zijlstra wrote:
On Fri, 2012-10-26 at 16:57 +0300, Kirill A. Shutemov wrote:
quoted
quoted
quoted
Yes, this code will catch it:

    /* if an huge pmd materialized from under us just retry later */
    if (unlikely(pmd_trans_huge(*pmd)))
            return 0;

If the pmd is under splitting it's still a pmd_trans_huge().
OK, so then we simply keep taking the same fault until the split is
complete? Wouldn't it be better to wait for it instead of spin on
faults?
IIUC, on next fault we will wait split the page in fallow_page(). 
What follow_page()?, a regular hardware page-fault will not call
follow_page() afaict, we do a down_read(), find_vma() and call
handle_mm_fault() -- with a lot of error and corner case checking in
between.
Yeah, you're right. Then, it seems we're spinning on the fault until the
page is splitted.

I'm not sure how long spliting takes and if splitting itself can fix some
fault reason.

-- 
 Kirill A. Shutemov

Attachments

Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help