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 A6849C43381 for ; Thu, 21 Feb 2019 15:50:20 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 6AADE20823 for ; Thu, 21 Feb 2019 15:50:20 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (1024-bit key) header.d=Mellanox.com header.i=@Mellanox.com header.b="fldeQzV+" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728363AbfBUPuT (ORCPT ); Thu, 21 Feb 2019 10:50:19 -0500 Received: from mail-eopbgr00069.outbound.protection.outlook.com ([40.107.0.69]:48960 "EHLO EUR02-AM5-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1726075AbfBUPuS (ORCPT ); Thu, 21 Feb 2019 10:50:18 -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=F8DgVRkaDu8xklhUXiUPoK7xSq0P1jZAE/GqZxLlY3w=; b=fldeQzV+EqvJ72cSf8b8ELvvZvtCRiWDGCAP7kQsqtkJ2R/YBOwEOAHDoOqcK7B/Fc53jQnk6/DE6CEKo6Oo22Ass++aF9/AUgnJzRGbBKLrWqvO7OMq9A8spe3mmtt3o0sZb3elVNyMDSm2GsU8LoLFBHsuTnCT3a1Bz77xUh4= Received: from HE1PR0502MB3641.eurprd05.prod.outlook.com (10.167.127.11) by HE1PR0502MB2890.eurprd05.prod.outlook.com (10.175.31.139) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1643.14; Thu, 21 Feb 2019 15:49:33 +0000 Received: from HE1PR0502MB3641.eurprd05.prod.outlook.com ([fe80::b03d:8cd4:d259:f749]) by HE1PR0502MB3641.eurprd05.prod.outlook.com ([fe80::b03d:8cd4:d259:f749%5]) with mapi id 15.20.1643.014; Thu, 21 Feb 2019 15:49:33 +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+p7M7pEKHPk7WVBdPDaXfoUsAgAEF54CAABjBgIAAQ66AgAWgBYCAAHa5AIACPS2AgAEeGIA= Date: Thu, 21 Feb 2019 15:49:33 +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: LO2P265CA0197.GBRP265.PROD.OUTLOOK.COM (2603:10a6:600:9e::17) To HE1PR0502MB3641.eurprd05.prod.outlook.com (2603:10a6:7:85::11) 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: 481a6376-013a-4079-cddd-08d698142c36 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:HE1PR0502MB2890; x-ms-traffictypediagnostic: HE1PR0502MB2890: x-microsoft-exchange-diagnostics: =?iso-8859-1?Q?1;HE1PR0502MB2890;23:xaZrt3ipcb2mC1DX6x3OXBzy8hEv0mnH0fNGC?= =?iso-8859-1?Q?4hTw7QJYLtM+CPrmc8uCgHpR81gFFo2BJMW17HVCI2FW/Sojd0dg7cW3Si?= =?iso-8859-1?Q?EFc1MZFotBwIrP0s68saFJx/09DfG/L2n2k3Tb6PFK5QyeSHnANHZ0DoiA?= =?iso-8859-1?Q?s3PDziUT9oWdIDHkHzEkQ8uOd4xLish8gDrEKRmj1ScNUM3LrEOX4RwJOo?= =?iso-8859-1?Q?QeXQmwm529J5tNVAYsqPrfMfkf1ZUs7qmnxxAXEHDsrpB/q+RQn7f+rmJ1?= =?iso-8859-1?Q?ai/ULsp4D3ApB1+T7DEoowrlHw9f4ne8bMUMjoBtBZ1bDHjAVB/19Y6coq?= =?iso-8859-1?Q?ffSE81VtVcAHzf9RpXTmk6NTTWVY6wtdQJ2L5K6RWOn/fUOBW8wu6CmKrt?= =?iso-8859-1?Q?yKnM0cZ2fiHPC+fvEGcJ/Ko46FhSIPo6LZgbB8YpE67ju5DSM+6LSJiEaE?= =?iso-8859-1?Q?U3tqTVjY7hbqQqla/pG1QZcxfoPKbqfpwZPEZQlbQ+2l/K/Wq0NRu3wt04?= =?iso-8859-1?Q?o2dKoOdW0PiFmWrazcIFnhAcOmwWXq+kG26UpO2874TwLbeJro1J5eB/nX?= =?iso-8859-1?Q?8Wgnunn/TMxXIjPhANwXkWXX+MAR+lM96Pn2FKa6GC5u083G7/xOCKGt/S?= =?iso-8859-1?Q?iSk7TfGAsBoA8zbdvR2ZuGu3lmuX9lgPMAaqaBz91U356ttbDfHgmodb9e?= =?iso-8859-1?Q?mBKQKlUb/WqM6gRBdYR1lkzHfMwIZnqOKysxAR72R/MbZIZ1HRmOQ5Ca/O?= =?iso-8859-1?Q?tv7r1Yw5yqLRc9wg2csJsmuCqzS044nPSnu9u4ZlKsAr6wu2lL25mUGRqz?= =?iso-8859-1?Q?YAqYwk7DhBgW32WWiIK7GRuw/FlgttuWhEKAq6v8ikF96BVYusFuTal8s7?= =?iso-8859-1?Q?+FgpnD+9+4BpMJfHvpPxaVq1eDzwUnqF5Z9zDzBUVkZ+mdjtR4vJK3tOgN?= =?iso-8859-1?Q?JocsGdo1a4oB4ZYyZ7VjXt+6dtjjFEzfGA1YoWs9PFBlh+AOatxJnHouXh?= =?iso-8859-1?Q?kjMMhjqOpxuHXgu8PvwEA4F/yIPjk997QU3sawOr3ANRG2Ar0vTvO6NCZG?= =?iso-8859-1?Q?aSKc+AZJwmShUCgJZNtU+GkyXz57L3GApAh3YB0xUyUOMSxDkc4JAUOcPf?= =?iso-8859-1?Q?VU2TztJbKEMkpXXzjZVjfgpQUWuV2XuxdpOAKbRxjcE+wQ0GyQOLGQ7lP7?= =?iso-8859-1?Q?ZyjQRQzhWNAWcJ+LaIAH8PAxAO6R2nC2uz1ceUyRMBA/yrgwHGekH+TP+u?= =?iso-8859-1?Q?o8CfrH19UsfonUBrnRKi1bArxDYojaDt0Lx+m3J/uW3OM1NvKMBbFQ7LpM?= =?iso-8859-1?Q?uDlQ=3D?= x-microsoft-antispam-prvs: x-forefront-prvs: 09555FB1AD x-forefront-antispam-report: SFV:NSPM;SFS:(10009020)(39860400002)(366004)(346002)(396003)(136003)(376002)(199004)(189003)(86362001)(106356001)(53936002)(105586002)(8676002)(3846002)(6916009)(6116002)(26005)(6512007)(97736004)(5660300002)(93886005)(6246003)(81166006)(316002)(8936002)(6436002)(81156014)(6486002)(305945005)(11346002)(14454004)(25786009)(486006)(186003)(66066001)(476003)(68736007)(2616005)(7736002)(2906002)(446003)(4326008)(256004)(102836004)(36756003)(52116002)(478600001)(76176011)(99286004)(53546011)(6506007)(386003)(71190400001)(54906003)(229853002)(71200400001);DIR:OUT;SFP:1101;SCL:1;SRVR:HE1PR0502MB2890;H:HE1PR0502MB3641.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: bQy2GkVb8x7//Ig7USS+ySgVw8LUOFKCyamLoXOAXNgxa/yaVrtWGqvXY150McY8YgUOHkZdIFUqONOjhc0WJdRZ4i4f01zF875Ej41TjLIdZFNIyuTBUfDsf6qh8G/NqumShyo0Zu38DZZcELI9fF7B5TJGhQ2+hKEO2FMHE1sj+4Wv4fXXD4Hwq+9Ab/uCL9Gmk3NZt491u51Q4rzQMjtg/fV+Yfi3lRireiRRD9sULUfWOpMjvVnLpDGOdq5hmJ9tzNhlTq8oduMRZXz+ae9qmwi5BCfaXKcuuqPhUbwISMKV4CetTN+ML6wQeercznHU58kdcaSVHW2IIrHMPJVaq3CCd1Fh3o6DyD0rKqkdmdt9LF68lOAMklV+bfPsUIbcfM0GAcwtxqa3WO7wLYgDwJn5BYPa6dDQAISLDmc= 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: 481a6376-013a-4079-cddd-08d698142c36 X-MS-Exchange-CrossTenant-originalarrivaltime: 21 Feb 2019 15:49:31.7163 (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: HE1PR0502MB2890 Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org On Wed 20 Feb 2019 at 22:43, Cong Wang wrote: > On Tue, Feb 19, 2019 at 4:31 AM Vlad Buslov wrote: >> >> >> On Tue 19 Feb 2019 at 05:26, Cong Wang wrote: >> > On Fri, Feb 15, 2019 at 7:35 AM Vlad Buslov wrot= e: >> >> >> >> 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... > > Good point, however arg->stop _was_ supposed to set only when > error happens. Probably you want a new arg here to stop on the first > entry. Got it. I'll prepare a patch for that.