From patchwork Tue Jun 13 21:54:32 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Vladimir Oltean X-Patchwork-Id: 107569 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:994d:0:b0:3d9:f83d:47d9 with SMTP id k13csp846501vqr; Tue, 13 Jun 2023 14:58:30 -0700 (PDT) X-Google-Smtp-Source: ACHHUZ4q9JOCucSwyx+OWDGZ4FY7y6X1+h/VfD0OMNpxMkXyzvrorKOY2J3Z+599Oi5Pa8imzsdp X-Received: by 2002:a17:907:26c5:b0:974:4f34:b043 with SMTP id bp5-20020a17090726c500b009744f34b043mr14686089ejc.1.1686693510185; Tue, 13 Jun 2023 14:58:30 -0700 (PDT) ARC-Seal: i=2; a=rsa-sha256; t=1686693510; cv=pass; d=google.com; s=arc-20160816; b=cVIRJ6sedWTtn/t2yGp/xU8gGZAxgGO4gKW1Ohlmxn5AYyoVhoIR7yAC2U1sl5AhCD vLcHpM1eY3KxWVNG3CBkl4zAQFcR77aj0LbARpN/Wt2umIuAhVEHKnkovnPMYOcQym6D Fwa9pJ42fiNgQDTTqA26Qa3GjJzqExkXk+sp8oGKRwxbry++SdXiKN6PBrEhYWEejFee FFYLxjs/1rQ/uSFp5Hah52eeKgBfRKtCXO2H4CyxvxnhpwGUR1ACZnTMAucGJ42uKf4a 9Duit/6outY421sjILG+VPTF2CruNK8ipt+PGDY+YXnhwbGTxO4XrJptTlLteStf7y2X VwFQ== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:mime-version:content-transfer-encoding :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=NkgevA1g4+u4PjuFAmT0IroGZ7q5zm3YQuPKnu6OQYM=; b=LAfbcjIE0VDKY0WJGknlmPreGoNT/J16aaQRNMB2k8MXmuJiXSWv6zVQQNUNNbY86G MIbqDy2bHGQchE99xf9OJtDu5fHuZSgi1EM/tkKNIz3qYRrrbzLhIu4H3eGkhxsxh5NQ QzwReyEa/qTNb1zsnkEdsQ+zeRa/LSbxCUagXfSKzOUjCRIepKt1oqM0/eqa+7C+CnXm NPiKI+kQkwbZWFhIkfOnFEWkw17kWPL+B38ptmRvF9idFFcKd3R8tBGU3GsLbqPhGrSJ Wis8QkrvqR9gmMFdQDUxjbsLPhuQx9tn53EGWhPREjdXBZNTATh1vRZ9Xz1wzmawZu97 Dusw== ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@nxp.com header.s=selector2 header.b=X6iEPbpD; arc=pass (i=1 spf=pass spfdomain=nxp.com dkim=pass dkdomain=nxp.com dmarc=pass fromdomain=nxp.com); spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=nxp.com Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id x6-20020a170906b08600b00957e7c30d27si3458649ejy.1051.2023.06.13.14.58.05; Tue, 13 Jun 2023 14:58:30 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@nxp.com header.s=selector2 header.b=X6iEPbpD; arc=pass (i=1 spf=pass spfdomain=nxp.com dkim=pass dkdomain=nxp.com dmarc=pass fromdomain=nxp.com); spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=nxp.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S240599AbjFMVzP (ORCPT + 99 others); Tue, 13 Jun 2023 17:55:15 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:46366 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S240388AbjFMVzD (ORCPT ); Tue, 13 Jun 2023 17:55:03 -0400 Received: from EUR05-VI1-obe.outbound.protection.outlook.com (mail-vi1eur05on2057.outbound.protection.outlook.com [40.107.21.57]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 7D5AF1BD2; Tue, 13 Jun 2023 14:54:54 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=oVFesdFlWl9LLn8mlWNz5ZlZKRMMBbH6UKhrIuPQAysIoiPdMfXplbw/vjUd9fATSNdm1eraxOPeyKzBarIl5ElfFtRq2zEXl6KhKDNkDqf2IknJTvZ8rulVVQa7JShuSLmdZA9y9ikYxkGyaonndkrwt2Sr9ulq6BwpYySbnIULyhQKyivwmajBnAttRZsBEMKSLX2IzL9xm4x/2bwLzZbVxpEf38Wn1qJpQhUZl63/VQpgDishd3fXVk3bqE9GuuI99eYL2N2Rdu7xvzxTAgl+NSvB/gCUDIpqV/KpQ7+h46b9STbXRFhZaoe9aNKBzDbCxEdInrFnVuVySzWS7w== 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=NkgevA1g4+u4PjuFAmT0IroGZ7q5zm3YQuPKnu6OQYM=; b=F1mjRcCbhQSSVfceqpNjdvFSEvT69PudMrEXPoz8ldDmVNCk7MGt2eVnTCF4Up5nSVn9dG4E+XQAXy/K3Z9tz5/J/BwucY/X5oLQp4OACR8MVtwGyiMNvsSEGjRtfOHgirKzrVAlq88ceFWSOiaTuwYuyXlpZfIxDVll4XtBlISAvdECvydPYoTeEhZoQ1UXQtVJhJ4m18GRYuyUTnVUHBWKX3ltQIjepKNFXHgyFk6pK1ZYtDApnNqlFccFpqwjnWpwPGYreLWjayXKP5aKa++F+Z0KH8CZ9V5IIwBCpc0UpYec5aQibMSVBQ/MMgOBOSbFa5cteNRwbJ+GpGaO6Q== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nxp.com; dmarc=pass action=none header.from=nxp.com; dkim=pass header.d=nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nxp.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=NkgevA1g4+u4PjuFAmT0IroGZ7q5zm3YQuPKnu6OQYM=; b=X6iEPbpDlZuSG+dVSXqt7gWSuEVTRd4UTwLnXlGkppHn8xBWBKI46FpWMlqCQ6vuu4tbCGOGPe5fzEIw+OW/k6wZazutTNGDIfgw6mSoR3XnbIHMcrEG+IQmHpqOXnZB8OnULbFCaFw2NE5IdYG8qErblA8M5F575lyKdHSp+RQ= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nxp.com; Received: from AM0PR04MB6452.eurprd04.prod.outlook.com (2603:10a6:208:16d::21) by AM9PR04MB8081.eurprd04.prod.outlook.com (2603:10a6:20b:3e2::5) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6477.29; Tue, 13 Jun 2023 21:54:52 +0000 Received: from AM0PR04MB6452.eurprd04.prod.outlook.com ([fe80::c40e:d76:fd88:f460]) by AM0PR04MB6452.eurprd04.prod.outlook.com ([fe80::c40e:d76:fd88:f460%4]) with mapi id 15.20.6455.045; Tue, 13 Jun 2023 21:54:52 +0000 From: Vladimir Oltean To: netdev@vger.kernel.org Cc: "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Jamal Hadi Salim , Cong Wang , Jiri Pirko , Vinicius Costa Gomes , linux-kernel@vger.kernel.org, intel-wired-lan@lists.osuosl.org, Muhammad Husaini Zulkifli , Peilin Ye , Pedro Tammela , Richard Cochran , Zhengchao Shao , Maxim Georgiev Subject: [PATCH v2 net-next 1/9] net/sched: taprio: don't access q->qdiscs[] in unoffloaded mode during attach() Date: Wed, 14 Jun 2023 00:54:32 +0300 Message-Id: <20230613215440.2465708-2-vladimir.oltean@nxp.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20230613215440.2465708-1-vladimir.oltean@nxp.com> References: <20230613215440.2465708-1-vladimir.oltean@nxp.com> X-ClientProxiedBy: AM0PR04CA0044.eurprd04.prod.outlook.com (2603:10a6:208:1::21) To AM0PR04MB6452.eurprd04.prod.outlook.com (2603:10a6:208:16d::21) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: AM0PR04MB6452:EE_|AM9PR04MB8081:EE_ X-MS-Office365-Filtering-Correlation-Id: 54e67235-69dc-4355-ba78-08db6c58d0b7 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: QR/leZdl7hEiJRPqSfwCdwllNlhuqUDkUAxAKoUMyHmHtHhUfUwkwcSTMkr8iHrk2y8TvlYrBUey28pC7DlJYhAk4h918yhU37SWZPdpeJUV+GTMV2fkesFhqFUMXiAb0YBkZi7jEsUpap6ezyTOUURSsPumg6HzR/eN/+2eUGfxMynP5nnTwO/mzMisRzJndu7Gs2CKlDbs46rxolX+tzXZ0Fd/3QZnJTxtI+uRgxHzoX3pzTaexHMYmYElKUt9dEd2vELdjDy5JiNDxfl6BVXrHVJrSGoZfqKq6S6EuQvz79nzWhs6hoR1MYb72Z+lRJNy/pGtrdTNshXHVzqb7Gm4ugj3uC7vXvdXdpjQfueaH6E0irII66x3/177B6Si24A2IWKFwuS6rPbflB2zRGvyHGEhFq6CXGSoKU9TE3JmckeOKhrkp25atxx/EkAddLSkt5EYQQTiAz8Uw35LCNGWeFa91Dvy4TL5AMRLJaK6sFtaTxMQ9AiK6tk1rRbPSMMgY8HYbWeTH3Mrd/+rTlgJ8zj6wDccHYGBoj9CqAFG4ROuj0PI6o2zurWTP3dsiVPOWU6MdbU1IzePTc6PySxHkS3A0hr6kmj4gkuPSwNajh3WJRXLZS9KE2FqdYhg X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM0PR04MB6452.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230028)(4636009)(396003)(136003)(39860400002)(366004)(346002)(376002)(451199021)(6916009)(66946007)(4326008)(66556008)(36756003)(186003)(54906003)(478600001)(2616005)(2906002)(66476007)(8676002)(6666004)(316002)(41300700001)(86362001)(6486002)(7416002)(6506007)(1076003)(8936002)(44832011)(83380400001)(26005)(5660300002)(38100700002)(52116002)(38350700002)(6512007);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: 2L/vo6S0ff/1rrwNORA5UEP0tRMkC+sgID88/nstO46gb2HGJ0Me0+daaXnI2g68jM5dADcUwagHUVAazNOh+6927xA4kKHuSWt2tyHndnQ2YfrtovUuv1o75YoPMjI3Y3hkuz2XzevlD7r5GtAc9uDErtNamwBJIXeSH2dWL58aaRnU2tDjVObbanCqMUeRifUGaejUNSMC4p9jUt8EMVzBOJ040xSbiJ90m6QIbNBF6VHk0udb8119KXi7mEMvt+BumaENyCO1i3BG35918IMwJOIe0bWxzYgYg3ZuQzdJyaiPuYNckm7enyY3YMAyAP1B7YB5A5M0GuMI7bE9FhbotJs++MG+1HMTa+Y8+dP0YNmOFeKyP9CYvtVGRGXKXhxp+cH09ReDs6CGomhEyd9u3RjS2b5l/bF5WyGKqUAEznvquDvk+YydFNem8UBs9/rhz8ocsi52mWnwoeLTkxJiCY+vFD5fPDboAj/H/36tfCoBA4b0qlZRPtq1klV4CBUEZtAEczDF7oEbBh1rxgtlod2WvVm6+s86LqxUuBJwHbAJ6/27FyKd6KvI9Rr6Xzv1n++UJbmxHfKQIzAhUpxFa60WbsqhzyGKYxceK08O4J2aCt01NXUXRatR9+0JLR5IjQP3CyDqCkMepWE8ZZq4EvNfCwtBWR4Ek5+xAakDzwRnJEPuHDah8uhS8qqs6nnuJ9wCjVsgxwd25PrTMlSBHu3nMRXv+VTCC0NxoWcgjtRGN92jnQ8kc6FVhm2klgeDL1Pk6Ph3fcX9eAGP2mr83ebZ1vRi8wzZxe0958WWtzGtiaQzU9/n6p2couSKw+QmpCxLQR+TsJ6MntPSKL+cpVTZOJraXtF//VFgtFRvrxoOpRBrAgZdUAWH6ZzvZxGSXkytLYqwCITxLoJEXAKe4vsuUerVCmiPKC8ploVQLXQyyrwE7mgX4AbLPnmmzQllnbf4VQnC7s0q6lFIukT4fcysnx2rxmsKOmxGWu6IUJweVsK8zwdi4ekMyEh2qLzv/jrXDiuipgDVNQfAGlQzQP0vKzZdyM0PdM0W+c4hbVRMtMN+vR7Hz748RTz6BV8AW+KndAgrG7GoTyJ70M0bOdxumGrBnhH6dQUXmLntXR80qf7WCdThIZpMbC3fP2uk/yk5MFGhfhMo6q9QMLPJaLqfErKSPAFdCKA1xayJYvWpGPbvzb6PlD1myANGptro4csCziMrqvsVnHCMqCOICl4XCojkuj6DMc7ARXDis+vAUeksay2zqF/bblv9p50Dxk1IdA4L7oAMnUlhy/PBubHmRBmay/yDqqOu3IDyHhN6NapSYLkIMAS5zq/4NX9cydY7umKky8zKub644Zd9p8mYyR4hAR0LGd2j074gaqKYMFjdwMXqbQq1SkqE85TtUAJ33UaaSFMj/S7+jIy4TlpYhvEUs8eYusiR8ChWLSvpSrrqLyZLS+OgQiXHkXVH02PO6buXEF9oqHp6Y0bjd9NpYI64kSTW1TefRI/WQwegqSEtJOqsYobB1ExDVUVdOkdJSfvxHj33mSXrhtvwO8z5oR8rmd/b/jSHd3Z/AQIPMMT+B95MIrP6iRYUrv3UfJgyw/mfsB2m/P25Aw== X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 54e67235-69dc-4355-ba78-08db6c58d0b7 X-MS-Exchange-CrossTenant-AuthSource: AM0PR04MB6452.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 13 Jun 2023 21:54:52.0093 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: uQeVilbYZuSLAjXLfah3x5Zy4psHsJSHP2UKvWyqLVF0oTG3ujTdIIKSdn3TqMieM/uyGILqUYo8wL9+QsiACg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM9PR04MB8081 X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_NONE, RCVD_IN_MSPIKE_H2,SPF_HELO_PASS,SPF_PASS,T_SCC_BODY_TEXT_LINE, URIBL_BLOCKED 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-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1768626334144074081?= X-GMAIL-MSGID: =?utf-8?q?1768626334144074081?= This is a simple code transformation with no intended behavior change, just to make it absolutely clear that q->qdiscs[] is only attached to the child taprio classes in full offload mode. Right now we use the q->qdiscs[] variable in taprio_attach() for software mode too, but that is quite confusing and avoidable. We use it only to reach the netdev TX queue, but we could as well just use netdev_get_tx_queue() for that. Signed-off-by: Vladimir Oltean --- v1->v2: none net/sched/sch_taprio.c | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/net/sched/sch_taprio.c b/net/sched/sch_taprio.c index c6627f5abdfa..3ee8a7cca786 100644 --- a/net/sched/sch_taprio.c +++ b/net/sched/sch_taprio.c @@ -2131,14 +2131,20 @@ static void taprio_attach(struct Qdisc *sch) /* Attach underlying qdisc */ for (ntx = 0; ntx < dev->num_tx_queues; ntx++) { - struct Qdisc *qdisc = q->qdiscs[ntx]; + struct netdev_queue *dev_queue = netdev_get_tx_queue(dev, ntx); struct Qdisc *old; if (FULL_OFFLOAD_IS_ENABLED(q->flags)) { + struct Qdisc *qdisc = q->qdiscs[ntx]; + qdisc->flags |= TCQ_F_ONETXQUEUE | TCQ_F_NOPARENT; - old = dev_graft_qdisc(qdisc->dev_queue, qdisc); + old = dev_graft_qdisc(dev_queue, qdisc); } else { - old = dev_graft_qdisc(qdisc->dev_queue, sch); + /* In software mode, attach the root taprio qdisc + * to all netdev TX queues, so that dev_qdisc_enqueue() + * goes through taprio_enqueue(). + */ + old = dev_graft_qdisc(dev_queue, sch); qdisc_refcount_inc(sch); } if (old) From patchwork Tue Jun 13 21:54:33 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Vladimir Oltean X-Patchwork-Id: 107570 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:994d:0:b0:3d9:f83d:47d9 with SMTP id k13csp846549vqr; Tue, 13 Jun 2023 14:58:37 -0700 (PDT) X-Google-Smtp-Source: ACHHUZ5Gh810mF0RWUCfCcSkn1FPItt7diFJlr31H5HlgtVVGFnjj0OkhAEdk7bmkv4TiZBb4MTo X-Received: by 2002:a2e:8719:0:b0:2ad:a9c0:1236 with SMTP id m25-20020a2e8719000000b002ada9c01236mr5562706lji.6.1686693517479; Tue, 13 Jun 2023 14:58:37 -0700 (PDT) ARC-Seal: i=2; a=rsa-sha256; t=1686693517; cv=pass; d=google.com; s=arc-20160816; b=eb0hma0eqBiBAsTErRC3yE4XH6UVsJ+1nZEWrbsxDDDuorxYAPBPDZ3wWBPc+FeFD6 V6k6qBtFmGaD5GUqw3PCDdfFTS45WaA+bsM8wnU9Q5z3P2U5xick1zoD8zcGq3u8bKmT GwL0DCFdcJDh7piXU58nDWoGeUiEjdj2oLS+RreGFlpfeFNevpVwHHfFn1knV2+t7OXB IscHvpOm6UOql+yQcT6C0k+bGMH/OBpcu8xPNgs8wwKkQa4h9CXCCxJqJ6IxapZP8MY5 2vbAQGVk5xaUcYtk+8QShD99N5vPVcwk0S6Jnr0/uMOC1cgOkmPslCbxkZwWVxkLJZMp QSMA== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:mime-version:content-transfer-encoding :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=n3gEstquR+TN9FFCuvBI5iKzqQAK/JnwRznKpXQ8Ps8=; b=Hp/0M46IX0VC+1ny+TGKDPpEywOptRd2JaYKs4NUBrhj5DqvmPyrA35MCEnximS55K eehGNbjn5lh8/UlLH2LVA8y1NgnUxqdku0hJUP5F4liqa9LtcNrPm8SH8ukL2EHHHuXu bE6y2BFCBx7iS0ubGfwB5W38WHWH1KMxS4i/krlvDzSg7NTGgtPDPODW5VzZO2dVULjw 9yCqLi7wCCwt8eKR+ujcgM6O/+n1jdM/ng3HjXnfT/tV4I3VAjmsHoaPAOKMfM4PdARE o5TMNBYosbn2IRzy8y6cm0AbSJMPWEZsoGNbni49+G09D5Q+XySJvo52AKRrOix3mZ21 9DbQ== ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@nxp.com header.s=selector2 header.b=VFE0r8UZ; arc=pass (i=1 spf=pass spfdomain=nxp.com dkim=pass dkdomain=nxp.com dmarc=pass fromdomain=nxp.com); spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=nxp.com Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id y6-20020aa7ccc6000000b0051497c87452si7479409edt.627.2023.06.13.14.58.12; Tue, 13 Jun 2023 14:58:37 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@nxp.com header.s=selector2 header.b=VFE0r8UZ; arc=pass (i=1 spf=pass spfdomain=nxp.com dkim=pass dkdomain=nxp.com dmarc=pass fromdomain=nxp.com); spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=nxp.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S240679AbjFMVza (ORCPT + 99 others); Tue, 13 Jun 2023 17:55:30 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:46584 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S235647AbjFMVzN (ORCPT ); Tue, 13 Jun 2023 17:55:13 -0400 Received: from EUR05-VI1-obe.outbound.protection.outlook.com (mail-vi1eur05on2057.outbound.protection.outlook.com [40.107.21.57]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id A03171FC2; Tue, 13 Jun 2023 14:55:03 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=d2gjde760FgVKaqaYR65SaBSUaDHDGMPDwX0CSSuHRkmvTtYGhYvqy4QSBMHhScz0OzojIUNfSsYytYNDxMAX/A2vCWpgRKlBI5dWAHZxskw3Y5qY51UyXp0mC/m2r1E/6iwgtdzuBzgnPCzXSW6+JnntphdkvKb1qvZx9QedBK2kgUbE5kDibblUO+euVFA4whTqdt0U9rDL3e5zw3ztvdYKfpUPRUBKpSo+JgCt1SR6o7gL5pX4VFot3tFjH/v+Og4y5tyuKqvuN0k3K3aR6NetAByhJtK7Jm5ypU7Q+BuB0iWK6KmXTgDcmmHecqg4xfUzglgVeABKRy2dqToWg== 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=n3gEstquR+TN9FFCuvBI5iKzqQAK/JnwRznKpXQ8Ps8=; b=L/QYeZ9Ia2uUp/FagbawLc4lpHdqyorqYtQA6CQZPlymBL4Bj6apSq3THuNVqb4jLRtydCzA+1mbXK1hh27uiaL6YPrCuoUrQCpiTn5YRNjGGt2MtLtodCr3+X1n0E+8q+MGHncQ7QoHeB2GXy9x0/1PiwmdNO1yPs/sYjWpDwBUsU6XqtfLT5u+u9oTOSPpMaBVs0IgShu0jg5bIe6YExHZXxwb32GaOIq/iz3Yz5dIKqLtkXf0lWz83rreYudLXXKIQRMLApgACB0SQKLmP+QqV2LSq/00zj+1SriYbZITZW8qr6ESwBr9SfGzVZ3RSA/JegKbWxt5V/1DZygzUw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nxp.com; dmarc=pass action=none header.from=nxp.com; dkim=pass header.d=nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nxp.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=n3gEstquR+TN9FFCuvBI5iKzqQAK/JnwRznKpXQ8Ps8=; b=VFE0r8UZQAUpTs/7uNGuINmzg9+j0AQ7mYUZkQqMny+39UnyxjgT4i7qZifO4flLyFtWv9HhxYR61Ls5Bzndjc0V8dRg0g9t4Q7FhQBHdR7fzL/k5+IwoGA200uStjQ7eVwWIFd4raIyK7p0Y0LjJm9D6t4+FEzCQk9xjsy0TT4= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nxp.com; Received: from AM0PR04MB6452.eurprd04.prod.outlook.com (2603:10a6:208:16d::21) by AM9PR04MB8081.eurprd04.prod.outlook.com (2603:10a6:20b:3e2::5) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6477.29; Tue, 13 Jun 2023 21:54:54 +0000 Received: from AM0PR04MB6452.eurprd04.prod.outlook.com ([fe80::c40e:d76:fd88:f460]) by AM0PR04MB6452.eurprd04.prod.outlook.com ([fe80::c40e:d76:fd88:f460%4]) with mapi id 15.20.6455.045; Tue, 13 Jun 2023 21:54:53 +0000 From: Vladimir Oltean To: netdev@vger.kernel.org Cc: "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Jamal Hadi Salim , Cong Wang , Jiri Pirko , Vinicius Costa Gomes , linux-kernel@vger.kernel.org, intel-wired-lan@lists.osuosl.org, Muhammad Husaini Zulkifli , Peilin Ye , Pedro Tammela , Richard Cochran , Zhengchao Shao , Maxim Georgiev Subject: [PATCH v2 net-next 2/9] net/sched: taprio: keep child Qdisc refcount elevated at 2 in offload mode Date: Wed, 14 Jun 2023 00:54:33 +0300 Message-Id: <20230613215440.2465708-3-vladimir.oltean@nxp.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20230613215440.2465708-1-vladimir.oltean@nxp.com> References: <20230613215440.2465708-1-vladimir.oltean@nxp.com> X-ClientProxiedBy: AM0PR04CA0044.eurprd04.prod.outlook.com (2603:10a6:208:1::21) To AM0PR04MB6452.eurprd04.prod.outlook.com (2603:10a6:208:16d::21) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: AM0PR04MB6452:EE_|AM9PR04MB8081:EE_ X-MS-Office365-Filtering-Correlation-Id: 169996e2-73ea-4641-95b4-08db6c58d1da X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 2DLb8iC8kiHjXGqbcyVoO98rr2ILEb973S2c2pZ+4sMT6pRo9a5ITGVXMZTw97nxkVzfgxlXQ+lTJTHSIZo+bCcP4yFQBqx3QL8RWx7jF0L7nnAB2vlXaB2wQWQkkgMbjeUY8SgCgEPsmpasM5FKm2HLSizSo6qIZFk29B+L9ML7p8vHuv72c3Gm9b6tF/9/Rb+XOzEyo3QtXnEBgAwXSsbrOtvKSH9LRCfkRKLGDLnQsLijMigddWuO39K/NSnJoGAJm43eA+F4WheDIWpZMPygic5SV+U6XLg7XlGr1j9Q2gsWDiH5mCdPoIohQrdEKa5/AJLSx0qEs+VNwuzqK97b/v3xg9/TEk5Nc+JEAiODRDCYPZR3bYDeJNsMr4yZto8tiu3PxdA6OQW1ptQUobYeS/RHNz0+3kwVTa47xTG5dqNcutTMsxJSPefNSJ6Ci3F22KCqFHfh+ora27FchRhgcfPvCb4dkJEsQ8OKl3A0rsb921gXvzDMI4qdRvsPWIsbALGVKgeeMXYJBzUsaBbuPWsMfVJtzp9e8iOL+/p8/Vj+frqh/iixOk9Zsw9/08ovTz+6X/L8R5wtgRXdRIu/44CuCQdZeOSoXOubztAHMjqXtxjGXtld7cbI5TkQ X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM0PR04MB6452.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230028)(4636009)(396003)(136003)(39860400002)(366004)(346002)(376002)(451199021)(6916009)(66946007)(4326008)(66556008)(36756003)(186003)(54906003)(478600001)(2616005)(2906002)(66476007)(8676002)(6666004)(316002)(41300700001)(86362001)(6486002)(7416002)(6506007)(1076003)(8936002)(44832011)(83380400001)(26005)(5660300002)(38100700002)(52116002)(38350700002)(6512007);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: 9VyWzot9A1Y/baEVq4kWcIzTri7UgKdcdD1sBeALR6Af9rIwCt1Ev4oW7Qa9cwt3XxG1XoQaTJN2xDPDtHe6zzRcrVztC3vPPd/kUTbLCpfLNnOFjGrolTVHnawcayz9mu7s6fKI4g0hxOAYe24oC5Rp6S4fTMuo3QW/NV5jLwkISvySQHbQ/MV+80+VrXNxX1yxY3xBj4lra5DKNqvohnVc2IsQT8EYRul0EgRLwy/G3GoyNQkkxKWWePoOJF29p47CIgTl+f1nIME+I7ki7Ydr7Kvda+wfGDVTT07jHXCLhF7/vDVxBKTBiH6YNhhDgmIyz6p5JePj5HoVGrdl1tZwA0Yp/JrtzbYr7tx2kRrRnBB4VaiFW2Lpuyufc34nGMSpvnJD3ep3e2ni+C+hac2pS9pGuVCHbK9p3PK+yjkCKD5ebrhkW0M2WdisT55qHBdMj5DyU1jaYeKOYd5EvRCufuMTuOzvzUDoVsgVKiGUwY6aZKupFBUhkaIInfzRqGqt87/8AP/H7xXtSo7bVr3AUgCrn11hfSHSNsN7nx7XsIvzbI6n/Iavryzj0G0rWsup3W6Q8ThqX+xm24G5Gl3fygMNO/ts9PljDbDMhXLlOdNx8cWiOluvBVDXMTgIWTLM+wQBdNopMAiEcpkPJ1SPeKuvs5iankEzIyv688Fbd/njZhzpm0DlbVcVIMHbXOQsZQKfcuGs8Z+O/r4LnI+UWlEIbKx47nJTnUSjsZSJP8GOlV5Mbu1/J9JzaMveSpGtt8o9x1q+n8j4EyQwUCEFLXobH1VPfIhO8QLlEyv2ljyojrbQsLy0MRjk3ecWhb6dkFBP8Wt0dpNP4OJbXwuszk+LP+ryDUMFEWgQTFn1TtiP5yZJlnh1YxYVTO0OzoyZ2+3j5nfyUNenCoFk2/pr67CC5CyhDb1M/UtOlctTqkIuAJy/fJaqBkn9I4fg7KT+FcIYvfvHGQF3UbmnOVaUl/jhXWzvJO2rrXYH0dUbgjLbCPC/6oqzEcYBon1Qr/BotnZS8ar3vWp76riAMTo+7DCxPZnKB9BFlONCoCo/ibpuESqKdStgxXFzRp/jJoVpxrZC0XKBaHmgJdp/md/Nz+mfcjI03fs29yI1IYKutfVCFPzCHeiEsHSlaTDqaIjkmrPTI7bjsGvazImxDRUAOhOWpGzkRWDAzKI8h88IarkuaU6edgkw+LMP+jRoDN+/8QzCkH6QK22ER5roFMaD0Vjpi+Y3CBGFYmKJTd0w8+PvVtV3Q2XnHIHFZ0BROkllGJoEyj+hIc5TWJc9TvRmIrc0GQEqArEoIvoEEIAp5ATIW11V6BXIm949b50sriaER/fB6EhqzTNuQw6OUGUHf5CPy/WijXFSoY7E41fJUjlmhHcrgArHLyAQSZ2Rg7+3cDyopqGGdzZH0RYxEYqdROaycHz3+sDdAZD2LKbd8q3EWaGFRM67a8sbCXK7hB2L3xHUfLzsWkHwBHA2oaO0v3Me8MgNTkjV7snp6EJ1OOU4+uY5tJnk0UG2krojEhlfk9c88bZbQ56JYV1r/9faukntSJkR7IggWK3JTGAiCQB2RBEQ8XhqyjqEG9XqOUPE/QzNxwkNIJgJf80Bsw== X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 169996e2-73ea-4641-95b4-08db6c58d1da X-MS-Exchange-CrossTenant-AuthSource: AM0PR04MB6452.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 13 Jun 2023 21:54:53.9020 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: w2InGh1lT6j46Ma5tjYne7h/WWzCsUVTcATFy/rTcx7exoY03RtLRBkV9V13/WQdqOq2CfFzjpR8WIM/Kwo7Tw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM9PR04MB8081 X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_NONE, RCVD_IN_MSPIKE_H2,SPF_HELO_PASS,SPF_PASS,T_SCC_BODY_TEXT_LINE, URIBL_BLOCKED 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-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1768626342013771579?= X-GMAIL-MSGID: =?utf-8?q?1768626342013771579?= Normally, Qdiscs have one reference on them held by their owner and one held for each TXQ to which they are attached, however this is not the case with the children of an offloaded taprio. Instead, the taprio qdisc currently lives in the following fragile equilibrium. In the software scheduling case, taprio attaches itself (the root Qdisc) to all TXQs, thus having a refcount of 1 + the number of TX queues. In this mode, the q->qdiscs[] children are not visible directly to the Qdisc API. The lifetime of the Qdiscs from this private array lasts until qdisc_destroy() -> taprio_destroy(). In the fully offloaded case, the root taprio has a refcount of 1, and all child q->qdiscs[] also have a refcount of 1. The child q->qdiscs[] are attached to the netdev TXQs directly and thus are visible to the Qdisc API, however taprio loses a reference to them very early - during qdisc_graft(parent==NULL) -> taprio_attach(). At that time, taprio frees the q->qdiscs[] array to not leak memory, but interestingly, it does not release a reference on these qdiscs because it doesn't effectively own them - they are created by taprio but owned by the Qdisc core, and will be freed by qdisc_graft(parent==NULL, new==NULL) -> qdisc_put(old) when the Qdisc is deleted or when the child Qdisc is replaced with something else. My interest is to change this equilibrium such that taprio also owns a reference on the q->qdiscs[] child Qdiscs for the lifetime of the root Qdisc, including in full offload mode. I want this because I would like taprio_leaf(), taprio_dump_class(), taprio_dump_class_stats() to have insight into q->qdiscs[] for the software scheduling mode - currently they look at dev_queue->qdisc_sleeping, which is, as mentioned, the same as the root taprio. The following set of changes is necessary: - don't free q->qdiscs[] early in taprio_attach(), free it late in taprio_destroy() for consistency with software mode. But: - currently that's not possible, because taprio doesn't own a reference on q->qdiscs[]. So hold that reference - once during the initial attach() and once during subsequent graft() calls when the child is changed. - always keep track of the current child in q->qdiscs[], even for full offload mode, so that we free in taprio_destroy() what we should, and not something stale. Signed-off-by: Vladimir Oltean --- v1->v2: - fix refcount not dropping to 0 after a graft operation - spotted by Paolo - slightly reword commit message and comments net/sched/sch_taprio.c | 39 +++++++++++++++++++++++++-------------- 1 file changed, 25 insertions(+), 14 deletions(-) diff --git a/net/sched/sch_taprio.c b/net/sched/sch_taprio.c index 3ee8a7cca786..b5f533914415 100644 --- a/net/sched/sch_taprio.c +++ b/net/sched/sch_taprio.c @@ -2132,30 +2132,31 @@ static void taprio_attach(struct Qdisc *sch) /* Attach underlying qdisc */ for (ntx = 0; ntx < dev->num_tx_queues; ntx++) { struct netdev_queue *dev_queue = netdev_get_tx_queue(dev, ntx); - struct Qdisc *old; + struct Qdisc *old, *dev_queue_qdisc; if (FULL_OFFLOAD_IS_ENABLED(q->flags)) { struct Qdisc *qdisc = q->qdiscs[ntx]; + /* In offload mode, the root taprio qdisc is bypassed + * and the netdev TX queues see the children directly + */ qdisc->flags |= TCQ_F_ONETXQUEUE | TCQ_F_NOPARENT; - old = dev_graft_qdisc(dev_queue, qdisc); + dev_queue_qdisc = qdisc; } else { /* In software mode, attach the root taprio qdisc * to all netdev TX queues, so that dev_qdisc_enqueue() * goes through taprio_enqueue(). */ - old = dev_graft_qdisc(dev_queue, sch); - qdisc_refcount_inc(sch); + dev_queue_qdisc = sch; } + old = dev_graft_qdisc(dev_queue, dev_queue_qdisc); + /* The qdisc's refcount requires to be elevated once + * for each netdev TX queue it is grafted onto + */ + qdisc_refcount_inc(dev_queue_qdisc); if (old) qdisc_put(old); } - - /* access to the child qdiscs is not needed in offload mode */ - if (FULL_OFFLOAD_IS_ENABLED(q->flags)) { - kfree(q->qdiscs); - q->qdiscs = NULL; - } } static struct netdev_queue *taprio_queue_get(struct Qdisc *sch, @@ -2184,13 +2185,23 @@ static int taprio_graft(struct Qdisc *sch, unsigned long cl, if (dev->flags & IFF_UP) dev_deactivate(dev); + /* In offload mode, the child Qdisc is directly attached to the netdev + * TX queue, and thus, we need to keep its refcount elevated in order + * to counteract qdisc_graft()'s call to qdisc_put() once per TX queue. + * However, save the reference to the new qdisc in the private array in + * both software and offload cases, to have an up-to-date reference to + * our children. + */ + *old = q->qdiscs[cl - 1]; if (FULL_OFFLOAD_IS_ENABLED(q->flags)) { - *old = dev_graft_qdisc(dev_queue, new); - } else { - *old = q->qdiscs[cl - 1]; - q->qdiscs[cl - 1] = new; + WARN_ON_ONCE(dev_graft_qdisc(dev_queue, new) != *old); + if (new) + qdisc_refcount_inc(new); + if (*old) + qdisc_put(*old); } + q->qdiscs[cl - 1] = new; if (new) new->flags |= TCQ_F_ONETXQUEUE | TCQ_F_NOPARENT; From patchwork Tue Jun 13 21:54:34 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Vladimir Oltean X-Patchwork-Id: 107573 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:994d:0:b0:3d9:f83d:47d9 with SMTP id k13csp846656vqr; Tue, 13 Jun 2023 14:58:56 -0700 (PDT) X-Google-Smtp-Source: ACHHUZ6I3YWA3TL/+G6q+Q+fFSX9hSSB1cw5Lsbt9eARZsgkOq+gaABv82rYM4nKFiBW4NPoBxs2 X-Received: by 2002:aa7:c547:0:b0:50c:358:1eba with SMTP id s7-20020aa7c547000000b0050c03581ebamr6942398edr.35.1686693536228; Tue, 13 Jun 2023 14:58:56 -0700 (PDT) ARC-Seal: i=2; a=rsa-sha256; t=1686693536; cv=pass; d=google.com; s=arc-20160816; b=O19xJGyyBXFvnrGSn+EWfkJ5TIfC4fFsoPHMODLU+JV45ROwd10XffC1ZdCoAEy7Qi mn+tLZfCMijwT+l1HR8oU9r9FLpjGB+nJNEJNdI3gvxiJwdhWDZ7te4uxc/NXsxaqUi+ 2daKBEOdjhlLMO8qVV6R1bsCJ+9OybLMd5oc6MjbqiPluBHyZYbFCSCkzXmZPitsVOMH BLdU/58K3sw0pVTyx6Ijfu7HAAs7w7Brc0mpxAViZRSKv01vUKCYvlX4ib6JaOJMpr2Z 5125J4azc9ff/kH25ZwiC+Gp/2WSrri/mgbYgXEPNv3rsD5u3lcOVjkQDj9J1Xuey4Yo zMbQ== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:mime-version:content-transfer-encoding :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=gXqsxyTcNdi0rJ3gF6pbv2TOSMGV5sZGMFTjQSS/6+s=; b=jKOs4Vy+do6p4ScYNMh+paCAoDwB1Sd51gKi6YCxxdxjxTHRfzwGgJdkP1ZdSVsN9q 5WFeg4xH/9x/M1d/s65AoX2guvZ6w2wFvtSpzhw8pMQkJchZM91clArsYYrtL3FozfI5 D13PQbSQtYhP2aydRp76/XbzvkKCpr3ZOLxIxgPfqcv+Sk9U8ilZbPxseG9fzomgN8aC KqSC+gczEsDMmADZwOq43I8MNCL+wEB4asERxrEcvGlRQPGfJsgbnxGxYgUVU7nB63cm 4J49zU0xocLPOJrVmLxJ8SMjIhuWrAOBOEQCjGk/Zgzgz6z9E7fA1fc7peYQVxOblulo MhSQ== ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@nxp.com header.s=selector2 header.b=EYU5zvne; arc=pass (i=1 spf=pass spfdomain=nxp.com dkim=pass dkdomain=nxp.com dmarc=pass fromdomain=nxp.com); spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=nxp.com Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id q21-20020a056402041500b004fd1ef9b95csi3647117edv.598.2023.06.13.14.58.31; Tue, 13 Jun 2023 14:58:56 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@nxp.com header.s=selector2 header.b=EYU5zvne; arc=pass (i=1 spf=pass spfdomain=nxp.com dkim=pass dkdomain=nxp.com dmarc=pass fromdomain=nxp.com); spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=nxp.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231732AbjFMVzy (ORCPT + 99 others); Tue, 13 Jun 2023 17:55:54 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:46896 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S240839AbjFMVzY (ORCPT ); Tue, 13 Jun 2023 17:55:24 -0400 Received: from EUR05-AM6-obe.outbound.protection.outlook.com (mail-am6eur05on2076.outbound.protection.outlook.com [40.107.22.76]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id AB44D1FFF; Tue, 13 Jun 2023 14:55:09 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=c4orWfmbKD/99sp/B+qWfo7//cl0MMiMnEGicrwlw4fG8L2Ri0TlToz97yhUjE5PcjdfxQh+aMFerweD3MV7smsdCubcjA0j+9jXGprdPULuL7jixZMe7eWF95D7qYa0/ykXQxvqVDhX+M0xZtP+ocxtGPn5ITU1x2+WfH1tqBmwb4ZJlaOW2Lemx7Ubb3LbBJM2OHD7h7MdbaIEYo+8WE41Oes70jK2XzOK87/an5BjyETY/PIz1pRXDXxZRG9DlQA6bgHarzGULafhh6DelT42Y7L1tAxmlSlOA9aYZH/RVY3r5HaHtAO7VeNR5PysKuoJ6TTfdYIGj20KIqC8FQ== 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=gXqsxyTcNdi0rJ3gF6pbv2TOSMGV5sZGMFTjQSS/6+s=; b=eimiNss3pfyn78wVZZvHexGQyc1ihklh0c2jkTHug5+jkYs5FZLRKZisPU2OcTmd9/JNngloLRzHtVXn3/fPiDFHNzfNXEV7UbhqRXL5Pz85rzqQroIYWM4FYMf8nOcA8S/yzcvq0xop/pfLG1FNNEOYFCXrXJuGvoTH/7ODkog8yMX6UyLyfyjNtXiguKQw4nSqTz8RtzEi6EQGw1ycXE10aiDw3CngQLTZF/qAe69A7/Q4o81DfMSTIGzS6nIKWhfNf4v3WYz+59SWAfAgk/tDt+fzZyFKIk5jWzG9ToqX3ub6OYxH2CwovjqN+7kZl+3pEjTiyayWKDiX1yAstg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nxp.com; dmarc=pass action=none header.from=nxp.com; dkim=pass header.d=nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nxp.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=gXqsxyTcNdi0rJ3gF6pbv2TOSMGV5sZGMFTjQSS/6+s=; b=EYU5zvnezGCbgKDy4nxmfswzHDNJeSG182E6wh119nI5uqri2/9ilP9CwJEUAeNzqzwTvdUDpi8V3m+4+1VZMQZ1Df4t+vCIsT54dHGx6AeieU5sR6SkwGKmylyipuAV2IbRwouOpju1Pw4osMXeMBSbq+KFguAD0SngzTlDKEc= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nxp.com; Received: from AM0PR04MB6452.eurprd04.prod.outlook.com (2603:10a6:208:16d::21) by AM9PR04MB8081.eurprd04.prod.outlook.com (2603:10a6:20b:3e2::5) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6477.29; Tue, 13 Jun 2023 21:54:55 +0000 Received: from AM0PR04MB6452.eurprd04.prod.outlook.com ([fe80::c40e:d76:fd88:f460]) by AM0PR04MB6452.eurprd04.prod.outlook.com ([fe80::c40e:d76:fd88:f460%4]) with mapi id 15.20.6455.045; Tue, 13 Jun 2023 21:54:55 +0000 From: Vladimir Oltean To: netdev@vger.kernel.org Cc: "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Jamal Hadi Salim , Cong Wang , Jiri Pirko , Vinicius Costa Gomes , linux-kernel@vger.kernel.org, intel-wired-lan@lists.osuosl.org, Muhammad Husaini Zulkifli , Peilin Ye , Pedro Tammela , Richard Cochran , Zhengchao Shao , Maxim Georgiev Subject: [PATCH v2 net-next 3/9] net/sched: taprio: try again to report q->qdiscs[] to qdisc_leaf() Date: Wed, 14 Jun 2023 00:54:34 +0300 Message-Id: <20230613215440.2465708-4-vladimir.oltean@nxp.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20230613215440.2465708-1-vladimir.oltean@nxp.com> References: <20230613215440.2465708-1-vladimir.oltean@nxp.com> X-ClientProxiedBy: AM0PR04CA0044.eurprd04.prod.outlook.com (2603:10a6:208:1::21) To AM0PR04MB6452.eurprd04.prod.outlook.com (2603:10a6:208:16d::21) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: AM0PR04MB6452:EE_|AM9PR04MB8081:EE_ X-MS-Office365-Filtering-Correlation-Id: 402fba01-dace-4e23-7666-08db6c58d2a0 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: SUexz1rET30jwIYCf5nr0iCVDDX05Ov92ybz4pllw1OchIIMOBfuWpNp+C4B69N5eLuZQw+VDH/yWivBwqAO1zPBxJSaQphzZLmEBh91AbVtio2fhtcBeo9BUWODkxsIY8pfRDP1bNbcYD97rz1yf3HCo5CPcyxGn5NGT6PH36neQQIsdWpHV6EKSriPZd4z/tVKg3BkiD4KhJgxEegT4eTabGrCtk+VcbVJsWCmfHh1HRevuN9seA0Up1sDqzngqZrLUL/8LJkMbxvx+Z6Qh2GvEseaajxSTdInvf9tf+eqpPJA0QUjKX4Or2SiMBtMrd7pIvLI6iG4ARBdUDcFLQxWEUZQcCFCBeIS3HQqjtTiNDDG/Xw1UjRCbz1kQnWPDKD8/IRKU1OySrTjDwFfor8DcqC9JHUO829FWO9pM55RiXumB1G6KuVaNXqjmFvqbpkLsThFbiQgATNbzZzlhiQMx+1tJJ9YVu1q/1rKSM/Ii28D5t8L+R6CLEmx9hVfPCCzkHTj+TUSyrAFLF48b0ujsOYLRLlFy1X0nyETbERtqTbHkOQR6Nc6c0OeSCPqTOOmpypKUxTIwnZOObfChiOaJDCvra8Dd/EuF/wGGgdfdG8g4etNpM15N84CDSO1 X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM0PR04MB6452.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230028)(4636009)(396003)(136003)(39860400002)(366004)(346002)(376002)(451199021)(6916009)(66946007)(4326008)(66556008)(36756003)(186003)(54906003)(478600001)(2616005)(2906002)(66476007)(8676002)(6666004)(316002)(41300700001)(86362001)(6486002)(7416002)(6506007)(1076003)(8936002)(44832011)(83380400001)(26005)(5660300002)(38100700002)(52116002)(38350700002)(6512007);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: HdfRJboseWcgx/8M/zLytk9HdfK1gfoDgu0B1SHDOxfjQT0ABl0j7N7MHPkNF1+pQvLoNh7o1y5D2WcDJldy1pwh71GdAmJLisJujzbUTvmgUYM1e5kLdWwYAqyxIO4sTleXl6ESORSgDCkBqN8hH4/E2HBw1NuIFfKy3YV3Ekl6RO/67IPi4/V0vtw/1jJMO53i7ideSysayrI6L4Tng7YQnEjTLuIL59sIIwAFQXCuSm5fejKQch2g8eNc7xv9eWHJQ//b11Z3oCC8eEChIvtNQ4XuW5XgiIVddlHQll9S9Tx25PFtAaJo2ianquIkwNJPyyljyxdl9vBCwhirU+HopAwdS64wqUHOrR4Cm/K/GENqWVssNhIRi/8df1Jmz0y8sbC6/Y9OpNCg2S7hmUh6vCcmhj6iMH99cmRTci2irUxVMAeRcYWy8r34P5QrYIIv8W/3e2cW1W85daHoDnYcFYPY0wH2pdonES/VuWsZKTONq3A/TJzNii5s7QlYI7wutyzz6uwNHvL2ng4/7mCyOgUI6PrPWP8FFdSr6wXCMCIw8K1grCYu+N8BGIa5wKVyezg7uzSxLmlbFNWVEw9O648RdGTL8QEeeirN3dA6+vgrz83pxAhmCBFa+CdKNgyimKAnOy0q41+XDV8u8NCfhYAKNwluva3Z3e0q0pWabwOd7xgMiyp0r+HHBqXB7D+p+797PjHtmSil5vxb6SCcm/0hEDhXnS1j5Iyc88q9KH/r9pqgV3Y5QwOoZ6XebFjkjbqVksLtNKG+y2+/gkWECMRZgDksgfVbsfe2awNyPVILXiXbbLlHl8jXiTZZOh8PtrYP73SfoAGgsUs2kaR/FMrQoFhzr6UH3AZhEvWLxZs0Ju7+Tk52DcPggv4qH/HpiIPePEvR/SP7j/ADVLjKXlZL0HljhW+EmG+pN5tGiBZqpLpyb74pZbu7QJbhsOvi34SmVv+0FEWLgT2vC6bd7f8yOF2pK3yKzyy/P6yaNpOj/5EIEGErx0AhzcEmWWafSUFhbACdpoOIqKNoRjfxdGhJQDVhD+T8I1gVIXxgn2BPzgRgBzGeQETk7DjXn2RKfsKMA/dNNb1lAS/zhUskCoE6G873gJkBPNzHrlXucZqSk6NrKDSMxPOgfUjjN9UCCIak13hPzOkORkPG9ge4AtkLn4XMwlP1xX3iBoSD92JralZTHMjebWe0O+yA4buJ5/Sz35RImXHtxXhHfEOIu/L+J58ApifcxURi8SM0dv4SMuwQGVmX54BmWID82twahyd+srHMsubsThAL8tdsgEOqL9wtct3Yh+XtyTx1AZsqjL7F700z45jKqKc49NMW4UCXMu/POZIfuXqqpqLPg+fTqKKk/VSq4X+5d5qrprNKtHo9z0/+Fvv7NCpFlDMGsOWKROx5J0qMyoaq9N/y/Jwvd0O/YNUJdQ6MSnQlQoF9OUxZPvr6QhXSPWgOIM74Ji6iQWmnub3zm7sNX1sR6DqfW7l3icn1eN0jKRpz0f1EQOSA3ns6jb/SKszZIlqkXV9x+LLuCtUtAqGn/tq4WI0agOVEaK+VjAqzN+YkJpDxqEIMO312KaXmhkjzp6dQ9iG/5sIKP+LyU/pePg== X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 402fba01-dace-4e23-7666-08db6c58d2a0 X-MS-Exchange-CrossTenant-AuthSource: AM0PR04MB6452.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 13 Jun 2023 21:54:55.1497 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: J2+rR5t3sbS26AfIpoRB+C+5skYqmtQnfZOzsQTJ9b+mtK7svSyd20buyKZucd6SvL4SUWv/7ip20AXGFDtgAQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM9PR04MB8081 X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_NONE, RCVD_IN_MSPIKE_H2,SPF_HELO_PASS,SPF_PASS,T_SCC_BODY_TEXT_LINE, URIBL_BLOCKED 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-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1768626361441282626?= X-GMAIL-MSGID: =?utf-8?q?1768626361441282626?= This is another stab at commit 1461d212ab27 ("net/sched: taprio: make qdisc_leaf() see the per-netdev-queue pfifo child qdiscs"), later reverted in commit af7b29b1deaa ("Revert "net/sched: taprio: make qdisc_leaf() see the per-netdev-queue pfifo child qdiscs""). I believe that the problems that caused the revert were fixed, and thus, this change is identical to the original patch. Its purpose is to properly reject attaching a software taprio child qdisc to a software taprio parent. Because unoffloaded taprio currently reports itself (the root Qdisc) as the return value from qdisc_leaf(), then the process of attaching another taprio as child to a Qdisc class of the root will just result in a Qdisc_ops :: change() call for the root. Whereas that's not we want. We want Qdisc_ops :: init() to be called for the taprio child, in order to give the taprio child a chance to check whether its sch->parent is TC_H_ROOT or not (and reject this configuration). Signed-off-by: Vladimir Oltean --- v1->v2: rebase on top of rtnl_dereference() change for txq->qdisc_sleeping net/sched/sch_taprio.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/net/sched/sch_taprio.c b/net/sched/sch_taprio.c index b5f533914415..14d628926d61 100644 --- a/net/sched/sch_taprio.c +++ b/net/sched/sch_taprio.c @@ -2439,12 +2439,14 @@ static int taprio_dump(struct Qdisc *sch, struct sk_buff *skb) static struct Qdisc *taprio_leaf(struct Qdisc *sch, unsigned long cl) { - struct netdev_queue *dev_queue = taprio_queue_get(sch, cl); + struct taprio_sched *q = qdisc_priv(sch); + struct net_device *dev = qdisc_dev(sch); + unsigned int ntx = cl - 1; - if (!dev_queue) + if (ntx >= dev->num_tx_queues) return NULL; - return rtnl_dereference(dev_queue->qdisc_sleeping); + return q->qdiscs[ntx]; } static unsigned long taprio_find(struct Qdisc *sch, u32 classid) From patchwork Tue Jun 13 21:54:35 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Vladimir Oltean X-Patchwork-Id: 107576 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:994d:0:b0:3d9:f83d:47d9 with SMTP id k13csp846780vqr; Tue, 13 Jun 2023 14:59:18 -0700 (PDT) X-Google-Smtp-Source: ACHHUZ5yzsegWC8jsXYeI+s3DdFo2TkLapSQF7iUN/kR35fZZEljeFHzhs5ifTuI1hC2YbDboK69 X-Received: by 2002:a17:907:969e:b0:94f:6058:4983 with SMTP id hd30-20020a170907969e00b0094f60584983mr14937399ejc.76.1686693558182; Tue, 13 Jun 2023 14:59:18 -0700 (PDT) ARC-Seal: i=2; a=rsa-sha256; t=1686693558; cv=pass; d=google.com; s=arc-20160816; b=mHqhdN08w+esToV56757EQO6K9RxgYDd2si7r/oPB5DcPOxD+lsB9wdJaHRTtV8MN/ SGtJTEjLyQ0RgRGIHlZHMSdS2EMlID1NODB4ohIKSeQvaAST/dP2u/+kimouJKKKDMMh 7ImdgV6Hh1TP1QD4u2QVuP1r6OirtysPbRzPGKaPcVW/dbpmoV5LBSOfbyBaj7RrNhhF XUX88lfM59i2Vjb2ZBMWINqnY7+9dxGVYIeN4NHSVMi3HufqztJBai3G+QSnWDJsnCs/ 4bGkCNhbSyZ7+qKuWw9wdVkLVuvbFSJnfg4f5xDo46v7gjHPnAL/OToeoeVepESs1/ca ILIg== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:mime-version:content-transfer-encoding :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=6SmBY9ThK2Z/s95Jn4Ig3yijmVeSyN54LUDxWQlFZtk=; b=F3JczlRatfHAAqtP6Z3DPyo/LgP0edr/qYDum+DiAuDk/3Stx5zEiIgiQJWDh3LkBH a/EsZFKkCg/4lW0K7ye19IGajj0HI58RdSdnbqISWpA+ucun70Qw3nSfvGTm89sWwKm5 izO7Rb3PAQzzQ7bzZjayB05vb9szWOmWGpx1D89t7YhKwjL9qsrdlwva3Pp7oKvRILMm BKWLkmwIbS6Q3FDHWgyOgBY8rkBJElWCBmFGu+7+tqhgoWWwTcXE52z8lpURrMRia9RP 3Mv81tUTGcupfRpm7PD9DLKu3NO4nF8QWceGIavYnAVNXVeiT2eWxqFrwEQtkIfLeADt TapQ== ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@nxp.com header.s=selector2 header.b=qzu1Ltyb; arc=pass (i=1 spf=pass spfdomain=nxp.com dkim=pass dkdomain=nxp.com dmarc=pass fromdomain=nxp.com); spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=nxp.com Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id r9-20020a17090638c900b00978723b8e69si6841503ejd.425.2023.06.13.14.58.52; Tue, 13 Jun 2023 14:59:18 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@nxp.com header.s=selector2 header.b=qzu1Ltyb; arc=pass (i=1 spf=pass spfdomain=nxp.com dkim=pass dkdomain=nxp.com dmarc=pass fromdomain=nxp.com); spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=nxp.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229838AbjFMV4D (ORCPT + 99 others); Tue, 13 Jun 2023 17:56:03 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:46386 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S240890AbjFMVz3 (ORCPT ); Tue, 13 Jun 2023 17:55:29 -0400 Received: from EUR05-VI1-obe.outbound.protection.outlook.com (mail-vi1eur05on2057.outbound.protection.outlook.com [40.107.21.57]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 968E62118; Tue, 13 Jun 2023 14:55:13 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=V83ssJ85rrFgGEBkN/FbKPc0mLSP8QYzvRZLpBoAWk225cq1qTvoBcIlx6WHq44eTyQYRj1ueaGihlq7cvYCLb86NKbSz+AhCwCujhQeUG2gNBLmzCfVPJjUzZlWpxUoJfqE009MPQv/nw/tPy3I0rSh+79djB3lkfn+6Tfxm3iUunu+thODA0VylklUZMvjuz2qV5/ube9PD5z5dKrFvC97f2IeRB7FFhs5lmxQLGHtXbMQt4OCG8V64mz6UJjlU+o5AkFCNpjlzK/0lYQ+NhVSF/hirsasd942tHvaGxjmJ0WmK9UHsw64jPhGkoCYWvwwhn/beq9jZxpuLRJ7WA== 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=6SmBY9ThK2Z/s95Jn4Ig3yijmVeSyN54LUDxWQlFZtk=; b=iIpP2rc2QoOWEcJdb9BTwMdGmCRjy8ozRUevaKSTcTgybbS6azYCisbpWJhNtZH26zoEGSdvOXnLOIXWYXKldveYdpPUy+5sriA8KcVz0LVO4TMZcryQpYITORrCPmTtM8vUb/jSLV0Vp2/fJ+ZnGKjEL5hilB4iLD2T3TZ3CmOJTMs+oj23sHsxTaSyUNQKVu48CYlUfBiStt9tXTQXMbVtGqqovOeMI44LICGtACxBzvZiqtTkosWank7zfz3AzYhvuQ9zAYre2mdX+d58AEe0DtRYgYcjtbzq/yV4QHR3QalfsuYlvYOKMQdSA1XEMj4hnbM7RWH2g5P2UnsDhg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nxp.com; dmarc=pass action=none header.from=nxp.com; dkim=pass header.d=nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nxp.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=6SmBY9ThK2Z/s95Jn4Ig3yijmVeSyN54LUDxWQlFZtk=; b=qzu1Ltyb4yEA2Sy9RPrCkZwhjTZiD0xEOuZ/Fpa5ESk6ScG33wnqrwoobndBS0DFR97FwhHkZ1SGRHiAwiXWtSYpg7Hkdg7OAsNrE3JLnqR1jk4WECwLC9jiC0GUGOhHE6ckfPBmrmZe3q1xkG269B7WmEP6WbbQ4jgqT+ikXEE= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nxp.com; Received: from AM0PR04MB6452.eurprd04.prod.outlook.com (2603:10a6:208:16d::21) by AM9PR04MB8081.eurprd04.prod.outlook.com (2603:10a6:20b:3e2::5) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6477.29; Tue, 13 Jun 2023 21:54:56 +0000 Received: from AM0PR04MB6452.eurprd04.prod.outlook.com ([fe80::c40e:d76:fd88:f460]) by AM0PR04MB6452.eurprd04.prod.outlook.com ([fe80::c40e:d76:fd88:f460%4]) with mapi id 15.20.6455.045; Tue, 13 Jun 2023 21:54:56 +0000 From: Vladimir Oltean To: netdev@vger.kernel.org Cc: "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Jamal Hadi Salim , Cong Wang , Jiri Pirko , Vinicius Costa Gomes , linux-kernel@vger.kernel.org, intel-wired-lan@lists.osuosl.org, Muhammad Husaini Zulkifli , Peilin Ye , Pedro Tammela , Richard Cochran , Zhengchao Shao , Maxim Georgiev Subject: [PATCH v2 net-next 4/9] net/sched: taprio: delete misleading comment about preallocating child qdiscs Date: Wed, 14 Jun 2023 00:54:35 +0300 Message-Id: <20230613215440.2465708-5-vladimir.oltean@nxp.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20230613215440.2465708-1-vladimir.oltean@nxp.com> References: <20230613215440.2465708-1-vladimir.oltean@nxp.com> X-ClientProxiedBy: AM0PR04CA0044.eurprd04.prod.outlook.com (2603:10a6:208:1::21) To AM0PR04MB6452.eurprd04.prod.outlook.com (2603:10a6:208:16d::21) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: AM0PR04MB6452:EE_|AM9PR04MB8081:EE_ X-MS-Office365-Filtering-Correlation-Id: b75d9ea6-635d-4cb0-9288-08db6c58d361 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: wpEqW+o5mMxPdJ8PHA9+t3Idi3QSn8vjDdTMSHBCVWuGYTKUWb8TL4EoRsjpqkV4Kd/lDMlnJwa1eLEpPlFsDWOq2w7QmWf0yMCg+u7gzoWcjJMyEY+532g9rA67K0Sf8chQ+zl9mcux33ExW3RI8RdJ8RY53BxdE4U93vzyiUg/Wmxd8v1WaOR3GJuUZP7q/NV3xW5wxV846rqSaZO1wStWRFd7jPxhpWBcx0yR+Iin3v8p703JYzD13DajGL46Y1DBPvlIHc9gtpHxmiIjwGNsP8XC5w7ISu9QFsGJsgZO8tBt0gwUEMBHphyL+vOyfOh+VK+bgj3i8vIkeGijKj+EdsdQWORFMXvAUdwAE9vXH0EuZHCmoZkN4T4f1CYzxIHAnvQZQjacVyhjbN8JYSeT6+hqI4mhVEaF8g+zImyC7RB6c/9TfhPogvTAnQhqkQIdLk4pAdyRRAbsSiwN7Y66HM8zKK2g219NRTw9Qb0B88ms9dU4ep5uiblWo+JZwqvxaPMkg3x6J8lKy8pa+WWCmcsAl8PzBN156n48cC1Pylb0jyUmsQxKpODXgVyRNqhFIOIxH4nO+J611OQ8Ha9gMmNxvFRJWX6uxw+8fFKx275GRvxyNFGI6WMbucYA X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM0PR04MB6452.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230028)(4636009)(396003)(136003)(39860400002)(366004)(346002)(376002)(451199021)(6916009)(66946007)(4326008)(66556008)(36756003)(186003)(54906003)(478600001)(2616005)(2906002)(66476007)(8676002)(6666004)(316002)(41300700001)(86362001)(6486002)(7416002)(6506007)(1076003)(8936002)(44832011)(83380400001)(26005)(5660300002)(38100700002)(52116002)(38350700002)(6512007);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: cwB2oh83J9gZYGfsweQ1lIcuhgPby99P0NI0Ufp+HOj32SFnBfUWu1vkexaX2unCZjCgyvqU6gkRNdnJdvqaFtfOWYzmelnVQgS6NxIQGNJhZlA6CccKCecwUI5GjhYxbu/OiPvSqoOqTTzCzN5y1y2SMQmS/tNJ2zw5eBa3gFj6rIxBQxwiFcBRm7H9TvC8iFpABMEmvW+fv+nkl8PfdnPs9nCyry0Lw2sRLcgk2oMqYWRBUSPX4MkpVem3JcaxxCFZ0jQX8mFk3+QvUmLRK4LpUp7VfanNfv9ONR7g1KQcCLF4CR/Bec3Cx/QVnGJCaNYBMn9QJ1sL2w85pq3U2snZV68PrH7pfhgoGnZRgiTAJ9QQVC0pewrQloNIQwjMqCLbOalDUHBs4DwiuGmUpckvYdYeiHRjLjXSfxviKMM6LRsyN5NNIFe46ZLa7AuNxZVjrnZgkZweDZaR6wUoth/XhB/misD3CyGb1LU3L4CElPE+vTOzQMlU3IYtcpXqndMrprUTmzMbvFat50KKu8Wh9xUDswQrSABOU9aPPu5epfeqLwL2Qjqxmoc4+omWNVj7mnwZ5el2IlWz2jYv0lsF/wSS8vRaJiulhR+HIU/9UjDkQ1V/0Cj88w+nVkdi7CJD8wYBcjaQ7CwHYqYfgij3QTjW4vkvQK8wzxvaRNOv0m0Xq95efW78sLRDNA4vyXauf1PG2Zhb5pOejhGiAjES8qnUKHnDs31/LpIBINMMvI5+rA8aYz2r7GbnWUhd0ULMejY+1iVPAnvHrp5fBDph9ZEyMyGwet4GhotFtWv5EYz9WT1cYz6YgB5EMUyeiMdU38CscN0FLeu3eZYW7ARhPKLUMY2Uj067Q9xbDHU7HNKxExIvSyLtZ3bQl/i43qhCiTZsiV2Hg8WcfoK0g66IKG57fUIwiuKY4JrEfhqTLi+YdQb2ti7UaE0ASnHt5coaWywGnhEMuDG0ybIqPyxFtBfqIgpzbQgjVlV0nS0/5ML+OUxLYv+CJ/H0jg0QHCWotk2jkXC6pivTSK3PUkVSmwwGnjWt7LakCJ2Rst+xHryYRSGT1cSVjFWJl6D1rjkbohHHYgbYe+tD7B3QEUED92m+6txHx5rfObxuZk/h7Td/RtzllEEuz1/dNC034epYXIg9BqPgrXBslc+qSgTXxEswG1A1qSE0w5/BhZTZUwMP1ByeGTfUpPAXpnPHm46EOmcYnA0zC1NNMm1bAKtx9h1Awgoy8EnccqN+Upc+iTJ8mSGycI8WbzECLECYQufMrvoclqPEcSWccrKJqv/C4ZoJnmFkGa6YDnP16UNLTnRtXFvbDmKOgd7JuH9e8AoZKiqOpjd1KxUnxRWwyOdTZcf8VN7qg+HRYcapUXaR6AofLpOqkjES0XMWP9MSKvN/RkpLk4Nxk7tiy2JihceAgcvMfn80kkuSK1NISeo4KbgzjhR+NK5DAvDmb9+EnjqYei4qhzxHASIj8AJFBVye76DgyoHwvk594smMqQ/jinSZqwFzioq4GJSuuY9q+Jf0vfxaF9ila6J4WJDZZG4OIQhuL7LjUGYW0uec2U3a2sCcLhT89aFAHJiYoQSqG22d0qRJDG1QzYomgdVs6Q== X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: b75d9ea6-635d-4cb0-9288-08db6c58d361 X-MS-Exchange-CrossTenant-AuthSource: AM0PR04MB6452.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 13 Jun 2023 21:54:56.3762 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: 8IsLzGqMTTVFQgBKDmSaCMeKlO6ohyioGRpLy6bWyJaFOhZGVPAc+CXfFvae4AI9xT12UswM4jgg2Yv6JdgtDg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM9PR04MB8081 X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_NONE, RCVD_IN_MSPIKE_H2,SPF_HELO_PASS,SPF_PASS,T_SCC_BODY_TEXT_LINE, URIBL_BLOCKED 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-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1768626384528560156?= X-GMAIL-MSGID: =?utf-8?q?1768626384528560156?= As mentioned in commit af7b29b1deaa ("Revert "net/sched: taprio: make qdisc_leaf() see the per-netdev-queue pfifo child qdiscs"") - unlike mqprio, taprio doesn't use q->qdiscs[] only as a temporary transport between Qdisc_ops :: init() and Qdisc_ops :: attach(). Delete the comment, which is just stolen from mqprio, but there, the usage patterns are a lot different, and this is nothing but confusing. Signed-off-by: Vladimir Oltean --- v1->v2: none net/sched/sch_taprio.c | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/net/sched/sch_taprio.c b/net/sched/sch_taprio.c index 14d628926d61..c35e27d0e49e 100644 --- a/net/sched/sch_taprio.c +++ b/net/sched/sch_taprio.c @@ -2085,11 +2085,8 @@ static int taprio_init(struct Qdisc *sch, struct nlattr *opt, return -EOPNOTSUPP; } - /* pre-allocate qdisc, attachment can't fail */ - q->qdiscs = kcalloc(dev->num_tx_queues, - sizeof(q->qdiscs[0]), + q->qdiscs = kcalloc(dev->num_tx_queues, sizeof(q->qdiscs[0]), GFP_KERNEL); - if (!q->qdiscs) return -ENOMEM; From patchwork Tue Jun 13 21:54:36 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Vladimir Oltean X-Patchwork-Id: 107575 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:994d:0:b0:3d9:f83d:47d9 with SMTP id k13csp846775vqr; Tue, 13 Jun 2023 14:59:17 -0700 (PDT) X-Google-Smtp-Source: ACHHUZ4ChADJnyrghx8T4b7EM06SNUUJO4LkXGg93awM/xoYHS5dU6UEgLNfO5XUCWT9Bb52AkC9 X-Received: by 2002:a5d:6991:0:b0:306:2f91:302e with SMTP id g17-20020a5d6991000000b003062f91302emr8007765wru.21.1686693557636; Tue, 13 Jun 2023 14:59:17 -0700 (PDT) ARC-Seal: i=2; a=rsa-sha256; t=1686693557; cv=pass; d=google.com; s=arc-20160816; b=SXR8FoYCWusnLnQBmhRo+V5TOvg9GthiCsQmGp9NwsTritqC0Gykz5r9kpfX/kqig/ CTaNZFzp2Vkq086jcSCiBiQrYJ0seY0C+6OLmMeSq5keGP+LrZNwOTHqXau6JVsO4X1J 1XoIyY4mIbpFgQdaZ4Gr04cUww3NTMpY+HvXWmG6CTbK7VrugYiAqlnCSnw0QxMW/mDN 88YRvNl+LibwKbdNM9nRMHcGBXxFZDInu4GJp8OeZSnqb9f9dIR8hodw2Sqg6JSpFh5j Zyuzoz7v0p7ROVhgB6YosKbCveA33V1tWQkzLYhzB9ubP2Il8vU+3A10EawbrOogdFvr cRcw== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:mime-version:content-transfer-encoding :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=D3+odP0/iwhuTvjDZXBYX/wtgZPNBxfOCKYxPYNrpdI=; b=XZS3rrSS8FfQcqWeGBSKIoGS8WUNlfRgl18oFAnfXluWEjjn7LDWbu4JC4j9UTJMqq a56b/Li1fCTcqyZKGhXudlV9fNDQFiIQSBkMuhM+YN4JYRAJBaTUUJOdrJVR0P0d3BpX mWHlRf62m2ASfhCiqguiAJ0YUdMTsywxxpVEjMylU8mLyjQbWJEiwlUExaZDgziHXdDd xuomlweQvpO2wnPkYU0ERZN2sU0oWFWCHZayVcRHd8T6wZhzexoPVRCay0WAe3O0oSVp jsZJY8KAxX6N49FIH0gKRLwIMjWx9/RgbAcO3mo4lcxrjEK3JUFYdYxVaTiYaZmSsLHc /vkw== ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@nxp.com header.s=selector2 header.b=NOIDP+ST; arc=pass (i=1 spf=pass spfdomain=nxp.com dkim=pass dkdomain=nxp.com dmarc=pass fromdomain=nxp.com); spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=nxp.com Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id bf23-20020a0564021a5700b00516409866dfsi4053421edb.360.2023.06.13.14.58.53; Tue, 13 Jun 2023 14:59:17 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@nxp.com header.s=selector2 header.b=NOIDP+ST; arc=pass (i=1 spf=pass spfdomain=nxp.com dkim=pass dkdomain=nxp.com dmarc=pass fromdomain=nxp.com); spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=nxp.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S240961AbjFMV40 (ORCPT + 99 others); Tue, 13 Jun 2023 17:56:26 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:46492 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S235279AbjFMV4A (ORCPT ); Tue, 13 Jun 2023 17:56:00 -0400 Received: from EUR05-AM6-obe.outbound.protection.outlook.com (mail-am6eur05on2076.outbound.protection.outlook.com [40.107.22.76]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 0D8211BDB; Tue, 13 Jun 2023 14:55:23 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=MeKZHWyvu2YfZQ7rLrnfHtOllqJakuv/jRzAnMtpZWXsqubeJwRTq/R9hj9L/Liry4Fa9b88NBrFI9MJGch4XBF+9kprYIRxYF0payI103K9XEcGQjxvinRemlM6EAna5D6DjXtYpJ89E6kZPJFBWYGWNTyiqOCEf23NQw67x+euyJTivKntiy+ncfW6POrMgXkz5IvmXB4Xwq2RkrNo71WSRHfd8+wYHdj9qjRW17MCSyl60/2zposDpUjJDIMjy5lotgqHOzg1sOx5yhSPUqCtsQkXlw0k4Yf5E+jumjoxUp94q/aAm0drnJmzPi2nqtgz28GimRLxXu3IhDnabw== 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=D3+odP0/iwhuTvjDZXBYX/wtgZPNBxfOCKYxPYNrpdI=; b=T/46hgtOKHgz2gPovty9cP/dlShsT0Gzq9so7Ffaiuo8NRNQiNOeQfQZtGRIxHCw18VGHJNyaKkYaQVD1T4txNwxEOhDHGvF8KAYrLag4K0ZqX4Yi8ziHuXjRXuRbnVxfILWg4pDpgo/2oLIeHxPdB8PASkPjCEZrqzJuxX6oPOoh2HIuBbBccFNzFuFqnaSWfadyPpzSET4FKkEAezMeOZvtVWn57ecmwEBQ1MlzRZrGdf2ZAJPO01tJUoU05iUWrVxrmxL3qXKxKQlSYVmin7L9wOjLno//eSeISpCqmf1L9hPw0aZanQ0Hm9fiZN3Xib0rQ9JJkipuC2DpkEz9g== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nxp.com; dmarc=pass action=none header.from=nxp.com; dkim=pass header.d=nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nxp.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=D3+odP0/iwhuTvjDZXBYX/wtgZPNBxfOCKYxPYNrpdI=; b=NOIDP+STiw2LQJK+6Xwpk2yze9sl+mjaLAw68txZD6G0VTmYZrUD+lFuniXPI/WzwcMyt5RfmpHCZ5ICDqd77YjNuNVK7TbHwRNzmJQybqHO9OHMRWaNrLw/ENK6Lm1gt00XikUXw529BQB0DuMxGj0lmJawHUWcWQXe7UwEjT8= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nxp.com; Received: from AM0PR04MB6452.eurprd04.prod.outlook.com (2603:10a6:208:16d::21) by AM9PR04MB8081.eurprd04.prod.outlook.com (2603:10a6:20b:3e2::5) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6477.29; Tue, 13 Jun 2023 21:54:57 +0000 Received: from AM0PR04MB6452.eurprd04.prod.outlook.com ([fe80::c40e:d76:fd88:f460]) by AM0PR04MB6452.eurprd04.prod.outlook.com ([fe80::c40e:d76:fd88:f460%4]) with mapi id 15.20.6455.045; Tue, 13 Jun 2023 21:54:57 +0000 From: Vladimir Oltean To: netdev@vger.kernel.org Cc: "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Jamal Hadi Salim , Cong Wang , Jiri Pirko , Vinicius Costa Gomes , linux-kernel@vger.kernel.org, intel-wired-lan@lists.osuosl.org, Muhammad Husaini Zulkifli , Peilin Ye , Pedro Tammela , Richard Cochran , Zhengchao Shao , Maxim Georgiev Subject: [PATCH v2 net-next 5/9] net/sched: taprio: dump class stats for the actual q->qdiscs[] Date: Wed, 14 Jun 2023 00:54:36 +0300 Message-Id: <20230613215440.2465708-6-vladimir.oltean@nxp.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20230613215440.2465708-1-vladimir.oltean@nxp.com> References: <20230613215440.2465708-1-vladimir.oltean@nxp.com> X-ClientProxiedBy: AM0PR04CA0044.eurprd04.prod.outlook.com (2603:10a6:208:1::21) To AM0PR04MB6452.eurprd04.prod.outlook.com (2603:10a6:208:16d::21) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: AM0PR04MB6452:EE_|AM9PR04MB8081:EE_ X-MS-Office365-Filtering-Correlation-Id: d08a77cd-dae1-4c31-4c41-08db6c58d420 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: YMQUISa29aRYYQfQCz/3nzkBJhaStcjZLocsfQWQ3ADjSdLEG8wduCjwU6GA+vFi3GExBxCSiUq/SQjBxwLyJ8y0E+2mt+auzAoEq871VfhEkwN4nFJPotzV3gZr1SJK7OWR/mxyJhNrEFnDFwAZmK/Osc0AL8Xl3vp1sA5y0+kjT6WAffPWxgWIOyNPFqjflMVDbfKSoubvef4ZlM7Y7APHH6kck62/uKrBrDU1nUzIsaPvJJwIOSkS8Ne8tv3IAyUcbkmOKMn0LBZix0910h1w/U/MvvHjsJNvB5aNY1cYv+0NszoNr+zWUQLZAD6J0U3RM9z+CzAf6d4S5ut3P1buBBOojfRG5YkIv4KHcD2uPbKOm+c3Ov9sZ/uQh8kjJpGmKs9fBu04h7DFLGGJkk8iRLVWGxD7mglDTTgyvqwjC6iGyuA8IMB37mWCPlfN0ZpZh+Q48jxNKRi4MZS3/HpZd4QY3mnq1VWVPN7AWLcuiioLi31Sy0YKXxmaF+RTK6ukBNxlGKZ6szP6wd4PDEJwxM3Ewi8p87f2ygMpAu4ljQ/WxQjSvthOOEp+TxFhn8Efm8hNloxfKadyPipONAhIWQdFfatjrvLc1XrYAm5wnZIdwlRlPO1B5/cq4TLj X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM0PR04MB6452.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230028)(4636009)(396003)(136003)(39860400002)(366004)(346002)(376002)(451199021)(6916009)(66946007)(4326008)(66556008)(36756003)(186003)(54906003)(478600001)(2616005)(2906002)(66476007)(8676002)(6666004)(316002)(41300700001)(86362001)(6486002)(7416002)(6506007)(1076003)(8936002)(44832011)(83380400001)(26005)(5660300002)(38100700002)(52116002)(38350700002)(6512007);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: nEqD2RkO45KgsneWhSUJluobznnSZtjee0DGlZ7SWymcJNs0GyVXwXt+f7AE7Lr1JZdWZ0uRAKS2qdBvKXI8w0v0/TB73MstczCaFPULdSmGvJdHry0X+zMtgFy7nT3Kxj9EFfAno0o+YLNbUngCh3N3rbHddHXpZAceR1IuW/V8KJTxg0n4Lq+99cvES6LJ5M5V92SDtB/yjZ3Msu0oKAfVMsqeBZRVDvg+dRpLXnz+qCvxEoP3tOS+0qgtZpUoJG/U2zqcxl6Piowsb1vxFChSfdf0UvrPHnA9obmSsZbqp9Tokrvk9OWcjjXQSEJuNrrjcxZVyDOAPwpub4WstOkh0MfuJE58PNyQc0mJuxPlryhIqExsEYinAcdJBLStC6vFL9aR/OVJesGhWADU1WZXkSXDjmBMdK1lNuDJVBRi3BUwhHH7QzfAvy8vcbTf7jAu0iqHlZdATWyMl7oqG+NIIqFHstsv3n0Wc5jKDKB7U5SJSXywl7m6LUasUj39gW7ASJnB4FWSb3zI6G0BV84B8jtvdJNgVYNIlCx3Ij8kKfMMT7r8IOUdqeCY6SyFxILb0dCRCJ73DRqXeeejzKM26dS1ONZWNpjtIPPN2IagzlX69RFI7g8VRdptJPKNL9/aVZUaVCr1FG3hLnZ4k2XuXrU7n2/hh+TwV9rU+Rfshdr945ly5E9pUdEF506Cb8KIV7nj1XIVXKPIPVc4xLGD5dxgRd+gkDllQ1zulSKYwfwA9hCB+m/i2bgRap5YrYELTWzYdWB7i6tcURIuv0Ifgf+sMiR+NuRO8g1/G070Pia40g+Kmxh6dSl7z0PD+xFuJHnbybxlTN3RGv4VggMXxCSKLPF/zbYfcH3Z9BSbgKnaqkxSJRWG4OBo8s7lAd5A9F/26exHECISG7SW0rxW5DRVOv/4fBkFndO9aEQFFyEDmJGKa/BTlvqpxV+c/gr/vcE/cym/O7+uNO2ZZs515Svoj+I8HyEUzpByZ1U4mp+pOkDITetjz5mQfYNCJk2e9b0C0k1oyvI9ItkHNDdy6Q4B4M7d/aPmuUzU7MtYy9KC09zH8Es4xMd13w7f5SbTkw8jSqBQg7WzCb2CbX8hjt4x52CvNeKJ1/9xWPbhtnLQoyOt8D2np+bYkK7v+iZv3hSxnrhGcGxh2JXpSWf3AJek3aqrJ9X4FFkpgIsfdngg42DeBuUvmxDv31wyBALv7EZjLtytU5j46ZCStalsYShnfSuPSQ4oSDgYariwNSsTXsnuGpO8VTx3ZeXfBzqSMmJ0M4J2lXGWsPbeobDLxJH7OHE3VA2r6UjlLbt1gRiV3h9RDaSztU0aVhi7Ji0mdP8y3/ILNEU6iwolgRdTFoiu6vMZtQKUPNfdTEIew0JGra4CGvNB0AFUVEEviakUWp2dL0PDPwTBvlDGNbm8Z4eUEVymyWLCGjuEGDiOnav/NlPtkScZps4o+qy2I6IxSbVVR5QLU3TK+ZNH/21PVsvbHxrKPCvtRqClgtDmCqW7a66kwR9ODSvjwY5eQKqrb+rfpk0jYJ5KhCd3KzCcSdzfah3ie6bOyDDoiXXznf/16Lo/mjNplhL38Vk3hipq3mLMZDP/GPzrUdR1qw== X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: d08a77cd-dae1-4c31-4c41-08db6c58d420 X-MS-Exchange-CrossTenant-AuthSource: AM0PR04MB6452.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 13 Jun 2023 21:54:57.6510 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: FzqP5lrK6efzRsQ6mQ7Qe3Y+oZ2DOCu5twNN/LeVxfupande5UrA3bMrigs5TQNQ2Y1YeJnAEXnUdp7uOF7GOg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM9PR04MB8081 X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_NONE, RCVD_IN_MSPIKE_H2,SPF_HELO_PASS,SPF_PASS,T_SCC_BODY_TEXT_LINE, URIBL_BLOCKED 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-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1768626383597589186?= X-GMAIL-MSGID: =?utf-8?q?1768626383597589186?= This makes a difference for the software scheduling mode, where dev_queue->qdisc_sleeping is the same as the taprio root Qdisc itself, but when we're talking about what Qdisc and stats get reported for a traffic class, the root taprio isn't what comes to mind, but q->qdiscs[] is. To understand the difference, I've attempted to send 100 packets in software mode through class 8001:5, and recorded the stats before and after the change. Here is before: $ tc -s class show dev eth0 class taprio 8001:1 root leaf 8001: Sent 9400 bytes 100 pkt (dropped 0, overlimits 0 requeues 0) backlog 0b 0p requeues 0 window_drops 0 class taprio 8001:2 root leaf 8001: Sent 9400 bytes 100 pkt (dropped 0, overlimits 0 requeues 0) backlog 0b 0p requeues 0 window_drops 0 class taprio 8001:3 root leaf 8001: Sent 9400 bytes 100 pkt (dropped 0, overlimits 0 requeues 0) backlog 0b 0p requeues 0 window_drops 0 class taprio 8001:4 root leaf 8001: Sent 9400 bytes 100 pkt (dropped 0, overlimits 0 requeues 0) backlog 0b 0p requeues 0 window_drops 0 class taprio 8001:5 root leaf 8001: Sent 9400 bytes 100 pkt (dropped 0, overlimits 0 requeues 0) backlog 0b 0p requeues 0 window_drops 0 class taprio 8001:6 root leaf 8001: Sent 9400 bytes 100 pkt (dropped 0, overlimits 0 requeues 0) backlog 0b 0p requeues 0 window_drops 0 class taprio 8001:7 root leaf 8001: Sent 9400 bytes 100 pkt (dropped 0, overlimits 0 requeues 0) backlog 0b 0p requeues 0 window_drops 0 class taprio 8001:8 root leaf 8001: Sent 9400 bytes 100 pkt (dropped 0, overlimits 0 requeues 0) backlog 0b 0p requeues 0 window_drops 0 and here is after: class taprio 8001:1 root Sent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0) backlog 0b 0p requeues 0 window_drops 0 class taprio 8001:2 root Sent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0) backlog 0b 0p requeues 0 window_drops 0 class taprio 8001:3 root Sent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0) backlog 0b 0p requeues 0 window_drops 0 class taprio 8001:4 root Sent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0) backlog 0b 0p requeues 0 window_drops 0 class taprio 8001:5 root Sent 9400 bytes 100 pkt (dropped 0, overlimits 0 requeues 0) backlog 0b 0p requeues 0 window_drops 0 class taprio 8001:6 root Sent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0) backlog 0b 0p requeues 0 window_drops 0 class taprio 8001:7 root Sent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0) backlog 0b 0p requeues 0 window_drops 0 class taprio 8001:8 root leaf 800d: Sent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0) backlog 0b 0p requeues 0 window_drops 0 The most glaring (and expected) difference is that before, all class stats reported the global stats, whereas now, they really report just the counters for that traffic class. Signed-off-by: Vladimir Oltean --- v1->v2: - reword commit message - rebase on top of the TAPRIO_CMD_TC_STATS -> TAPRIO_CMD_QUEUE_STATS change net/sched/sch_taprio.c | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/net/sched/sch_taprio.c b/net/sched/sch_taprio.c index c35e27d0e49e..86450e67be14 100644 --- a/net/sched/sch_taprio.c +++ b/net/sched/sch_taprio.c @@ -2458,11 +2458,11 @@ static unsigned long taprio_find(struct Qdisc *sch, u32 classid) static int taprio_dump_class(struct Qdisc *sch, unsigned long cl, struct sk_buff *skb, struct tcmsg *tcm) { - struct netdev_queue *dev_queue = taprio_queue_get(sch, cl); + struct Qdisc *child = taprio_leaf(sch, cl); tcm->tcm_parent = TC_H_ROOT; tcm->tcm_handle |= TC_H_MIN(cl); - tcm->tcm_info = rtnl_dereference(dev_queue->qdisc_sleeping)->handle; + tcm->tcm_info = child->handle; return 0; } @@ -2472,16 +2472,14 @@ static int taprio_dump_class_stats(struct Qdisc *sch, unsigned long cl, __releases(d->lock) __acquires(d->lock) { - struct netdev_queue *dev_queue = taprio_queue_get(sch, cl); + struct Qdisc *child = taprio_leaf(sch, cl); struct tc_taprio_qopt_offload offload = { .cmd = TAPRIO_CMD_QUEUE_STATS, .queue_stats = { .queue = cl - 1, }, }; - struct Qdisc *child; - child = rtnl_dereference(dev_queue->qdisc_sleeping); if (gnet_stats_copy_basic(d, NULL, &child->bstats, true) < 0 || qdisc_qstats_copy(d, child) < 0) return -1; From patchwork Tue Jun 13 21:54:37 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Vladimir Oltean X-Patchwork-Id: 107577 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:994d:0:b0:3d9:f83d:47d9 with SMTP id k13csp846810vqr; Tue, 13 Jun 2023 14:59:23 -0700 (PDT) X-Google-Smtp-Source: ACHHUZ7uXcE4x7FnBohSR6OyJl+lLrwhm1d161abblBlBD3WRygHLFY09rkfKuuadC04jvk7HTc2 X-Received: by 2002:a17:907:6d96:b0:978:8979:c66c with SMTP id sb22-20020a1709076d9600b009788979c66cmr13739783ejc.18.1686693562928; Tue, 13 Jun 2023 14:59:22 -0700 (PDT) ARC-Seal: i=2; a=rsa-sha256; t=1686693562; cv=pass; d=google.com; s=arc-20160816; b=yKY02gfGGs/BSdHuZzPDw3N2wsheh94ow4uD47ynjf4cxBVCYCV1jtIuNDW9PwhzUE Bgiamyn+efnvOkfg/Tb584Kq/4LF4kY4KXumRYuMcH7eiKMdY2JyQ2bXO0DYembmPKAs 4Wt3yvC0KVkxqBvutXX8JlAJM+xGtFQxuuSsclJbilx3tWW2I2likLskrpGIxej8ob5c QHYsqwE62aD1D+0QMBqKMmrWI1HFNwxi12cNNA13ny5a8MObuaVB8T6AjRWZEnjFIAMw excbHFJsiHnj4yx7e6/pne5kJmMqqxDz2ItB2Mp3zsWEAznSFim8g4hSo3Ln0iThOsef AWsg== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:mime-version:content-transfer-encoding :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=TfwPY6ZlTT2N8yXf2xt9pS8vWsn9f2Y+RMcWSUcIWZc=; b=UN99Cd5LhHcrlI8y3RgS5xgmIVTPcAlfMtq0dc4tGUi8PAMzYdY/psjFMp/L7obW0u +2hoQDzh7ehMCL+abWlYZD+zgBaXt34WpYMb5vsF4/zga1bMVQ8aH6rb6IhUhlvvX4OC ALCMOmHFe0hEwF0xLkqj/6bIZmDXY6aBsiNnGHQxG/IyY3CnLsKp2qbPup92CmgmpR1u 1vfxVdYQwbm9t5SBNdErWCw1SRZqoys2M6pHwk2SCjTiTpfa3KuCj7DCYYXWuJeKowHc 0N5J/qXRPAgkwTFWsQGKG/EKv+3P5UtzBgBNoDli0d2gWlNNEJiv0lbaimuRdJjwmmIW h02A== ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@nxp.com header.s=selector2 header.b=hc34vlNs; arc=pass (i=1 spf=pass spfdomain=nxp.com dkim=pass dkdomain=nxp.com dmarc=pass fromdomain=nxp.com); spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=nxp.com Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id gf5-20020a170906e20500b00977c9989f33si7005834ejb.858.2023.06.13.14.58.58; Tue, 13 Jun 2023 14:59:22 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@nxp.com header.s=selector2 header.b=hc34vlNs; arc=pass (i=1 spf=pass spfdomain=nxp.com dkim=pass dkdomain=nxp.com dmarc=pass fromdomain=nxp.com); spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=nxp.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231490AbjFMV4l (ORCPT + 99 others); Tue, 13 Jun 2023 17:56:41 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:46576 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S240270AbjFMV4F (ORCPT ); Tue, 13 Jun 2023 17:56:05 -0400 Received: from EUR05-VI1-obe.outbound.protection.outlook.com (mail-vi1eur05on2057.outbound.protection.outlook.com [40.107.21.57]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id C00C01FD0; Tue, 13 Jun 2023 14:55:29 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=h62wQ1+00oE687FWb53QRga1QCNZGdsxdLYQ26kVm2DK5rux8apbFFQf6UPzEABWwyIXFlxbA6B1ltktW1+b8xqIpMKhA9fe8NyHEAUrlDJO6Quqb1uORqS5V47Q5phfdF3tWWqe7s77BMRkWymIsCebFRWRlh7r3vmS7uRh8asg/TP9gKWWkgtNDqwdYJ3dCfkRtpALungzMf8hZ7z16oC1njjp97QW5NCE4QaJkLDWl6kMMSGTML6f1TVIizxrq8paZKmiW92lo0O5PMfN77W1u5zhHCCAmvCYB3FsWZqVne4bfnD8AaUAFUVUVRVXDoqEeHU/zJJHk+jIiLiX+A== 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=TfwPY6ZlTT2N8yXf2xt9pS8vWsn9f2Y+RMcWSUcIWZc=; b=nZpa5Gqfd+zlW5E+wpaqpQhaR7JMOodfX4R3GFTZ1dC2/QX83skm0k1bD0TMPaLqCIESKhaSFBNSqrgkJg/fVtmO/Nzs5Z8um/4W2EHF0hwuLQuOWyBqrGdVp5Q8YJyd6pTYajWElardblrXMrKp+vkGdo1uPp1Ryl04OcQUcwuI9YYIHPMf2C3gfOsQMMQPcj6tWZFabAOo/sTWalPZ1AAXmqZDMCpEsgOko3r3Zxpgwam2cbw6ZCo994Gp/r9A2AIqgFyzDIygJ8YFE4L4917WZSazq2jkqjaJLFQdkzk97unfpt5iZlNAGI773aaFDm1YGgUqYlCAI+4QAXh7Ug== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nxp.com; dmarc=pass action=none header.from=nxp.com; dkim=pass header.d=nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nxp.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=TfwPY6ZlTT2N8yXf2xt9pS8vWsn9f2Y+RMcWSUcIWZc=; b=hc34vlNsFoxpJWPYKOpD9dKu16HSNKQNyuvk/v55dMygn5c2pZpo2+qx2K09fBojY3SDsTktLb8kM9FCcwpXR+O+rTZZl7uDOzI3jn7yQnYc5alJ2OD/CeKz4EpQqGz0CZPdRflXnpsBcskJpmRKgIrPcFey/XnIiZ1JJD7oZ1g= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nxp.com; Received: from AM0PR04MB6452.eurprd04.prod.outlook.com (2603:10a6:208:16d::21) by AM9PR04MB8081.eurprd04.prod.outlook.com (2603:10a6:20b:3e2::5) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6477.29; Tue, 13 Jun 2023 21:54:59 +0000 Received: from AM0PR04MB6452.eurprd04.prod.outlook.com ([fe80::c40e:d76:fd88:f460]) by AM0PR04MB6452.eurprd04.prod.outlook.com ([fe80::c40e:d76:fd88:f460%4]) with mapi id 15.20.6455.045; Tue, 13 Jun 2023 21:54:59 +0000 From: Vladimir Oltean To: netdev@vger.kernel.org Cc: "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Jamal Hadi Salim , Cong Wang , Jiri Pirko , Vinicius Costa Gomes , linux-kernel@vger.kernel.org, intel-wired-lan@lists.osuosl.org, Muhammad Husaini Zulkifli , Peilin Ye , Pedro Tammela , Richard Cochran , Zhengchao Shao , Maxim Georgiev Subject: [PATCH v2 net-next 6/9] net: netdevsim: create a mock-up PTP Hardware Clock driver Date: Wed, 14 Jun 2023 00:54:37 +0300 Message-Id: <20230613215440.2465708-7-vladimir.oltean@nxp.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20230613215440.2465708-1-vladimir.oltean@nxp.com> References: <20230613215440.2465708-1-vladimir.oltean@nxp.com> X-ClientProxiedBy: AM0PR04CA0044.eurprd04.prod.outlook.com (2603:10a6:208:1::21) To AM0PR04MB6452.eurprd04.prod.outlook.com (2603:10a6:208:16d::21) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: AM0PR04MB6452:EE_|AM9PR04MB8081:EE_ X-MS-Office365-Filtering-Correlation-Id: 3276a6a0-f30c-4411-0606-08db6c58d4df X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: QAGswmFyL0uMWILtTNxpZE12+si6HLpCoNw+n53HHDqvOpLyRMynOMHUnYg+1Yjpy17om7uS3BNs4LIQOrAAlCyClwEfKWTuZ1GnoMu0Y4OgdLdtmuxXgvT45eD2zvIQPrBPRowdC4ZoJStoEIMrWlf8MMLo/8SygmA7UH1jfwFJobrCIJ2baAAxpXC8f/7tsGo1RDKrr4UmDFkfyQxwlBYw08zrUHFikY1JtsWOXV7TVigFG/yLOQCrR3FWoBrW8/YNPxX0S955cb9vk0dac2akQlMz7P+b9MiBHE8qXZ/kRTvFiHEvoCZlnpKSUL+cf/Xk15mjg/K4bPnLfvtQ7euLC5FEWgP5ZXi97EqiK4/emNyi3ZIhGrEHI0YQ7C3UDCTn6dfsncZVWPtgHidf7sbob68CBKwn5hcd/mXASPKw8ofNfRDDueIm3NRyBnxZzn6am2gm1ncNIiGO6VzbMeq750JN3l6JEbKwa5AMNVqs4Xc4ZGnhahb7gW3D9flpj24ogScRNIYcSkhUg42KUX9ykrQg6zvRxqEaZYG272yuOsNx+Sqkub7ribSw567xlSnL6KGL6Q2+VoPZwPnBHqk7HjsAw5dYHtfhpGIe4QFw4cY3RKcYan9Z18EOVzj0 X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM0PR04MB6452.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230028)(4636009)(396003)(136003)(39860400002)(366004)(346002)(376002)(451199021)(6916009)(66946007)(4326008)(66556008)(36756003)(186003)(54906003)(478600001)(2616005)(30864003)(2906002)(66476007)(66899021)(8676002)(6666004)(316002)(41300700001)(86362001)(6486002)(7416002)(6506007)(1076003)(8936002)(44832011)(83380400001)(26005)(5660300002)(38100700002)(52116002)(38350700002)(6512007);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: nBDezOdwsL/CeYx5137Wi0oI/I9GEyPEZ7HNdLo4Han+qz9QQLxEtwnYH2Y/B/nJsSWW2KJXovGwhzuMxLsJsQXFfL62e8tav+niWKugfu+MhscNOmqJOZ9UHUcv0WTgSem20EebX3NL1n0/JH9uHihsOlx+vfoqVMoH2uy09sIElQDOuYJwyxvdjG3Lh0KCxakb81Fbf8FQCRh2qotkB40wCzx7kpHXPQRYH88krqeoUQ5ZM72lv2OQzU8xznabhDywzd6Ppp25BdplySqFl3dfi+TTkXjkrrKdSYd79iVx5b0rvpxns2RZUzPvLjDezNPJhbSkbKyzX0YOI45kODO+brD8blmvRAdBQMIYVXBFN0Fhdrf2ftw0pkHlMKzMPl23ak2N4o8KFqGOxqQqH3qKnSEsyRZRZM8BbIYXrbJeMfKQMI5+9kHGA1hPVc17lgWsPZzZrI0PYkgoKsXUa6JUFfmxPbSfXAX3k3tIvdr0Zbhv4h+moRM48Uo9182qkuKZZLABavAJQr6589T0afCcF0FuCiNu2XiC/vp1IZu6GjBk3aGMwtCLjjaZcvi75rez38yGjcmvErm8dmE9zJRmrNHZBqECfSt9OY28W3hb7cmfzdNwybq1ys+D4WTt6QDU1QpVn9WBtM7JPfH4/jhTmCwyUKKz0LHSIplEfgRobD0xqK8Utf3O45o1qsRC5dbH1I4eR2gaI0LqQrcoXInQ1Oy49JQUaWyWdAI1sbWsdOVD45jRyS+qfdO74rQeMBrnWfKYweiWTFtFiwrRKduKF+l4ZzaO2zXXz1fffBM6Uq9os2h26E3IdJQmTPOV/c9/HHl52SizmJs7cPUULiSBKYn81mTxJEiiVF2q89hJZu5TSlzn3AhkfEiKyafqqDd23BlmPny4B6fVg2/ho0rsY1gt52x7c2o7X5J5U7lgESevvRshEKZS8i8w13VbJJ9anIeRL7OjhnUfhWqXs+LuF2ym9ixC7sn1K3IEfbBf8KahBWLGMCwuURZwrd6yt/zcvQBir/Q+PgzYJeRo/wW0jMPWSyKOrtvbG50ZQSzLRFvic5LOrahgxZRNCECrJtejTGwrvFeMwe1LAc/2I6OKeYiD7j6EF/z8UBDWrQxi9g/8eSnei7jJTloXfEzDwY+QIr0ZFDHUQ9YBNGyJYfWITwcr4TxpJecyaw102rAEw0D6XUOlyNCmss9SxvCfuCkZIlx5NkhUtc0pLKKRLu1U7PkBJxjOdC0ZLsyjh/s0dUJYuikEfayFMc65u9UMMnUCX39SEJ8sq8nqZkshuu9Wv8wjPp8A4KOCSiewCBlyAifPAeaqAKpYym8P2E9EOqIpi3qFLTZMvOyAZNGVKDNIJWOSdq09vqJZORvMt9wcNoT3pVzk7HYGA6D0Lo1aFcsoDW+G+nk9fAppCN90C034Pvxsy3aP6NnmkPCGFH1rAV8yqCwlZ159ew8E9z2K8PUBZEdDQHldc2vyKaC+qtaGBlxIu1AVZnTKrx/9YKFDPLD7qcUvPZZYCkr0g6oXT9VHEjXr005c91xSYIYMkdhVlLP77q8Ts5WJbk1y6PtnetJPg3JxVMaDa0c0nBSkbem5nUcEXZn9Fs7g9Dm+6g== X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 3276a6a0-f30c-4411-0606-08db6c58d4df X-MS-Exchange-CrossTenant-AuthSource: AM0PR04MB6452.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 13 Jun 2023 21:54:58.9508 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: L1PveayoQ9xncYi+CwnN8vMVyHlranSs8GJ/KYw/QBA5kr//gt/yyMaCiyzax6vZwt97CNID3bo7QrvRemYvrQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM9PR04MB8081 X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_NONE, RCVD_IN_MSPIKE_H2,SPF_HELO_PASS,SPF_PASS,T_SCC_BODY_TEXT_LINE, URIBL_BLOCKED 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-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1768626389763940926?= X-GMAIL-MSGID: =?utf-8?q?1768626389763940926?= I'd like to make netdevsim offload tc-taprio, but currently, this Qdisc emits a ETHTOOL_GET_TS_INFO call to the driver to make sure that it has a PTP clock, so that it is reasonably capable of offloading the schedule. Needless to say, netdevsim doesn't have a PTP clock, so that's something to think about. It wouldn't be that hard to create an object which emulates PTP clock operations on top of the unadjustable CLOCK_MONOTONIC_RAW plus a software-controlled time domain via a timecounter/cyclecounter and then link that PHC to the netdevsim device, so this is what is done here. The scope of the mock-up PHC driver seems to be in drivers/ptp/, since it is in principle reusable by other virtual network devices as well, such as veth, and those could even take packet timestamps when passing skbs between peers (the same timestamp is given as TX timestamp to one peer, and as RX timestamp to the other, resulting in a zero-delay link). Nonetheless, netdevsim doesn't support packet RX/TX (and taprio doesn't need packet timestamping), so for now, the mock-up PHC driver doesn't support packet timestamping either. The driver is fully functional for its intended purpose, and it successfully passes the PTP selftests. $ echo "1 1 8" > /sys/bus/netdevsim/new_device $ ethtool -T eni1np1 Time stamping parameters for eni1np1: Capabilities: PTP Hardware Clock: 2 Hardware Transmit Timestamp Modes: none Hardware Receive Filter Modes: none $ cd tools/testing/selftests/ptp/ $ ./phc.sh /dev/ptp2 TEST: settime [ OK ] TEST: adjtime [ OK ] TEST: adjfreq [ OK ] Signed-off-by: Vladimir Oltean --- v1->v2: patch is new drivers/net/Kconfig | 1 + drivers/net/netdevsim/ethtool.c | 11 ++ drivers/net/netdevsim/netdev.c | 11 +- drivers/net/netdevsim/netdevsim.h | 2 + drivers/ptp/Kconfig | 11 ++ drivers/ptp/Makefile | 1 + drivers/ptp/ptp_mock.c | 175 ++++++++++++++++++++++++++++++ include/linux/ptp_mock.h | 38 +++++++ 8 files changed, 249 insertions(+), 1 deletion(-) create mode 100644 drivers/ptp/ptp_mock.c create mode 100644 include/linux/ptp_mock.h diff --git a/drivers/net/Kconfig b/drivers/net/Kconfig index 368c6f5b327e..4953c1494723 100644 --- a/drivers/net/Kconfig +++ b/drivers/net/Kconfig @@ -592,6 +592,7 @@ config NETDEVSIM depends on INET depends on IPV6 || IPV6=n depends on PSAMPLE || PSAMPLE=n + depends on PTP_1588_CLOCK_MOCK || PTP_1588_CLOCK_MOCK=n select NET_DEVLINK help This driver is a developer testing tool and software model that can diff --git a/drivers/net/netdevsim/ethtool.c b/drivers/net/netdevsim/ethtool.c index ffd9f84b6644..bd546d4d26c6 100644 --- a/drivers/net/netdevsim/ethtool.c +++ b/drivers/net/netdevsim/ethtool.c @@ -140,6 +140,16 @@ nsim_set_fecparam(struct net_device *dev, struct ethtool_fecparam *fecparam) return 0; } +static int nsim_get_ts_info(struct net_device *dev, + struct ethtool_ts_info *info) +{ + struct netdevsim *ns = netdev_priv(dev); + + info->phc_index = mock_phc_index(ns->phc); + + return 0; +} + static const struct ethtool_ops nsim_ethtool_ops = { .supported_coalesce_params = ETHTOOL_COALESCE_ALL_PARAMS, .get_pause_stats = nsim_get_pause_stats, @@ -153,6 +163,7 @@ static const struct ethtool_ops nsim_ethtool_ops = { .set_channels = nsim_set_channels, .get_fecparam = nsim_get_fecparam, .set_fecparam = nsim_set_fecparam, + .get_ts_info = nsim_get_ts_info, }; static void nsim_ethtool_ring_init(struct netdevsim *ns) diff --git a/drivers/net/netdevsim/netdev.c b/drivers/net/netdevsim/netdev.c index 35fa1ca98671..58cd51de5b79 100644 --- a/drivers/net/netdevsim/netdev.c +++ b/drivers/net/netdevsim/netdev.c @@ -291,13 +291,19 @@ static void nsim_setup(struct net_device *dev) static int nsim_init_netdevsim(struct netdevsim *ns) { + struct mock_phc *phc; int err; + phc = mock_phc_create(&ns->nsim_bus_dev->dev); + if (IS_ERR(phc)) + return PTR_ERR(phc); + + ns->phc = phc; ns->netdev->netdev_ops = &nsim_netdev_ops; err = nsim_udp_tunnels_info_create(ns->nsim_dev, ns->netdev); if (err) - return err; + goto err_phc_destroy; rtnl_lock(); err = nsim_bpf_init(ns); @@ -318,6 +324,8 @@ static int nsim_init_netdevsim(struct netdevsim *ns) err_utn_destroy: rtnl_unlock(); nsim_udp_tunnels_info_destroy(ns->netdev); +err_phc_destroy: + mock_phc_destroy(ns->phc); return err; } @@ -380,6 +388,7 @@ void nsim_destroy(struct netdevsim *ns) rtnl_unlock(); if (nsim_dev_port_is_pf(ns->nsim_dev_port)) nsim_udp_tunnels_info_destroy(dev); + mock_phc_destroy(ns->phc); free_netdev(dev); } diff --git a/drivers/net/netdevsim/netdevsim.h b/drivers/net/netdevsim/netdevsim.h index 7d8ed8d8df5c..59526420c78e 100644 --- a/drivers/net/netdevsim/netdevsim.h +++ b/drivers/net/netdevsim/netdevsim.h @@ -19,6 +19,7 @@ #include #include #include +#include #include #include #include @@ -73,6 +74,7 @@ struct netdevsim { struct net_device *netdev; struct nsim_dev *nsim_dev; struct nsim_dev_port *nsim_dev_port; + struct mock_phc *phc; u64 tx_packets; u64 tx_bytes; diff --git a/drivers/ptp/Kconfig b/drivers/ptp/Kconfig index 32dff1b4f891..ed9d97a032f1 100644 --- a/drivers/ptp/Kconfig +++ b/drivers/ptp/Kconfig @@ -155,6 +155,17 @@ config PTP_1588_CLOCK_IDTCM To compile this driver as a module, choose M here: the module will be called ptp_clockmatrix. +config PTP_1588_CLOCK_MOCK + tristate "Mock-up PTP clock" + depends on PTP_1588_CLOCK + help + This driver offers a set of PTP clock manipulation operations over + the system monotonic time. It can be used by virtual network device + drivers to emulate PTP capabilities. + + To compile this driver as a module, choose M here: the module + will be called ptp_mock. + config PTP_1588_CLOCK_VMW tristate "VMware virtual PTP clock" depends on ACPI && HYPERVISOR_GUEST && X86 diff --git a/drivers/ptp/Makefile b/drivers/ptp/Makefile index 553f18bf3c83..dea0cebd2303 100644 --- a/drivers/ptp/Makefile +++ b/drivers/ptp/Makefile @@ -16,6 +16,7 @@ ptp-qoriq-y += ptp_qoriq.o ptp-qoriq-$(CONFIG_DEBUG_FS) += ptp_qoriq_debugfs.o obj-$(CONFIG_PTP_1588_CLOCK_IDTCM) += ptp_clockmatrix.o obj-$(CONFIG_PTP_1588_CLOCK_IDT82P33) += ptp_idt82p33.o +obj-$(CONFIG_PTP_1588_CLOCK_MOCK) += ptp_mock.o obj-$(CONFIG_PTP_1588_CLOCK_VMW) += ptp_vmw.o obj-$(CONFIG_PTP_1588_CLOCK_OCP) += ptp_ocp.o obj-$(CONFIG_PTP_DFL_TOD) += ptp_dfl_tod.o diff --git a/drivers/ptp/ptp_mock.c b/drivers/ptp/ptp_mock.c new file mode 100644 index 000000000000..e09e6009c4f7 --- /dev/null +++ b/drivers/ptp/ptp_mock.c @@ -0,0 +1,175 @@ +// SPDX-License-Identifier: GPL-2.0-or-later +/* + * Copyright 2023 NXP + * + * Mock-up PTP Hardware Clock driver for virtual network devices + * + * Create a PTP clock which offers PTP time manipulation operations + * using a timecounter/cyclecounter on top of CLOCK_MONOTONIC_RAW. + */ + +#include +#include +#include + +/* Clamp scaled_ppm between -2,097,152,000 and 2,097,152,000, + * and thus "adj" between -68,719,476 and 68,719,476 + */ +#define MOCK_PHC_MAX_ADJ_PPB 32000000 +/* Timestamps from ktime_get_raw() have 1 ns resolution, so the scale factor + * (MULT >> SHIFT) needs to be 1. Pick SHIFT as 31 bits, which translates + * MULT(freq 0) into 0x80000000. + */ +#define MOCK_PHC_CC_SHIFT 31 +#define MOCK_PHC_CC_MULT (1 << MOCK_PHC_CC_SHIFT) +#define MOCK_PHC_FADJ_SHIFT 9 +#define MOCK_PHC_FADJ_DENOMINATOR 15625ULL + +/* The largest cycle_delta that timecounter_read_delta() can handle without a + * 64-bit overflow during the multiplication with cc->mult, given the max "adj" + * we permit, is ~8.3 seconds. Make sure readouts are more frequent than that. + */ +#define MOCK_PHC_REFRESH_INTERVAL (HZ * 5) + +#define info_to_phc(d) container_of((d), struct mock_phc, info) + +struct mock_phc { + struct ptp_clock_info info; + struct ptp_clock *clock; + struct timecounter tc; + struct cyclecounter cc; + spinlock_t lock; +}; + +static u64 mock_phc_cc_read(const struct cyclecounter *cc) +{ + return ktime_to_ns(ktime_get_raw()); +} + +static int mock_phc_adjfine(struct ptp_clock_info *info, long scaled_ppm) +{ + struct mock_phc *phc = info_to_phc(info); + s64 adj; + + adj = (s64)scaled_ppm << MOCK_PHC_FADJ_SHIFT; + adj = div_s64(adj, MOCK_PHC_FADJ_DENOMINATOR); + + spin_lock(&phc->lock); + timecounter_read(&phc->tc); + phc->cc.mult = MOCK_PHC_CC_MULT + adj; + spin_unlock(&phc->lock); + + return 0; +} + +static int mock_phc_adjtime(struct ptp_clock_info *info, s64 delta) +{ + struct mock_phc *phc = info_to_phc(info); + + spin_lock(&phc->lock); + timecounter_adjtime(&phc->tc, delta); + spin_unlock(&phc->lock); + + return 0; +} + +static int mock_phc_settime64(struct ptp_clock_info *info, + const struct timespec64 *ts) +{ + struct mock_phc *phc = info_to_phc(info); + u64 ns = timespec64_to_ns(ts); + + spin_lock(&phc->lock); + timecounter_init(&phc->tc, &phc->cc, ns); + spin_unlock(&phc->lock); + + return 0; +} + +static int mock_phc_gettime64(struct ptp_clock_info *info, struct timespec64 *ts) +{ + struct mock_phc *phc = info_to_phc(info); + u64 ns; + + spin_lock(&phc->lock); + ns = timecounter_read(&phc->tc); + spin_unlock(&phc->lock); + + *ts = ns_to_timespec64(ns); + + return 0; +} + +static long mock_phc_refresh(struct ptp_clock_info *info) +{ + struct timespec64 ts; + + mock_phc_gettime64(info, &ts); + + return MOCK_PHC_REFRESH_INTERVAL; +} + +int mock_phc_index(struct mock_phc *phc) +{ + if (!phc) + return -1; + + return ptp_clock_index(phc->clock); +} + +struct mock_phc *mock_phc_create(struct device *dev) +{ + struct mock_phc *phc; + int err; + + phc = kzalloc(sizeof(*phc), GFP_KERNEL); + if (!phc) { + err = -ENOMEM; + goto out; + } + + phc->info = (struct ptp_clock_info) { + .owner = THIS_MODULE, + .name = "Mock-up PTP clock", + .max_adj = MOCK_PHC_MAX_ADJ_PPB, + .adjfine = mock_phc_adjfine, + .adjtime = mock_phc_adjtime, + .gettime64 = mock_phc_gettime64, + .settime64 = mock_phc_settime64, + .do_aux_work = mock_phc_refresh, + }; + + phc->cc = (struct cyclecounter) { + .read = mock_phc_cc_read, + .mask = CYCLECOUNTER_MASK(64), + .mult = MOCK_PHC_CC_MULT, + .shift = MOCK_PHC_CC_SHIFT, + }; + + spin_lock_init(&phc->lock); + timecounter_init(&phc->tc, &phc->cc, 0); + + phc->clock = ptp_clock_register(&phc->info, dev); + if (IS_ERR_OR_NULL(phc->clock)) { + err = PTR_ERR_OR_ZERO(phc->clock); + goto out_free_phc; + } + + ptp_schedule_worker(phc->clock, MOCK_PHC_REFRESH_INTERVAL); + + return phc; + +out_free_phc: + kfree(phc); +out: + return ERR_PTR(err); +} + +void mock_phc_destroy(struct mock_phc *phc) +{ + if (!phc) + return; + + ptp_clock_unregister(phc->clock); + kfree(phc); +} diff --git a/include/linux/ptp_mock.h b/include/linux/ptp_mock.h new file mode 100644 index 000000000000..72eb401034d9 --- /dev/null +++ b/include/linux/ptp_mock.h @@ -0,0 +1,38 @@ +/* SPDX-License-Identifier: GPL-2.0-or-later */ +/* + * Mock-up PTP Hardware Clock driver for virtual network devices + * + * Copyright 2023 NXP + */ + +#ifndef _PTP_MOCK_H_ +#define _PTP_MOCK_H_ + +struct device; +struct mock_phc; + +#if IS_ENABLED(CONFIG_PTP_1588_CLOCK_MOCK) + +struct mock_phc *mock_phc_create(struct device *dev); +void mock_phc_destroy(struct mock_phc *phc); +int mock_phc_index(struct mock_phc *phc); + +#else + +static inline struct mock_phc *mock_phc_create(struct device *dev) +{ + return NULL; +} + +static inline void mock_phc_destroy(struct mock_phc *phc) +{ +} + +static inline int mock_phc_index(struct mock_phc *phc) +{ + return -1; +} + +#endif + +#endif /* _PTP_MOCK_H_ */ From patchwork Tue Jun 13 21:54:38 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Vladimir Oltean X-Patchwork-Id: 107579 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:994d:0:b0:3d9:f83d:47d9 with SMTP id k13csp846999vqr; Tue, 13 Jun 2023 14:59:52 -0700 (PDT) X-Google-Smtp-Source: ACHHUZ4nV6wu+bPDpQhYORJvW3rCtl/+7THdnZ0R1TBZKTTX1JGeN8q+nW3Pfjii5UFd5UECJYsX X-Received: by 2002:a17:907:2d08:b0:965:6075:d100 with SMTP id gs8-20020a1709072d0800b009656075d100mr15932144ejc.39.1686693591722; Tue, 13 Jun 2023 14:59:51 -0700 (PDT) ARC-Seal: i=2; a=rsa-sha256; t=1686693591; cv=pass; d=google.com; s=arc-20160816; b=F/WcihtnDGYpybhFkigshGWZdkba/S70sec4JjeOn8GUVD3c0kzGCn3Un71nD9sFnM nwFEAz0EJwM40QtTrbYv+fOMOzasyZ7c/kqQ5n7VmTEm8xqSTB3TOuRkzXWbiwh4pP+7 A1nnZjJztpKk3yhScRdN3Uz6Yab7GM0wW4Jjg7/2iD+DJYNgP750hJK6Rsi8jBVpK5sj DLC/8mY2eskeV4/yjc37/guEMOfVQyQe/o9pFZAzqVG3seC4M7GdCfywl636uvPND6zJ pD1hgxa/TwZMaKHrWWVQmsoV0pq1OS+ZWSNF7Hxtyfqty3Rimr3qpMclHrHz1Ch60Rie GvpA== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:mime-version:content-transfer-encoding :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=wCftp1cdS1FFtKzgmkD68NiDDebqyLyRkx7wErceK48=; b=iErJ+01+3uXovQ0cJhW2Vi5DwBlR/AqbIsholulGGeDbti+vdmXsjIxIHOmNk/kTr+ oPu8zs4b7I/a8ms0+fxp3K5IWm5c7rXyYIpeCduE9XnpYe21Jrnegnwnyxon8xSVxuFd 0AvDakzAC12bX8nr9QAalZVqBgvq3oiUrP9ENbS3RlKIa1NHDUPA7yAD4tfyc5A/tqLd rzVYrMuo1iq01HBtpKZGr5CPT/kfAgvV1ezitfRUBYWS/35SsITXupHWyikrY9gW6t3j zSXI/m2yPwcYNr+fRSGQwVgZlIkKwVM4J9SyN76eDsTsa/RqQKHV+qU+mRSgD6UkgqHg 7q/A== ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@nxp.com header.s=selector2 header.b=lesRV7wb; arc=pass (i=1 spf=pass spfdomain=nxp.com dkim=pass dkdomain=nxp.com dmarc=pass fromdomain=nxp.com); spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=nxp.com Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id i15-20020a1709064ecf00b009786fed5105si8827175ejv.120.2023.06.13.14.59.26; Tue, 13 Jun 2023 14:59:51 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@nxp.com header.s=selector2 header.b=lesRV7wb; arc=pass (i=1 spf=pass spfdomain=nxp.com dkim=pass dkdomain=nxp.com dmarc=pass fromdomain=nxp.com); spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=nxp.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S238340AbjFMV5W (ORCPT + 99 others); Tue, 13 Jun 2023 17:57:22 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:47116 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S240627AbjFMV4k (ORCPT ); Tue, 13 Jun 2023 17:56:40 -0400 Received: from EUR05-AM6-obe.outbound.protection.outlook.com (mail-am6eur05on2076.outbound.protection.outlook.com [40.107.22.76]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 8D3521FF9; Tue, 13 Jun 2023 14:55:53 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Z4Mw3ua9Kql10f9HCc4eZyzDEUh5DCg30pnHIt93z6VUX8i9DuavNe3rAS4GvNlSvcSH6K6+PtAXkbCZbjQqFTSWsW8ydlP4+9caGUmZkk+zekiHWY7DNYZswyoTAEGJ+pWEJ2OyJIi5QJH3/Nbe+aW3wXXCpnBLMBVggNECrvVUAqdPRmOrUTFbFpE9/RV3xgOpfQia4gGAIMLWinrnH+rWt8f+HaCZpt/xNKVtx3oe8PfGr4EfB8CNxKwiOeajzJVb5LkjEyZLoEos0ag6bHCrH995b6GCbPEqWZ1w3ogsJJCjNxw2+Wcis4420gRjwDYT2N9OYJbO7T/JS9SB+Q== 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=wCftp1cdS1FFtKzgmkD68NiDDebqyLyRkx7wErceK48=; b=Q2zlVP6IUTEQ9StoB9yUtQ7os/vT2vSc2bvT5OqgxDtkB71Csgew76NuJu0yRNX4tSRh0ltUP+6zFNCRrMcDKyJ5k1BfZvMly9g/gxfKdk1Zg/QRhnuLq5mzbAU5MmXlfzWvs1gBoYYTU15IBOH0akEO/im9ZCVRvR99R3OcUD1tJ/kzm79CN5HLpyjwvPIweeIsCicweiVBwm29PX/teDgWRzHdaPk3hMt2TRcpjSo1R0xg94LWUAf2Mk1rJ9EX3Q9U8zl1xrk0RpsS23mair25KrGBZQwMKn/1oTfG7SUdmA83s+LUTovoWfsiQwliOhpOwX0prPQhP3SpytlOUw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nxp.com; dmarc=pass action=none header.from=nxp.com; dkim=pass header.d=nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nxp.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=wCftp1cdS1FFtKzgmkD68NiDDebqyLyRkx7wErceK48=; b=lesRV7wbEKGpo0hiIRyjtI/jRR7PNNVMWy/VZVcvLVmK2n/WVET94HTpPCh8uTMPz+LWH99bBXV3XD9zUaAMXJtDzUlKea7NhON8Sd222NTjFEJLS/SEQPo17eHfHOcO0YUp7Bpq3LoKPYdk0Sdt+AyvnFynW0yqw6s4OzSAOVs= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nxp.com; Received: from AM0PR04MB6452.eurprd04.prod.outlook.com (2603:10a6:208:16d::21) by AM9PR04MB8081.eurprd04.prod.outlook.com (2603:10a6:20b:3e2::5) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6477.29; Tue, 13 Jun 2023 21:55:00 +0000 Received: from AM0PR04MB6452.eurprd04.prod.outlook.com ([fe80::c40e:d76:fd88:f460]) by AM0PR04MB6452.eurprd04.prod.outlook.com ([fe80::c40e:d76:fd88:f460%4]) with mapi id 15.20.6455.045; Tue, 13 Jun 2023 21:55:00 +0000 From: Vladimir Oltean To: netdev@vger.kernel.org Cc: "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Jamal Hadi Salim , Cong Wang , Jiri Pirko , Vinicius Costa Gomes , linux-kernel@vger.kernel.org, intel-wired-lan@lists.osuosl.org, Muhammad Husaini Zulkifli , Peilin Ye , Pedro Tammela , Richard Cochran , Zhengchao Shao , Maxim Georgiev Subject: [PATCH v2 net-next 7/9] net: netdevsim: mimic tc-taprio offload Date: Wed, 14 Jun 2023 00:54:38 +0300 Message-Id: <20230613215440.2465708-8-vladimir.oltean@nxp.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20230613215440.2465708-1-vladimir.oltean@nxp.com> References: <20230613215440.2465708-1-vladimir.oltean@nxp.com> X-ClientProxiedBy: AM0PR04CA0044.eurprd04.prod.outlook.com (2603:10a6:208:1::21) To AM0PR04MB6452.eurprd04.prod.outlook.com (2603:10a6:208:16d::21) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: AM0PR04MB6452:EE_|AM9PR04MB8081:EE_ X-MS-Office365-Filtering-Correlation-Id: 5ca2572b-edd8-4eb0-e6bb-08db6c58d5a4 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: ZtxjQeBDtCe21aO0ERRk53BC1I7ChQEO7R87vzxpyjzkgut3opimk//XO0iDO4WQePgn4hUWtPGrmtlf0Eu3CcJafqkS83QFPWv5UOahGmbUWBQ3Z/c1cxfBQpPP1a3NL/+o7WV5PGeoCbgmzTO+hP/22Gu8LwA2V8Lni9AOrcuAzhz5yys0Spt2HFZf52nRgVQlAi4Rlg7Y8pfFUcZVvsPdie5musXypkmZ6fTai69rBoKbYdrs7d+oY33qykI4PIY6AGheWXTcamL4NOqbyds/vyQIJVR9zxwLZ9AQS8V1dg/WycteexzwdIERz1plqqe7YWFUVLNU4KmZ4uZLSZ8q9cYXm+XcTuVAqe1oVC2RulVkkBRhDwA2QzmSiJv9KH8YXSzyXtvfthGHi4rUtvmg4NG5Yy9UOCFWrKaIh3tpdjkDxIQA6KboLBgzIrR+hlKOJL0L/AkFkzuEvzHp6KqsukPbs4eWfHIrXwsBeB3Xgm601DqVRoimY/EU5ceSq42T9+O+SBmXnuhkD3juMp5WmqjAlYOkBSd+py2mCKcOwhBDN0CLsql0Z9O7SPjj8AK0LQUD0HZsVxyS1QrqZ4CEjRqCFNtGlmbX9ua+wzP3kkfdSc9Xs2Ehgl2De7U8 X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM0PR04MB6452.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230028)(4636009)(396003)(136003)(39860400002)(366004)(346002)(376002)(451199021)(6916009)(66946007)(4326008)(66556008)(36756003)(186003)(54906003)(478600001)(2616005)(2906002)(66476007)(8676002)(6666004)(316002)(41300700001)(86362001)(6486002)(7416002)(6506007)(1076003)(8936002)(44832011)(83380400001)(26005)(5660300002)(38100700002)(52116002)(38350700002)(6512007);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: BztnzQfEcaeF1dVlBqysFnL61s9W9G5U48ynJ9PbMtri5q65ZF8O0m+ugjPrPIbnNOpQ2BoVx7/bOsWmNau97/ow7/QEPR7LZfdEjBGcmXkkjfo8D/X4ieETh4qDDwx2QI7ZGM6zI1NG1B7oT7yAGyAtGa5R/pFUIjvw4VA7ipYwiNioH6Tvc7/CaNb2OuWzo3T0BlcY+YOz/bIucgUZQkr0sY+eBv90w0uHIb5OQG05g+myQjkLDF4bz0h4KNL0Qew0BDoTpADt3MvcpH2RlExpTe0vM6m23BLg907U/DClCn65zK7xyEYQ4ZOuiKd1/+uNsrT51DEjAdeH2kXTE4Lv1NK47JhdTumbxQW4x6eskU1RcvTkxm7yis02ep+5I8Vrwh+cPjCX2sEVAUqQt6qXPFeH6+97IMALu/S3jHTRcNFEZdSq0AX7b5+C7xOup86VnL8XPBRM7Q3MF+B/tKM0tAmvQbSdPSP35Q3y73gaoK/HJvLk4RKWGKNH23YB9sVPlcSyMZrVMblnd9pj1wm1Ypl+j2HNjikGDfvoO0CKBu/O9LlXL6Zb6az4Ikg4gz40J/Zr18C+O1xMivXLKl9tzXbD940/i+ny743/NEPUKBpTLiEU1b7s4/I9VM1YGa8W9/zS+MjzVjSngZr0EAzJw/C6nNDI1f2AOh88rCQyGNJIJv9D6UOmMYGErmwGgQ12L5rr1Koyho4NSkCcQFnikHUax//pXOxjGN9qQ8eyP6wrsQxXpkmVztA0nsVS/s/Vl38nEOFRh34iCS5vrAvZCXQ3ZKa2Ou8MseGi6L81LQOkEOy6DK8lSEK67V8AyDs9STp8HAlPtFHKrvYScnF90mZeJsq84o88d4sx+n7oh0aGSichtoko0SQCMD5H/MwU/xD8BMtzJOIB1Up8R80lR7VSmNFBcXM+r/ZQsMdvVaeY8Wb70qtAMbNMqTk9TbUcA3Ps/PcZRFMb4ac1daR72iDR4fOfmQ5AoV3QC2e4dnIvBfDWcQD+yC2P3xFfUgz6F5jFwBtg29Qx9Aqij1yfEZO7bzazsfTltXLsqX8Py6YbyQgAs/3O8i0WTm/rbTZZhfoK9xw+hCM2CiDSBLnvsCq5MP+nja0JSRZp+w5dTNVgO+WS+RioBONZmLqwbZ3cIdF4OXP1I7mIqOAAfnOz2+PbViONQPP1vVDh/wjSc6DoaX28/VS0zmTu8K+Mq/wO6fu4uHXgmt760f26G+uejGhjx4exUFtSnpVgfBnfn/wrYnUXOwdad5yWhi01xblfd+KfRDsBZlp/mp7oBcy5YNhuzwgkh1Uo+YCS9b6IVTgAk7Q5OnFcE4oY+uJjteJ9lAcMuyEprr/hns3exU51fJlI/s1iqM9o1fnFyu4HhbIqa3zHDRmCjdyjdB649DR6RbkLRDzI5sNeuAMdrIW6MvJu/GMQgIyVSEGeTKgP3kpbo4/zp17itB0sB2cjZLmySAeb+fGhzoWUTxQdoMAd7m6/lf84Gz+1ma0mf7R4xKAMyF8D3gIHScbwBSljf8nr/TW0hhRPDlXbBrVK8Kp2mZAaoYLdnD8CoSEE+4L4u38GD/VZK1Rf025PvujV6uTx4U+nofPb9sI41tHSsw== X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 5ca2572b-edd8-4eb0-e6bb-08db6c58d5a4 X-MS-Exchange-CrossTenant-AuthSource: AM0PR04MB6452.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 13 Jun 2023 21:55:00.1857 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: LPOym2CZD1pFRStEDOT8rs4duLh/7CtBGtB1nmgYsgtc/5UcDPQ0nOMV3MgFveNGvL20GYzxoON/eewsOoQmdQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM9PR04MB8081 X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_NONE, RCVD_IN_MSPIKE_H2,SPF_HELO_PASS,SPF_PASS,T_SCC_BODY_TEXT_LINE, URIBL_BLOCKED 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-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1768626419874757032?= X-GMAIL-MSGID: =?utf-8?q?1768626419874757032?= To be able to use netdevsim for tc-testing with an offloaded tc-taprio schedule, it needs to report a PTP clock (which it now does), and to accept ndo_setup_tc(TC_SETUP_QDISC_TAPRIO) calls. Since netdevsim has no packet I/O, this doesn't do anything intelligent, it only allows taprio offload code paths to go through some level of automated testing. Signed-off-by: Vladimir Oltean --- v1->v2: patch is new drivers/net/netdevsim/netdev.c | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/drivers/net/netdevsim/netdev.c b/drivers/net/netdevsim/netdev.c index 58cd51de5b79..e26be4bd0d90 100644 --- a/drivers/net/netdevsim/netdev.c +++ b/drivers/net/netdevsim/netdev.c @@ -209,6 +209,31 @@ static int nsim_set_vf_link_state(struct net_device *dev, int vf, int state) return 0; } +static void nsim_taprio_stats(struct tc_taprio_qopt_stats *stats) +{ + stats->window_drops = 0; + stats->tx_overruns = 0; +} + +static int nsim_setup_tc_taprio(struct net_device *dev, + struct tc_taprio_qopt_offload *offload) +{ + int err = 0; + + switch (offload->cmd) { + case TAPRIO_CMD_REPLACE: + case TAPRIO_CMD_DESTROY: + break; + case TAPRIO_CMD_STATS: + nsim_taprio_stats(&offload->stats); + break; + default: + err = -EOPNOTSUPP; + } + + return err; +} + static LIST_HEAD(nsim_block_cb_list); static int @@ -217,6 +242,8 @@ nsim_setup_tc(struct net_device *dev, enum tc_setup_type type, void *type_data) struct netdevsim *ns = netdev_priv(dev); switch (type) { + case TC_SETUP_QDISC_TAPRIO: + return nsim_setup_tc_taprio(dev, type_data); case TC_SETUP_BLOCK: return flow_block_cb_setup_simple(type_data, &nsim_block_cb_list, From patchwork Tue Jun 13 21:54:39 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Vladimir Oltean X-Patchwork-Id: 107583 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:994d:0:b0:3d9:f83d:47d9 with SMTP id k13csp847398vqr; Tue, 13 Jun 2023 15:00:31 -0700 (PDT) X-Google-Smtp-Source: ACHHUZ4M/7J+AT3qbf2SGANL6jJOneZqfLyjz8OIhCUrZSWaHfQYv/0Bgged4flknuaGZxjNTTzO X-Received: by 2002:a05:6402:14da:b0:518:7bc3:7c4e with SMTP id f26-20020a05640214da00b005187bc37c4emr717356edx.25.1686693631494; Tue, 13 Jun 2023 15:00:31 -0700 (PDT) ARC-Seal: i=2; a=rsa-sha256; t=1686693631; cv=pass; d=google.com; s=arc-20160816; b=GrdPc9PQgp7J6AExPzwFlBdmIClyKAnUlsKgLtC2Ijhb64MPXjoecLWrnbsz6ZqYup NBPKloGwrV/YBSdkhXPp6kM8SgxVl7n+Wu3V487OE0aideLkwzylOyIaW/DZsbdj9fXT J0nStivBO000PPW+JODSuTDqasEicKabvs1OB2QdwMX3YydzMiK7B4oDzD4E0+VF9H5/ b53YVcT+DknNpxfE9tbnqUtrTMxGVTfwUydgZ+um9xc8Zt2Kdq68ccoBcb3xCJ6xBeAF f4FbIpLwdDRcmt8rMInLgkoJt9ZSTjDiT9q3DYjsIoibwytoaleVg60kdzNevW4bz+aF 4a7w== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:mime-version:content-transfer-encoding :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=MX3iB/nahx7RwwciSfwiW96dMRT0Lo9yFXu/sqQl0rs=; b=B5FoMDcq1g7umHH5gg+bd4PNewBzmUeFhQ6ppGenj5fhrYiMvPjPNsVQuAFe1AljqF u8p2FBKxRxyPT8/25+CFGFQZM3p6e9e0e+slj5D0X15EZ8BeOFfobcgTerkq1ba2Aj+W gKlM6cLDdELS/c6GHOlbPUiktDwT0becEBLNxFTCYTNafeM6gOVRf7PvXVN79zyMLyT1 F2h+Xzoh92flzCI9OqZjt2XFNWVc2u/Pc8IXV2LymMKGHk3BExAM3UfSJZ4lLRYjkw0/ bfJAXHj4ZDVfimmp2ruHVqxVP3bFGt81LdcNUTfkKzY5CbdojG4AOun8rReTaAY9EJqu goxQ== ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@nxp.com header.s=selector2 header.b=bGJSCvtD; arc=pass (i=1 spf=pass spfdomain=nxp.com dkim=pass dkdomain=nxp.com dmarc=pass fromdomain=nxp.com); spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=nxp.com Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id p17-20020a056402075100b005149b9127c8si7356434edy.549.2023.06.13.15.00.06; Tue, 13 Jun 2023 15:00:31 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@nxp.com header.s=selector2 header.b=bGJSCvtD; arc=pass (i=1 spf=pass spfdomain=nxp.com dkim=pass dkdomain=nxp.com dmarc=pass fromdomain=nxp.com); spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=nxp.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229738AbjFMV52 (ORCPT + 99 others); Tue, 13 Jun 2023 17:57:28 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:47218 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S238609AbjFMV47 (ORCPT ); Tue, 13 Jun 2023 17:56:59 -0400 Received: from EUR05-VI1-obe.outbound.protection.outlook.com (mail-vi1eur05on2057.outbound.protection.outlook.com [40.107.21.57]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 9AD642118; Tue, 13 Jun 2023 14:56:02 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=gEoL2H6YnxnQ7SPQ4y5a6PaHfWp42EEQFGID22V1PsCd0o4LBPgwtgIiIg32nu+V1l477ePFfWTKOqV7EAXarg9L0wiVZ9PKwqegmsjoEe/yQ6X7FW5zcsC04or13NCk+QenYlyqjNaBo56jrWVNGYg3YpmnEjh4Kh5EKYOuTmEFT0rNt6ceKX7ZsVlwrUrVRzMS8ixZt/2/oQdhZEK9IP6yCDMmCVRGgy8wCY7oU91BjwmGFx5MNf3+4I3O7V1CLGTDfqgpfsD3TlcJgl2rjVnvKGl2LpKnMkVfZoGxxNROCA5idPsGAsY2/NxrwLXWRWabCetkL+IMJ4tAiUlEsQ== 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=MX3iB/nahx7RwwciSfwiW96dMRT0Lo9yFXu/sqQl0rs=; b=ghfaEqGnO7rdmxGyCCWDbWFFLHMvLmeuwKmRth3HxOdHS3ibeWzut3QriIt3n2kkE7BbrgXMhkOaHl5Ls1K3xBLkXJ47pc8DurEZutUulHEGDEsVUcMsas0QPH2sC43UFfciK2jcWkwa0AJ3cLEujJfO4cRK9NdBsSjiGJ9Ua/+EukMLNejt3YAuBUISMHDTfwtWem/kT2PyRlMTMWbugIKoYAU/VRHcZqiscE71H3D9W7B15al3kvYdLrGf7UbtcbjY5rf17SclX1Pv0QYiPidASpORZkHZFSDI4TLbDAFil/YCHTFS9WZFJq3LacGkSNHf5YBpxtYcQOx4YR67nQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nxp.com; dmarc=pass action=none header.from=nxp.com; dkim=pass header.d=nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nxp.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=MX3iB/nahx7RwwciSfwiW96dMRT0Lo9yFXu/sqQl0rs=; b=bGJSCvtDuCnbWacTEJo1Q8QAKGg73C3CZFNvhABmZbGKV/kTkxZysCmId4xGVRWcSWaxjLj4L1N6wlCcHU1vHOpgfiPHfnXYyAIv3479Sdvdenudke3AoAfGwaxk+zbfRqUngltgejECa25nyR1C9hKxOTyw4SWQ6kBEgTdr/gA= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nxp.com; Received: from AM0PR04MB6452.eurprd04.prod.outlook.com (2603:10a6:208:16d::21) by AM9PR04MB8081.eurprd04.prod.outlook.com (2603:10a6:20b:3e2::5) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6477.29; Tue, 13 Jun 2023 21:55:01 +0000 Received: from AM0PR04MB6452.eurprd04.prod.outlook.com ([fe80::c40e:d76:fd88:f460]) by AM0PR04MB6452.eurprd04.prod.outlook.com ([fe80::c40e:d76:fd88:f460%4]) with mapi id 15.20.6455.045; Tue, 13 Jun 2023 21:55:01 +0000 From: Vladimir Oltean To: netdev@vger.kernel.org Cc: "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Jamal Hadi Salim , Cong Wang , Jiri Pirko , Vinicius Costa Gomes , linux-kernel@vger.kernel.org, intel-wired-lan@lists.osuosl.org, Muhammad Husaini Zulkifli , Peilin Ye , Pedro Tammela , Richard Cochran , Zhengchao Shao , Maxim Georgiev Subject: [PATCH v2 net-next 8/9] selftests/tc-testing: test that taprio can only be attached as root Date: Wed, 14 Jun 2023 00:54:39 +0300 Message-Id: <20230613215440.2465708-9-vladimir.oltean@nxp.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20230613215440.2465708-1-vladimir.oltean@nxp.com> References: <20230613215440.2465708-1-vladimir.oltean@nxp.com> X-ClientProxiedBy: AM0PR04CA0044.eurprd04.prod.outlook.com (2603:10a6:208:1::21) To AM0PR04MB6452.eurprd04.prod.outlook.com (2603:10a6:208:16d::21) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: AM0PR04MB6452:EE_|AM9PR04MB8081:EE_ X-MS-Office365-Filtering-Correlation-Id: 5a5aac3d-c2d8-4caa-3e33-08db6c58d661 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: CYdYNeuTfwLE7v0F5SEQAjBJRZ+agrq8J618BpPZWibA1bHwTQSwebLXAO4kG/tPGyrSz9OCxyyARFUayuVktVdIOezAus/ys662lQipCXnErZS3ccaO9scITXGxZDB/JcdtJK4KTwv2lSlV6n1VM3F2VVtVr5dEih3zlnf5MgzIqsedokxYe4Ln5xrG2pHQ+7XNj+WprjYlup5FW7rJPE/7QbnoEVPxwkkc+FuEjZ7lx4BkfvtJQldSGFuY7AD/18ZwbwArcT5j01YaV9BJhw+kLW9M16v36WYmdKEXtuG08oKH2R6HaetQjha8YkbrFPG4WqfoniZIjvXIbbz+EGvXfZ69Cal9JsqPocJeMj2HdvxGm0jMwDRNIzQG+uc7dsA1jxmtLiJE3g4zT2WtEil2cpPht5Of+wSDIov69v3LORSoPA4LldcxN5QQBJez3ST1nBW5LBGXi0/7vnMoI8b2U9TPHWP+ahVtNmSqZm6vjzu5dJRYe8X6nZZVupmZlAd+38DVmsd91AyCypVo6SeTc1DEZ9wwBv2kxram8B3m/AjlCSlTkSkdWHDL2O+EToL19rsbncjbiIaK6FYi19XLt7hZXJ1AaXoz3dBHHg/LYW7XgL3vCAAHrcMuU7Mi X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM0PR04MB6452.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230028)(4636009)(396003)(136003)(39860400002)(366004)(346002)(376002)(451199021)(6916009)(66946007)(4326008)(66556008)(36756003)(186003)(54906003)(478600001)(2616005)(2906002)(66476007)(8676002)(6666004)(316002)(41300700001)(86362001)(6486002)(7416002)(6506007)(1076003)(8936002)(44832011)(83380400001)(26005)(5660300002)(38100700002)(52116002)(38350700002)(6512007);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: Vw/jbRxYrOie2wrFnZiewiyupJOMN6SsPj3LDTf4Y2VCUoDArtkd1SkiwWau2WMb3HFoGWV2UfL0y+Eu0RrqepDGuVYqz1GmykwqN4XIha4Y3SFGTcFkTd/iEvJYmp3MJENeFfmfBgWv2mf4FvTAeHf4ffJf3iL+FLSnuvaoG9UE8PxKxZxAfi0W1T/RRWGXK5apW2eKxDrvAYh6FUZWJvXX+3/ceoNZrXzxHX7//7pbTnWHGkyyTO1PxsmdQr/AyhNrNMxm2KBoF4nY50t01/vHhYxIsU+TWS6SpEEf2nZmSOrOmrq/aZuJWhW4QrZFtRWrmDZMyck3lq8SuulkGaaKe7YQYp+6am+GjBNXoYAcKATQJU56R1bcWQbf5peT+GoBQoe+B74HdcKVG7SDCmUvSIx71fGbG7se0LBswGHGavqC0xzB5BIdeBd3+IFd1FK7rUUC9BBRxOyQog/z3Oyniet2F5Gj0WOK19q3T1dDBH1axlL2OgyRNQoU6ADszYKiCSQx1Hj5MZt0C3Q3e47TNoOPQ0kSjpmxKzvzQ5XAhWLBtWky8tEILX3m53G+WAA4Ujq6LlSxMrfF2Ch8dlXb1sZ98oKNXqSAx0Vhbj2AhWcZjiU/x+hVRLR+hTY99b9QACdojgiWou5gH3zh+DouzdJPVWS7eMqQGfdIFIhxf8aJWwHy/BgCJgn7tPqnunQCJdeXbMKxpPem/CWJRLylfFcd0p0/eMPltKs3p80CpL3pFdj+GAx/8fUfMWeOa3Ft6yth7N091rws4hcuTyNnsaW2YAkU2cayeOsQUBjidxI9noyw6zyFRosWpjykOnp3GCKoQXtCiHPw3x5WFNz3/k1P9hVRKjMsKi/1EuXiJY31U+a7Zq390fEYSy7LPEtQxLtHuMaaWRTlr+Gpcj2Hem1qb+Zxzp0dnQRpwzZMpwW3aw246zZZTHhQaRaWdd40m9O7QYbUnhG8rJ8AsxaulOeaNke5ptuby+8VocLgr0SB8kFuXBPO4gaR2ZV52b9L1IJfehNg4lAlMZutSLNHFPKzhfN2iDuov9RxbwdG6SwLQCUryNzlpf5CjrJDkMth3Y2kd2+spd58+7dZ7BmuI8kIeJE/BnRq0N81UK5+sJGg/k2JBWZysRihbDBPo/4knR9Bc/sILNlbWY4XnSY5rXaJ0Qm1Lvmfc1DlLs3BhGpkKCAFzCXFwX7F82cc0VLXFWg7x9HrSv9207/w9AI0l98ELWB/7TBJgD2W9mN0Do5nM7YSuxCAdAgnW06CSMtAoOJWHyuiVJeWRVvy81iJ/jCD22qTgWbdALYniHP+s/G72L+UaW4oLEhfMXub3eNSEpTaidpmGthjJ2VPvgTa6y8s+ZmYcxeKLO8YmlXmy9z4j3wi/XwiVbCoDdLTMkzmv3WIimRtLpkx0Ecc8JQcTN44G+LhhtK5sLfLVYfcPpDV4kryuKDKxDJdoEAXLp5gIxpeX71hV87uO/MDi8mBUhthH4faZqCTG7GSRO5Q5ktWNvy+VOdaUiynEuEU4BTLchFvLghB8mEmvhsXrqFsogwfSfJkfXjwkKESo/FA5GRNtDI6514IWsmJYSrel1cv3lti95Ww+ylz9nf2Fw== X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 5a5aac3d-c2d8-4caa-3e33-08db6c58d661 X-MS-Exchange-CrossTenant-AuthSource: AM0PR04MB6452.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 13 Jun 2023 21:55:01.4445 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: k6cmw/BtO9ZFeisiC0FfxmQ/vBJry26vr6N1aOuDLYPQKIhey9wc4zbxewED07TQTu5txLUPW+C6xd9yAwxaNg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM9PR04MB8081 X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_NONE, RCVD_IN_MSPIKE_H2,SPF_HELO_PASS,SPF_PASS,T_SCC_BODY_TEXT_LINE, URIBL_BLOCKED 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-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1768626460837034119?= X-GMAIL-MSGID: =?utf-8?q?1768626460837034119?= Check that the "Can only be attached as root qdisc" error message from taprio is effective by attempting to attach it to a class of another taprio qdisc. That operation should fail. In the bug that was squashed by change "net/sched: taprio: try again to report q->qdiscs[] to qdisc_leaf()", grafting a child taprio to a root software taprio would be misinterpreted as a change() to the root taprio. Catch this by looking at whether the base-time of the root taprio has changed to follow the base-time of the child taprio, something which should have absolutely never happened assuming correct semantics. Signed-off-by: Vladimir Oltean Reviewed-by: Pedro Tammela --- v1->v2: patch is new .../tc-testing/tc-tests/qdiscs/taprio.json | 48 +++++++++++++++++++ 1 file changed, 48 insertions(+) diff --git a/tools/testing/selftests/tc-testing/tc-tests/qdiscs/taprio.json b/tools/testing/selftests/tc-testing/tc-tests/qdiscs/taprio.json index a44455372646..58d4d97f4499 100644 --- a/tools/testing/selftests/tc-testing/tc-tests/qdiscs/taprio.json +++ b/tools/testing/selftests/tc-testing/tc-tests/qdiscs/taprio.json @@ -131,5 +131,53 @@ "teardown": [ "echo \"1\" > /sys/bus/netdevsim/del_device" ] + }, + { + "id": "39b4", + "name": "Reject grafting taprio as child qdisc of software taprio", + "category": [ + "qdisc", + "taprio" + ], + "plugins": { + "requires": "nsPlugin" + }, + "setup": [ + "echo \"1 1 8\" > /sys/bus/netdevsim/new_device", + "$TC qdisc replace dev $ETH handle 8001: parent root stab overhead 24 taprio num_tc 8 map 0 1 2 3 4 5 6 7 queues 1@0 1@1 1@2 1@3 1@4 1@5 1@6 1@7 base-time 0 sched-entry S ff 20000000 clockid CLOCK_TAI" + ], + "cmdUnderTest": "$TC qdisc replace dev $ETH parent 8001:7 taprio num_tc 8 map 0 1 2 3 4 5 6 7 queues 1@0 1@1 1@2 1@3 1@4 1@5 1@6 1@7 base-time 200 sched-entry S ff 20000000 clockid CLOCK_TAI", + "expExitCode": "2", + "verifyCmd": "$TC -j qdisc show dev $ETH root | jq '.[].options.base_time'", + "matchPattern": "0", + "matchCount": "1", + "teardown": [ + "$TC qdisc del dev $ETH root", + "echo \"1\" > /sys/bus/netdevsim/del_device" + ] + }, + { + "id": "e8a1", + "name": "Reject grafting taprio as child qdisc of offloaded taprio", + "category": [ + "qdisc", + "taprio" + ], + "plugins": { + "requires": "nsPlugin" + }, + "setup": [ + "echo \"1 1 8\" > /sys/bus/netdevsim/new_device", + "$TC qdisc replace dev $ETH handle 8001: parent root stab overhead 24 taprio num_tc 8 map 0 1 2 3 4 5 6 7 queues 1@0 1@1 1@2 1@3 1@4 1@5 1@6 1@7 base-time 0 sched-entry S ff 20000000 flags 0x2" + ], + "cmdUnderTest": "$TC qdisc replace dev $ETH parent 8001:7 taprio num_tc 8 map 0 1 2 3 4 5 6 7 queues 1@0 1@1 1@2 1@3 1@4 1@5 1@6 1@7 base-time 200 sched-entry S ff 20000000 flags 0x2", + "expExitCode": "2", + "verifyCmd": "$TC -j qdisc show dev $ETH root | jq '.[].options.base_time'", + "matchPattern": "0", + "matchCount": "1", + "teardown": [ + "$TC qdisc del dev $ETH root", + "echo \"1\" > /sys/bus/netdevsim/del_device" + ] } ] From patchwork Tue Jun 13 21:54:40 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Vladimir Oltean X-Patchwork-Id: 107580 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:994d:0:b0:3d9:f83d:47d9 with SMTP id k13csp847224vqr; Tue, 13 Jun 2023 15:00:15 -0700 (PDT) X-Google-Smtp-Source: ACHHUZ6RdubuFNk1lW455Dbk6xA6vd0oZLgIMSx/s3taZKtE/a7IgHfd0aaVESDVHXahYWt6wGMT X-Received: by 2002:a17:906:c156:b0:978:a186:464f with SMTP id dp22-20020a170906c15600b00978a186464fmr16079232ejc.39.1686693615005; Tue, 13 Jun 2023 15:00:15 -0700 (PDT) ARC-Seal: i=2; a=rsa-sha256; t=1686693614; cv=pass; d=google.com; s=arc-20160816; b=BYMgi38ofgYiGEkYbp6p+yEpiyPvq8En+6FAfUWXUkX72i3gwsEaJuUjUIxpA3Oxen Br+I4vlBWcOYOrodqon1IqYSrZB0OX95/wH5K1hXGCqUMXa2tH1UOxbIhyvAxoRPwcck ibpzkR2cp/CjTiF8WbBXnEGGUw3c1zBNwVW+zwMFv7XHeIZyna60sd8vxN/S7Stv+b0a qvVy3k/rILEg8ZUJC1qJfOEF3Sn8fjQnoSumvmO4rtQ/RU0u3+6ecKvSEE+qYniF/IkV XndwBLIGiTVnp+5bV+x/Tas8L8kraeBlAV7fUXSAd4TVbgmpN173WG6A/dUa5l8riVuu XNLQ== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:mime-version:content-transfer-encoding :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=Hn3UpXO7Q00pu73vp9aNHjp4lHyawb9kYjNGwhFg1Go=; b=bf4NT3PoEQfb4LWsz+BiyQtihuOozecCUu/U5bwYOTPSMeuA+iHxOrl757GRSYZu5S AaGeao0QRGjc8e2yx0u1rKrk/jYBzWKmPeVrYfwT9CznhNlCWK5cYhWpiMTYCsDf+P2D 11Az/clJRPN4c5nRc5SZ/oQGXPx2HyKVhmXr/FFG3aFxt3mBRJ7Ih4QDCV1RktY43ZAc 5ENu3m5CkdZ6rC+l6LjWHco5XhDO913NG6Xd/eyG8RyE/QlgmigmQgu1YwF9gMwGz06O gj2izOSZIbaXNYkuVSpcEE3/HP8hewMvri0sYuIYnV1CuCHkWAP+t4BL83QmlvQzuZaL RQgw== ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@nxp.com header.s=selector2 header.b=PApYOyTp; arc=pass (i=1 spf=pass spfdomain=nxp.com dkim=pass dkdomain=nxp.com dmarc=pass fromdomain=nxp.com); spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=nxp.com Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id jz7-20020a170906bb0700b00978ac2d2bd5si8083781ejb.81.2023.06.13.14.59.49; Tue, 13 Jun 2023 15:00:14 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@nxp.com header.s=selector2 header.b=PApYOyTp; arc=pass (i=1 spf=pass spfdomain=nxp.com dkim=pass dkdomain=nxp.com dmarc=pass fromdomain=nxp.com); spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=nxp.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S240421AbjFMV5y (ORCPT + 99 others); Tue, 13 Jun 2023 17:57:54 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:46600 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S233934AbjFMV5V (ORCPT ); Tue, 13 Jun 2023 17:57:21 -0400 Received: from EUR05-AM6-obe.outbound.protection.outlook.com (mail-am6eur05on2076.outbound.protection.outlook.com [40.107.22.76]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 7F06C26AB; Tue, 13 Jun 2023 14:56:26 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=MIuqSQ8f+1PYvrTpLUjUVv9IktO/rsLTYu3QPbQAEa4FV2MopKbmwsX5vmEhBxjSeT5hGl+xkcaqv9/78EqhLFkduVYfO1S2mCFr8gt6SmiLwjJivBZINYKMAMMVBJ3RCjiemNioF9pIILN3ZGokG9KotEx8W/dChqCYUmH/wpfVPZ8RTycqpK+dq4xJd7nwb4i1R/d5XflOE/1yP/slPhoIUlfLHgUibrLTEgpaB0x/TtkC+ZCgnmOdoOozwPYlbLo/5bNH2Csu0cI4NF6ZMWGKe9pkIxkxpqkmi2P+nMoUMB3/vZUmnoJykqRV00CLW+Yg15e4EjMyUmgFcOri/A== 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=Hn3UpXO7Q00pu73vp9aNHjp4lHyawb9kYjNGwhFg1Go=; b=ljyQPAlN+weF/gLkA5IFNsOmcl9LNluBiCVHKKJbHOx/hPaCYscJYK8gPf/2yv1A6Ehf629TQ+HRmGKiuwonCy59s+AolTJsRY/+dNu+FeTKnBUhjP1SCJBTolqFxXnIQK2pyJLt3KMCaj+L9C8CJpjfF2njRN9uG7yYgysr9R6kAVtvnDOJVNB7i9MbreT3XWvolbjFfg93yWaikNOCVRwnkXM4LaXm5WPK5vb1IvuxIm3/JPHJxIsriFsdq3nXAAubWxPGiD+0rkTRqjYWDBL64Siblr+r1rdSiSGBGThRTGRH2YSiuXdAoW/kz+TTeBzwBO0TsSbF5guAZZiozA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nxp.com; dmarc=pass action=none header.from=nxp.com; dkim=pass header.d=nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nxp.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=Hn3UpXO7Q00pu73vp9aNHjp4lHyawb9kYjNGwhFg1Go=; b=PApYOyTppmBbg7Axee/EN/5rLLspGJEjokgiZes6Qisbr1ozxLi5g6E3KZz/BjNPW5n5xZt4rEYGXnt6pjJeeQ7IVeAcfRER5FMIIdq5/etfcoyiF+zq/saj08m0Ha00DUfsnxvpFD6+aijUTE37ME2BcZHUQSyzj9Rx2+Yngv8= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nxp.com; Received: from AM0PR04MB6452.eurprd04.prod.outlook.com (2603:10a6:208:16d::21) by AM9PR04MB8081.eurprd04.prod.outlook.com (2603:10a6:20b:3e2::5) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6477.29; Tue, 13 Jun 2023 21:55:02 +0000 Received: from AM0PR04MB6452.eurprd04.prod.outlook.com ([fe80::c40e:d76:fd88:f460]) by AM0PR04MB6452.eurprd04.prod.outlook.com ([fe80::c40e:d76:fd88:f460%4]) with mapi id 15.20.6455.045; Tue, 13 Jun 2023 21:55:02 +0000 From: Vladimir Oltean To: netdev@vger.kernel.org Cc: "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Jamal Hadi Salim , Cong Wang , Jiri Pirko , Vinicius Costa Gomes , linux-kernel@vger.kernel.org, intel-wired-lan@lists.osuosl.org, Muhammad Husaini Zulkifli , Peilin Ye , Pedro Tammela , Richard Cochran , Zhengchao Shao , Maxim Georgiev Subject: [PATCH v2 net-next 9/9] selftests/tc-testing: verify that a qdisc can be grafted onto a taprio class Date: Wed, 14 Jun 2023 00:54:40 +0300 Message-Id: <20230613215440.2465708-10-vladimir.oltean@nxp.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20230613215440.2465708-1-vladimir.oltean@nxp.com> References: <20230613215440.2465708-1-vladimir.oltean@nxp.com> X-ClientProxiedBy: AM0PR04CA0044.eurprd04.prod.outlook.com (2603:10a6:208:1::21) To AM0PR04MB6452.eurprd04.prod.outlook.com (2603:10a6:208:16d::21) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: AM0PR04MB6452:EE_|AM9PR04MB8081:EE_ X-MS-Office365-Filtering-Correlation-Id: a4a82d6d-17ed-4dc6-5a37-08db6c58d722 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: nvUdjeURrhh5MeDOyFsQ1IeSQAq+T5BJjcNi6A66BARaz5bcvMYaucoxvML4qA1E3TPLHMXsMU7lDr7kXkcbFhmPNlaU2XMwRz49iAOIK6BXGf9C9FG4t62HN1WyE82PYBo2lQwSsOth+3NCtRrS4xyoTE3KTsFp5iypmhdYOxzN3x81iN3oNnHy18GYeLsVZ0vNxval6kyV2BKKEcPDQdRrDhh//gR6EJmyvCUKJqm+8xs7cZGlEWpwvCkl1djtKIdgFXcmPk9v00R6wgjQmyUMKYALKm2VJPYYiseMBDEMQj9by4HzPxJh6ovUsV+TuR5EXSIQSmCr5MPEotgHarPQjLuOhRJ9Onl9N/kl25pAufBp+EINo8XvNLLGPIy2f3Ep600WbqU6XKPegSxh1W68JmyuGwN7dL0TQrULsGXY3yLVtBx6gqPf2ZOsEX9YGwzDcopjsOhsOtkXwONX+nPlauzPQw3rwZGuhMJKFdDvVveRLqMP/v6hCi2RBUadnd++6/3utezNhTt6jgdXuvXFd2y2z0SGV+XrauBzrC8foM0kbHK6xQqzNu0INdBpE1OOFFHr+t9Yp4QDfOkpvEBjLRjU796/RUJrK4jH5SDi2+7j5kkLbh0Xvuq74ZX9 X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM0PR04MB6452.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230028)(4636009)(396003)(136003)(39860400002)(366004)(346002)(376002)(451199021)(15650500001)(6916009)(66946007)(4326008)(66556008)(36756003)(186003)(54906003)(478600001)(2616005)(2906002)(66476007)(8676002)(6666004)(316002)(41300700001)(86362001)(6486002)(7416002)(6506007)(1076003)(8936002)(44832011)(83380400001)(26005)(5660300002)(38100700002)(52116002)(38350700002)(6512007);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: 6APviM9EZjXSD7y90t+V+aXQjlPyzR5o8XkEpFk50NRRpg/QHI/SaFYO0WyLPt2YfVzL1ngxEKOazO6l5UXxqN1evCI1atSFBF92Q/yo9m8SB1Pm5mhEkHmPqkLespf7edMsnoN146QnT30nsmfLuSHq/1tZls3ZOQ5vgNzlVnS9wZL+60Jw2P7yABwj02o3Li6Smfobx77nSYDRdqT9zEsjliaiBQu1Q8/sLIEx9LEhydGm/AiRnDFiJo67z8CDavsOfO68Snzbvoyb5gH1sW9Nm5v6gX37RMkp+N24Z+23RDq+T/VUQsi28vR2N8BEQE4Bi/gMp+cNzwD5NT3Ykgjt5v0L08GR837csv9x2SaRjJl8/jiylbsGllKvALQkQG0lQA4hjeZLDT61Mn+pXHMTYP0NvDzkCy/XFy73XJr2BqCAKmHZ+G+OhUpAduDJaaBfgUKF93l145Lyp6M6JbdwrE5jL2ow2oQi2lirUp0MO3k8jzMDxL0dYdKw05gvB0svhbIihM3XdZxhQO1DrX/tPHtkEBOU/8RWrESLU9EBZ4V3FIh8fnYMUY9+HNCpwOB3BU5HI7KaQVIpX1XmfyKPMANdSOzk7Ju7LdKA/o3SaG+cDZ3GR13ved0vTCaJjeBSnJf2YxXe0bqXKbFWYbGioUOZozlaDWth+vM03kLSGi0BoLdKtV6qm4EoAuzxfZY5K3iu5FKM9Dn4hnQxwgVaQtOm65A8mzFcCTqRH5+rHDVpiZsqeAjniWPkUJdRyufXCXOWR5GdRHz6hCxsFAfNFK1ABNBUKNlNAqLo8SoJkhggNh1x5GBsWarDjBYEYhl4sifhscJ4a+uoXKNB7Cmra3lbV6cXH70HKFd7QH7NkP/D+dRxO/JPM3DGm4yC4d9jh6SxsYIbv5GrYtnqLg03NYrOdzL9z+xC7ahAbtPtNqBvgVQAKupH44k2G/XApOaSHHpcxesYIAPeW2+kUS35yiVkcV45ykI/O3+gSvWkTZstQdVnYDutjoBNTvAuiGEpcqzmb7yi88lB6v5mc2fGB31q2TqrNk23ZahLsn/pHAn9qrnxmMicvoMc1gVLXZdY5T2AM75NaEOF9GSiGWc2Z19kEnZ/NCKOrX8rwWdx2yDFYFN/LlcJiQfJ+THWv9B+PJcBw3BB9aP/BTE+Q1SED7ddMSI0DOb9HDG6eU2ncmU35QQ41IbrbVFodmyjoBKeHeWPanWgohL0mKO13ZBQgtoLJe+tMdF8O+3sj4Cp/h9e1feulnGM+VL/WguRnRcN9+qvhhOxTonj+tm4muHWLRQE3Bzm+9lmz85+qYMFKzS42aUeiUZfq6gKuS0PN25zXzTExWJtYSXG5UeWzvKQUBVzndrGe25ToLNw3jB1vWa0/U74k/fzTJMvAPVbl3dvZpFzPjjRPnegoTWiiFK0eBmdlXr8h3EwXZu6KSEfUktpn8u9ycfA9nzXf+/UrSvqIgBAQMfxnjbzA7/APweRVX/9mKu5EmqjpzIKW9ZUfPIsqKVZBnXrDLxE2JSzjs+6Yrf42PhJGxOfytwBZA6OWLDOKbYLRlxqmep7I2EG6fzW+hrl2BPbjX2LfWrIirIq3qMYsRZxxCfYHjjhNw== X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: a4a82d6d-17ed-4dc6-5a37-08db6c58d722 X-MS-Exchange-CrossTenant-AuthSource: AM0PR04MB6452.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 13 Jun 2023 21:55:02.6724 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: 8pVfWFRrPhUJ2bB/6gIXH+DMfTtRM4GIhAQulJ7paTHnU8KORpYzMXnRVWvEfWEECSGqkdZxyElZYS6FMRc+gA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM9PR04MB8081 X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_NONE, RCVD_IN_MSPIKE_H2,SPF_HELO_PASS,SPF_PASS,T_SCC_BODY_TEXT_LINE, URIBL_BLOCKED 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-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1768626444139258790?= X-GMAIL-MSGID: =?utf-8?q?1768626444139258790?= The reason behind commit af7b29b1deaa ("Revert "net/sched: taprio: make qdisc_leaf() see the per-netdev-queue pfifo child qdiscs"") was that the patch it reverted caused a crash when attaching a CBS shaper to one of the taprio classes. Prevent that from happening again by adding a test case for it, which now passes correctly in both offload and software modes. Signed-off-by: Vladimir Oltean Reviewed-by: Pedro Tammela --- v1->v2: patch is new .../tc-testing/tc-tests/qdiscs/taprio.json | 50 +++++++++++++++++++ 1 file changed, 50 insertions(+) diff --git a/tools/testing/selftests/tc-testing/tc-tests/qdiscs/taprio.json b/tools/testing/selftests/tc-testing/tc-tests/qdiscs/taprio.json index 58d4d97f4499..47692335bcf1 100644 --- a/tools/testing/selftests/tc-testing/tc-tests/qdiscs/taprio.json +++ b/tools/testing/selftests/tc-testing/tc-tests/qdiscs/taprio.json @@ -179,5 +179,55 @@ "$TC qdisc del dev $ETH root", "echo \"1\" > /sys/bus/netdevsim/del_device" ] + }, + { + "id": "a7bf", + "name": "Graft cbs as child of software taprio", + "category": [ + "qdisc", + "taprio", + "cbs" + ], + "plugins": { + "requires": "nsPlugin" + }, + "setup": [ + "echo \"1 1 8\" > /sys/bus/netdevsim/new_device", + "$TC qdisc replace dev $ETH handle 8001: parent root stab overhead 24 taprio num_tc 8 map 0 1 2 3 4 5 6 7 queues 1@0 1@1 1@2 1@3 1@4 1@5 1@6 1@7 base-time 0 sched-entry S ff 20000000 clockid CLOCK_TAI" + ], + "cmdUnderTest": "$TC qdisc replace dev $ETH handle 8002: parent 8001:8 cbs idleslope 20000 sendslope -980000 hicredit 30 locredit -1470", + "expExitCode": "0", + "verifyCmd": "$TC -d qdisc show dev $ETH", + "matchPattern": "qdisc cbs 8002: parent 8001:8 hicredit 30 locredit -1470 sendslope -980000 idleslope 20000 offload 0", + "matchCount": "1", + "teardown": [ + "$TC qdisc del dev $ETH root", + "echo \"1\" > /sys/bus/netdevsim/del_device" + ] + }, + { + "id": "6a83", + "name": "Graft cbs as child of offloaded taprio", + "category": [ + "qdisc", + "taprio", + "cbs" + ], + "plugins": { + "requires": "nsPlugin" + }, + "setup": [ + "echo \"1 1 8\" > /sys/bus/netdevsim/new_device", + "$TC qdisc replace dev $ETH handle 8001: parent root stab overhead 24 taprio num_tc 8 map 0 1 2 3 4 5 6 7 queues 1@0 1@1 1@2 1@3 1@4 1@5 1@6 1@7 base-time 0 sched-entry S ff 20000000 flags 0x2" + ], + "cmdUnderTest": "$TC qdisc replace dev $ETH handle 8002: parent 8001:8 cbs idleslope 20000 sendslope -980000 hicredit 30 locredit -1470", + "expExitCode": "0", + "verifyCmd": "$TC -d qdisc show dev $ETH", + "matchPattern": "qdisc cbs 8002: parent 8001:8 hicredit 30 locredit -1470 sendslope -980000 idleslope 20000 offload 0", + "matchCount": "1", + "teardown": [ + "$TC qdisc del dev $ETH root", + "echo \"1\" > /sys/bus/netdevsim/del_device" + ] } ]