From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id AA6EE42FB1; Tue, 1 Aug 2023 12:36:06 +0200 (CEST) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 9832E43256; Tue, 1 Aug 2023 12:36:06 +0200 (CEST) Received: from mgamail.intel.com (unknown [192.55.52.43]) by mails.dpdk.org (Postfix) with ESMTP id 9F2A743255 for ; Tue, 1 Aug 2023 12:36:04 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1690886164; x=1722422164; h=date:from:to:cc:subject:message-id:references: content-transfer-encoding:in-reply-to:mime-version; bh=AjfCn6w5VZClqwZb3CKoIQgXDmu/sMJDwgPf8QouHCM=; b=XS9ivtTml8DNZ5NAWA8rou9wEcruwIOAtOvNjrfkm2ywiVtwn2d5Btc3 DxQkxsKaO4VNRSuG0Ujv1hsk62N60GqCMC+6ZFXM31zOk/RgNFwSL5DjI ra6xjl3i56m/q1E5s6c+QYGz0HO1OrfGpZ0wDNaZkFUAS8lYFbpDeRwD+ Wr/ToeMmzAWxqPNE+b/Zm6Kynfj7+h2xeiwtuAJBA1830XoUGSl5AE/eh 2bMre1jvI580JcP+t1F4lvQfMmh2xJmPYo3L3fIPhaJLOExs4ieVn90G3 hsffXH5DhTT0J6t18/86o2FC57wZ52lHMqz44+KeM2DgIfOmskte2wqcI g==; X-IronPort-AV: E=McAfee;i="6600,9927,10788"; a="455637246" X-IronPort-AV: E=Sophos;i="6.01,246,1684825200"; d="scan'208";a="455637246" Received: from orsmga003.jf.intel.com ([10.7.209.27]) by fmsmga105.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 01 Aug 2023 03:36:03 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6600,9927,10788"; a="678653116" X-IronPort-AV: E=Sophos;i="6.01,246,1684825200"; d="scan'208";a="678653116" Received: from orsmsx603.amr.corp.intel.com ([10.22.229.16]) by orsmga003.jf.intel.com with ESMTP; 01 Aug 2023 03:36:03 -0700 Received: from orsmsx611.amr.corp.intel.com (10.22.229.24) by ORSMSX603.amr.corp.intel.com (10.22.229.16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.27; Tue, 1 Aug 2023 03:36:02 -0700 Received: from ORSEDG602.ED.cps.intel.com (10.7.248.7) by orsmsx611.amr.corp.intel.com (10.22.229.24) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.27 via Frontend Transport; Tue, 1 Aug 2023 03:36:02 -0700 Received: from NAM11-CO1-obe.outbound.protection.outlook.com (104.47.56.176) by edgegateway.intel.com (134.134.137.103) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2507.27; Tue, 1 Aug 2023 03:36:00 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=TfzkeULePlPcZYTNLI6LTeBUbtwYGB9lGvnlH9PXbmOhI98cG8AgzlYHLU14gFeXuy/cRPJF+q3edzjBfHvZc6ONet6P2IlJoRS/2i97rXw4CHbSb5sQUkG+ltNl68bLOApGuDxsuIvDnAhEuUX07Bi3oIhzttQSSXLuQJS4lEUZlYWHWGyt+3GzbTh/qchKLsd5rlRh2h5gTvTwU3rkxMcUYiWSb3bqFEh1J8ApLtFOrkxX6fIf14kE74KO+kA9K0t8Z3ZtuxsrZLuw7jwwlKRTxVYreDfc8SqiZkQCdkGhZYthmeg2B42wqkLaStdIygRYM79wnQPQRTkQwiDy/w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=Xh8OT7vVNp4ESuJvhYgxFl2N3fcIEEHoyyeuU31IZIw=; b=YtRbfGrW44g2ngs6REAH7CS/LM8fkiHI0zxafu6l/7Wh1UyZaIj/2IKZn/vaTw3Nfc7Ge3rIHlzEyIbXyHOkkUS8EaMjIRy9Sfqid0B9qhkgYsoOQ8Fx4HtqZfM/BEZmJRE5sSDxy2Em3W6rHMlPUx8CjSfp4m/T/0YoOOad5muGeIlv0Dkg7oUdYLhV6mXrYL6mrgAOO35kOiToR6so/cf+6QCQSFDsWLQ6aOUCjZt/hSsKuHKkypjqshfuTQILx6hcVGwuBO6wBKjSlGCP7J6pXuagS24Kscf+9Pw5/GiPfyoFcRLD2Ktr22rPAs+r3G8d4aF2RLw+S0t2lKLvmQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=intel.com; dmarc=pass action=none header.from=intel.com; dkim=pass header.d=intel.com; arc=none Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=intel.com; Received: from DS0PR11MB7309.namprd11.prod.outlook.com (2603:10b6:8:13e::17) by DM6PR11MB4611.namprd11.prod.outlook.com (2603:10b6:5:2a5::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6631.44; Tue, 1 Aug 2023 10:35:59 +0000 Received: from DS0PR11MB7309.namprd11.prod.outlook.com ([fe80::9802:65f0:c441:780f]) by DS0PR11MB7309.namprd11.prod.outlook.com ([fe80::9802:65f0:c441:780f%7]) with mapi id 15.20.6631.043; Tue, 1 Aug 2023 10:35:59 +0000 Date: Tue, 1 Aug 2023 11:35:53 +0100 From: Bruce Richardson To: David Marchand CC: Subject: Re: [PATCH] build: check drivers class dependencies early Message-ID: References: <20230801085253.2447095-1-david.marchand@redhat.com> Content-Type: text/plain; charset="utf-8" Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: X-ClientProxiedBy: DUZP191CA0041.EURP191.PROD.OUTLOOK.COM (2603:10a6:10:4f8::20) To DS0PR11MB7309.namprd11.prod.outlook.com (2603:10b6:8:13e::17) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DS0PR11MB7309:EE_|DM6PR11MB4611:EE_ X-MS-Office365-Filtering-Correlation-Id: 5fda850d-a965-4ba7-f153-08db927b184d X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: K7//5EZJSQY3CE1wuChiut72E4fa8NUjz9/TVagSoM/GVWTWffaBFyRzgD2o5kPv4bcC+/NeoBWLBAriUl57HZfuVRKa5JDb7QdWU5SOijg1hCDT/gtRel5IM/93XXUs43IO6HI7h59o13HDRPduIilsq0BabV0b/qd5IIU+54VrLNpv+dQXW9mxA9LW/rv4WCtJdawpjCWCUMqN4EbHJrrHcSgFRJNpALNG4/tM55NTQheg/t/CdG2Y0K+sdVt5N50kTPvAUlPDOkLa1V0Tq8gsif326cNYzg9f8iNULqdR6s+KXY4jldsG3b/1DFJyeSVYAVby4HeHWmY24kY8lwjbC4no5mN+CRjJWLfg5cOfFjUC+cfQpc1uF2fqPIwqhV+DvUtK9rMsgL8hA6ZfqYNpJqfQKhI3IohHiYSngox4cMkhZUMxDME73HfRlQixrZCWVmNukqd8EZWFTL2mDfPe6pV+xkXHZbYJdFOEiMNm+ZJ7Rkp2AGyOijgoKhpiGEh3wvyLHu6c6maKo3t7Xc6+vt7ZG0JH9rmkJeYsU7c= X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DS0PR11MB7309.namprd11.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230028)(346002)(39860400002)(136003)(396003)(376002)(366004)(451199021)(82960400001)(6512007)(966005)(26005)(6506007)(6486002)(8676002)(6666004)(8936002)(5660300002)(66946007)(66476007)(66556008)(53546011)(4326008)(6916009)(2906002)(83380400001)(41300700001)(478600001)(86362001)(186003)(38100700002)(316002)(44832011); DIR:OUT; SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?ZTN4WSsreEt0bVBzRmFJSGZ2KzJaM2tOenFwcXdDRjhYMSt1SkhpNTQ2V3or?= =?utf-8?B?Z29yNFFhMyt0a0RkdkFJSVZ6ekEyVktuSjlieWduclNvUFFVejVFeWFOTytS?= =?utf-8?B?UExjQk1CR2VWalRVUFNKTTllU0JIN2tGbUFWcFEvSXRZMmowdjRaSS94Y3Rk?= =?utf-8?B?M25xOHNzbVNIWDQzaEtoeEd3QURWNllma3ZVQjBuRE1aUzdYQVIxRSttQmhR?= =?utf-8?B?QUlrejVVbHkyT1gyMUhTM01VRjQveHlVckQzelNUUU5MNnk5bVJpa0V3dDZT?= =?utf-8?B?bDc2blM5S2NDczYwS0Q5WWVha0ZXR294SnhzWHBCbVY1Wm1rekxzS1NQd2dt?= =?utf-8?B?ZmNlVjh3K0xlTWs2OFhOVExiMlAyWDV2dXdlV1hvWjcxbytSYWtKN0NuTkNY?= =?utf-8?B?K2V6NjhERDdEdE5laHJFQ0s2cHp2UGd4MlJoY2E1b0M0dWVqL1NWTVNNS3JF?= =?utf-8?B?NzdEcDJSQ1RGOWRQaXFPQlptN29SZUFCajR0ZitMcW9qOWJZb1J2UllCSmN1?= =?utf-8?B?cjJ3MWlNYUdTeHJRV1JLQklSZUk2ME11RXcrQVJUK3pCdlpjNlpMbFNZV3NJ?= =?utf-8?B?NnU4aTFYdTZBN2I4ZGhJZWZ2Y0RvOU1PVEp4QnhTMCtXNHhLR05nY0hvck5E?= =?utf-8?B?SmNrbGhld09yUlZVS2EyNXRVVGZVY2ZOUTRGOWVPZDU0Zy8yd1V3T0tnZTRG?= =?utf-8?B?MGFLY3lOdkEwRU9oajFWRnNDeDRQeGZ2TDBsVFI3L0QwYzdwS2RJdUVVR1VD?= =?utf-8?B?V1ltbDRNQlR0TE52dDJsWU1FeUFuTDhzS3BLZXpYRDFmTVN2NXM2UmtQeWZ2?= =?utf-8?B?VTR1dmN3YXN2cGFLbTJsWmZ4bW1MOE5oemhXeE9VSDFRV1YyNWNCOTdCakdn?= =?utf-8?B?VjQ5aUt2REovRllHNEswK01TVHJtT3haQmJZdmdKQjJsbmJ0Z0x2ems2VjNI?= =?utf-8?B?bTFhajVCNnk3SldpT0lCaTUvZ2tNQ3pUNE4rRGFTMHpaU0taQnY5UUxTOE41?= =?utf-8?B?RlpKUDl2V3V4Uy93SXBPY1BqOVJaM0RqQ1E2d2pqZk5ER2hJOXRGblRaWjB4?= =?utf-8?B?WXZOazROQlZjRjhNOGxibXV1K0JzRVo1KzRIQmpPRWRuREpiZzYzZUJ3eDE0?= =?utf-8?B?VUl0MkU5ald6cEZ4MEJlZ2x0RUtJZG8rZGxiYVZBc1BjU2N2ZXVKUjZSbzhn?= =?utf-8?B?VWsrVU1FTVhTTStmWkRXZFI1ZlBDcTlWalNOTUgwOS8weU93eFIvNHdZN1RY?= =?utf-8?B?d25mV0xFVkpDRDVqRisrTkljZlVLWHZYNGRVcDVVWWxoQlljSGF2Q1dTNnNI?= =?utf-8?B?UzNNSWtSNGhsandQUzkxc3FmUjkzQ2dKOFd2ZGFETkxRWWw0eUJXWVdseWhM?= =?utf-8?B?MXhHMnJHc3czbkhaOTltWWc5M0FqWEZYYW9iYWwzSXZJaXoyU2dTMklDRkdr?= =?utf-8?B?MXVlMUQxWXFZT2haZWkrN1IrN3JJKzlnNTBUUTdGZ1NIV1lGZHFaK0w1U3BE?= =?utf-8?B?empTZVArQ2JDZWxnckFWRXBYbjhmL3pJdThQYXFvbEI3VFRkWStZdEtQbi83?= =?utf-8?B?OE1OR2xmeitPUWYvb2lqY2VVWHA2TVFCVFpiNThXSGlHWHVoS2hTMlRIeTN6?= =?utf-8?B?ak9xNWVmZDBrTG5CNHk5STh6SmVmcmdNUHlxK29FL2gxTTA1UUpRMjZqZEZi?= =?utf-8?B?Nk9BNTlGTEphM3Y3VGpwWmswdUtoU0FMT1g3VnBqWkZxT3hCL3JYMnIrcDF1?= =?utf-8?B?Nk1CeXI1ckR0Q21hZWRJc29vcVNYTnNKT21mNnQwTXBPUWlqcHEwQ1kxN0FV?= =?utf-8?B?TlVQWTdoMi9Pam44eVQ0QnZyc05oQklmcVNLR0poaEduS2kxTndjUjdrYW10?= =?utf-8?B?eWtoRWNSMVAwWWdJdzZMSStSV2lwdlNOdXdBWDN0d2piUVNNZmc5Z3pLSEh5?= =?utf-8?B?VlBWVVJxY3hpUVNMSDhKVEg5QW8rbWk0UW1YRHg5Y0F4ZTY3SEJjbk04Ujh4?= =?utf-8?B?VUU5OXdxbFhGbDZsZHFkUlk4b3pzcStZOFMzSWxvNVVHTWd1Nmd5bkpUS3Fh?= =?utf-8?B?ODZoTWMrbURES1ZmblBmY2dpK3JrVWxtUHpUQWZvQ1RDa3VueWZWaVprNzJq?= =?utf-8?B?VUpKS3pDZURGbC9Ecnl5U0NoYzVJeDZ1QTRQM0hHTmx6anpyNmFoTjlrazBl?= =?utf-8?B?M0E9PQ==?= X-MS-Exchange-CrossTenant-Network-Message-Id: 5fda850d-a965-4ba7-f153-08db927b184d X-MS-Exchange-CrossTenant-AuthSource: DS0PR11MB7309.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 01 Aug 2023 10:35:59.1065 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 46c98d88-e344-4ed4-8496-4ed7712e255d X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: uQ5NBdnnJtFQQLUhSA9VXc0bMiZJOMBNL26br+Q3aY+fkE0owLs9PHljfjHz2qbGRJfQKUbW4M5FNqmxZCRLQQ1ExjBqZHxx1PZr94DXUjw= X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR11MB4611 X-OriginatorOrg: intel.com X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org On Tue, Aug 01, 2023 at 12:20:47PM +0200, David Marchand wrote: > On Tue, Aug 1, 2023 at 11:25 AM Bruce Richardson > wrote: > > > > On Tue, Aug 01, 2023 at 10:52:53AM +0200, David Marchand wrote: > > > Drivers implementing a class of devices (for example, drivers/event) > > > depend on the associated abstraction library (lib/eventdev). > > > This dependency is expressed in the top level meson.build for this class > > > (drivers/event/meson.build). > > > > > > As we are making more libraries optional, custom constructs referencing > > > the class dependencies in some drivers meson.build (event/dlb2) may break. > > > > > > It would be possible to add more checks in those drivers meson.build but > > > it is more straightforward to not even consider a driver meson.build when > > > the class dependencies are not met. > > > > > > Signed-off-by: David Marchand > > > --- > > > drivers/meson.build | 11 +++++++++++ > > > 1 file changed, 11 insertions(+) > > > > > > diff --git a/drivers/meson.build b/drivers/meson.build > > > index 74ae8cb96b..c375352e77 100644 > > > --- a/drivers/meson.build > > > +++ b/drivers/meson.build > > > @@ -70,6 +70,17 @@ foreach subpath:subdirs > > > else > > > class = subpath > > > subdir(class) > > > + skip_class = false > > > + foreach d:std_deps > > > + if not is_variable('shared_rte_' + d) > > > + skip_class = true > > > + message('Disabling all @1@ drivers: missing internal dependency "@0@"' > > > + .format(d, class)) > > > + endif > > > + endforeach > > > + if skip_class > > > + continue > > > + endif > > > endif > > > > > > # save class name on first occurrence > > > > I like this approach. However, we do need something in the summary at the > > end of the build too. Either: > > > > * Single message stating all drivers of a given class are skipped > > * (as now), message for each driver stating that it has been disabled > > > > The former is nice as it gives us a shorter summary. The latter is nice > > because it's consistent with what we have now. Authors choice, which to go > > for! :-) > > I like the shorter summary. > WDYT of: > > diff --git a/drivers/meson.build b/drivers/meson.build > index c375352e77..02268918e4 100644 > --- a/drivers/meson.build > +++ b/drivers/meson.build > @@ -74,11 +74,18 @@ foreach subpath:subdirs > foreach d:std_deps > if not is_variable('shared_rte_' + d) > skip_class = true > - message('Disabling all @1@ drivers: missing internal > dependency "@0@"' > + reason = 'missing internal dependency, "@0@"'.format(d) > + if dpdk_libs_deprecated.contains(d) > + reason += ' (deprecated lib)' > + endif > + message('Disabling @1@/* drivers: missing internal > dependency "@0@"' > .format(d, class)) Minor nit: You probably want a break here, as we only have room for one missing dependency, so no point in checking more after the first missing. > endif > endforeach > if skip_class > + drv_path = join_paths(class, '*') > + dpdk_drvs_disabled += drv_path > + set_variable(drv_path.underscorify() + '_disable_reason', reason) > continue > endif > endif > > > This gives the following output (testing on top of your series > extending optional libs and a fix on the new reasm perf test). > https://github.com/david-marchand/dpdk/actions/runs/5725429526/job/15513923381#step:19:346 > > ... > ================= > Content Skipped > ================= > ... > drivers: > ... > mempool/dpaa2: not in enabled drivers build config > mempool/octeontx: not in enabled drivers build config > mempool/stack: not in enabled drivers build config > dma/*: missing internal dependency, "dmadev" > net/af_packet: not in enabled drivers build config > net/af_xdp: not in enabled drivers build config > net/ark: not in enabled drivers build config > ... > +1 to this. Works for me.