Received: by 10.223.164.202 with SMTP id h10csp2890783wrb; Sun, 12 Nov 2017 21:33:40 -0800 (PST) X-Google-Smtp-Source: AGs4zMYb0pdAnhSjeKJBXi2NW9+iiJr1UUK/WCPpfbqqx3p6CUxdXxBiyw0jdWKNFCwaR7+nAymL X-Received: by 10.101.73.205 with SMTP id t13mr7608854pgs.289.1510551220378; Sun, 12 Nov 2017 21:33:40 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1510551220; cv=none; d=google.com; s=arc-20160816; b=FmFOKG+BvGQCh7xkZAD/aZHUfya5Bf7elsOQkxeawQkU+qzP8uVvDKhdgZLAUoruGL QDNXHsl0fUv+hHgZe5ThsASTfBhNSlow6wvZ1t3fdPgBer70yiMhizDlLeua+bEHgUL0 AWksXCzXzMwyscJRtdE355Z9A4NjLVbbwHvJGtbdtakXI0TRfjkB1NTpE/Bb7FNJUomA 6M2u8kU5Espipc+dNDCrANrsJLpm4uRAaMEJX3F1iCnVWQ3UstZtRqJCPMSi62aolTpM ZYm4IDfIqXnnTHkpJEhoomyIgOoV0CkyTn9tRJgGYSyZ8WiikPY8TNZvxtLq+VN2sTD5 WjaQ== 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=imjKQ3QEmRkisik9zjRe9e5Coz4Oldw0DLW8LamUWBc=; b=WyhY4EUi4gv95Qud12yDHcClyij0zlxlWaqXAeXUEVHIJVzYAi3AmHneLcBa4FV6Bz l0H3e+Q2WIDuuBBePkzQWAnzXqXDmH9g/g3r/ca5raOCw5uxC65J4eWvXe9NNrTdVIBa MhwTmCbT2AOYYx4TTzv+BgErukpMXKrC8ndOadqP2Z8Ptbwp19p8GyU6ug/AkRFLRh47 YLoDDFRx5sVEltxVz0N7fPNsRIzBSiORS2BiYNsrADx6UF+LqmFkPohPzyMdR+WNvxpv uomVDrHcR+8E0qS/RU3CQ4VUo599oXEzdSOyXyno4g56LSTYqIEiRLwW0J4qFEGfrMgm k8kg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@nokia.onmicrosoft.com header.s=selector2-nokia-onmicrosoft-com header.b=NK538Orf; 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 a61si7817132plc.309.2017.11.12.21.33.28; Sun, 12 Nov 2017 21:33:40 -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=NK538Orf; 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 S1751943AbdKMFcb (ORCPT + 88 others); Mon, 13 Nov 2017 00:32:31 -0500 Received: from mail-he1eur01on0111.outbound.protection.outlook.com ([104.47.0.111]:61750 "EHLO EUR01-HE1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1751887AbdKMFca (ORCPT ); Mon, 13 Nov 2017 00:32:30 -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=imjKQ3QEmRkisik9zjRe9e5Coz4Oldw0DLW8LamUWBc=; b=NK538Orf6itfIQHJQx/0auOKl4gfP0IH2UxC+qwIWWarH+GZ96KFc5z6ZTxF43KhSOdlS1eupVPsYU0LlsVFJmUz8+oX5XFypFyVUVZcCG8vx2PZCLK9i2TSXxu8l7TQrn3uG9HVoYR56eb8NeT7TJeKeYWqXleQjYiajrIB1Sg= Received: from VI1PR0701MB2846.eurprd07.prod.outlook.com (10.173.71.141) by VI1PR0701MB2847.eurprd07.prod.outlook.com (10.173.71.142) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384) id 15.20.239.4; Mon, 13 Nov 2017 05:32:26 +0000 Received: from VI1PR0701MB2846.eurprd07.prod.outlook.com ([fe80::f4f7:c06e:f85a:cf7a]) by VI1PR0701MB2846.eurprd07.prod.outlook.com ([fe80::f4f7:c06e:f85a:cf7a%15]) with mapi id 15.20.0239.004; Mon, 13 Nov 2017 05:32:26 +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/J47BkaMR1yPA Date: Mon, 13 Nov 2017 05:32:26 +0000 Message-ID: References: <1509700757-34420-1-git-send-email-shile.zhang@nokia-sbell.com> In-Reply-To: <1509700757-34420-1-git-send-email-shile.zhang@nokia-sbell.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: spf=none (sender IP is ) smtp.mailfrom=shile.zhang@nokia-sbell.com; x-originating-ip: [131.228.32.182] x-ms-publictraffictype: Email x-microsoft-exchange-diagnostics: 1;VI1PR0701MB2847;6:Bmq3MoE+i1ntMZ4/mXacY+JMnxj4iOgvDJ4zdKPhqnFyCZ51SyhCHzMFqTX0Akl1q2sJWbzXSLDHu3GL+6DSsgQwObrWx+1NI6FJeMdCYbnZLaB8jgZc04isIuEpmvMLPhuyGSmV2LN5kSppXSA4MmKhdMBn80u1FKukEj3fufyeg/tl9XC0cZ6e4br64R906hZqmGwZWjlQfkhidZHGhWU1ea3ORTFwKM+7zjhQtm0sFYRyTbvJdauwjG9aSZ4YrckgjCAhRytnxn5MoP/9E08pqFhrfpG3QlhV/il56zQn7D8hQH8lNlq3DEBk0tVj5x1qo2s9CysS7QGL5yhxw0emsga7seeTLGKC3Z0iuWA=;5:Tl/gr6USSfCcFG2p5trq5mFnc1iiONvmsWD3+jXqqrELtXs/3FVimlut/8U33ZLFiAr6viBrwxLSvr69pkOiOciNCGbG6Asu5yUREUEzB0La+tbsljwkYRH7yk11suGk7fDwSjDkNNh+DIujAHF35xQY1ZApkNgSkH1HH52LqHw=;24:oPsu0pGoRcB5qKV0iivnuiAs2yruZ2Ed7tFfhKein+3maxe+LtmCzPc+R1oflzS550DsuPYfNMtk4Mocnp8mIhxQ+qZjHtdYi8Yfl+6o9vQ=;7:UTlzqECbKSjAV/ewki6R5QYq+ZarXM1aWWok52ap5bj3ekW+Um5OlDv5YC8vwGhtcKTIqB2HfesSN1N+LNVKFYe3noZrGF0ThKyQtPtU1Jk99XTAuTjqVB65wWyLXLySUmm2brfdfhHNXRIVUmSlL2Xz5ua+JE0DRVSNi8m4lJFI3QDYGtTpGlzrlGhynVaXY3ECB+R9GqOtZnLdEUcv6zyc+aECEMoRUJgJv9g5XLffBiK7J4NOSYeG/pPT27LQ x-ms-exchange-antispam-srfa-diagnostics: SSOS; x-ms-office365-filtering-correlation-id: 69990bca-27f7-4c71-4545-08d52a57ecf8 x-ms-office365-filtering-ht: Tenant x-microsoft-antispam: UriScan:;BCL:0;PCL:0;RULEID:(22001)(48565401081)(4534020)(4602075)(4627115)(201703031133081)(201702281549075)(2017052603199);SRVR:VI1PR0701MB2847; x-ms-traffictypediagnostic: VI1PR0701MB2847: x-microsoft-antispam-prvs: x-exchange-antispam-report-test: UriScan:(9452136761055); x-exchange-antispam-report-cfa-test: BCL:0;PCL:0;RULEID:(100000700101)(100105000095)(100000701101)(100105300095)(100000702101)(100105100095)(6040450)(2401047)(5005006)(8121501046)(10201501046)(100000703101)(100105400095)(93006095)(93001095)(3231022)(3002001)(6055026)(6041248)(20161123564025)(20161123560025)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(20161123558100)(20161123562025)(20161123555025)(6072148)(201708071742011)(100000704101)(100105200095)(100000705101)(100105500095);SRVR:VI1PR0701MB2847;BCL:0;PCL:0;RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095);SRVR:VI1PR0701MB2847; x-forefront-prvs: 0490BBA1F0 x-forefront-antispam-report: SFV:NSPM;SFS:(10019020)(6009001)(346002)(376002)(39860400002)(199003)(13464003)(189002)(7696004)(7736002)(2950100002)(3660700001)(2906002)(5250100002)(8936002)(9686003)(66066001)(55016002)(105586002)(6916009)(8676002)(6116002)(3846002)(50986999)(54356999)(76176999)(81166006)(81156014)(6246003)(106356001)(53936002)(102836003)(25786009)(3280700002)(4326008)(189998001)(101416001)(99286004)(575784001)(86362001)(14454004)(97736004)(478600001)(6506006)(6436002)(74316002)(54906003)(316002)(53546010)(305945005)(68736007)(33656002)(2900100001)(229853002)(5660300001);DIR:OUT;SFP:1102;SCL:1;SRVR:VI1PR0701MB2847;H:VI1PR0701MB2846.eurprd07.prod.outlook.com;FPR:;SPF:None;PTR:InfoNoRecords;A:0;MX:1;LANG:en; received-spf: None (protection.outlook.com: nokia-sbell.com does not designate permitted sender hosts) 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: 69990bca-27f7-4c71-4545-08d52a57ecf8 X-MS-Exchange-CrossTenant-originalarrivaltime: 13 Nov 2017 05:32:26.7289 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 5d471751-9675-428d-917b-70f44f9630b0 X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR0701MB2847 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org 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 From 1583036110466151975@xxx Fri Nov 03 09:21:20 +0000 2017 X-GM-THRID: 1583036110466151975 X-Gmail-Labels: Inbox,Category Forums,HistoricalUnread