From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751725AbcHIFbb (ORCPT ); Tue, 9 Aug 2016 01:31:31 -0400 Received: from mail-db5eur01on0080.outbound.protection.outlook.com ([104.47.2.80]:60603 "EHLO EUR01-DB5-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1750914AbcHIFb2 (ORCPT ); Tue, 9 Aug 2016 01:31:28 -0400 Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=mika.penttila@nextfour.com; Subject: Re: [PATCH v1 2/2] x86/KASLR: Increase BRK pages for KASLR memory randomization To: Thomas Garnier , Thomas Gleixner , Ingo Molnar , "H . Peter Anvin" , Borislav Petkov , Joerg Roedel , Dave Young , "Rafael J . Wysocki" , Lv Zheng , Baoquan He , Dave Hansen , Mark Salter , Aleksey Makarov , Kees Cook , Andrew Morton , Christian Borntraeger , Fabian Frederick , Toshi Kani , Dan Williams References: <1470681607-36883-1-git-send-email-thgarnie@google.com> <1470681607-36883-2-git-send-email-thgarnie@google.com> CC: , , From: =?UTF-8?Q?Mika_Penttil=c3=a4?= Message-ID: <68119f42-cb1b-fd3e-3820-7cf235e607e5@nextfour.com> Date: Tue, 9 Aug 2016 08:16:46 +0300 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.2.0 MIME-Version: 1.0 In-Reply-To: <1470681607-36883-2-git-send-email-thgarnie@google.com> Content-Type: text/plain; charset="windows-1252" Content-Transfer-Encoding: 7bit X-Originating-IP: [194.157.170.34] X-ClientProxiedBy: DB5PR06CA0015.eurprd06.prod.outlook.com (10.162.165.25) To DB6PR0701MB2167.eurprd07.prod.outlook.com (10.168.58.22) X-MS-Office365-Filtering-Correlation-Id: 41186750-c921-46f0-df90-08d3c0145e09 X-Microsoft-Exchange-Diagnostics: 1;DB6PR0701MB2167;2:HsaA2PNRpe2RcOGcQN/lGiMDmsoOn6chUIckPVURT4wdhbxVInL6L+m42cpFba65OhR6uPnEPPFVBR5E6K08pz2tj1tGRO1p5xJIlaWeF+jPuzgYHCMRKx8RqkO3lmS9T4JYTOeoTO6kwoll3HtbkesVZayPpaUIhsiW8UZDMbX5HphLpjZ2cnjGUV4GikoH;3:t1fmbfskAWnEhOPIbKITtyD54gGJ7nWE2RcG3nnw+4+6yLsjECb2lz5hcsN32l7NSMDjXdd7jGBU+Ot1FjubIpeXcarTzLPw4a71yqFVSK9m60EgxZD2L0SUGFWMPj+g;25:P8Cdn5UAlajInT79mbh8qgnoOY8qVTC2Te3iauQ1iu/wo1YqPWW9PvP6h9YsrXnulpOKtBuencVWlOT/N98Jlu6H3gYn1gNGdITEQu4WtuaeGtRDsyPeyql3EApbbdnnOG5+oOFQcCqM63dDQS6u5wDeg+E/6BKaw85ruE5kveK1wzNNf//0k5RCU8d0NcQSF5zXAEoxO7X8lWAcM/aQ60r7QT6ln4kwezn8oINUwnBtzbFla6J2razJ4CI3h8PcTryR6tRCwcvggmGFWTLVdoQro/zm/OHd9BsIveHm0D6kxaaOmtsNN+Pgwdx0mAn6r0WQJclXei+WWXCKOlqdun5dCmyZCB5CetWF/obR8UBYkA+AnODMRYQg7d0WD792ToQZ8hwiHq6IuTCTTDiruezEns39UwArTI6P0aZdK/s= X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:DB6PR0701MB2167; X-Microsoft-Exchange-Diagnostics: 1;DB6PR0701MB2167;31:bTu+orL8a/gn64cehZtD0by3ePzrYd3qX5X6oGb4v6nMN3LXhAUkAwMXXaNgvRBmzarzt8zAY0+tWYu5/153NxuOri0gh79Eo9ZC1CYDdGhJdlUvk2wUjU/9EfTuX4U98iW1omrW6I1SXIS7gOqFkeHxFsd7IoqX49AQsnvhEoaQeKS5Jv/stJVA2PEF5LWJYgDgJn8xK/07guW9qKZaM/74H0sDqh0JmUWHuPHn+1s=;4:dg9mI9LX/ybiFxSd9TL+JuJctUrQxUCFKfNG/fDs8LAgIJaerLHnv/xVdb33EXsNfim/p/TamWpHVyzZy6c8qw8fwMKJB5uGob7DakFydTD3XeqxnwkYbegRDD9atsTJz3F05nFKcs1ABVQERS+JlKuGF4OzoJo8QNFfvxh0Sm10E3NIUVOcXvuqQ/BtJv+a373cAILstFEGe8ysywPSIHEYae6vgBupCXOVjrWtIFh3N94vAPgH8IzfMal7ivvU4xUl3QJTIpY0J/W8LGKFutsIkuZQJjOxHXQQtpWSi8FKlOOhUb/SwXeHp1GuP4AdP2ZaYUme1aYh2XsC0gZMlol55KzXbRh2nKX+fXP7FLehoo/7zi1D23v4sotsCvDPn1zrnvUM26w4XXgcmabUB5yj+yOmDCAJqITLSAnNeyI= X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(211936372134217); X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(601004)(2401047)(8121501046)(5005006)(10201501046)(3002001);SRVR:DB6PR0701MB2167;BCL:0;PCL:0;RULEID:;SRVR:DB6PR0701MB2167; X-Forefront-PRVS: 0029F17A3F X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10009020)(4630300001)(6049001)(6009001)(7916002)(377454003)(24454002)(189002)(199003)(81156014)(64126003)(8676002)(23746002)(105586002)(4001350100001)(36756003)(101416001)(81166006)(65806001)(65956001)(8666005)(66066001)(586003)(7846002)(7736002)(305945005)(31696002)(50466002)(47776003)(33646002)(77096005)(106356001)(230700001)(86362001)(31686004)(83506001)(68736007)(42186005)(189998001)(7416002)(3846002)(97736004)(50986999)(6116002)(5001770100001)(54356999)(76176999)(4326007)(19580405001)(2950100001)(19580395003)(2906002)(92566002)(65826006)(7059030)(921003)(1121003);DIR:OUT;SFP:1101;SCL:1;SRVR:DB6PR0701MB2167;H:[10.10.10.110];FPR:;SPF:None;PTR:InfoNoRecords;MX:1;A:1;LANG:en; X-Microsoft-Exchange-Diagnostics: =?Windows-1252?Q?1;DB6PR0701MB2167;23:6UiWrvWPmm0f2mE363lkidBlmudbB775JdV?= =?Windows-1252?Q?SCpyHULcioSRqMz+nEqyJYHVL6OgVRxH9oOLkYTunHVnApkQbZlaQB7x?= =?Windows-1252?Q?myvpJA9DDRqoebxneZJWzwzPp8NHemAp1kxr/QLa0nMZeiu0we/LGLUl?= =?Windows-1252?Q?SaDTB5SbzF23vsGAIeUjyPxOQVrHol6qzCmRsRwscLdMuNV/9FNKqnT1?= =?Windows-1252?Q?qHT74rEpcJD0ZpRz4WcqtcIg2WNqxKaYYrEsVyEiYYcUUmQPYU7AtCla?= =?Windows-1252?Q?HL+2QYrOnDg0ak9BNt8INa+L9wKT7I2D2jMwavUxKgvYI2GUnF/9dKBw?= =?Windows-1252?Q?UafPNwgT1T2xL0iLz/lLnJCzT3zoZVKxSvMmaPZawHWMPGhDUzIj1D7V?= =?Windows-1252?Q?b4UiX7nKf/4oTQ3XSG3tE8ixjco2uwi0QX8Emkg4bK57jlZd6yljg7nQ?= =?Windows-1252?Q?HqVqPY8Lv0HlSKhtiDEzhpDzbCyjB4Tv+oin+NqA+dYty6ja5AhzqD+G?= =?Windows-1252?Q?73eUG3aGt6bInkoklyZfADqLUjJ343jFz72T/37Zq90trjThyLRqb3pW?= =?Windows-1252?Q?bD7q/iZfsvm/2MNt5bmiiIW1g+J5pwyR8PYC5HpXBoqgy/lQBLWt0bFm?= =?Windows-1252?Q?sedu5dgnz/NO/ilJFsUVoW4IQJP6gKono1X8Kt+QL6Ukgom8DIZ+FLrf?= =?Windows-1252?Q?D63DvHB9ML83PL25nWN0vGRYJq/rp0s58uc64a/6/SpQIPZU0DF9+NM9?= =?Windows-1252?Q?yILzzlPr3x6H1r7l/O/27OBtK4Mk0WDaP0yV5FX1RuCUWw4+YwPeYP/R?= =?Windows-1252?Q?hPYe6kLBS3Aszx4ZIMK9Fmk7WXOhIaEjfHtgG6uY8jDYG7fPfd08ZBOy?= =?Windows-1252?Q?WL9e9ztQooByuSAuG06MTmEqb3QUFyXsskXEqTyqMEDXjcGRUOR0zIn8?= =?Windows-1252?Q?fv5SP1ak2JU1xbI/PVdIINl9TXyRpazHn9hOJLKTEI7VKkwuygjiIQgb?= =?Windows-1252?Q?ZSn8zbBlidcWOGFDOGECHxS0ooVOej2/H33DRv8n93ruGHcVdNG34Q6z?= =?Windows-1252?Q?PCKEeri2BnQHaLqE0+kSYIEDe9Ok4v5Y7jINq8jzKxkAruHBro7vtcNP?= =?Windows-1252?Q?eTQDTC75CW13ArMIlDsUvFtRCb+PdAYgzOgNXIxOUoXN2wMGer0gnxV3?= =?Windows-1252?Q?l7BqAA28UOF6Wix+9JFulMWlOjaL3uyPWkIuGPu/0dGR3Pxfj3POXMuF?= =?Windows-1252?Q?0pad0qUhim1voxyHYR6HMPFCrxQBOd8HbCc19X6RAU9KruGiUXMt+2F/?= =?Windows-1252?Q?Ko1blsla65m+GKdecfePZinPN1E3Izjg8BuDmxRLG+Z7vKmweGhmeTzN?= =?Windows-1252?Q?9uJ1OQjag/E4qfMLjO3jBizEeKYNMnA+ktDgHCIxSHhiVJp8z8M3yxwv?= =?Windows-1252?Q?4JDFtycysCjgE84viAbpqWv91+ZPbMJCfEj2+3tp44w=3D=3D?= X-Microsoft-Exchange-Diagnostics: 1;DB6PR0701MB2167;6:3Qq9kXvvDrvrN1/SKC12C9dbWLXGp2Io9xyL/+gO5JjDnVjN03KFAY4ADCni8+7Sl/Ac5mBFyrYcDvY5mvux1oOuG5BFn9RZs6n+r8CPawMmxx8L1HauNvJSVtzl8buTMe4yJZDzA+zZjSQib/U3qrUHeYUxnBObeQG/tsgAhY8Lah6iL9H7lDyMJ9Hyf2fg6lfWByPJwTsZgvelm499LkNX2IEpz0+mtJInBPi1OYlSujmPGYTslBn+cvP7ZNwlZEMa6eZxjJvz+nWck3WHlt2zgEpDgIzPYOP29WyxFcY=;5:pTzPeuD4n23USBByo68Gr/lRu8Q5mGgt+hF1SU3lUZdfVXStKhsYLvHIwteIFzj2eBsiQ2BKMufAYGnGRBlrUQXiqQIqTmkSUStXe70Ivcn4P1YLBuIZTnsbP2Tczl1WkTyrIY+KKR4uPJaK1JYREQ==;24:bGnMHi35feqDrKRwi9JNxDcklt3jw261fEXqoucOz1sCnprvtrSRbsRHAj4+SmtXNgRb3zD3jlIEr/SStXWieQ6lviFNEP+qFx8S6/WBPgU=;7:oTGTzRAtKvkHT2Yxgg6Q/KhLC+W412/rxRAppUZq89RqzcItOmReZoc5UdNFW6aQMc8ld0yDX/HRUvuy6KbnDqhm2ufhtjVdeIPtrWeYuEbcv1EILLGkpQol0Iufk2GgmkDN1F02AkBNH/qrCQxFSrjRKnRic9auL1jHDwbIPmliHPnzmzMxcSdfLoQUa3k9ohNoTu3mpp+dJEv+anQ3vJZ75j+HxJs4rzJiQOkEmTnx1XY9ug9xBvYgw/bx5o/d SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: nextfour.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 09 Aug 2016 05:16:48.6615 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB6PR0701MB2167 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 08/08/2016 09:40 PM, Thomas Garnier wrote: > Default implementation expects 6 pages maximum are needed for low page > allocations. If KASLR memory randomization is enabled, the worse case > of e820 layout would require 12 pages (no large pages). It is due to the > PUD level randomization and the variable e820 memory layout. > > This bug was found while doing extensive testing of KASLR memory > randomization on different type of hardware. > > Signed-off-by: Thomas Garnier > --- > Based on next-20160805 > --- > arch/x86/mm/init.c | 8 ++++++++ > 1 file changed, 8 insertions(+) > > diff --git a/arch/x86/mm/init.c b/arch/x86/mm/init.c > index 6209289..3a27e6a 100644 > --- a/arch/x86/mm/init.c > +++ b/arch/x86/mm/init.c > @@ -130,6 +130,14 @@ void __init early_alloc_pgt_buf(void) > unsigned long tables = INIT_PGT_BUF_SIZE; > phys_addr_t base; > > + /* > + * Depending on the machine e860 memory layout and the PUD alignement. > + * We may need twice more pages when KASLR memoy randomization is > + * enabled. > + */ > + if (IS_ENABLED(CONFIG_RANDOMIZE_MEMORY)) > + tables *= 2; > + > base = __pa(extend_brk(tables, PAGE_SIZE)); > > pgt_buf_start = base >> PAGE_SHIFT; > You should increase the reserve also : RESERVE_BRK(early_pgt_alloc, INIT_PGT_BUF_SIZE); --Mika