From patchwork Mon Jan 6 18:01:55 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Petr Machata X-Patchwork-Id: 1218331 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming-netdev@ozlabs.org Delivered-To: patchwork-incoming-netdev@ozlabs.org Authentication-Results: ozlabs.org; spf=none (no SPF record) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=netdev-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dmarc=pass (p=none dis=none) header.from=mellanox.com Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=Mellanox.com header.i=@Mellanox.com header.b="mB/n85Nd"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 47s3Hp0QRvz9sP6 for ; Tue, 7 Jan 2020 05:02:14 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726687AbgAFSCN (ORCPT ); Mon, 6 Jan 2020 13:02:13 -0500 Received: from mail-vi1eur05on2059.outbound.protection.outlook.com ([40.107.21.59]:39567 "EHLO EUR05-VI1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1726677AbgAFSCM (ORCPT ); Mon, 6 Jan 2020 13:02:12 -0500 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=YMRAODtH0k8Xfo+Mn7eghJ+OJ8Z/vx/4L5nvrYvjLkcptDOonQkxl4Cic2Dmk8CFNp9qcsFZQNhRjtd3s11miAGQ3r2RKSXPgZUjTwcZgigDA7b1s+mb7RJ9buVPa5DPnCdkQwkJidaIE548+cn0oGJz+cWi8de8yBzW6dPF3Oh8h6Jpr/hyMIQ8aAa2M59q5LvI7VvG5CV6Ijd8ObXEORTOJIa+IqDvySAIFmoxwKMbpMPerj97Sbx0/4fLUpur+DhQFqOoNKOzW6CZf4vXe6yAF80srEemblOuWyt0khq7yNdfG7NmrTyETPFa9LFEwonbsSycbc08foQme3v8fQ== 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-SenderADCheck; bh=lMictXWuOUs5BoeLBQv7bfRu1FLJHg5z+YkFX2VqB7s=; b=TxtJUgVgf8zEPpA/UFlSdtemODfSnLSTkUIgtEsXQXnMMgNwr+BM/u7tNKiCup1v7UQ8m+bzfQzWt+DhXtFex6dyaTEC1TGlzSS2YpIXcal3/N/ELdU9HbkKzQtLKGHw/4KfSaY06dWqjF0qosScROwrPdFDHMnwlzZS7vbmUahJ1io2yLNT6tEKXKyRM+QFMMv1IM4hoKOOO1tsOZBmIvXQFEAflnNc6Ic6Jtx+Jh4neHamlgC+EJpWbafbtXx8jBTkFKuOPx6F1GDLynSI45mk+7Mg9AxtuFAMrxcw62euVKpHb+V7jlpttA5hzEuE+6o6ZHSbdybzixIekDXyWw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=mellanox.com; dmarc=pass action=none header.from=mellanox.com; dkim=pass header.d=mellanox.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Mellanox.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=lMictXWuOUs5BoeLBQv7bfRu1FLJHg5z+YkFX2VqB7s=; b=mB/n85NdUvrevPWNM73folVCd/KwPs2Sgh3mfLnKCeuF8x4yWvswiqnE7EW61nMFr52HpbUzDw6jpCCccF5sfdZf3iEl4bU6gWWSBKJuBDI6ts4FKR3j7v+vh6s4C0Jo9H/ghMlMWi5kIFletSE6OB87rKFCidBxoXR6Mup41Cs= Received: from HE1PR05MB4746.eurprd05.prod.outlook.com (20.176.168.150) by HE1PR05MB4762.eurprd05.prod.outlook.com (20.176.164.27) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2602.15; Mon, 6 Jan 2020 18:01:55 +0000 Received: from HE1PR05MB4746.eurprd05.prod.outlook.com ([fe80::4145:5526:973b:718b]) by HE1PR05MB4746.eurprd05.prod.outlook.com ([fe80::4145:5526:973b:718b%7]) with mapi id 15.20.2602.015; Mon, 6 Jan 2020 18:01:55 +0000 Received: from dev-r-vrt-156.mtr.labs.mlnx (37.142.13.130) by PR0P264CA0100.FRAP264.PROD.OUTLOOK.COM (2603:10a6:100:19::16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2602.11 via Frontend Transport; Mon, 6 Jan 2020 18:01:54 +0000 From: Petr Machata To: "netdev@vger.kernel.org" CC: Jiri Pirko , Petr Machata Subject: [PATCH net 1/2] mlxsw: spectrum_qdisc: Ignore grafting of invisible FIFO Thread-Topic: [PATCH net 1/2] mlxsw: spectrum_qdisc: Ignore grafting of invisible FIFO Thread-Index: AQHVxLthKpC6HAth/kG3C0ukrRoSXQ== Date: Mon, 6 Jan 2020 18:01:55 +0000 Message-ID: <4f352657f275209e1923975f71641a00d5fdb046.1578333529.git.petrm@mellanox.com> References: In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-mailer: git-send-email 2.20.1 x-clientproxiedby: PR0P264CA0100.FRAP264.PROD.OUTLOOK.COM (2603:10a6:100:19::16) To HE1PR05MB4746.eurprd05.prod.outlook.com (2603:10a6:7:a3::22) authentication-results: spf=none (sender IP is ) smtp.mailfrom=petrm@mellanox.com; x-ms-exchange-messagesentrepresentingtype: 1 x-originating-ip: [37.142.13.130] x-ms-publictraffictype: Email x-ms-office365-filtering-ht: Tenant x-ms-office365-filtering-correlation-id: 39c4586b-d595-4a26-98de-08d792d283d1 x-ms-traffictypediagnostic: HE1PR05MB4762:|HE1PR05MB4762: x-ms-exchange-transport-forked: True x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:1360; x-forefront-prvs: 0274272F87 x-forefront-antispam-report: SFV:NSPM; SFS:(10009020)(4636009)(136003)(366004)(346002)(39860400002)(396003)(376002)(189003)(199004)(8676002)(86362001)(81166006)(6512007)(478600001)(36756003)(8936002)(52116002)(81156014)(16526019)(6506007)(66946007)(26005)(186003)(2616005)(956004)(6486002)(107886003)(2906002)(6916009)(4326008)(54906003)(71200400001)(5660300002)(66446008)(64756008)(66556008)(66476007)(316002); DIR:OUT; SFP:1101; SCL:1; SRVR:HE1PR05MB4762; H:HE1PR05MB4746.eurprd05.prod.outlook.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; MX:1; A:1; received-spf: None (protection.outlook.com: mellanox.com does not designate permitted sender hosts) x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: gsWj5k8W6mBc0Bn6by5v6BDieJ47Yr912WVaUKDX6rKb3oDrEYOKycjTywTtDbw2nc6z7rVFX2SookeEjDq0kk60FQQMJ+AMhYCaWz8c41dXsX1z4MXxuOl/Wtnx1MVbQ9iWgR90SW06GSjpBo1ULwbBovqdJKya34IDyVYflqmMsKDtrBtyDMx869l2N4rFhO+2iyLXl+kX6+p8L1XHQjEX4ewOClAMwHqRXY3i0qE2ZzRIRQCL/pssIZyrxNfW8nU6OKE/xk4kvCZw8Wt+xE1kd6lduaISDc92BVvK9fmGj9CVoKBD8sJpV5qegahUkKVnt6QDzrNi9h6aK8movVe0HTOw9UGvldwkl0abpu7sxVJZrnZQO8YC2u7F6T7ModMZNnDxWG7pq4ZgbEzG5qnkDfjmldEkRsfTyuIAEh17aIFTVZhKcimg9BSA6eLN MIME-Version: 1.0 X-OriginatorOrg: Mellanox.com X-MS-Exchange-CrossTenant-Network-Message-Id: 39c4586b-d595-4a26-98de-08d792d283d1 X-MS-Exchange-CrossTenant-originalarrivaltime: 06 Jan 2020 18:01:55.0962 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: a652971c-7d2e-4d9b-a6a4-d149256f461b X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: 4NlNwwJ9YiwThm97jrIgiudkhJCxIKL1hVyjYFfOuFzuWXoy2EUwNLLv5tDr96fNcB/XphFJ/sLm5ytHi7zXkg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: HE1PR05MB4762 Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org The following patch will change PRIO to replace a removed Qdisc with an invisible FIFO, instead of NOOP. mlxsw will see this replacement due to the graft message that is generated. But because FIFO does not issue its own REPLACE message, when the graft operation takes place, the Qdisc that mlxsw tracks under the indicated band is still the old one. The child handle (0:0) therefore does not match, and mlxsw rejects the graft operation, which leads to an extack message: Warning: Offloading graft operation failed. Fix by ignoring the invisible children in the PRIO graft handler. The DESTROY message of the removed Qdisc is going to follow shortly and handle the removal. Fixes: 32dc5efc6cb4 ("mlxsw: spectrum: qdiscs: prio: Handle graft command") Signed-off-by: Petr Machata Acked-by: Jiri Pirko --- drivers/net/ethernet/mellanox/mlxsw/spectrum_qdisc.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/drivers/net/ethernet/mellanox/mlxsw/spectrum_qdisc.c b/drivers/net/ethernet/mellanox/mlxsw/spectrum_qdisc.c index 68cc6737d45c..46d43cfd04e9 100644 --- a/drivers/net/ethernet/mellanox/mlxsw/spectrum_qdisc.c +++ b/drivers/net/ethernet/mellanox/mlxsw/spectrum_qdisc.c @@ -651,6 +651,13 @@ mlxsw_sp_qdisc_prio_graft(struct mlxsw_sp_port *mlxsw_sp_port, mlxsw_sp_port->tclass_qdiscs[tclass_num].handle == p->child_handle) return 0; + if (!p->child_handle) { + /* This is an invisible FIFO replacing the original Qdisc. + * Ignore it--the original Qdisc's destroy will follow. + */ + return 0; + } + /* See if the grafted qdisc is already offloaded on any tclass. If so, * unoffload it. */ From patchwork Mon Jan 6 18:01:56 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Petr Machata X-Patchwork-Id: 1218332 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming-netdev@ozlabs.org Delivered-To: patchwork-incoming-netdev@ozlabs.org Authentication-Results: ozlabs.org; spf=none (no SPF record) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=netdev-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dmarc=pass (p=none dis=none) header.from=mellanox.com Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=Mellanox.com header.i=@Mellanox.com header.b="kw7uSMpE"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 47s3Hr4Jw9z9sP6 for ; Tue, 7 Jan 2020 05:02:16 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726707AbgAFSCP (ORCPT ); Mon, 6 Jan 2020 13:02:15 -0500 Received: from mail-vi1eur05on2059.outbound.protection.outlook.com ([40.107.21.59]:39567 "EHLO EUR05-VI1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1726677AbgAFSCP (ORCPT ); Mon, 6 Jan 2020 13:02:15 -0500 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=RcPdSltryTFr9N3+AObgm/zDf2tY6H0uMjTfgHa7CwU3WIQzFkKoS2TchqrI/Lm2V/2AbMCUrETGIy2/xofDKieuMJL5+H2FxwKH9NkvmJO1yZc9IMhAX1xUeFxLw57OEGY/aaRTdqccHs+PMdTPUw4VHIrAJw5RRSKYz/zDLopGvz4qH2j7bXPA5SApaFc6CtjfLrS/0eCJo1I4BsnFAmIvZ6pSbUuu2IDRIXuaMNWZ05tqU6fbNukPujN1YG/sh7ucu+V3Wkj0BBTK/9qrmzb4doLv0ZIfQSNmFds2IyVq95UPRZhYV1z/0JijiSmPGxXGoTZ5BHE9yko82UKfRQ== 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-SenderADCheck; bh=X6Txzk6m825/7W9xpHnAbt85HYpxSqckyv1boHUAkvc=; b=H1AgjMIjpM/kcmkedKNPQ5wu7MCzHVikoUqa5D+mxWFSf+AKLte7d3ud3INwCAqB9dlbE1hNfwq7VVl14Ik1DxsbQrB84TacGxDRxZlxQVTz7HTyY1xokQYzCHO+puuIYw4/52C4rA9lpMfQzUcolitxgOD1nYSmZ6RI87YZ1rRW1xe/pFxOeHlMvaI0BeIE/jpRAfgShEvIMAKDF6zmiSybu8O5oh5Q6JvSSKT2uM/N4WzozkwvIkUyFrYEaqOaiNm7bRpsqgJOo5EiCizjVaUrBXNSZep2BHPoWqbGoeFeQl74ptOzjxOfZciGdgkO66fQBxf3lYIw1XGbnFUEwQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=mellanox.com; dmarc=pass action=none header.from=mellanox.com; dkim=pass header.d=mellanox.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Mellanox.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=X6Txzk6m825/7W9xpHnAbt85HYpxSqckyv1boHUAkvc=; b=kw7uSMpEEVWCDPMr3HLVxla0KGVv2SqnHGFxDqQ5aLx4NspbysHP/N8mZOrGrlLM109knbP7cxkUszNz2mxY6muCHzkn2f0aD2MDPEveyFX5w0XFjPJdGn13p6L5fvzfYdIAuxYZB3cqeQ/mzU4gGxDFA3xxwj/YQOAz4sMhtjE= Received: from HE1PR05MB4746.eurprd05.prod.outlook.com (20.176.168.150) by HE1PR05MB4762.eurprd05.prod.outlook.com (20.176.164.27) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2602.15; Mon, 6 Jan 2020 18:01:56 +0000 Received: from HE1PR05MB4746.eurprd05.prod.outlook.com ([fe80::4145:5526:973b:718b]) by HE1PR05MB4746.eurprd05.prod.outlook.com ([fe80::4145:5526:973b:718b%7]) with mapi id 15.20.2602.015; Mon, 6 Jan 2020 18:01:56 +0000 Received: from dev-r-vrt-156.mtr.labs.mlnx (37.142.13.130) by PR0P264CA0100.FRAP264.PROD.OUTLOOK.COM (2603:10a6:100:19::16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2602.11 via Frontend Transport; Mon, 6 Jan 2020 18:01:55 +0000 From: Petr Machata To: "netdev@vger.kernel.org" CC: Jiri Pirko , Petr Machata Subject: [PATCH net 2/2] net: sch_prio: When ungrafting, replace with FIFO Thread-Topic: [PATCH net 2/2] net: sch_prio: When ungrafting, replace with FIFO Thread-Index: AQHVxLtiAiT8Rf0SM0i7h94tzVo84w== Date: Mon, 6 Jan 2020 18:01:56 +0000 Message-ID: References: In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-mailer: git-send-email 2.20.1 x-clientproxiedby: PR0P264CA0100.FRAP264.PROD.OUTLOOK.COM (2603:10a6:100:19::16) To HE1PR05MB4746.eurprd05.prod.outlook.com (2603:10a6:7:a3::22) authentication-results: spf=none (sender IP is ) smtp.mailfrom=petrm@mellanox.com; x-ms-exchange-messagesentrepresentingtype: 1 x-originating-ip: [37.142.13.130] x-ms-publictraffictype: Email x-ms-office365-filtering-ht: Tenant x-ms-office365-filtering-correlation-id: 83e2d9dd-403b-43b6-f347-08d792d2848b x-ms-traffictypediagnostic: HE1PR05MB4762:|HE1PR05MB4762: x-ms-exchange-transport-forked: True x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:4303; x-forefront-prvs: 0274272F87 x-forefront-antispam-report: SFV:NSPM; SFS:(10009020)(4636009)(136003)(366004)(346002)(39860400002)(396003)(376002)(189003)(199004)(8676002)(86362001)(81166006)(6512007)(478600001)(36756003)(8936002)(52116002)(81156014)(16526019)(6506007)(66946007)(26005)(186003)(2616005)(956004)(6486002)(107886003)(2906002)(6916009)(4326008)(54906003)(71200400001)(5660300002)(66446008)(64756008)(66556008)(66476007)(316002); DIR:OUT; SFP:1101; SCL:1; SRVR:HE1PR05MB4762; H:HE1PR05MB4746.eurprd05.prod.outlook.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; MX:1; A:1; received-spf: None (protection.outlook.com: mellanox.com does not designate permitted sender hosts) x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: e9H9N9hfJg6wjLrOWk7zG34tKWQPflpVQU/pgOd6sIxpB0AUicD2PUnqChuOsrzi3gy6bAgxwF211a4E3qj4Xzr/9xdY5T3BtqjCW5H9FK9o8p87S7FTYwpPK5oTx1+ncp7R4YOPaHY2J9VszAvr9rth/4qhnPKsExc0KFaOig8/FzAlry23G4Z/oKFaRMoPydk3AHnANQ26wMKvZS9h3qsWBuRuhi4IeQSIN0+x4hZ3QmQm0098eeohXYgsqn5Pf4tUuAUPliNhZ6TDXLiqZbZejAv5ACdDBWE/YJJum0ZRmE/mVf7iw2fkC9ePBAzAjKbV0oWpzq8VeeERPNZesZbmK1/LYL2oWXgfPdRGJ/35aNdxtSqmGJd1Ina3rVX3OT9dVjB3Y4FgrlQbbyjskwb5WSfqSHrvthuW+kpI7qnFEBMp1/8tmvgre8TuvDeJ MIME-Version: 1.0 X-OriginatorOrg: Mellanox.com X-MS-Exchange-CrossTenant-Network-Message-Id: 83e2d9dd-403b-43b6-f347-08d792d2848b X-MS-Exchange-CrossTenant-originalarrivaltime: 06 Jan 2020 18:01:56.3534 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: a652971c-7d2e-4d9b-a6a4-d149256f461b X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: 5vGfuFbHdSwGU8DG6pN91IHiSKG+YSHQrGwSJ4VtZsXGJKux9tp2uiWFdj1kB5T3iLkzb17XsklxaxrNLecL0g== X-MS-Exchange-Transport-CrossTenantHeadersStamped: HE1PR05MB4762 Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org When a child Qdisc is removed from one of the PRIO Qdisc's bands, it is replaced unconditionally by a NOOP qdisc. As a result, any traffic hitting that band gets dropped. That is incorrect--no Qdisc was explicitly added when PRIO was created, and after removal, none should have to be added either. Fix PRIO by first attempting to create a default Qdisc and only falling back to noop when that fails. This pattern of attempting to create an invisible FIFO, using NOOP only as a fallback, is also seen in other Qdiscs. Fixes: 1da177e4c3f4 ("Linux-2.6.12-rc2") Signed-off-by: Petr Machata Acked-by: Jiri Pirko --- net/sched/sch_prio.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/net/sched/sch_prio.c b/net/sched/sch_prio.c index 18b884cfdfe8..647941702f9f 100644 --- a/net/sched/sch_prio.c +++ b/net/sched/sch_prio.c @@ -292,8 +292,14 @@ static int prio_graft(struct Qdisc *sch, unsigned long arg, struct Qdisc *new, struct tc_prio_qopt_offload graft_offload; unsigned long band = arg - 1; - if (new == NULL) - new = &noop_qdisc; + if (!new) { + new = qdisc_create_dflt(sch->dev_queue, &pfifo_qdisc_ops, + TC_H_MAKE(sch->handle, arg), extack); + if (!new) + new = &noop_qdisc; + else + qdisc_hash_add(new, true); + } *old = qdisc_replace(sch, new, &q->queues[band]);