[PATCH 1/3 htlb-get_user_pages] Demand faulting for hugetlb

From: Adam Litke (agl_at_us.ibm.com)
Date: 09/06/05

  • Next message: Adam Litke: "Re: [PATCH 2/3 htlb-fault] Demand faulting for hugetlb"
    To: linux-kernel@vger.kernel.org
    Date:	Tue, 06 Sep 2005 16:57:49 -0500
    
    

    Initial Post (Thu, 18 Aug 2005)

    In preparation for hugetlb demand faulting, remove this get_user_pages()
    optimization. Since huge pages will no longer be prefaulted, we can't assume
    that the huge ptes are established and hence, calling follow_hugetlb_page() is
    not valid.

    With the follow_hugetlb_page() call removed, the normal code path will be
    triggered. follow_page() will either use follow_huge_addr() or
    follow_huge_pmd() to check for a previously faulted "page" to return. When
    this fails (ie. with demand faults), __handle_mm_fault() gets called which
    invokes the hugetlb_fault() handler to instantiate the huge page.

    This patch doesn't make a lot of sense by itself, but I've broken it out to
    facilitate discussion on this specific element of the demand fault changes.
    While coding this up, I referenced previous discussion on this topic starting
    at http://lkml.org/lkml/2004/4/13/176 , which contains more opinions about the
    correctness of this approach.

    Diffed against 2.6.13-git6

    Signed-off-by: Adam Litke <agl@us.ibm.com>

    ---
     memory.c |    5 -----
     1 files changed, 5 deletions(-)
    diff -upN reference/mm/memory.c current/mm/memory.c
    --- reference/mm/memory.c
    +++ current/mm/memory.c
    @@ -949,11 +949,6 @@ int get_user_pages(struct task_struct *t
     				|| !(flags & vma->vm_flags))
     			return i ? : -EFAULT;
     
    -		if (is_vm_hugetlb_page(vma)) {
    -			i = follow_hugetlb_page(mm, vma, pages, vmas,
    -						&start, &len, i);
    -			continue;
    -		}
     		spin_lock(&mm->page_table_lock);
     		do {
     			int write_access = write;
    -
    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/
    

  • Next message: Adam Litke: "Re: [PATCH 2/3 htlb-fault] Demand faulting for hugetlb"

    Relevant Pages

    • Re: [PATCH 1/3 htlb-get_user_pages] Demand faulting for hugetlb
      ... In preparation for hugetlb demand faulting, ... this fails (ie. with demand faults), ... facilitate discussion on this specific element of the demand fault changes. ... send the line "unsubscribe linux-kernel" in ...
      (Linux-Kernel)
    • Re: [PATCH 1/3 htlb-get_user_pages] Demand faulting for huge pages
      ... In preparation for hugetlb demand faulting, ... this fails (ie. with demand faults), ... facilitate discussion on this specific element of the demand fault changes. ... send the line "unsubscribe linux-kernel" in ...
      (Linux-Kernel)
    • Re: Call for PIIX4 chipset testers
      ... M-F-T set.] ... I demand that Bjørn_Mork may or may not have written... ... yes, I can test patches.) ... send the line "unsubscribe linux-kernel" in ...
      (Linux-Kernel)
    • Re: Supermount
      ... >> e.g ivman which uses hal and dbus. ... To mount on demand use autofs. ... send the line "unsubscribe linux-kernel" in ...
      (Linux-Kernel)
    • [PATCH 1/3] hugetlb: Remove get_user_pages optimization
      ... In preparation for hugetlb demand faulting, ... facilitate discussion on this specific element of the demand fault changes. ... diff -upN reference/mm/hugetlb.c current/mm/hugetlb.c ... send the line "unsubscribe linux-kernel" in ...
      (Linux-Kernel)