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,URIBL_BLOCKED,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 90DC6C43381 for ; Sun, 24 Feb 2019 06:46:52 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 5769E204EC for ; Sun, 24 Feb 2019 06:46:52 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (1024-bit key) header.d=Mellanox.com header.i=@Mellanox.com header.b="ERiId+zV" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728139AbfBXGqu (ORCPT ); Sun, 24 Feb 2019 01:46:50 -0500 Received: from mail-eopbgr40071.outbound.protection.outlook.com ([40.107.4.71]:39872 "EHLO EUR03-DB5-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1726459AbfBXGqt (ORCPT ); Sun, 24 Feb 2019 01:46:49 -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=uydyMLq5kzM/XYPakFzQ0WGU0xEeC+4LBL05KbdC3+s=; b=ERiId+zV/M0joFEBvzrNG2ReaOgqoFaveKZQP4MubuWFHB5Wa9WogQANb7l4oXxoFeyBqhpjzFeoBn4D1v/BMn78zjKCg/O1/SHf/0jsOu8HVNs0D230jATXMuji2Dg50+1ApzZbNopL/3uh+KQ46GsMc8LsuSkbDiL54PJEQGs= Received: from AM6PR05MB5240.eurprd05.prod.outlook.com (20.177.196.214) by AM6PR05MB4343.eurprd05.prod.outlook.com (52.135.162.20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1643.18; Sun, 24 Feb 2019 06:46:29 +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.019; Sun, 24 Feb 2019 06:46:29 +0000 From: Ido Schimmel To: "netdev@vger.kernel.org" CC: "davem@davemloft.net" , Jiri Pirko , mlxsw , Ido Schimmel Subject: [PATCH net-next 08/15] mlxsw: spectrum_acl: Enable vregion rehash per-profile Thread-Topic: [PATCH net-next 08/15] mlxsw: spectrum_acl: Enable vregion rehash per-profile Thread-Index: AQHUzAyrjLel+eZaiUCxinChaS2cmg== Date: Sun, 24 Feb 2019 06:46:28 +0000 Message-ID: <20190224064525.14913-9-idosch@mellanox.com> References: <20190224064525.14913-1-idosch@mellanox.com> In-Reply-To: <20190224064525.14913-1-idosch@mellanox.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-clientproxiedby: AM6P194CA0033.EURP194.PROD.OUTLOOK.COM (2603:10a6:209:90::46) To AM6PR05MB5240.eurprd05.prod.outlook.com (2603:10a6:20b:64::22) x-ms-exchange-messagesentrepresentingtype: 1 x-mailer: git-send-email 2.20.1 x-originating-ip: [193.47.165.251] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 0e50a6df-c0ef-44db-9e3a-08d69a23cdc4 x-ms-office365-filtering-ht: Tenant x-microsoft-antispam: BCL:0;PCL:0;RULEID:(2390118)(7020095)(4652040)(8989299)(5600110)(711020)(4605104)(4618075)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(2017052603328)(7153060)(7193020);SRVR:AM6PR05MB4343; x-ms-traffictypediagnostic: AM6PR05MB4343: x-microsoft-exchange-diagnostics: =?iso-8859-1?Q?1;AM6PR05MB4343;23:yO25RnKWlYi2DICDDAuwlBWLMsC5MzaQpI3gkNQ?= =?iso-8859-1?Q?uLWDgseilwo4z3N3oImj7AILUPHLAuX1k7iy+l0RSuz0w0NAJ1Y5D/fSc2?= =?iso-8859-1?Q?oAH6+LKs2ln4bRsOtJ+sMC2GJAo2im73MKDHOKf+Zst8a+4a1FrGxmTr/Y?= =?iso-8859-1?Q?pP4XLbRWDOceGF9Ou2mocj3w/+SNGj0A3Zh6PBe08FsZ3m4otKN5DEA3bc?= =?iso-8859-1?Q?JWhQEp79ryxTABeb1W9sGd+H8r9uvdJC2kvZc/pZxXjI62HsfByecODdAW?= =?iso-8859-1?Q?Xom2d9XQVd9ByX+CaP/gjtpo4aa6G1MJ+cX2vyyvSWOLQcFMTbEIGj9KDx?= =?iso-8859-1?Q?kQvUX0nSAhg+ZpL/Zv9HJ3cY2YjS4+C3syLQZLTotho94hruvyhPcvfBbT?= =?iso-8859-1?Q?g+Ctb6CchS7/3pJpIkkY/foPSqNPbDkNxN0rFKIrL+IpIsMuYGqTUdCcb1?= =?iso-8859-1?Q?4BS24x6pFQUOCpeLQjtZCIGR/23auPg14MYoSURL2EB18Vssw/eI1V78Od?= =?iso-8859-1?Q?wVEAXoZB50qIiiAQmsqEQT85J8fTk5qktH18SHBV3TrOmPoKY2aTl9sOxp?= =?iso-8859-1?Q?4QOS64ZwGnO1p59HQjLfSUf8axqLNo5LiaS9DaRvFO2P8HzNj+a4YIGp5x?= =?iso-8859-1?Q?GPU6RL2pj739zf0H7jXOprM6HxcPBdumExeEpjwIaBvgBKK96wTQ3jwQBL?= =?iso-8859-1?Q?WBgEndTtRrptwYk7zStwDWfyLxiZt3Gztp5LWUxduiKmHA8klSrQVcWV+D?= =?iso-8859-1?Q?13DTcUo8QNMqrYsmsQTQ4jzfNX/eg7dpNmt4DyqSbMIgfuF1UaSfQj3a53?= =?iso-8859-1?Q?7lqg6xhwYQGYTcNzfgpvQrAMkd72dUQ2WIxFOau0/p5gYeRotR7O6F0gMC?= =?iso-8859-1?Q?ZCl/ctX4mdqVU4DXBvwfkqcXg+T+EmmFaG7GrU9MUc3vZgJzk0JUgTZ7rZ?= =?iso-8859-1?Q?4rUoJjVbJyd8iWgYNxQUiG0Gi2bUtuNAuRBEo3U99IWaNbfWE69LCjyIJJ?= =?iso-8859-1?Q?BCnYXfpc9z2xVJT26TsWU6FTKsr/+ohtsMHa2jp+tx7UdqIGbsjubraK50?= =?iso-8859-1?Q?P+WZoHPZjv9nG5agdQRI7UDh8v6DaQUuZrpyp94WptlfdhV4RQ03K5fXNX?= =?iso-8859-1?Q?XDJXaQdhegPobc77rpWMVmZ7j4JDy60GV4jbBI/s4TfqbhmGarDFiA9LdP?= =?iso-8859-1?Q?/h/3ENxdG89sKNFAIgfPpq3MxvsGpvoMhAAXU//5zp7D+vewXjSPm+r3sX?= =?iso-8859-1?Q?kt3U4kV9QvcAwEbbqhUU+Mr4SFXcDhrUVY7xnakNXbbtloNi5BLUhA6sO1?= =?iso-8859-1?Q?AZUheDF2OUDc0NOVkIkrFW9YTJFgpF5hPKcDtHg0VX1BqNQ6K5tnpHvaTk?= =?iso-8859-1?Q?9GI4LIbcsS4sWtbDTRETGuuNJXfpk4T10s8kbfxhPk7vszlgqNGYaNwudV?= =?iso-8859-1?Q?MHIBYf85bydk5k=3D?= x-microsoft-antispam-prvs: x-forefront-prvs: 09583628E0 x-forefront-antispam-report: SFV:NSPM;SFS:(10009020)(366004)(396003)(136003)(376002)(346002)(39850400004)(199004)(189003)(102836004)(5660300002)(3846002)(14444005)(8936002)(6116002)(5640700003)(256004)(6506007)(386003)(1076003)(71200400001)(71190400001)(14454004)(6512007)(6436002)(81166006)(2351001)(81156014)(1730700003)(6346003)(50226002)(26005)(6916009)(5024004)(107886003)(2906002)(99286004)(86362001)(2501003)(486006)(2616005)(4326008)(11346002)(54906003)(66066001)(316002)(476003)(446003)(53936002)(68736007)(52116002)(7736002)(6486002)(8676002)(478600001)(106356001)(305945005)(105586002)(25786009)(186003)(36756003)(76176011)(97736004);DIR:OUT;SFP:1101;SCL:1;SRVR:AM6PR05MB4343;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) authentication-results: spf=none (sender IP is ) smtp.mailfrom=idosch@mellanox.com; x-ms-exchange-senderadcheck: 1 x-microsoft-antispam-message-info: 6CWTmoIO1rXuHRKgllFwOm0RTX/QU+5tJXZNo7uoFCFgc67Oav3g0FqmRxpfH1QK4K82mLhMe8ALEcDgXup2ECqP1FAsUQSCTl/P6rcUopGgNHESk+aqcctBAiFqNAvFlAdmVnK9Cp8XE4Cr3nnExcKynRVoCabGPMHzmC4LwyvzVUtsGKdRkVL265Kh5m1FH9NDeyD3jVgZXLcJMGH/9Odhhfi0acIe4IIX0Y9Nn6h3j2tYdwE9pqYtnxT/gbCXid3WivwJjL1VaAKG+erRPbaGWqHA1qDdzbFnA0zk+DW/+VDTQxFeEGEF6DyYsGquruEXWNCIvs0D2wpXpmMRP0CtRNgA8l3lp3J9asgYEZWRwUP6A9LySNVfCfy4yoi0Fhxm502NSD/CU4PwJBzS1LOM3GFMVuoizJcKhkbFKMo= 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: 0e50a6df-c0ef-44db-9e3a-08d69a23cdc4 X-MS-Exchange-CrossTenant-originalarrivaltime: 24 Feb 2019 06:46:28.1668 (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: AM6PR05MB4343 Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org From: Jiri Pirko For MR ACL profile is does not make sense to do periodical rehashes, as there is only one mask in use during the whole vregion lifetime. Therefore periodical work is scheduled but the rehash never happens. So allow to enable/disable rehash for the whole group, which is added per-profile. Disable rehashing for MR profile. Addition to the vregion list is done only in case the rehash is enable on the particular vregion. Also, the addition is moved after delayed work init to avoid schedule of uninitialized work from vregion_rehash_intrvl_set(). Symmetrically, deletion from the list is done before canceling the delayed work so it is not scheduled by vregion_rehash_intrvl_set() again. Signed-off-by: Jiri Pirko Signed-off-by: Ido Schimmel --- .../mellanox/mlxsw/spectrum_acl_tcam.c | 23 ++++++++++++------- 1 file changed, 15 insertions(+), 8 deletions(-) diff --git a/drivers/net/ethernet/mellanox/mlxsw/spectrum_acl_tcam.c b/driv= ers/net/ethernet/mellanox/mlxsw/spectrum_acl_tcam.c index 54c0519195b7..cdbcf612b6fd 100644 --- a/drivers/net/ethernet/mellanox/mlxsw/spectrum_acl_tcam.c +++ b/drivers/net/ethernet/mellanox/mlxsw/spectrum_acl_tcam.c @@ -175,6 +175,7 @@ struct mlxsw_sp_acl_tcam_vgroup { unsigned int patterns_count; bool tmplt_elusage_set; struct mlxsw_afk_element_usage tmplt_elusage; + bool vregion_rehash_enabled; }; =20 struct mlxsw_sp_acl_tcam_vregion { @@ -188,6 +189,7 @@ struct mlxsw_sp_acl_tcam_vregion { struct list_head vchunk_list; /* List of vchunks under this vregion */ struct mlxsw_afk_key_info *key_info; struct mlxsw_sp_acl_tcam *tcam; + struct mlxsw_sp_acl_tcam_vgroup *vgroup; struct delayed_work rehash_dw; struct mlxsw_sp *mlxsw_sp; bool failed_rollback; /* Indicates failed rollback during migration */ @@ -290,12 +292,15 @@ mlxsw_sp_acl_tcam_vgroup_add(struct mlxsw_sp *mlxsw_s= p, struct mlxsw_sp_acl_tcam_vgroup *vgroup, const struct mlxsw_sp_acl_tcam_pattern *patterns, unsigned int patterns_count, - struct mlxsw_afk_element_usage *tmplt_elusage) + struct mlxsw_afk_element_usage *tmplt_elusage, + bool vregion_rehash_enabled) { int err; =20 vgroup->patterns =3D patterns; vgroup->patterns_count =3D patterns_count; + vgroup->vregion_rehash_enabled =3D vregion_rehash_enabled; + if (tmplt_elusage) { vgroup->tmplt_elusage_set =3D true; memcpy(&vgroup->tmplt_elusage, tmplt_elusage, @@ -753,6 +758,7 @@ mlxsw_sp_acl_tcam_vregion_create(struct mlxsw_sp *mlxsw= _sp, mutex_init(&vregion->lock); vregion->tcam =3D tcam; vregion->mlxsw_sp =3D mlxsw_sp; + vregion->vgroup =3D vgroup; vregion->ref_count =3D 1; =20 vregion->key_info =3D mlxsw_afk_key_info_get(afk, elusage); @@ -773,13 +779,12 @@ mlxsw_sp_acl_tcam_vregion_create(struct mlxsw_sp *mlx= sw_sp, if (err) goto err_vgroup_vregion_attach; =20 - list_add_tail(&vregion->tlist, &tcam->vregion_list); - - if (ops->region_rehash_hints_get) { + if (vgroup->vregion_rehash_enabled && ops->region_rehash_hints_get) { /* Create the delayed work for vregion periodic rehash */ INIT_DELAYED_WORK(&vregion->rehash_dw, mlxsw_sp_acl_tcam_vregion_rehash_work); mlxsw_sp_acl_tcam_vregion_rehash_work_schedule(vregion); + list_add_tail(&vregion->tlist, &tcam->vregion_list); } =20 return vregion; @@ -798,10 +803,12 @@ mlxsw_sp_acl_tcam_vregion_destroy(struct mlxsw_sp *ml= xsw_sp, struct mlxsw_sp_acl_tcam_vregion *vregion) { const struct mlxsw_sp_acl_tcam_ops *ops =3D mlxsw_sp->acl_tcam_ops; + struct mlxsw_sp_acl_tcam_vgroup *vgroup =3D vregion->vgroup; =20 - if (ops->region_rehash_hints_get) + if (vgroup->vregion_rehash_enabled && ops->region_rehash_hints_get) { + list_del(&vregion->tlist); cancel_delayed_work_sync(&vregion->rehash_dw); - list_del(&vregion->tlist); + } mlxsw_sp_acl_tcam_vgroup_vregion_detach(mlxsw_sp, vregion); if (vregion->region2) mlxsw_sp_acl_tcam_region_destroy(mlxsw_sp, vregion->region2); @@ -1410,7 +1417,7 @@ mlxsw_sp_acl_tcam_flower_ruleset_add(struct mlxsw_sp = *mlxsw_sp, return mlxsw_sp_acl_tcam_vgroup_add(mlxsw_sp, tcam, &ruleset->vgroup, mlxsw_sp_acl_tcam_patterns, MLXSW_SP_ACL_TCAM_PATTERNS_COUNT, - tmplt_elusage); + tmplt_elusage, true); } =20 static void @@ -1527,7 +1534,7 @@ mlxsw_sp_acl_tcam_mr_ruleset_add(struct mlxsw_sp *mlx= sw_sp, err =3D mlxsw_sp_acl_tcam_vgroup_add(mlxsw_sp, tcam, &ruleset->vgroup, mlxsw_sp_acl_tcam_patterns, MLXSW_SP_ACL_TCAM_PATTERNS_COUNT, - tmplt_elusage); + tmplt_elusage, false); if (err) return err; =20 --=20 2.20.1