Received: by 10.223.176.5 with SMTP id f5csp2138404wra; Wed, 31 Jan 2018 17:51:42 -0800 (PST) X-Google-Smtp-Source: AH8x225hPkRA4EH4IugUR7vRVcBvIVMMZ2PveXRPobu0THTUrMpBPh5SgyrEUool6mp9FOzrIzVe X-Received: by 2002:a17:902:b595:: with SMTP id a21-v6mr10126610pls.253.1517449902108; Wed, 31 Jan 2018 17:51:42 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1517449902; cv=none; d=google.com; s=arc-20160816; b=h2TwIIWigozw/+ctFS73bikCDN8CiP3xu466qNKpfn398Qg6xXAUf3xO8SeXtFd0oE cqRMOePTlICCSXSmCEzSeVejqbq4OJAXLYwqRA+QFROdwGTwTudn6LnkeRA5KC2djXRY 6CcEBibgV4I82/4AvKoXmpQKgOTuPPBm3KDDXb/PmFnXl9kIfTdIWRmozzVBSZTmEzBO VN+MoGAwD1nAPCmbfTDq5lfQ4A/Lvluex6BbNe/Cmu1n6ptqRYX5aa2Ijtyk9p+Q+RON u/pl+JwVkqhN9e0R+2/pJbqYse7ceoBO0cY1R60rYk6nuOeay1tboZeV1V5Fnbn87wyH YQuQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:mime-version:content-transfer-encoding :spamdiagnosticmetadata:spamdiagnosticoutput:content-language :accept-language:in-reply-to:references:message-id:date:thread-index :thread-topic:subject:cc:to:from:dkim-signature :arc-authentication-results; bh=IatS/6C71XRzBGrjkOXEkJ90WWhU45y6juG4QWnlRKQ=; b=nfo+PlnAHiCgnTwtFBalPQyWNNEnWzKJulcM8xGAFwVV9F6cfl6HrI/dmZyNTN9DpO wMrbrvMYeOZpwfk6D4HKI8qLF+y9lCpMRKh7el3EJmfv/o4vRkPWaWWSGqKiBOpOWfef Msn4N6TfyRVXHoDh9XcIxQ1YmCh1tNUj7LbbnMlst/zGrFTI9CtYNS9nAgFJ2szFFrs/ 7y1kgnx7HsvehUKUfJxTuSe8ALhDa+w84ztOA3Cxd19fk4L7vLDWSSQuw8Cots1sLIwf RvXUHi1nnf04gQAAiiQqbMR3tw/CmbRHnfIWAC6LxmgOERvmua839UZPr+fqBV7M6Gat 2WFQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@nokia.onmicrosoft.com header.s=selector2-nokia-onmicrosoft-com header.b=TyjpGVaq; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=nokia-sbell.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id 88-v6si645205ple.76.2018.01.31.17.51.27; Wed, 31 Jan 2018 17:51:42 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@nokia.onmicrosoft.com header.s=selector2-nokia-onmicrosoft-com header.b=TyjpGVaq; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=nokia-sbell.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S932214AbeBABti (ORCPT + 99 others); Wed, 31 Jan 2018 20:49:38 -0500 Received: from mail-eopbgr00093.outbound.protection.outlook.com ([40.107.0.93]:59104 "EHLO EUR02-AM5-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S932118AbeBABth (ORCPT ); Wed, 31 Jan 2018 20:49:37 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nokia.onmicrosoft.com; s=selector2-nokia-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=IatS/6C71XRzBGrjkOXEkJ90WWhU45y6juG4QWnlRKQ=; b=TyjpGVaqvlEjFYdGAq9DfX+tDXPJAQWeGAszUPzS9DSoX0j25Nz/Ke8ES+gkExTNJnf65asa0uQkSOHHyG83xtpMK9QhUVXF8mezH1vwQGOjen94wJzH+Ty3i1EYRKZd49+RvuUV7pr7b5hsyxgRFHzKZW+7ju+9U3FjWPG3XoM= Received: from HE1PR07MB3097.eurprd07.prod.outlook.com (10.170.244.159) by HE1PR07MB1259.eurprd07.prod.outlook.com (10.164.51.145) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.464.6; Thu, 1 Feb 2018 01:49:33 +0000 Received: from HE1PR07MB3097.eurprd07.prod.outlook.com ([fe80::98d2:6836:4f56:c831]) by HE1PR07MB3097.eurprd07.prod.outlook.com ([fe80::98d2:6836:4f56:c831%13]) with mapi id 15.20.0464.012; Thu, 1 Feb 2018 01:49:33 +0000 From: "Zhang, Shile (NSB - CN/Hangzhou)" To: Russell King CC: "linux-kernel@vger.kernel.org" , "linux-arm-kernel@lists.infradead.org" Subject: RE: [PATCH] mm/hugetlb: Implement ASLR and topdown for hugetlb mappings Thread-Topic: [PATCH] mm/hugetlb: Implement ASLR and topdown for hugetlb mappings Thread-Index: AQHTVIT81tf+ySpvtUyIfKL/J47BkaMR1yPAgH18VdA= Date: Thu, 1 Feb 2018 01:49:33 +0000 Message-ID: References: <1509700757-34420-1-git-send-email-shile.zhang@nokia-sbell.com> In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [131.228.32.168] x-ms-publictraffictype: Email x-microsoft-exchange-diagnostics: 1;HE1PR07MB1259;7:ZPtX0RKRm3knDKH8ieIstCgHB3wWHr/JbbOqSXGBrsmv1JOX72GZFxGGfCCUF74ZAoVwUTpgdtE9Z0/x5vkPjFDF1GxodC4Z8Zs/vc6KLNYtW7McmxBeXAADtI4lcVP0diazztJCsFPHR7JQfsHCDUaPpjcHGap52XkwGqIe6fMOD8v4ykglyZPmLI82PiV0DrvSTA6qKaymW7SUhbfxYR68j9kEfGdg653ccdZdbXBR8gVtbyUvgdBLx7kO6Bsu x-ms-exchange-antispam-srfa-diagnostics: SSOS; x-ms-office365-filtering-ht: Tenant x-ms-office365-filtering-correlation-id: 87cae618-fc50-4117-f1a8-08d569160ad2 x-microsoft-antispam: UriScan:;BCL:0;PCL:0;RULEID:(7020095)(4652020)(4534165)(4627221)(201703031133081)(201702281549075)(48565401081)(5600026)(4604075)(3008032)(2017052603307)(7193020);SRVR:HE1PR07MB1259; x-ms-traffictypediagnostic: HE1PR07MB1259: authentication-results: spf=none (sender IP is ) smtp.mailfrom=shile.zhang@nokia-sbell.com; x-microsoft-antispam-prvs: x-exchange-antispam-report-test: UriScan:(9452136761055)(258649278758335); x-exchange-antispam-report-cfa-test: BCL:0;PCL:0;RULEID:(6040501)(2401047)(5005006)(8121501046)(10201501046)(3002001)(3231101)(11241501184)(2400082)(944501161)(93006095)(93001095)(6055026)(6041288)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123564045)(20161123558120)(20161123562045)(20161123560045)(6072148)(201708071742011);SRVR:HE1PR07MB1259;BCL:0;PCL:0;RULEID:;SRVR:HE1PR07MB1259; x-forefront-prvs: 0570F1F193 x-forefront-antispam-report: SFV:NSPM;SFS:(10019020)(396003)(346002)(376002)(39860400002)(39380400002)(366004)(189003)(199004)(13464003)(81156014)(81166006)(8936002)(97736004)(53936002)(575784001)(305945005)(86362001)(6436002)(7696005)(99286004)(9686003)(8676002)(7736002)(6916009)(4326008)(5660300001)(55016002)(66066001)(76176011)(2950100002)(105586002)(102836004)(229853002)(3280700002)(14454004)(316002)(6246003)(74316002)(59450400001)(478600001)(53546011)(6116002)(3846002)(106356001)(6506007)(54906003)(2900100001)(25786009)(3660700001)(2906002)(26005)(5250100002)(33656002)(186003)(68736007);DIR:OUT;SFP:1102;SCL:1;SRVR:HE1PR07MB1259;H:HE1PR07MB3097.eurprd07.prod.outlook.com;FPR:;SPF:None;PTR:InfoNoRecords;MX:1;A:0;LANG:en; received-spf: None (protection.outlook.com: nokia-sbell.com does not designate permitted sender hosts) x-microsoft-antispam-message-info: riPn4BbA61ekSgNzuRKRbCjmluut+tx2jSpnCJHvHJrrlGEisJTZ4twWffULYA4VWgnDybq/84iS1Psi9eom8w== spamdiagnosticoutput: 1:99 spamdiagnosticmetadata: NSPM Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-OriginatorOrg: nokia-sbell.com X-MS-Exchange-CrossTenant-Network-Message-Id: 87cae618-fc50-4117-f1a8-08d569160ad2 X-MS-Exchange-CrossTenant-originalarrivaltime: 01 Feb 2018 01:49:33.2711 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 5d471751-9675-428d-917b-70f44f9630b0 X-MS-Exchange-Transport-CrossTenantHeadersStamped: HE1PR07MB1259 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hi, Russel Sorry for spam! I'm not sure if you got this patch I sent before. Could you please help to = check if it still available? Many thanks! BR, Shile -----Original Message----- From: Zhang, Shile (NSB - CN/Hangzhou)=20 Sent: Monday, November 13, 2017 1:32 PM To: Russell King Cc: linux-kernel@vger.kernel.org; linux-arm-kernel@lists.infradead.org Subject: RE: [PATCH] mm/hugetlb: Implement ASLR and topdown for hugetlb map= pings Hi, Russell, Have you any time to check this patch? I found this issue/missing in my works, the application cannot mmap big hug= epage (about 360MB) due to no more contiguous vm from the default "TASK_UNM= MAPPED_AREA" by legacy bottom-up. We need this patch to fix this issue. Could you please help check this patch? Thanks! BR, Shile -----Original Message----- From: Shile Zhang [mailto:shile.zhang@nokia-sbell.com]=20 Sent: Friday, November 03, 2017 5:19 PM To: Russell King Cc: linux-kernel@vger.kernel.org; Zhang, Shile (NSB - CN/Hangzhou) Subject: [PATCH] mm/hugetlb: Implement ASLR and topdown for hugetlb mapping= s merge from arch/x86 Signed-off-by: Shile Zhang --- arch/arm/include/asm/page.h | 1 + arch/arm/mm/hugetlbpage.c | 85 +++++++++++++++++++++++++++++++++++++++++= ++++ 2 files changed, 86 insertions(+) diff --git a/arch/arm/include/asm/page.h b/arch/arm/include/asm/page.h index 4355f0e..994630f 100644 --- a/arch/arm/include/asm/page.h +++ b/arch/arm/include/asm/page.h @@ -144,6 +144,7 @@ extern void copy_page(void *to, const void *from); =20 #ifdef CONFIG_KUSER_HELPERS #define __HAVE_ARCH_GATE_AREA 1 +#define HAVE_ARCH_HUGETLB_UNMAPPED_AREA #endif =20 #ifdef CONFIG_ARM_LPAE diff --git a/arch/arm/mm/hugetlbpage.c b/arch/arm/mm/hugetlbpage.c index fcafb52..46ed0c8 100644 --- a/arch/arm/mm/hugetlbpage.c +++ b/arch/arm/mm/hugetlbpage.c @@ -45,3 +45,88 @@ int pmd_huge(pmd_t pmd) { return pmd_val(pmd) && !(pmd_val(pmd) & PMD_TABLE_BIT); } + +#ifdef CONFIG_HUGETLB_PAGE +static unsigned long hugetlb_get_unmapped_area_bottomup(struct file *file, + unsigned long addr, unsigned long len, + unsigned long pgoff, unsigned long flags) +{ + struct hstate *h =3D hstate_file(file); + struct vm_unmapped_area_info info; + + info.flags =3D 0; + info.length =3D len; + info.low_limit =3D current->mm->mmap_legacy_base; + info.high_limit =3D TASK_SIZE; + info.align_mask =3D PAGE_MASK & ~huge_page_mask(h); + info.align_offset =3D 0; + return vm_unmapped_area(&info); +} + +static unsigned long hugetlb_get_unmapped_area_topdown(struct file *file, + unsigned long addr0, unsigned long len, + unsigned long pgoff, unsigned long flags) +{ + struct hstate *h =3D hstate_file(file); + struct vm_unmapped_area_info info; + unsigned long addr; + + info.flags =3D VM_UNMAPPED_AREA_TOPDOWN; + info.length =3D len; + info.low_limit =3D PAGE_SIZE; + info.high_limit =3D current->mm->mmap_base; + info.align_mask =3D PAGE_MASK & ~huge_page_mask(h); + info.align_offset =3D 0; + addr =3D vm_unmapped_area(&info); + + /* + * A failed mmap() very likely causes application failure, + * so fall back to the bottom-up function here. This scenario + * can happen with large stack limits and large mmap() + * allocations. + */ + if (addr & ~PAGE_MASK) { + VM_BUG_ON(addr !=3D -ENOMEM); + info.flags =3D 0; + info.low_limit =3D TASK_UNMAPPED_BASE; + info.high_limit =3D TASK_SIZE; + addr =3D vm_unmapped_area(&info); + } + + return addr; +} + +unsigned long +hugetlb_get_unmapped_area(struct file *file, unsigned long addr, + unsigned long len, unsigned long pgoff, unsigned long flags) +{ + struct hstate *h =3D hstate_file(file); + struct mm_struct *mm =3D current->mm; + struct vm_area_struct *vma; + + if (len & ~huge_page_mask(h)) + return -EINVAL; + if (len > TASK_SIZE) + return -ENOMEM; + + if (flags & MAP_FIXED) { + if (prepare_hugepage_range(file, addr, len)) + return -EINVAL; + return addr; + } + + if (addr) { + addr =3D ALIGN(addr, huge_page_size(h)); + vma =3D find_vma(mm, addr); + if (TASK_SIZE - len >=3D addr && + (!vma || addr + len <=3D vma->vm_start)) + return addr; + } + if (mm->get_unmapped_area =3D=3D arch_get_unmapped_area) + return hugetlb_get_unmapped_area_bottomup(file, addr, len, + pgoff, flags); + else + return hugetlb_get_unmapped_area_topdown(file, addr, len, + pgoff, flags); +} +#endif /* CONFIG_HUGETLB_PAGE */ --=20 2.6.2