Received: by 2002:a05:6a10:9848:0:0:0:0 with SMTP id x8csp217445pxf; Wed, 10 Mar 2021 04:54:11 -0800 (PST) X-Google-Smtp-Source: ABdhPJyBYpqDb1MqFOjGlkzFZxWUMwYC6rr4IZAYZy8KlEWuAXZ585VYqOirABrMd4xiTScPt09f X-Received: by 2002:a17:906:934c:: with SMTP id p12mr3441544ejw.131.1615380850828; Wed, 10 Mar 2021 04:54:10 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1615380850; cv=none; d=google.com; s=arc-20160816; b=LFYgpPnlXkuqE0THiV9J+O15PXn3Zp9O6J6v3WY4cDrOOYdBydnqFI12N+R3J0vHLQ X/3Cbu/xyRbs+Dml09C/fmdIWalDmlrfbLT+5gIFIbwcYCum/hfgw62Vs8JOxKmxZEUP VPaILDo3lXp9hMiifycvYIo3P6ODUKOy5NfNx4Nk577LaV8Uy1sbfM1tPe/NQO+p2c4U cM8lITVoWBfO+sFZmVYDxj402e52/cOSqhW2ePZWsaJFjH3d3x59IA/6Pv4OYpnrRS1V /Omw0C2eEtISr3etFpwci9GxNIK4LbLiVyKVlWVAc4pvi9l7mv6ocDIrDWmcEywQ//Pn d8ug== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:cc:to:subject:message-id:date:from:in-reply-to :references:mime-version:dkim-signature; bh=/BK42rEfZDnxMm7tn7QJoRMRkMDyVR3i3bNbcPekdIg=; b=pT+NhOeAxC2wXYy5AKZ9TfFomJKSepu1NjHNW2q61O0ortsAjIYDs+zOrwuUS4qJwl 24t4OGO//0jr9vVGYgXVnugeqGSBug/Ztf5YOVaKMPJbhpHbYxhhnOFrylznr7JpxG9b UJxq0mzARRuaiMu831+VdmzhJA5T4JPnDXaWFQh8wTwGzd4r6K61k+yertbZfNrogEQe 0n3sMS/XOKCEBnuIthANwR1ncDybwFecFhdMLz2b78R/wb3j6bKCw5ikGe3BpkUlHchC 7s44bcDeZfqwBMNlisHxbXcGdxj/Rg/BAm7/uF6ogs0hey+u5+ZurVdoyX2xpT6YYXib t6+A== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@google.com header.s=20161025 header.b=h3fEZUko; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 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. [23.128.96.18]) by mx.google.com with ESMTP id t16si10601901edc.448.2021.03.10.04.53.48; Wed, 10 Mar 2021 04:54:10 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@google.com header.s=20161025 header.b=h3fEZUko; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 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 S231880AbhCJMwt (ORCPT + 99 others); Wed, 10 Mar 2021 07:52:49 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:38698 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229660AbhCJMwQ (ORCPT ); Wed, 10 Mar 2021 07:52:16 -0500 Received: from mail-pg1-x532.google.com (mail-pg1-x532.google.com [IPv6:2607:f8b0:4864:20::532]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id AB739C061760 for ; Wed, 10 Mar 2021 04:52:16 -0800 (PST) Received: by mail-pg1-x532.google.com with SMTP id x29so11350681pgk.6 for ; Wed, 10 Mar 2021 04:52:16 -0800 (PST) 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; bh=/BK42rEfZDnxMm7tn7QJoRMRkMDyVR3i3bNbcPekdIg=; b=h3fEZUkobZr1jCHE1WazBNRG4q6cvgfOa2N+PfxLN8F7RZJkzgxy8/c570n7v1gsgE wSVCeFTC/83l9s7h3AlU7OrKC5RGtvsuxScUqY6IJhXjcghZQ8EL07clpakh4MTYsG7o 6KoC27yoGboGzxYaB+5W8my72cxKXJZYwPWTh6e8c4ZfV+hRQj3DRwvP3l72LQhNw298 sOkfAxTRzwbtQwEezjar0b8cKncz7NqR60/GEO5Od0xr52s3xXhE73SXrE4cXBPxJIlS lmmdDl8v0ikLdUjBpWCTlgfWxaqXztaooul2c927TtNy00/RKZdi/4PbDlNVnuRV13n1 rroQ== 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; bh=/BK42rEfZDnxMm7tn7QJoRMRkMDyVR3i3bNbcPekdIg=; b=ThWfts9PhBHey9dOYlCjETDwRs6txslNk4taATsm27nJpeuwJEGonCfT+CauK2uAgB srnLqYUTK1a/Av1Gp3QzAk4ayosC87ZE0QuUYsjOnu8R7vafUH02JczeylxlcBvSNVQg p8KVFg/6TYhYtTG5hSUhWuVltEbKejcJ2Cg8p+Q/lPcuw1KKgIgxBYEbUdymELj+JLUr s0wMaC72QFJKPFcHsROu+Gd1YtYu5l1tHIVoWNlA6woxNi6sqglWufAeKFFWtIxs02fz H+HK93BLGFM7n/fJ6lA0poR2Gn90GOK7MKwMXZ0R6cpQSRE86/HKhlPJJ1BouYlR3NMF JyMA== X-Gm-Message-State: AOAM530JBVps0mgSKWk85jxolCtJ58SJGQbXqJcIR7ottvrST3gJP8lW TSA/u+PaVG+9wBoHYFMyRWUdXrLqHOeyh5CDvksG4A== X-Received: by 2002:a63:455d:: with SMTP id u29mr2647321pgk.286.1615380735994; Wed, 10 Mar 2021 04:52:15 -0800 (PST) MIME-Version: 1.0 References: <20210309214301.678739-1-keescook@chromium.org> <20210309214301.678739-4-keescook@chromium.org> In-Reply-To: <20210309214301.678739-4-keescook@chromium.org> From: Andrey Konovalov Date: Wed, 10 Mar 2021 13:52:04 +0100 Message-ID: Subject: Re: [PATCH v5 3/7] init_on_alloc: Unpessimize default-on builds To: Kees Cook , Alexander Potapenko Cc: Thomas Gleixner , Elena Reshetova , "the arch/x86 maintainers" , Andy Lutomirski , Peter Zijlstra , Catalin Marinas , Will Deacon , Mark Rutland , Alexander Popov , Ard Biesheuvel , Jann Horn , kernel-hardening@lists.openwall.com, linux-hardening@vger.kernel.org, Linux ARM , Linux Memory Management List , LKML , Vlastimil Babka , David Hildenbrand , Mike Rapoport , Andrew Morton , Jonathan Corbet , Randy Dunlap Content-Type: text/plain; charset="UTF-8" Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Tue, Mar 9, 2021 at 10:43 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. > > Reviewed-by: Alexander Potapenko > Link: https://lore.kernel.org/lkml/CAG_fn=X0DVwqLaHJTO6Jw7TGcMSm77GKHinrd0m_6y0SzWOrFA@mail.gmail.com/ > 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 bf341a9bfe46..2ccd856ac0d1 100644 > --- a/include/linux/mm.h > +++ b/include/linux/mm.h > @@ -2874,7 +2874,8 @@ static inline void kernel_unpoison_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)) > return true; > return flags & __GFP_ZERO; > } > @@ -2882,7 +2883,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); > } > > extern bool _debug_pagealloc_enabled_early; Should we also update slab_want_init_on_alloc() and slab_want_init_on_free()?