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=-1.1 required=3.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI,SPF_PASS 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 87B1CC43381 for ; Tue, 19 Feb 2019 12:32:02 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 457B52146F for ; Tue, 19 Feb 2019 12:32:02 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (1024-bit key) header.d=Mellanox.com header.i=@Mellanox.com header.b="QC+BB23A" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726847AbfBSMcA (ORCPT ); Tue, 19 Feb 2019 07:32:00 -0500 Received: from mail-eopbgr20087.outbound.protection.outlook.com ([40.107.2.87]:31680 "EHLO EUR02-VE1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1725772AbfBSMcA (ORCPT ); Tue, 19 Feb 2019 07:32:00 -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=aDR1HsFhcN/aDewjo6D5O6CkB5HGqGYZmiwF6bGynHU=; b=QC+BB23AUheL1+oYECVL5Lw14sia/oygjB3DioaB8v2XWNjpiRxNzC+gc+qT4sBbKZ63sv+WO9Oy7mQLmzkuyXZW42kozDSsiv8/w0tv95KcS23GXhnrB8rHl661QoEDR3YGtNCXppdtssofh/4W3XdMN6DTVoZUzS3Kfjj5niA= Received: from VI1PR0502MB3647.eurprd05.prod.outlook.com (52.134.7.141) by VI1PR0502MB2973.eurprd05.prod.outlook.com (10.175.21.11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1622.19; Tue, 19 Feb 2019 12:31:56 +0000 Received: from VI1PR0502MB3647.eurprd05.prod.outlook.com ([fe80::d058:d17:78fc:969a]) by VI1PR0502MB3647.eurprd05.prod.outlook.com ([fe80::d058:d17:78fc:969a%6]) with mapi id 15.20.1622.018; Tue, 19 Feb 2019 12:31:56 +0000 From: Vlad Buslov To: Cong Wang CC: Ido Schimmel , "netdev@vger.kernel.org" , "jhs@mojatatu.com" , "jiri@resnulli.us" , "davem@davemloft.net" , "ast@kernel.org" , "daniel@iogearbox.net" Subject: Re: [PATCH net-next v4 07/17] net: sched: protect filter_chain list with filter_chain_lock mutex Thread-Topic: [PATCH net-next v4 07/17] net: sched: protect filter_chain list with filter_chain_lock mutex Thread-Index: AQHUwefD/Cm+p7M7pEKHPk7WVBdPDaXfoUsAgAEF54CAABjBgIAAQ66AgAWgBYCAAHa5AA== Date: Tue, 19 Feb 2019 12:31:56 +0000 Message-ID: References: <20190211085548.7190-1-vladbu@mellanox.com> <20190211085548.7190-8-vladbu@mellanox.com> <20190214182442.GA19269@splinter> <20190215113041.GA10511@splinter> In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-clientproxiedby: LO2P265CA0367.GBRP265.PROD.OUTLOOK.COM (2603:10a6:600:a3::19) To VI1PR0502MB3647.eurprd05.prod.outlook.com (2603:10a6:803:f::13) authentication-results: spf=none (sender IP is ) smtp.mailfrom=vladbu@mellanox.com; x-ms-exchange-messagesentrepresentingtype: 1 x-originating-ip: [37.142.13.130] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: d922a4b4-f4b5-42f5-3e18-08d696663c0b 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:VI1PR0502MB2973; x-ms-traffictypediagnostic: VI1PR0502MB2973: x-microsoft-exchange-diagnostics: =?iso-8859-1?Q?1;VI1PR0502MB2973;23:TB0siTnfUfOPWBRNHlKptR9is4ajfJgI2tFPs?= =?iso-8859-1?Q?63dwvxVAtrWrfV4+K2eO5Ek6WHI+sGvo6YxUIl4t2Z/fVhq1I7x5+56hLC?= =?iso-8859-1?Q?PrTBCKT61hJNY/0MWIpCjrHAoqjk/6ZMiRhAbRelDzdG8SODQHohIOp/3L?= =?iso-8859-1?Q?a0EdSZr+ndGcBQVj8p0NElyh2eXDAankUa83BjS09lMRQDLNMN4Rn9p27S?= =?iso-8859-1?Q?A3SVcMvsOMYq4mGEJmeZ9TviGCKP6IW98RbQVts4q1q2P7A4yk5x+XTVHS?= =?iso-8859-1?Q?6gyHDd8U18NwV6DRgENaFpP7NJN2C/zPT7ssIErNSIF5HrByyyvBoUVnPv?= =?iso-8859-1?Q?lnP09ET7pDeX+KsEH7e/pnFsQF1NDHoWyGycoTGv7+gKF7x5y0R3xtPD1i?= =?iso-8859-1?Q?Ql7B/Lk9ziVp1bd+UCxJFOlsSd8ZKZyNi0S2RnhiT2zYMPqXBZHSqXIK4x?= =?iso-8859-1?Q?djTfPczGT1uE7ZsEWCJ+urCYU38rLEU5QuNaCeR/cuDxjhOokzpmICGb4I?= =?iso-8859-1?Q?5sQ6+B/s007kEsSAxQqCYpAQY/IZsyyaoTIP5WPzyz2h8RV2KifJd1A5hE?= =?iso-8859-1?Q?TLEOVB6EBvaOJ/cbMVGG+5H2JyrNa6S/F69yrNhIECjO7via2+axsdoZMu?= =?iso-8859-1?Q?BS2XSZuoTJQY9H3EeR1GAR9XP5S7z5dWM06XxItY565mppwvji76b8nCnA?= =?iso-8859-1?Q?qT5yThFRNc81RUUWfI7wXmuQhPcKL5qpCU7oftOnp8XNdiGUfqRmlqDNM/?= =?iso-8859-1?Q?lgFsNEKO+DxjOHIHHE8t+7CS3gE+YYwl6u+lcK69HxKwoUhDXH+ZbzQH56?= =?iso-8859-1?Q?ZAs11V7PNnL2xow8BKUbyLi5RNmcjkRqUXFei3/KwHG4WDY133JPMgY8GR?= =?iso-8859-1?Q?1k5mpU7aQckKs6TYjLw6R+DBFbYQjqsZq7GeSOzO0zfo+ADJX9ki/MoLla?= =?iso-8859-1?Q?XhKO7DumMpb8msO7z4K/WDTipKUVMz0gpOB9uu2OP6UFOnHP0YznuAxNTk?= =?iso-8859-1?Q?zLEKbfqWE/CAspOUiWvqwhgF5bPhFtprmT0iHlESlcmsAvwzjEHgFkYOH5?= =?iso-8859-1?Q?1A1w7mn1JL7FpdVlblJUD+T62ADQR3htCcOxwuNDSY2FsWmVQ5hdakxH91?= =?iso-8859-1?Q?6h2X3Mul1opml93LE5HHQXA9uY/OMQJvnLzry2YzCQVfInX7vmDz9cMToP?= =?iso-8859-1?Q?502Y6KlTkbmwu+FDNibCLjgs4p66vxsZO2Wk13Ek3M7pBY5z3nD4xWkSws?= =?iso-8859-1?Q?QeUh1ikS3z8AzdFPhhTWgsbwX7nmwp0DlIzaQQ1MnLqeqsWlHUtigYybP0?= =?iso-8859-1?Q?+75SqjnsU5DMAl1J1Jj+/shcC?= x-microsoft-antispam-prvs: x-forefront-prvs: 09538D3531 x-forefront-antispam-report: SFV:NSPM;SFS:(10009020)(396003)(39860400002)(136003)(346002)(376002)(366004)(199004)(189003)(4744005)(4326008)(6512007)(6436002)(8936002)(8676002)(71200400001)(71190400001)(6486002)(53936002)(81166006)(81156014)(5660300002)(93886005)(256004)(68736007)(36756003)(478600001)(6246003)(229853002)(14454004)(66066001)(7736002)(305945005)(102836004)(53546011)(6506007)(386003)(97736004)(99286004)(86362001)(3846002)(52116002)(6116002)(105586002)(476003)(2616005)(26005)(446003)(11346002)(316002)(106356001)(486006)(54906003)(186003)(6916009)(2906002)(25786009)(76176011);DIR:OUT;SFP:1101;SCL:1;SRVR:VI1PR0502MB2973;H:VI1PR0502MB3647.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: vdI50geDRYV/dOhI1CwddcQV7T8SJk0piLwi4uvsP3qqqBE0LXQGEsefQEnJCO5LQYkHseNsUfZizzPhl3sGTW+4NYfn3dG546H8D+1Cc7+dPxncncS9DNUQV68ldyTULnh86rxcqfoUv3dv7wyN0NwWWncmgyGhAojlUpUkVp3Ceefh4xTxuYfn/pQ6GoYmNfigsrZgAIfK08iHloqtHwmDli7XHzAhp8e16B4GUiM+/oBaeZ/HdXLY7sffEtl9eweaVc5rrgnLuo8PxCMryWx3AFTlg+4DOrIv7LVBgs27DmaMMLnWyXkOTQrSzy5StzEEuGtZkRyCAZh0IPo96zo9CqpIMaV/2jUzq1RmDok964qWHAkvTDhYkEuUj5S/E3eHTzYppVwnyyWL9eZme9ta655nOfHp3bIbB+9cjsQ= 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: d922a4b4-f4b5-42f5-3e18-08d696663c0b X-MS-Exchange-CrossTenant-originalarrivaltime: 19 Feb 2019 12:31:54.7987 (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: VI1PR0502MB2973 Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org On Tue 19 Feb 2019 at 05:26, Cong Wang wrote: > On Fri, Feb 15, 2019 at 7:35 AM Vlad Buslov wrote: >> >> Another problem that I found in cls_fw and cls_route is that they set >> arg->stop when empty. Both of them have code unchanged since it was >> committed initially in 2005 so I assume this convention is no longer >> relevant because all other classifiers don't do that (they only set >> arg->stop when arg->fn returns negative value). >> > > The question is why do you want to use arg->stop=3D=3D0 as > an indication for emptiness? Isn't what arg->count=3D=3D0 > supposed to be? Good question! I initially wanted to implement it like that, but reconsidered because iterating through all filters on classifier to count them is O(N), and terminating on first filter and relying on arg->stop=3D=3D1 is constant time. Making function that is called "tcf_proto_is_empty" linear on number of filters seemed sloppy to me...