Received: by 2002:a17:90a:1609:0:0:0:0 with SMTP id n9csp2043400pja; Thu, 26 Mar 2020 08:49:46 -0700 (PDT) X-Google-Smtp-Source: ADFU+vu81IEwJrfDgFo3J9UbYKTIFcMZvosfh2PBdgTZWw8AAkp4X9/a8Fqfz0YFOvlRG4vpfSOI X-Received: by 2002:aca:1303:: with SMTP id e3mr496726oii.36.1585237786456; Thu, 26 Mar 2020 08:49:46 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1585237786; cv=none; d=google.com; s=arc-20160816; b=MoPL+91vi5zsTa/ZRsrjqbbPxshulSLJxiYs6tLDAAftpFYy7L6bmfU/jNuy7xDSNI z2ahUgeEpdGqLeKdYMzooqoSB9P/noWUByzfCLUO77urETIwazpogFat7Q22rSbm2J+h fO+W+XEosxjvejsF0PZAyHhv/t5weRh8hGw5/2KPAWCm+xxVXoin0BY6xfeY9JNuRJo4 OfJUwkrmf0DYQWOuLSQ/WF6sVV5KVvY75rpsqDw2WGMNbNA8XChTcuUENxMUj9P2Oq5t lieHhoNhiTOTKKxcr575up3Vtf9GKuF3azhVFU63jrCdhuwyMYK9+9h4DS0J61r1XCwP Nx8Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:cc:to:subject :message-id:date:from:in-reply-to:references:mime-version :dkim-signature; bh=tnn7KHY4eWHTo8zdroLBrOpWxVoG9chHd2LE7rb+g4c=; b=b7AO3K2xaBrvXEiE7k6febkGb4JtIzz/qpBjNFTrqcgSTKXjlTQ4g3lRkX5lvTUeu9 t+Q7vsx7Ch5nowHNS1fhuaITc3MjM0Pa9eSq3Dg9EJRt6v9q82LDQwTUj8NfPKScQq5b eMJmJibORH8X08GDAjM8U3xoiclyMn+dTNi8BeZaxJ93AxRqOFYMby3BdE8SxBRgAmcz y84GAM027bzq3vwR+T6lPrsuoP07DNvifJlVWq4jbuTa96F1BD/143JUzV3J2T7jCqzz R1eSw85lxCOKJo4/AWONAqPk7mOz/1dKb7uuxOG7MDfOnSTgEHTzZ3IJ8CR6qdzh9vag igeA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@google.com header.s=20161025 header.b="S/kSykVL"; 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=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id u191si1181905oia.148.2020.03.26.08.49.21; Thu, 26 Mar 2020 08:49:46 -0700 (PDT) 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=@google.com header.s=20161025 header.b="S/kSykVL"; 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=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727822AbgCZPs6 (ORCPT + 99 others); Thu, 26 Mar 2020 11:48:58 -0400 Received: from mail-wm1-f66.google.com ([209.85.128.66]:52009 "EHLO mail-wm1-f66.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727766AbgCZPs6 (ORCPT ); Thu, 26 Mar 2020 11:48:58 -0400 Received: by mail-wm1-f66.google.com with SMTP id c187so7007384wme.1 for ; Thu, 26 Mar 2020 08:48:55 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc:content-transfer-encoding; bh=tnn7KHY4eWHTo8zdroLBrOpWxVoG9chHd2LE7rb+g4c=; b=S/kSykVLIzOW+bMtz28j9SL0IboXQaDEabZEPluAQ/jdTHKWYG9FhojaUl0Fmq4B1P r3AOSY0O8LRBGxIut4Bs4gZXoJioXnt3PtNqTi1ystbqUw6iLFXcpAkXhOpGcigUixPy S3ncz6t/Ez10hkmDVMtK4taf2eL2L8Yc7N/mCu2LeWk2BMUaqKLjXQbdxJxM3t7p01vm DO4BwnJI29K3mRmETdN4mZCqxfiDdPigj1O7hrw7LtCoGHzH9Iu/dAy3ZkDdaeonu93N 4HIrT4yneg3HIAFtgQYxod4eIlZMNQiUgoqjN9wVmdZ8fghCzcV0kAEEByfR9Je738JZ MdNQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc:content-transfer-encoding; bh=tnn7KHY4eWHTo8zdroLBrOpWxVoG9chHd2LE7rb+g4c=; b=i3I8RHLL5zCxoMdPDJbzFGwbBBPJfp9JgMGA8GOBEw2lmSc/KDRqnAL4ffQHY/C29J /olmdt76PS1gtNNSD0m3mQlWZ2Yd2zL7KMFgwzy1lMrGAQoVlFlinqJQHOHOCe63LAYb I/IBtRzI7/WUmkGMhbWOCcDWM7WIbpQaJ6C3LH0GwI3/DH9kcpzTmjpxnW/AT8EirdCA GU972jYvYMAcLBzEJ6bIWqn3rIqbdqzUvdAvHPqeHvcLyOKrjLxx2R7pf/6yESKrS0kB PFBEJjmYJaRM6zRp9JY0RoYWO0G0q9ONHBEa9s/jmOMhwaxjNEWPb9dqLhN3VS85FPM0 LD/A== X-Gm-Message-State: ANhLgQ07waAaTxgVOkROsM6bxJWNprUp0iXPnjTgz/hk+UyU7g4r0T7T olQGKG+MU/OYiGmcIbePp0tjRFuo6Ff9rfI4xXxz8Q== X-Received: by 2002:a05:600c:22c1:: with SMTP id 1mr518314wmg.29.1585237733584; Thu, 26 Mar 2020 08:48:53 -0700 (PDT) MIME-Version: 1.0 References: <20200324203231.64324-1-keescook@chromium.org> <20200324203231.64324-3-keescook@chromium.org> In-Reply-To: <20200324203231.64324-3-keescook@chromium.org> From: Alexander Potapenko Date: Thu, 26 Mar 2020 16:48:41 +0100 Message-ID: Subject: Re: [PATCH v2 2/5] init_on_alloc: Unpessimize default-on builds To: Kees Cook Cc: Thomas Gleixner , Elena Reshetova , "the arch/x86 maintainers" , Andy Lutomirski , Peter Zijlstra , Catalin Marinas , Will Deacon , Mark Rutland , Ard Biesheuvel , Jann Horn , "Perla, Enrico" , Kernel Hardening , linux-arm-kernel@lists.infradead.org, Linux Memory Management List , LKML Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Tue, Mar 24, 2020 at 9:32 PM Kees Cook wrote: > > Right now, the state of CONFIG_INIT_ON_ALLOC_DEFAULT_ON (and > ...ON_FREE...) did not change the assembly ordering of the static branch > tests. Use the new jump_label macro to check CONFIG settings to default > to the "expected" state, unpessimizes the resulting assembly code. > > Signed-off-by: Kees Cook > --- > include/linux/mm.h | 6 ++++-- > 1 file changed, 4 insertions(+), 2 deletions(-) > > diff --git a/include/linux/mm.h b/include/linux/mm.h > index 059658604dd6..64e911159ffa 100644 > --- a/include/linux/mm.h > +++ b/include/linux/mm.h > @@ -2665,7 +2665,8 @@ static inline void kernel_poison_pages(struct page = *page, int numpages, > DECLARE_STATIC_KEY_MAYBE(CONFIG_INIT_ON_ALLOC_DEFAULT_ON, init_on_alloc)= ; > static inline bool want_init_on_alloc(gfp_t flags) > { > - if (static_branch_unlikely(&init_on_alloc) && > + if (static_branch_maybe(CONFIG_INIT_ON_ALLOC_DEFAULT_ON, > + &init_on_alloc) && > !page_poisoning_enabled()) > return true; > return flags & __GFP_ZERO; > @@ -2674,7 +2675,8 @@ static inline bool want_init_on_alloc(gfp_t flags) > DECLARE_STATIC_KEY_MAYBE(CONFIG_INIT_ON_FREE_DEFAULT_ON, init_on_free); > static inline bool want_init_on_free(void) > { > - return static_branch_unlikely(&init_on_free) && > + return static_branch_maybe(CONFIG_INIT_ON_FREE_DEFAULT_ON, > + &init_on_free) && > !page_poisoning_enabled(); > } > > -- > 2.20.1 > Reviewed-by: Alexander Potapenko --=20 Alexander Potapenko Software Engineer Google Germany GmbH Erika-Mann-Stra=C3=9Fe, 33 80636 M=C3=BCnchen Gesch=C3=A4ftsf=C3=BChrer: Paul Manicle, Halimah DeLaine Prado Registergericht und -nummer: Hamburg, HRB 86891 Sitz der Gesellschaft: Hamburg