From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-9.1 required=3.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI, SIGNED_OFF_BY,SPF_PASS,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id B3087C43381 for ; Wed, 20 Feb 2019 19:32:40 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 89E602089F for ; Wed, 20 Feb 2019 19:32:40 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (1024-bit key) header.d=Mellanox.com header.i=@Mellanox.com header.b="c2liBOUo" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727055AbfBTTcj (ORCPT ); Wed, 20 Feb 2019 14:32:39 -0500 Received: from mail-eopbgr00045.outbound.protection.outlook.com ([40.107.0.45]:11872 "EHLO EUR02-AM5-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1726838AbfBTTch (ORCPT ); Wed, 20 Feb 2019 14:32:37 -0500 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=MDF4nTa5pbf8xetGE+jCLvRyOXN+bOZVjQscCVapp+s=; b=c2liBOUoMSSb7Fgw0QuzWo2Lv2Et8ecA6Zn+F3zem34YPbKHOHd8vI/aplHUq3Bud+VU1wLQXlkr88nLkdPVacLP466YSrsbe9xgdwziTu/zcPDyawT3pUKqKK2zaTtRwwgsKJTT5iOnSIqlVKxqOESyhHe7jPvOZ7siIq3RTr8= Received: from AM6PR05MB5240.eurprd05.prod.outlook.com (20.177.196.214) by AM6PR05MB4871.eurprd05.prod.outlook.com (20.177.34.223) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1622.19; Wed, 20 Feb 2019 19:32:28 +0000 Received: from AM6PR05MB5240.eurprd05.prod.outlook.com ([fe80::3542:889c:3a85:3866]) by AM6PR05MB5240.eurprd05.prod.outlook.com ([fe80::3542:889c:3a85:3866%5]) with mapi id 15.20.1643.014; Wed, 20 Feb 2019 19:32:28 +0000 From: Ido Schimmel To: "netdev@vger.kernel.org" CC: "davem@davemloft.net" , Jiri Pirko , Petr Machata , mlxsw , Ido Schimmel Subject: [PATCH net-next 09/10] mlxsw: spectrum_buffers: Update port headroom configuration Thread-Topic: [PATCH net-next 09/10] mlxsw: spectrum_buffers: Update port headroom configuration Thread-Index: AQHUyVMD26ZPn4L4R0ODipBCcAHiWg== Date: Wed, 20 Feb 2019 19:32:27 +0000 Message-ID: <20190220193141.16498-10-idosch@mellanox.com> References: <20190220193141.16498-1-idosch@mellanox.com> In-Reply-To: <20190220193141.16498-1-idosch@mellanox.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-clientproxiedby: AM6PR10CA0061.EURPRD10.PROD.OUTLOOK.COM (2603:10a6:209:80::38) To AM6PR05MB5240.eurprd05.prod.outlook.com (2603:10a6:20b:64::22) authentication-results: spf=none (sender IP is ) smtp.mailfrom=idosch@mellanox.com; x-ms-exchange-messagesentrepresentingtype: 1 x-mailer: git-send-email 2.20.1 x-originating-ip: [77.138.249.209] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 1ba73ad0-ae56-4ff2-1cf4-08d6976a25c7 x-ms-office365-filtering-ht: Tenant x-microsoft-antispam: BCL:0;PCL:0;RULEID:(2390118)(7020095)(4652040)(8989299)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(5600110)(711020)(4605104)(4618075)(2017052603328)(7153060)(7193020);SRVR:AM6PR05MB4871; x-ms-traffictypediagnostic: AM6PR05MB4871: x-microsoft-exchange-diagnostics: =?iso-8859-1?Q?1;AM6PR05MB4871;23:+Te9ma538yjdszmpfWT8Yj9fT8lvThoRkgORaaX?= =?iso-8859-1?Q?UtU4yyHxCenhwYTwNexv+cZO+W9eRt+EvTbgcY/oYvx0RvEq9MIUf2Jq2x?= =?iso-8859-1?Q?1vbRbnrArjB1kuXFM1f7DPKN7+BAT91tUePOPfqIXXE0Hs87U6NGYOOZ/E?= =?iso-8859-1?Q?aMMQrIMXGwJn6DB/xhle6UrTcxR8z07oQc+fZI7002mFMRmE6Swa/uU7cy?= =?iso-8859-1?Q?IyL1cN/4E+QYXvslp+85t/RB3yfH1ygxfaE8e7mWSJrIWS9RrF6/budh14?= =?iso-8859-1?Q?sa3A4FKIS4rLA9eAKN2KPZAfkdsAvZuKEPPPpWuw7FHanZ0qAd/6oWtAkZ?= =?iso-8859-1?Q?HiSoqkzR6LPCtHiWnNzJU6AXF1YSwZrqJrid9ACKZVQL1Kb2IxBIoVY3aH?= =?iso-8859-1?Q?8LMWT66GMkiobnQuQVDzM9rzOi14hRLcNqC516SKN6YW7ULGJVgbaS4CG0?= =?iso-8859-1?Q?m5kAU8+yhQpnHG1mEuFbAFakFAS+hii42RFmYmn/n1LaHUDn6I/g70i+n9?= =?iso-8859-1?Q?tcXu6FBncqprnPFSPPdz09RIT4dqCgQ6KlIoq4uUgWh2Pr2kzZ/dE9CTd6?= =?iso-8859-1?Q?G0VvBUij8giddGRg4/Ay1pM4E/avj4hFBLtwUodkmVpP7/87iAIZQK8k6u?= =?iso-8859-1?Q?r0DnMqPcNUiEQ1H89O4PGTDo6Ym9ti0Wc6Ybq/r+Ocbd2dI13NXwQV09Ww?= =?iso-8859-1?Q?+uAXYILn3kKHPMyXgCYrE2k11ZD31V6Xaswk4zrOMiW9vjL149MSL8HQ9V?= =?iso-8859-1?Q?qm5neYYec1oEAlmyCFISs5TDcbo+cu63qKY6M4MfEpnAhZBknnLtWfaRKd?= =?iso-8859-1?Q?EGijOGCmhrIfPYqrNp0/pdK7558rCBYXuu/kv22ie1Y8kDGu7jtqDSQUWb?= =?iso-8859-1?Q?H1FrCJKdEAHrlNvfKJc/U5SQ36EV9rZSFhNZSKJxnpBPITZ6v6/Eiek16s?= =?iso-8859-1?Q?Q2Onss3wB9LOg0JijaRGRrOBf1jIVkmd5PypRbUgZNmhYJy0ZJbiWhQO9F?= =?iso-8859-1?Q?TuCVWyngXJSU/2YeE/Czj/ngAPv7GVdAMTQDv9H6YFLmFiMKicC487Z3Nb?= =?iso-8859-1?Q?4lUUcsal0vBwysRK/65USop7j69ahsuuNwVyEufFz3WD0a3Mc4CYm7NxYU?= =?iso-8859-1?Q?luHY2Nf5ke4YCP0q2fyeLMhMNRsVIczCbu71aG7YhmS+Qc6FfFNhKD1WPC?= =?iso-8859-1?Q?fgsY0tigNB6ObV8VIZBkFE7i/XsCXeee1hKLStM3wF65CrVHWNJqoF2wIj?= =?iso-8859-1?Q?7Uy8lzra6YyoBn/TFGgmpDFm0RuRHwVwlxTBVgHTTfimAADg9UDULYE7n9?= =?iso-8859-1?Q?3y8WPOYBhwBF/BTZWEA7yjGVq83UfkN80cBWfz0p16ttD+uH3Q0MbdsAMi?= =?iso-8859-1?Q?qITMlW0MKem52LC47YY3aMhAZ98urQlkJtvayzCN3i+XwLPBhwg=3D=3D?= x-microsoft-antispam-prvs: x-forefront-prvs: 0954EE4910 x-forefront-antispam-report: SFV:NSPM;SFS:(10009020)(136003)(376002)(396003)(39860400002)(346002)(366004)(199004)(189003)(486006)(86362001)(446003)(2616005)(4326008)(2351001)(478600001)(2906002)(105586002)(106356001)(11346002)(107886003)(476003)(68736007)(6916009)(54906003)(316002)(25786009)(6506007)(26005)(102836004)(386003)(53936002)(186003)(6116002)(3846002)(52116002)(99286004)(97736004)(2501003)(256004)(81156014)(6512007)(6486002)(50226002)(5640700003)(81166006)(305945005)(8936002)(7736002)(8676002)(1730700003)(14454004)(76176011)(1076003)(5660300002)(71190400001)(71200400001)(66066001)(15650500001)(14444005)(36756003)(6436002);DIR:OUT;SFP:1101;SCL:1;SRVR:AM6PR05MB4871;H:AM6PR05MB5240.eurprd05.prod.outlook.com;FPR:;SPF:None;LANG:en;PTR:InfoNoRecords;A:1;MX:1; received-spf: None (protection.outlook.com: mellanox.com does not designate permitted sender hosts) x-ms-exchange-senderadcheck: 1 x-microsoft-antispam-message-info: uLduLra+dn7cETg41dP6JtRU3PiOw4Z/DddBH/7eBsFxhsIXTwKB2jN/CBUMIatl83eF1wVPENAKaSvDzfcRWJ3xbSVc9GwYPWuSdUP/Uy85F6qpvVmANnPzv6KvcCIcGGYr0C+CLv1GTPYxSyuMmNvbP+pwxiywECj3SO5HYMiHwBpG+Kgo4CLwRJ+kYG71ngWLpVVE3WnKJmjThhoZLUXgVoSj/jNZ/GnRh8aIwkouxW8Ed91jm7H65EOYvK0MED6ZCoBCPJVG10OGpdOrP2pduSeMlPpSxMEGZG8cHWqmjiOJv0RujRdoUiiC1C8yl+GYGf9aMgwLY6OOVqT0SQWgpfPrTBd3xeNkdfGuk3veaZ9YoYCBrY2/6kPaYIFylKrFC3r8ORBxzlGgFAaXyRlR4jXn333Vygz5/Khvmcs= Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-OriginatorOrg: Mellanox.com X-MS-Exchange-CrossTenant-Network-Message-Id: 1ba73ad0-ae56-4ff2-1cf4-08d6976a25c7 X-MS-Exchange-CrossTenant-originalarrivaltime: 20 Feb 2019 19:32:25.8275 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-id: a652971c-7d2e-4d9b-a6a4-d149256f461b X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM6PR05MB4871 Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org From: Petr Machata The recommendation for headroom size for 100Gbps port and 100m cable is 101.6KB, reduced accordingly for split ports. The closest higher number evenly divisible by cell size for both Spectrum-1 and Spectrum-2, and such that the number of cells can be further divided by maximum split factor of 4, is 102528 bytes, or 25632 bytes per lane. Update mlxsw_sp_port_pb_init() to compute the headroom taking into account this recommended per-lane value and number of lanes actually dedicated to a given port. Signed-off-by: Petr Machata Signed-off-by: Ido Schimmel --- .../ethernet/mellanox/mlxsw/spectrum_buffers.c | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/drivers/net/ethernet/mellanox/mlxsw/spectrum_buffers.c b/drive= rs/net/ethernet/mellanox/mlxsw/spectrum_buffers.c index bb327dfe1336..65ef4a9f6afb 100644 --- a/drivers/net/ethernet/mellanox/mlxsw/spectrum_buffers.c +++ b/drivers/net/ethernet/mellanox/mlxsw/spectrum_buffers.c @@ -260,24 +260,24 @@ static int mlxsw_sp_sb_pm_occ_query(struct mlxsw_sp *= mlxsw_sp, u8 local_port, (unsigned long) pm); } =20 -static const u16 mlxsw_sp_pbs[] =3D { - [0] =3D 2 * ETH_FRAME_LEN, - [9] =3D 2 * MLXSW_PORT_MAX_MTU, -}; - -#define MLXSW_SP_PBS_LEN ARRAY_SIZE(mlxsw_sp_pbs) +/* 1/4 of a headroom necessary for 100Gbps port and 100m cable. */ +#define MLXSW_SP_PB_HEADROOM 25632 #define MLXSW_SP_PB_UNUSED 8 =20 static int mlxsw_sp_port_pb_init(struct mlxsw_sp_port *mlxsw_sp_port) { + const u32 pbs[] =3D { + [0] =3D MLXSW_SP_PB_HEADROOM * mlxsw_sp_port->mapping.width, + [9] =3D 2 * MLXSW_PORT_MAX_MTU, + }; struct mlxsw_sp *mlxsw_sp =3D mlxsw_sp_port->mlxsw_sp; char pbmc_pl[MLXSW_REG_PBMC_LEN]; int i; =20 mlxsw_reg_pbmc_pack(pbmc_pl, mlxsw_sp_port->local_port, 0xffff, 0xffff / 2); - for (i =3D 0; i < MLXSW_SP_PBS_LEN; i++) { - u16 size =3D mlxsw_sp_bytes_cells(mlxsw_sp, mlxsw_sp_pbs[i]); + for (i =3D 0; i < ARRAY_SIZE(pbs); i++) { + u16 size =3D mlxsw_sp_bytes_cells(mlxsw_sp, pbs[i]); =20 if (i =3D=3D MLXSW_SP_PB_UNUSED) continue; --=20 2.20.1