Received: by 2002:a05:6602:18e:0:0:0:0 with SMTP id m14csp2169857ioo; Mon, 23 May 2022 11:45:43 -0700 (PDT) X-Google-Smtp-Source: ABdhPJxIfskcb9FIXLuA82Aqp85J123eTK+/NZvGKC+8jBHfE62QfNt/16ylXBAkNZwiuuKs/7Xe X-Received: by 2002:a17:902:d5d2:b0:161:f03a:eb41 with SMTP id g18-20020a170902d5d200b00161f03aeb41mr18357160plh.65.1653331543118; Mon, 23 May 2022 11:45:43 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1653331543; cv=none; d=google.com; s=arc-20160816; b=h/NbaPl9bKY6bnjrFjZlXlhRaWQnLdiSdbD2zZwJlK9BsYuyZaeQ3La+jwYvE7BNAb 5dY2LFGN5lCRiRZgBrntXxeXiJf+IOY+pMPnQryFPJUpeABP0s61crf27KJzIPeAH270 5NiBbJ8kLCTmew54FRBxoa+gKK42UNet7p3+rSguNergNCDAI1Wg185tVu5aAJxhzxjn +zSKty4ZeDqFGuxDXp0rdu987RSSb1EvUD5vVv2vbcQd8xTxcdrvP2UhNep2Q2MLLVKN 85hf5h9WHe2GIpoXnWt0ScgOS3Ewn7unld+F68G9nBegaoWjdfSdoJ65H8vRn63Cqc0x Kkdg== 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=cNu8GgvsbpstMN5PR/r7FbQyBoA4doE2J/KRSOCWuco=; b=fXZFlWGzlcwJr5H/LUW4zJ6LeqcLZh3RSxiUwYKew56BmrU6yg8ReHkNtx9XUy9kU/ VWESMYVoUKSi46jpjshq9VBSPWw2L8sQjKNh2DQB15uQbyLOY0vuaxgs31VRo7JsS0j/ tWIPwqoMstHT/l2v5uChcdbLZg1tNawnAqB7W/lgsk62N+JMgOmPbn7OKfx3OWjZfmkU JtZymSYiXg7EaiyhBpYwNIthup7a8E3wGEV2Zms7gPyf1ghjo3gqDVaxfwSH+HAevMAK iDHh+VS+rXgxim7ejvH7Vgo9aQYCs5LNTVlgPfAGDAWSTVPwU/juyWKajYnuxlxTaVXU rolQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@google.com header.s=20210112 header.b=P4pCSBFc; spf=softfail (google.com: domain of transitioning linux-kernel-owner@vger.kernel.org does not designate 23.128.96.19 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 lindbergh.monkeyblade.net (lindbergh.monkeyblade.net. [23.128.96.19]) by mx.google.com with ESMTPS id n6-20020a170902968600b001586190b7c1si10283039plp.528.2022.05.23.11.45.42 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 23 May 2022 11:45:43 -0700 (PDT) Received-SPF: softfail (google.com: domain of transitioning linux-kernel-owner@vger.kernel.org does not designate 23.128.96.19 as permitted sender) client-ip=23.128.96.19; Authentication-Results: mx.google.com; dkim=pass header.i=@google.com header.s=20210112 header.b=P4pCSBFc; spf=softfail (google.com: domain of transitioning linux-kernel-owner@vger.kernel.org does not designate 23.128.96.19 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by lindbergh.monkeyblade.net (Postfix) with ESMTP id 9B5AFA2056; Mon, 23 May 2022 11:45:32 -0700 (PDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S241504AbiEWSoh (ORCPT + 99 others); Mon, 23 May 2022 14:44:37 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:51798 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S244188AbiEWSoP (ORCPT ); Mon, 23 May 2022 14:44:15 -0400 Received: from mail-lf1-x132.google.com (mail-lf1-x132.google.com [IPv6:2a00:1450:4864:20::132]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 351A16A051 for ; Mon, 23 May 2022 11:27:08 -0700 (PDT) Received: by mail-lf1-x132.google.com with SMTP id p4so25615054lfg.4 for ; Mon, 23 May 2022 11:27:08 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20210112; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=cNu8GgvsbpstMN5PR/r7FbQyBoA4doE2J/KRSOCWuco=; b=P4pCSBFcumSIj5G4eIByQ1cm/h9Hiq5VA5X97Wk5UNf0wFrpzLrxjDCqTalhhKVTsz PvwpPZ9FJfsbf0ox3kCgikqETgzKMdva4NshPTE1JP4W53KKH+sW+wrW+54VARwa4YMX BfsdHFkVHasswm9iaWq3P9l1cagN2JnEWskhgSbu/kTSPUGqS4cUtzJDscd1ugPrui5H p0CHPAwR6+c3l1JmiveYG6JaNwZ38USv8NdSsZV/p0I9FfOdpCH7Ex/VpCqvNeG0mFL6 dJDZJIX2UzkTIsywtWdqKf1Ca5Mf11nB3+8oZMzd6xdPNwOhDScTVsFtzdwmFVfjIIgt tylA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=cNu8GgvsbpstMN5PR/r7FbQyBoA4doE2J/KRSOCWuco=; b=KGKGbXTCiJPGPiZ5VTOqv03OM2v0Q0+oRM1WTPBWrZVkfW8IEH9WTP7ISZvuA1xmEb pd6nQrAoQnw29QYj7Mjmu1X+heWbM2glXBaxqlwqv+ZnUxpnuYXk2JmFq+vdK0tUcUs6 HeANB8gEfmH4tlYmqzryS2aSUNcAT7eU8kuh8/zEEt1nmf6hwOIG/tcx+zgV9gtBZhqR czTdHg439d08ofeTPaQE1OBH+BrAHpkt8+5TRYwwJCETspvSRzNMnyAaoZseD9+S/9Z8 bCXt9c4DFv7D8Ee9ZZrZojmjvJ+jh58jtP0FmNA+6bgxXxj1Hrft86s/R9uGjKYcJgcl QaZA== X-Gm-Message-State: AOAM533YLG+IGBDGtq+9mSWd8/tWUtIq2tFvQsueUOIxm1tGVyRUysHt 0cU9s5xDNlbTAHyYaNqADzFB+AfdyrzgcLq4g1SXK7DN2dyMCA== X-Received: by 2002:a19:651c:0:b0:477:87cf:de6 with SMTP id z28-20020a19651c000000b0047787cf0de6mr16656479lfb.432.1653330426475; Mon, 23 May 2022 11:27:06 -0700 (PDT) MIME-Version: 1.0 References: <23e0ba7863d51ab629498762a97d477645aeafea.1653123744.git.christophe.jaillet@wanadoo.fr> In-Reply-To: <23e0ba7863d51ab629498762a97d477645aeafea.1653123744.git.christophe.jaillet@wanadoo.fr> From: Nick Desaulniers Date: Mon, 23 May 2022 11:26:54 -0700 Message-ID: Subject: Re: [RFC PATCH] kbuild: Add an option to enable -O1 and speed-up compilation time To: Christophe JAILLET Cc: dan.carpenter@oracle.com, Masahiro Yamada , Michal Marek , linux-kernel@vger.kernel.org, kernel-janitors@vger.kernel.org, linux-kbuild@vger.kernel.org, Miguel Ojeda Content-Type: text/plain; charset="UTF-8" X-Spam-Status: No, score=-9.5 required=5.0 tests=BAYES_00,DKIMWL_WL_MED, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS, MAILING_LIST_MULTI,RDNS_NONE,SPF_HELO_NONE,T_SCC_BODY_TEXT_LINE, USER_IN_DEF_DKIM_WL autolearn=no autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Sat, May 21, 2022 at 2:04 AM Christophe JAILLET wrote: > > Add a new compilation option which speeds-up compilation time. > This can be useful when using static checker such as smatch or build-bots. > In such cases, the speed and quality of the generated code is not > important. > > Using -O0 would be even better, but unfortunately, building fails with > this option. Which is a tragedy. As with the Rust series, I'm not a fan of this (or CONFIG_CC_OPTIMIZE_FOR_PERFORMANCE_O3): https://lore.kernel.org/lkml/CAKwvOd=7QTUH69+ZbT7e8einvgcosTbDkyohmPaUBv6_y8RfrQ@mail.gmail.com/ These feel more like attempts to wrap every conceivable command line flag in a kconfig option, which makes me think of that meme from Jurassic Park: "your scientists were so preoccupied with whether or not they could, they didn't stop to think if they should." Not a fan. I'd ask for measurements, but that would be a request for a "rock fetching quest" for something I still wouldn't be a fan of. > > Signed-off-by: Christophe JAILLET > --- > Makefile | 5 ++++- > init/Kconfig | 8 ++++++++ > 2 files changed, 12 insertions(+), 1 deletion(-) > > diff --git a/Makefile b/Makefile > index 1f8bef92868f..14467386f947 100644 > --- a/Makefile > +++ b/Makefile > @@ -817,7 +817,10 @@ KBUILD_CFLAGS += $(call cc-disable-warning, format-truncation) > KBUILD_CFLAGS += $(call cc-disable-warning, format-overflow) > KBUILD_CFLAGS += $(call cc-disable-warning, address-of-packed-member) > > -ifdef CONFIG_CC_OPTIMIZE_FOR_PERFORMANCE > +ifdef CONFIG_CC_OPTIMIZE_FOR_COMPILATION_SPEED > +KBUILD_CFLAGS += -O1 > +KBUILD_RUSTFLAGS_OPT_LEVEL_MAP := 1 > +else ifdef CONFIG_CC_OPTIMIZE_FOR_PERFORMANCE > KBUILD_CFLAGS += -O2 > KBUILD_RUSTFLAGS_OPT_LEVEL_MAP := 2 > else ifdef CONFIG_CC_OPTIMIZE_FOR_PERFORMANCE_O3 > diff --git a/init/Kconfig b/init/Kconfig > index a96776a9b080..3177a1830c9a 100644 > --- a/init/Kconfig > +++ b/init/Kconfig > @@ -1384,6 +1384,14 @@ choice > prompt "Compiler optimization level" > default CC_OPTIMIZE_FOR_PERFORMANCE > > +config CC_OPTIMIZE_FOR_COMPILATION_SPEED > + bool "Optimize for compilation speed (-O1)" > + help > + This option can be useful when running a static checker such as smatch > + or a build-bot. > + Compilation time is slighly faster than -O2 and it requires less s/slighly/slightly/ > + memory. > + > config CC_OPTIMIZE_FOR_PERFORMANCE > bool "Optimize for performance (-O2)" > help > -- > 2.34.1 > -- Thanks, ~Nick Desaulniers