lkml.org 
[lkml]   [2011]   [Jan]   [21]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 1/7] hugetlb: check swap entry in follow_hugetlb_page()
    Date
    KVM host calls follow_hugetlb_page() in HVA-PFN translation
    (through get_user_pages(),) so we need to have it handle swap
    entry to detect HWPOISONed or migrating hugepages.

    Signed-off-by: Naoya Horiguchi <n-horiguchi@ah.jp.nec.com>
    ---
    mm/hugetlb.c | 4 +++-
    1 files changed, 3 insertions(+), 1 deletions(-)

    diff --git v2.6.38-rc1/mm/hugetlb.c v2.6.38-rc1/mm/hugetlb.c
    index bb0b7c1..97c7471 100644
    --- v2.6.38-rc1/mm/hugetlb.c
    +++ v2.6.38-rc1/mm/hugetlb.c
    @@ -2731,6 +2731,7 @@ int follow_hugetlb_page(struct mm_struct *mm, struct vm_area_struct *vma,
    while (vaddr < vma->vm_end && remainder) {
    pte_t *pte;
    int absent;
    + int swap;
    struct page *page;

    /*
    @@ -2740,6 +2741,7 @@ int follow_hugetlb_page(struct mm_struct *mm, struct vm_area_struct *vma,
    */
    pte = huge_pte_offset(mm, vaddr & huge_page_mask(h));
    absent = !pte || huge_pte_none(huge_ptep_get(pte));
    + swap = !absent && !pte_present(*pte);

    /*
    * When coredumping, it suits get_dump_page if we just return
    @@ -2754,7 +2756,7 @@ int follow_hugetlb_page(struct mm_struct *mm, struct vm_area_struct *vma,
    break;
    }

    - if (absent ||
    + if (absent || swap ||
    ((flags & FOLL_WRITE) && !pte_write(huge_ptep_get(pte)))) {
    int ret;

    --
    1.7.3.4


    \
     
     \ /
      Last update: 2011-01-21 07:35    [W:4.857 / U:0.016 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site