Received: by 2002:ac0:a594:0:0:0:0:0 with SMTP id m20-v6csp2952796imm; Thu, 24 May 2018 19:47:14 -0700 (PDT) X-Google-Smtp-Source: AB8JxZpj4vI4DazSSTYGNVP7+54yQunUvPlmgAg1jNQd5ggSfYWJsWo2xROKV/XPKAerBB7PuPza X-Received: by 2002:a17:902:7288:: with SMTP id d8-v6mr637043pll.218.1527216434824; Thu, 24 May 2018 19:47:14 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1527216434; cv=none; d=google.com; s=arc-20160816; b=v8Ac/1wQFzFZoSVyDYuDm+1hLCmrlGkvjuX8OOwff6eCVlklWyCWF4WykYNe8OQBGH CwK8Y9QAHIjifwemAdE6tA9dRRfoulRQjwarewmGy+h5T4mhxkl8dFM/Ov83YGcUhIYx Vion4v1fpROeUUkDBqCbxNQbp5vAS4Rf2S9YKQBMqKRvoW0Tiy2pG6J1muk3yaGiBLUq QOPBWldPIgsAAfhIBeypAgg1fr0DR3IeyDoixB99Bol0+VRjfU/tVKVZO1I6dGHlHb3y c3u6Q9aESTsjPJQQE/2hL+HDUsnjNDvubauqaxn+q7bZ9Q5NUjqSUqU1rRGX4gWvGtaf l2kQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:cc:to:subject:message-id:date:from :references:in-reply-to:mime-version:dkim-signature :arc-authentication-results; bh=2tk3oKdGW3jCllOTNILxxp5r1KRXafAMAarPZ+mRTLo=; b=mhprvKfTs/EFYo6Xd9ocEqxgOIezpN7eP1R0TfOaU8k9fGshobdAVFAXyrUwIHJVRo UgmOJJhNQunWTrM/kii6GM7HG1Vxk+x5kNG6UAN25FJpwBz2fi/RdvwiQd4mEaEJaxN4 VdFX5y1QE9I4V10faDKSX7NdXKYFX5MNjgywENKUygytFlv3WEVLu/Y9wRmTwIrWANvc phPHDVrmM8bV60VJ0nzKcUe5f0NLK6KBdoWK/mPFic3mvYEJPdTfG1OA7W4G6dHvgWoh uvXm6ir57IacPwDIMBXD2erE/TDShSQl3CCsDjZsfywlDyZAcLyuCZdi5CHOGLUSDNpt tEQg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=rk6tppo5; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id r7-v6si22965614ple.585.2018.05.24.19.47.00; Thu, 24 May 2018 19:47:14 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=rk6tppo5; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S967979AbeEXXfU (ORCPT + 99 others); Thu, 24 May 2018 19:35:20 -0400 Received: from mail-pg0-f67.google.com ([74.125.83.67]:34774 "EHLO mail-pg0-f67.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S965649AbeEXXfP (ORCPT ); Thu, 24 May 2018 19:35:15 -0400 Received: by mail-pg0-f67.google.com with SMTP id k2-v6so1458192pgc.1; Thu, 24 May 2018 16:35:15 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc; bh=2tk3oKdGW3jCllOTNILxxp5r1KRXafAMAarPZ+mRTLo=; b=rk6tppo5zcR8M8DmlVF2Yf069YncVhGwaVvPOhYPXgFhlQHxpi/e39TnL+ddyL786U HV0KH+s9W+e0clBR0acigQqfpUFfDQZ8QShrv3o3vEtjVRiUC+TxSd9HF6xPu02Krbpp 02CTD+K+S+qvmieEDgEDMbb1hnk183NszGWtNGZd0gp3HWfFpVaAjjQmX9aiatGkPbo1 1WZjHzYSJ3jrvHIzAa385vEqrNnnLnr/XCWsP7Vr+9YhpqYFTkQjle2gg9CGdZEv6Fa8 uXx8q+zqxpTWCuLNEoOROb6zsp9UgX26jQiAyxR8sBmnLafYWhqqx8NZO6rQr0n845LZ yo1Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to:cc; bh=2tk3oKdGW3jCllOTNILxxp5r1KRXafAMAarPZ+mRTLo=; b=Sb6u8wpIJQmqw9dci50XOXQvUPSdj7yXqZ+hcIv+Dxsfc6nM4vr3vFtpzkGo91YYFJ ZaXMm1+luRhY5MK26S91EssrggEaEBeQefKYqtVd9lFrk5w7VV+lui3NNAIzPX4+HDcj CJdmtY6aBbv1KQXgDnTsIIe8JNwB5tQPJBnie9ZkCoIyGycX/vaRXITgx8N0JLdjGjcE qGrOV4Y9VYY8qoa3QQNFh03ALGaCeZZGZsMpMfCgyXXcZjhm1CSzYrvlsrpNCfcMJtRe rZeyyrkwJx1ekk/2I4QYSn7L0bnILYtnQWyfVLQX2ewXAfRuStmanzAgHOZFjALdR6UW LTeQ== X-Gm-Message-State: ALKqPweqLMXthlYRPIPXZmKvqrEaIUDCoNmvrjEEg51MNvTHAWWlh06N +zj87zNRe0Glg90RlCMuWWOUs1773EGo6u6ryds= X-Received: by 2002:a62:4916:: with SMTP id w22-v6mr29890pfa.63.1527204915178; Thu, 24 May 2018 16:35:15 -0700 (PDT) MIME-Version: 1.0 Received: by 2002:a17:90a:b398:0:0:0:0 with HTTP; Thu, 24 May 2018 16:34:54 -0700 (PDT) In-Reply-To: <1526308035-12484-1-git-send-email-vladbu@mellanox.com> References: <1526308035-12484-1-git-send-email-vladbu@mellanox.com> From: Cong Wang Date: Thu, 24 May 2018 16:34:54 -0700 Message-ID: Subject: Re: [PATCH 00/14] Modify action API for implementing lockless actions To: Vlad Buslov Cc: Linux Kernel Network Developers , David Miller , Jamal Hadi Salim , Jiri Pirko , Pablo Neira Ayuso , Jozsef Kadlecsik , Florian Westphal , Alexei Starovoitov , Daniel Borkmann , Eric Dumazet , Kees Cook , LKML , NetFilter , coreteam@netfilter.org, kliteyn@mellanox.com Content-Type: text/plain; charset="UTF-8" Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Mon, May 14, 2018 at 7:27 AM, Vlad Buslov wrote: > Currently, all netlink protocol handlers for updating rules, actions and > qdiscs are protected with single global rtnl lock which removes any > possibility for parallelism. This patch set is a first step to remove > rtnl lock dependency from TC rules update path. It updates act API to > use atomic operations, rcu and spinlocks for fine-grained locking. It > also extend API with functions that are needed to update existing > actions for parallel execution. Can you give a summary here for what and how it is achieved? You said this is the first step, what do you want to achieve in this very first step? And how do you achieve it? Do you break the RTNL lock down to, for a quick example, a per-device lock? Or perhaps you completely remove it because of what reason? I go through all the descriptions of your 14 patches (but not any code), I still have no clue how you successfully avoid RTNL. Please don't let me read into your code to understand that, there must be some high-level justification on how it works. Without it, I don't event want to read into the code. Thanks.