Received: by 2002:a05:7412:419a:b0:f3:1519:9f41 with SMTP id i26csp3777608rdh; Tue, 28 Nov 2023 03:46:11 -0800 (PST) X-Google-Smtp-Source: AGHT+IGSQhNWEsHcqlstOjh/kYhqWBo8bi/ifiITZ8ZB6umljL0kVW17UIghdS4IN20m1XV0ygYi X-Received: by 2002:a17:90a:ad04:b0:285:a161:ad8f with SMTP id r4-20020a17090aad0400b00285a161ad8fmr14506098pjq.21.1701171971423; Tue, 28 Nov 2023 03:46:11 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1701171971; cv=none; d=google.com; s=arc-20160816; b=H0Y0KOPgsYm6sYrWvA1sOb5FgqodJMyETi0CKsegYY5aGouF21/JHj8IRmFLAPy1xY p3jIdi3vwN5yjcsneqqWgRPxcAbfYBJbaXM2AXS6G4Jy7vwVJK4v33vHkvNQFiSBstoR g6MJ4j9/zL1Sb66bUPqMNU8cwsNTbPydZtxHRpj03G4twUc3GNQMnWzxkIIuKy4itHzg tRaXO4a2ajugJXjy6gt2kpaomJSjFBg31fchCZl2DvIKBvMwytwS2x1V8CdRp0d6OVCn SiZvu0STwGNrBSWXz4a2jgKPqwI0KSfBkJQPhhN0rW3EKgEvfMBBuunue3DP4xn4aOM+ kiHQ== 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=59ksBLMfhadiljZhk+nYnhQYWspeRKVAlGLfPSGEd7c=; fh=JIqfO0PHy6VBXOAmtlLqR4JVC3Swz3JR5tjdfK7N+7M=; b=mNhEicony1MgiGrZNizkYuGIsr6b9vsavEru7vHgRGN5kGFGEHZXFpSicqWVJDNzS1 Rp9vrMY69GfdtzG7FXKWoXcMiYneWYSfOEuy3Eo58/WhQhpy+2jLgePmHvEoEtKb/WFa 5Op42SqR1FvvbRPndB1vRibZnVIEEUfmUCL2/kZJXSUom7oyviGU5WN8IvEDsD1I2+08 oA6gXo3ZX41LeI+BkvlQ7C0vCZpHRDruJOw32etxPyso+7A9N/kLlzW5cSKXPG8RuUX1 ERtlIhU8At2NKdO6fFogvDr+Q//CTj+LiwMF7B/NpiOKBWOpLuFwW96kbplFqdOWtE4t KkSw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b="d/aYqu6v"; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.37 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Return-Path: Received: from snail.vger.email (snail.vger.email. [23.128.96.37]) by mx.google.com with ESMTPS id i30-20020a63585e000000b00565ead2509asi11635368pgm.199.2023.11.28.03.46.10 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 28 Nov 2023 03:46:11 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.37 as permitted sender) client-ip=23.128.96.37; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b="d/aYqu6v"; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.37 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: from out1.vger.email (depot.vger.email [IPv6:2620:137:e000::3:0]) by snail.vger.email (Postfix) with ESMTP id 7E14B8077569; Tue, 28 Nov 2023 03:45:37 -0800 (PST) X-Virus-Status: Clean X-Virus-Scanned: clamav-milter 0.103.11 at snail.vger.email Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1344563AbjK1Los (ORCPT + 99 others); Tue, 28 Nov 2023 06:44:48 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:41764 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1344132AbjK1Lor (ORCPT ); Tue, 28 Nov 2023 06:44:47 -0500 Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 32BD7D56 for ; Tue, 28 Nov 2023 03:44:49 -0800 (PST) Received: by smtp.kernel.org (Postfix) with ESMTPSA id CBA56C433C8; Tue, 28 Nov 2023 11:44:48 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1701171888; bh=guVQnjvPaV+z42jgf62dWWfF0TqriCPnTjAgzPyzxms=; h=References:In-Reply-To:From:Date:Subject:To:Cc:From; b=d/aYqu6vn5DDREA/9VJfY02ukaUiOZ+PPaAzqolR/aOMxdiATKsY8+PtgFUGGLYbU 6L4qRE6VRlGiFT41Xr5D7u4rvpnEMBlX3U+pRH+YuVJvSSiet0VB2Vn/9iTE6+Wrub XXwWkFA3Q2jBqVXoIdw8h+9ocDX86mv1vBZ/ovtjdNFs7e1+tZSXa18ZHnAt20v4hu 0ZsT6IxMZGpSmArYjjSDfLS+CMh6wAMjVcrjWMtDeP7KQ9+wazyz4SgkwFMxxv8m5K L7tk0R08kr8HWfM+d4hu8bCXVshlra0vLQvpAtrBQxR8d+KPVpdFPT3/M844UMaJVu P5Xnrb+LC76kA== Received: by mail-oa1-f41.google.com with SMTP id 586e51a60fabf-1fa1c3755afso1426293fac.1; Tue, 28 Nov 2023 03:44:48 -0800 (PST) X-Gm-Message-State: AOJu0YwzDLkysMKcmPLP6Eo29LZnWfFxQK4bRvTqpBwjOoVOwGkraUFM QTzdyPfoTaGZs4k8yA2/ZOYjhatAklX8JH3Lk4U= X-Received: by 2002:a05:6870:6c0b:b0:1f9:5310:90ab with SMTP id na11-20020a0568706c0b00b001f9531090abmr7776846oab.3.1701171888137; Tue, 28 Nov 2023 03:44:48 -0800 (PST) MIME-Version: 1.0 References: <20231122235527.180507-1-kent.overstreet@linux.dev> <20231125195620.rjgkooixugucv2vp@moria.home.lan> In-Reply-To: <20231125195620.rjgkooixugucv2vp@moria.home.lan> From: Masahiro Yamada Date: Tue, 28 Nov 2023 20:44:11 +0900 X-Gmail-Original-Message-ID: Message-ID: Subject: Re: [PATCH] kbuild: Allow gcov to be enabled on the command line To: Kent Overstreet Cc: linux-kernel@vger.kernel.org, Nathan Chancellor , Nick Desaulniers , Nicolas Schier , linux-kbuild@vger.kernel.org Content-Type: multipart/mixed; boundary="0000000000001842ac060b34f29a" X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF, RCVD_IN_DNSWL_BLOCKED,SPF_HELO_NONE,SPF_PASS,T_SCC_BODY_TEXT_LINE autolearn=ham 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 X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.6.4 (snail.vger.email [0.0.0.0]); Tue, 28 Nov 2023 03:45:37 -0800 (PST) --0000000000001842ac060b34f29a Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Sun, Nov 26, 2023 at 4:56=E2=80=AFAM Kent Overstreet wrote: > > On Fri, Nov 24, 2023 at 11:02:00AM +0900, Masahiro Yamada wrote: > > On Thu, Nov 23, 2023 at 8:55=E2=80=AFAM Kent Overstreet > > wrote: > > > > > > This allows gcov to be enabled for a particular kernel source > > > subdirectory on the command line, without editing makefiles, like so: > > > > > > make GCOV_PROFILE_fs_bcachefs=3Dy > > > > > > Cc: Masahiro Yamada > > > Cc: Nathan Chancellor > > > Cc: Nick Desaulniers > > > Cc: Nicolas Schier > > > Cc: linux-kbuild@vger.kernel.org > > > Signed-off-by: Kent Overstreet > > > --- > > > scripts/Kbuild.include | 10 ++++++++++ > > > scripts/Makefile.lib | 2 +- > > > 2 files changed, 11 insertions(+), 1 deletion(-) > > > > > > diff --git a/scripts/Kbuild.include b/scripts/Kbuild.include > > > index 7778cc97a4e0..5341736f2e30 100644 > > > --- a/scripts/Kbuild.include > > > +++ b/scripts/Kbuild.include > > > @@ -277,3 +277,13 @@ ifneq ($(and $(filter notintermediate, $(.FEATUR= ES)),$(filter-out 4.4,$(MAKE_VER > > > else > > > .SECONDARY: > > > endif > > > + > > > + # expand_parents(a/b/c) =3D a/b/c a/b a > > > +expand_parents2 =3D $(if $(subst .,,$(1)),$(call expand_parents,$(1)= ),) > > > +expand_parents =3D $(1) $(call expand_parents2,$(patsubst %/,%,$(di= r $(1)))) > > > + > > > +# flatten_dirs(a/b/c) =3D a_b_c a_b a > > > +flatten_dirs =3D $(subst /,_,$(call expand_parents,$(1))) > > > + > > > +# eval_vars(X_,a/b/c) =3D $(X_a_b_c) $(X_a_b) $(X_a) > > > +eval_vars =3D $(foreach var,$(call flatten_dirs,$(2)),$($(1)$(var))) > > > > > > > > I do not like tricky code like this. > > > > Also, with "fs_bcachefs", it is unclear which directory > > is enabled. > > It's consistent with how we can specify options in makefiles for a > particular file. It is consistent in a bad way. You used "GCOV_PROFILE_" prefix for the full directory path, while it is already used as a file name which is relative to the current directory. > > I suppose CONFIG_GCOV_PROFILE_DIRS would be fine, but your patch isn't > complete so I can't test it. I do not understand what you mean by "isn't complete". It is just a matter of adding the config entry somewhere. I added a patch just in case, though. Note, both approach pros and cons. The command line approach works for external modules. With the CONFIG option approach, you can easily see which directories are profiled by checking the .config, but it is not easy to enable gcov for external modules. --=20 Best Regards Masahiro Yamada --0000000000001842ac060b34f29a Content-Type: text/x-patch; charset="US-ASCII"; name="per-dir-gcov.diff" Content-Disposition: attachment; filename="per-dir-gcov.diff" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_lpi9qfrq0 ZGlmZiAtLWdpdCBhL2tlcm5lbC9nY292L0tjb25maWcgYi9rZXJuZWwvZ2Nvdi9LY29uZmlnCmlu ZGV4IDA0ZjRlYmRjM2NmNS4uYzk1ZDkzMTg5ZWNjIDEwMDY0NAotLS0gYS9rZXJuZWwvZ2Nvdi9L Y29uZmlnCisrKyBiL2tlcm5lbC9nY292L0tjb25maWcKQEAgLTM3LDYgKzM3LDEwIEBAIGNvbmZp ZyBHQ09WX0tFUk5FTAogY29uZmlnIEFSQ0hfSEFTX0dDT1ZfUFJPRklMRV9BTEwKIAlkZWZfYm9v bCBuCiAKK2NvbmZpZyBHQ09WX1BST0ZJTEVfRElSUworCXN0cmluZyAiRGlyZWN0b3JpZXMgdG8g ZW5hYmxlIGdjb3YgcHJvZmlsaW5nIgorCWRlcGVuZHMgb24gR0NPVl9LRVJORUwKKwogY29uZmln IEdDT1ZfUFJPRklMRV9BTEwKIAlib29sICJQcm9maWxlIGVudGlyZSBLZXJuZWwiCiAJZGVwZW5k cyBvbiAhQ09NUElMRV9URVNUCmRpZmYgLS1naXQgYS9zY3JpcHRzL01ha2VmaWxlLmxpYiBiL3Nj cmlwdHMvTWFrZWZpbGUubGliCmluZGV4IDFhOTY1ZmU2OGUwMS4uNWQ4MGY3ODRiOTIyIDEwMDY0 NAotLS0gYS9zY3JpcHRzL01ha2VmaWxlLmxpYgorKysgYi9zY3JpcHRzL01ha2VmaWxlLmxpYgpA QCAtMTQ3LDggKzE0NywxMiBAQCBfY3BwX2ZsYWdzICAgICA9ICQoS0JVSUxEX0NQUEZMQUdTKSAk KGNwcGZsYWdzLXkpICQoQ1BQRkxBR1NfJCh0YXJnZXQtc3RlbSkubGRzKQogIyAoaW4gdGhpcyBv cmRlcikKICMKIGlmZXEgKCQoQ09ORklHX0dDT1ZfS0VSTkVMKSx5KQoraWZuZXEgKCQoZmlsdGVy ICQob2JqKSwkKENPTkZJR19HQ09WX1BST0ZJTEVfRElSUykpLCkKK2V4cG9ydCBHQ09WX1BST0ZJ TEVfU1VCRElSIDo9IHkKK2VuZGlmCisKIF9jX2ZsYWdzICs9ICQoaWYgJChwYXRzdWJzdCBuJSws IFwKLQkJJChHQ09WX1BST0ZJTEVfJChiYXNldGFyZ2V0KS5vKSQoR0NPVl9QUk9GSUxFKSQoQ09O RklHX0dDT1ZfUFJPRklMRV9BTEwpKSwgXAorCQkkKEdDT1ZfUFJPRklMRV8kKGJhc2V0YXJnZXQp Lm8pJChHQ09WX1BST0ZJTEUpJChHQ09WX1BST0ZJTEVfU1VCRElSKSQoQ09ORklHX0dDT1ZfUFJP RklMRV9BTEwpKSwgXAogCQkkKENGTEFHU19HQ09WKSkKIGVuZGlmCiAK --0000000000001842ac060b34f29a--