lists.openwall.net | lists / announce owl-users owl-dev john-users john-dev passwdqc-users yescrypt popa3d-users / oss-security kernel-hardening musl sabotage tlsify passwords / crypt-dev xvendor / Bugtraq Full-Disclosure linux-kernel linux-netdev linux-ext4 linux-hardening linux-cve-announce PHC | |
Open Source and information security mailing list archives
| ||
|
Date: Mon, 29 Jul 2013 14:28:20 +0900 From: Joonsoo Kim <iamjoonsoo.kim@....com> To: Andrew Morton <akpm@...ux-foundation.org> Cc: Rik van Riel <riel@...hat.com>, Mel Gorman <mgorman@...e.de>, Michal Hocko <mhocko@...e.cz>, "Aneesh Kumar K.V" <aneesh.kumar@...ux.vnet.ibm.com>, KAMEZAWA Hiroyuki <kamezawa.hiroyu@...fujitsu.com>, Hugh Dickins <hughd@...gle.com>, Davidlohr Bueso <davidlohr.bueso@...com>, David Gibson <david@...son.dropbear.id.au>, linux-mm@...ck.org, linux-kernel@...r.kernel.org, Joonsoo Kim <js1304@...il.com>, Wanpeng Li <liwanp@...ux.vnet.ibm.com>, Naoya Horiguchi <n-horiguchi@...jp.nec.com>, Hillf Danton <dhillf@...il.com>, Joonsoo Kim <iamjoonsoo.kim@....com> Subject: [PATCH v3 8/9] mm, hugetlb: remove decrement_hugepage_resv_vma() Now, Checking condition of decrement_hugepage_resv_vma() and vma_has_reserves() is same, so we can clean-up this function with vma_has_reserves(). Additionally, decrement_hugepage_resv_vma() has only one call site, so we can remove function and embed it into dequeue_huge_page_vma() directly. This patch implement it. Reviewed-by: Wanpeng Li <liwanp@...ux.vnet.ibm.com> Reviewed-by: Aneesh Kumar K.V <aneesh.kumar@...ux.vnet.ibm.com> Signed-off-by: Joonsoo Kim <iamjoonsoo.kim@....com> diff --git a/mm/hugetlb.c b/mm/hugetlb.c index ca15854..4b1b043 100644 --- a/mm/hugetlb.c +++ b/mm/hugetlb.c @@ -434,25 +434,6 @@ static int is_vma_resv_set(struct vm_area_struct *vma, unsigned long flag) return (get_vma_private_data(vma) & flag) != 0; } -/* Decrement the reserved pages in the hugepage pool by one */ -static void decrement_hugepage_resv_vma(struct hstate *h, - struct vm_area_struct *vma) -{ - if (vma->vm_flags & VM_NORESERVE) - return; - - if (vma->vm_flags & VM_MAYSHARE) { - /* Shared mappings always use reserves */ - h->resv_huge_pages--; - } else if (is_vma_resv_set(vma, HPAGE_RESV_OWNER)) { - /* - * Only the process that called mmap() has reserves for - * private mappings. - */ - h->resv_huge_pages--; - } -} - /* Reset counters to 0 and clear all HPAGE_RESV_* flags */ void reset_vma_resv_huge_pages(struct vm_area_struct *vma) { @@ -466,10 +447,18 @@ static int vma_has_reserves(struct vm_area_struct *vma) { if (vma->vm_flags & VM_NORESERVE) return 0; + + /* Shared mappings always use reserves */ if (vma->vm_flags & VM_MAYSHARE) return 1; + + /* + * Only the process that called mmap() has reserves for + * private mappings. + */ if (is_vma_resv_set(vma, HPAGE_RESV_OWNER)) return 1; + return 0; } @@ -564,8 +553,8 @@ retry_cpuset: if (cpuset_zone_allowed_softwall(zone, htlb_alloc_mask)) { page = dequeue_huge_page_node(h, zone_to_nid(zone)); if (page) { - if (!avoid_reserve) - decrement_hugepage_resv_vma(h, vma); + if (!avoid_reserve && vma_has_reserves(vma)) + h->resv_huge_pages--; break; } } -- 1.7.9.5 -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@...r.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists