From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Google-Smtp-Source: ACJfBovjtuHrSw1vv+dKpVrw4RcYWZ1UEb0ZVH+z2tAAqFjeEHM2e5AIAsG/lRNBi2p6Dk8QIdNR ARC-Seal: i=1; a=rsa-sha256; t=1516350327; cv=none; d=google.com; s=arc-20160816; b=PdLEX+L0R7K/Cl1Xgv2ZSmEshxFZ4zin5vI9BmlM97C6hptQ4mBbV6HsYerPlbz8CM ih6+x8IkOhphhdawJLpygkR03k09Dc2iXHB/Z8ZZ/i/DY4WjO6gYTQgi4YPC7uBuKPVv /FDgMRCgWr8pN7L7xbXriWadiR7WebY3Mpfdw5ePQInlwo1dIIhbJdL8tFsXZr7bFBJi izEVDZJxPOEjHlTVN+UxcZALQ+OlajTR9jok5NvimSxA0zRr2yvb+QI337nHJMRmzcsW FaZ4JJdQLFlxkBapOeoHgc/jFharRKtFxfANcBVMWYuOSc+sH9h7Q960HX0X5wB0cSle GRLQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=spamdiagnosticmetadata:spamdiagnosticoutput :content-transfer-encoding:content-language:in-reply-to:mime-version :user-agent:date:message-id:from:references:cc:to:subject :dkim-signature:arc-authentication-results; bh=QK7jlLuGgLMjjNl040e9xE1ey+h6ICWmyHH9yx9B2SE=; b=b/bG7xAwOhmVJ8psOrpdoT7hBgvVbjoYMZrp9jqsGubw3sxIDRT7iav2TlEG5vLAQI nyePwmpH+oeS2xslpCRxQCsgYzTM4WwfLxi9fa3pVg27E7SHkAj85uCanWd/SX14y5TI u7y/va/AtXniDO6awEttp96AB28EXpRDR9JLdHD1+RRJshqYLCm8mFBL3PopoS7WUJUB +SGvCgMwrkLSgTlJfrBZWkGb0Obx3uO/AnZCgmMzruMY4GkKyJefIa+46ZJQmRqtZjhq b26GiX6SAjteqGZSAx94FZWb67Cas+SYgiVg2mZob8dtPV8hkEu8VE5BuZ0cIBseL2dW 1elQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@virtuozzo.com header.s=selector1 header.b=iryjilwg; spf=pass (google.com: domain of ktkhai@virtuozzo.com designates 104.47.1.137 as permitted sender) smtp.mailfrom=ktkhai@virtuozzo.com; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=virtuozzo.com Authentication-Results: mx.google.com; dkim=pass header.i=@virtuozzo.com header.s=selector1 header.b=iryjilwg; spf=pass (google.com: domain of ktkhai@virtuozzo.com designates 104.47.1.137 as permitted sender) smtp.mailfrom=ktkhai@virtuozzo.com; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=virtuozzo.com Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=ktkhai@virtuozzo.com; Subject: Re: [PATCH v2 00/31] Replacing net_mutex with rw_semaphore To: Andrei Vagin Cc: davem@davemloft.net, vyasevic@redhat.com, kstewart@linuxfoundation.org, pombredanne@nexb.com, vyasevich@gmail.com, mark.rutland@arm.com, gregkh@linuxfoundation.org, adobriyan@gmail.com, fw@strlen.de, nicolas.dichtel@6wind.com, xiyou.wangcong@gmail.com, roman.kapl@sysgo.com, paul@paul-moore.com, dsahern@gmail.com, daniel@iogearbox.net, lucien.xin@gmail.com, mschiffer@universe-factory.net, rshearma@brocade.com, linux-kernel@vger.kernel.org, netdev@vger.kernel.org, ebiederm@xmission.com, gorcunov@virtuozzo.com, eric.dumazet@gmail.com, stephen@networkplumber.org References: <151120175301.3159.9577108443167812854.stgit@localhost.localdomain> <20180118174329.GA15877@outlook.office365.com> From: Kirill Tkhai Message-ID: Date: Fri, 19 Jan 2018 11:25:19 +0300 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.5.2 MIME-Version: 1.0 In-Reply-To: <20180118174329.GA15877@outlook.office365.com> Content-Type: text/plain; charset=koi8-r Content-Language: en-US Content-Transfer-Encoding: 7bit X-Originating-IP: [195.214.232.6] X-ClientProxiedBy: HE1PR0102CA0048.eurprd01.prod.exchangelabs.com (2603:10a6:7:7d::25) To HE1PR0801MB1337.eurprd08.prod.outlook.com (2603:10a6:3:39::27) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: e0b3d794-aba2-44ff-9431-08d55f162fe3 X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:(7020095)(4652020)(5600026)(4604075)(2017052603307)(7153060)(7193020);SRVR:HE1PR0801MB1337; X-Microsoft-Exchange-Diagnostics: 1;HE1PR0801MB1337;3:lyogX45eg6T3PuyOW0eve+BcZ7WY+ujXzjsCacRNRjWXa2qzEEDad71w6cphrbQlNhwHXPzbUJf2Z5vwsESIOgGm4BIEihXk5iwZonbcF7YUtgGl4MaAwN02PlYX+u4bPeL404RlhMYXv/5/vmtifI57N68giuDdJ4FR0zcureGvQf46aZDHSogI7eAKNmTfVJpApB2LTLvVh7eQZBFlUwa2mibQtIJhNljdxSUUtu5N1MZc8c+7OAc8CWFkRgk6;25:QU8Oi7Ohz2nD8YLf4v8IU4v7GlQ39yxPl1lQ203wRtEgld+z2SwPI63K/0DOHqeeJKeZ2ouYeu+/LV2rHluOWuluY6fggZLAICLLLlcRYHvaGO+1jK2Y4CbhdzwxgrINAXMCiNuCAYQwjABuxhR1mw306HgZjAZBJhYdE1HBmw3TZgnL/dIVneikB39obka+CLC+bWf5xGl1rsXaar4zEIhLlX6wDXceNF7+1+Mbh2XwFfvQL3NsNQYvzxVYSzuf7NvHGrw18IhRKNyuFuvWIZ53sZmqLYcmkSkIK9/96VWfTi5E7RblbzGcTY+HyYHm9E51cYDgiEhktxHTuhe4Wg==;31:vqrCnoseSQQcwj/zCZ6QXdQqbT+muzMd61mt7UqyGXEmDAtcS3qDF92WN4XE+exJVrpf5WGiVmqww/Wg7sMyGOSU6c2LSFSzFu7r4Fy6RxU9hlGy9hC4n+he2J3JxCfPMBbYrH3VUdDf9gsnfPuExBFwMCQ0xe/i6JUwbJpJlZ7hs6pLdXuFmTRME7QrT4bSwV0wJ/biaAYIazhrzVH30rkjwwXNZcN0ru9CBX8j1f8= X-MS-TrafficTypeDiagnostic: HE1PR0801MB1337: X-Microsoft-Exchange-Diagnostics: 1;HE1PR0801MB1337;20:yyiuTG473xJmCIj55wzPZ3R90KJ/nQHBxgbmgjEsre8ZNJEe5F43r/Fa/BJ/fNKINwVY+PyPcYFcia9gqf4KQJGqylF3QSrxpeQTLTiU8Ur2gbb8XNjBNsU+r85jTmi5jYxB2U3GuvEvS/iUTSbIxcNOsE4eG+Qcw7rRp4mWwd6LrH2WVKvprFmt+i8v+OD70jmiPL3WesswL8/Pd6hSEt3MZxPzdoLoeR7tLjsllBQzjsSl7jYUen6UQoplvSC39/yfzv6zqmfAeIU16PMAIxXbiXpaXpF5Lxc5wJt/4wVya89zbDOE/q5TUIrQ5g1xzW7JnyRSWCGsxmSNc6BP68Mxo1iae7PBCsX9psmiLeliBnJnOQW4TDq/dfZMqjzOIECF0mle9meagWxW+YEpiLL4QbbCMBVqhG5THzxRPMk=;4:7Y2S+4lvqPd4eI0YJzawN3AZZ8MI4OXPDEzSX1XvLhzulHyCv2A0g+XaqXY5n+eVk5ijEP7ivKe7NsH8nzLGC4tlmLLcwrFamz4N2B81iRd1GPqHtMUIj4jKBRDJLEDslogbXoFqnxCgitHzjwq4OXZh2VMLvEhdu7sYsMWzNi4tMJVg5FKqL2k9qDVMMkjF1KywMexHe0KVVoSh3jqQO6XfilEHwxgpUnQbP237TMHVL10oyaXBq3qz1vyKTEQsK8+WHl2Qk9jzPbWgN3eJtQ== X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(6040470)(2401047)(8121501046)(5005006)(3231023)(2400074)(944501161)(93006095)(93001095)(3002001)(10201501046)(6041268)(20161123560045)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123564045)(20161123562045)(20161123558120)(6072148)(201708071742011);SRVR:HE1PR0801MB1337;BCL:0;PCL:0;RULEID:(100000803101)(100110400095);SRVR:HE1PR0801MB1337; X-Forefront-PRVS: 0557CBAD84 X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10019020)(6049001)(39380400002)(366004)(346002)(39850400004)(396003)(376002)(199004)(189003)(83506002)(26005)(31686004)(64126003)(6246003)(66066001)(39060400002)(6862004)(86362001)(6486002)(31696002)(229853002)(25786009)(47776003)(106356001)(4326008)(105586002)(65956001)(65806001)(50466002)(230700001)(65826007)(6666003)(2950100002)(2906002)(52116002)(81166006)(36756003)(97736004)(8936002)(8676002)(6116002)(81156014)(3846002)(305945005)(7416002)(7736002)(37006003)(58126008)(316002)(77096007)(16526018)(478600001)(53936002)(16576012)(76176011)(53546011)(386003)(6636002)(23686003)(68736007)(5660300001);DIR:OUT;SFP:1102;SCL:1;SRVR:HE1PR0801MB1337;H:[172.16.25.196];FPR:;SPF:None;PTR:InfoNoRecords;A:1;MX:1;LANG:en; X-Microsoft-Exchange-Diagnostics: =?koi8-r?Q?1;HE1PR0801MB1337;23:9LpiahLgAwlgz2pHHUq5dfMl6+7wcft4gOaGYYDLY?= =?koi8-r?Q?3Tw2TdZv3xs6I6A8ydZRSqoBMJ4RNYQhygivdmoeR6U7Agt76+x5Rx1OWCWNX3?= =?koi8-r?Q?BuFj4v2JptC10X5jhrMqlgD7PDqpUJRaZ0UkGAS99aYR3/78MO3Gwagv3eX/hp?= =?koi8-r?Q?SrocDOCD9EAAMv1OZAq9chkgv9eVJQ46sMQGTZHDHojLiQBk5012C6aI+e40rk?= =?koi8-r?Q?lyqweWhkTb89vL/AAtc2c4kEL2HPfREplkTqDedD3CTtKWWfDvdfpugsjDHFzn?= =?koi8-r?Q?FPyc/LgcRKO1Xbiug3VVs1j0FzBQ/PVRjBtEW7ytzKQkc54pHvfoLPsttWy9LN?= =?koi8-r?Q?5EV/wfR6sL/3eTIoU1GDsVuRvqRJUhDEvsT70qj5O95l8uCyqcCsW7qEvnEngO?= =?koi8-r?Q?INIbBRFX3N33Shc2n4smgDdfOttjqTZIuJNDmlAZmpg23vD+5mPLMskyoUgPDs?= =?koi8-r?Q?sGoBgagVFSEAAXf0nfohrNGtgU2fUZO9Td9IQM0stnCAYBGoGJ5QYZvbfuxMl2?= =?koi8-r?Q?KKzJKa1MIsN+7H6Z7e2trQcV+gOIRPHfQYJ5m8OXnCOswV/Gw7tvLBi2HfU74D?= =?koi8-r?Q?H32W5eqADrGYlNhks+YvaX0Tv2npxG262QQDqbwxrC+GucKZRzPFvBQ5bc9B2j?= =?koi8-r?Q?ZD1X9LYQfZIQuqfd5zowcm629j4/jhjdrzLarSmrQyjgwnLMPtMpf5WmurGuKI?= =?koi8-r?Q?LTRLszWU+qCcCHKC9UCiMkEYs7EEZEwpSkJvHyPUAtco1v8vYA7cov16RMAKfY?= =?koi8-r?Q?zIOI5RxyAXATqDfhRA3AptA6jxi5tsV/iWEUja5FBG/eLM4XfLHyUFjpANxBN2?= =?koi8-r?Q?gDjLkK4w69cTdl+Y0ftdBf2v91ARJj1uw2p+ealH+yVg9WQfi5dXeMjPoN2SVG?= =?koi8-r?Q?L2AAjpE8l4FZyL66gVQ9AlR/ZxzWkQ88ApDj6fHM4j6KLwesRJ+/cd8oEqEK+d?= =?koi8-r?Q?daIHqZg3SG4wqqWiBOVNUT56+in/EFE3sBtVYtfjy5aTBt9MNJ3A1sxD1Fwf/H?= =?koi8-r?Q?2mYYbUf50RJX90u2Ddd13xpcDeOTQnH1lNJMoQpjlPRbZgTdLJmmJXA2mdUwtO?= =?koi8-r?Q?Id+CCUxiFgqHVPob5Ziuix9RU7C7fTwcGk2FPRH+f3SzfdTDZE3E25QEpOVS63?= =?koi8-r?Q?jMTXYxO7vg3fDTY473gbGxtzJmmSzWZ8Rm/2RD0WEDqCSlFsEvFBBYGU4lzUZo?= =?koi8-r?Q?Y0l3sY5WUTO2yxZQqY1Ck6xG+IF3FgUAXE1t+tsjKKpScfg5cZjbIV+hPoW8nf?= =?koi8-r?Q?9bMIjXw2yKRRPzyb/3mJLqp8YtwXMB+6//DtxA3yPSHRscL9AM1EXRa2rytUZY?= =?koi8-r?Q?Xo1J5QvkSTu9xpyD66q5Ig1aRlzWk3tY8SAeBGsA2k6o=3D?= X-Microsoft-Exchange-Diagnostics: 1;HE1PR0801MB1337;6:eEBKrRyrFE9FFlMy0L3y//oavYZ/y3JG+vDG9kHLNx5MgnxvJxI3DxZLLTbxzZV8b4VdUvVtU6jcBQrdMIWbcCF0wDSZ/gcdKuFSAYxItrWERJF9spAEwz6cLbBGDVsb8VSkiqtreZUr0MpGmHOEctq7oW1mJ5yVJIMUfwymYXvieMegQfu+e+Y/nnl++0mob4A4DkU7U2NSfctytlJ4Z8qf+Ma2XRQJGlMxIJ/l9YAwYZTjnFWMfIq3ghWPyRUX+qrfL5rSQgQlJ6KYWyJDspIOM9GV/nfEFS9WDi4q1Gmqqm7PgEu1KP5eK5rWsfB4IK2m6Q1I4HSer4+fpF/X5dHxnmPiCB6vHdBngGFYvuc=;5:sIxjxHrfsVT+uKfzCyjOW6TCE0K/AteTD9smYLtW5uXKwjQtT55+QNwumGc/v8goTD3obfsDAIDZvQ9FncGRiYAiWT7s/c6HTpvPRl0yZIDTG82lnpxL1TUhx6bNBdSI+E+gqhc0qflqh3WfqDAnJb17noH26AGSGMZl28Lrs1Y=;24:Sb9ekpDazdzRiD107zpEmpy/QyThNq6TNTKV+E7Nlpw04lMlQhGrwv1fRA2v7ygJ4X7Dbm+WtuU01YcRiAP0DQlPXs2KU/COg2uYLVNDu/8=;7:cdkVktieReHk6SJ1M5dcKw47WZhJwLGWhRdWMN3bzC96tOqDmBGRcmKwdrX1oxjRQ3MFYLN/PbRXKf/DNHWbTDFi9ZMgAlDV+o8iw1B/bkwrbdO//9h1XZOoTOGD8Ptoy9w1FHsqyOVNAD9QRlJJxJWbR92SsURYL4BP4XiijlLuZD0h/XFMIMejpqCo5LPdzaZHrBvA1CjaYWnUFL0kP7MIHT+7E0PijSBc6I1BKKl8EU8/XuOR7UnJRU3dTZzj SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1;HE1PR0801MB1337;20:wCN5QOHSsgJKmJAC9y+Qn+Frd98etY0f4owqEhWI+lIFaGb4g6ZduedLsX/Dj/iS2utUQo6oAV/pMrVaxldbocmuGwOZeCgkYox0c0pr0qHa7jzGchPuZWcTYx4A1dQcsh8b9Oo1Mx6j1ShWnACBoKyBKd4pmr+Y+xR9AajEwF0= X-OriginatorOrg: virtuozzo.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 19 Jan 2018 08:25:23.2187 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: e0b3d794-aba2-44ff-9431-08d55f162fe3 X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 0bc7f26d-0264-416e-a6fc-8352af79c58f X-MS-Exchange-Transport-CrossTenantHeadersStamped: HE1PR0801MB1337 X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: =?utf-8?q?1584610921292824161?= X-GMAIL-MSGID: =?utf-8?q?1590008560344665770?= X-Mailing-List: linux-kernel@vger.kernel.org List-ID: On 18.01.2018 20:43, Andrei Vagin wrote: > On Mon, Nov 20, 2017 at 09:32:08PM +0300, Kirill Tkhai wrote: >> Hi, >> >> there is the second version of patchset introducing net_sem >> instead of net_mutex. The patchset adds net_sem in addition >> to net_mutex and allows pernet_operations to be async. This >> flag means, the pernet_operations methods are safe to be >> executed with any othor pernet_operations (un)initializing >> another net. >> >> If there are only async pernet_operations in the system, >> net_mutex is not used either for setup_net() or for cleanup_net(). >> >> The flag is little easier, then (un)register_pernet_sys(), >> as it changes one line only. Also, it requires less changes >> in code. In future, when all pernet_operations are async, >> we'll just remove this struct field. >> >> The pernet_operations converted in this patchset allow >> to create minimal .config to have network working, and >> the changes improve the performance like you may see >> below: >> >> %for i in {1..10000}; do unshare -n bash -c exit; done >> >> *before* >> real 1m40,377s >> user 0m9,672s >> sys 0m19,928s >> >> *after* >> real 0m17,007s >> user 0m5,311s >> sys 0m11,779 >> >> (5.8 times faster) > > Good job! > > Acked-by: Andrei Vagin Thanks, Andrei! >> --- >> >> Kirill Tkhai (31): >> net: Assign net to net_namespace_list in setup_net() >> net: Cleanup copy_net_ns() >> net: Introduce net_sem for protection of pernet_list >> net: Move mutex_unlock() in cleanup_net() up >> net: Allow pernet_operations to be executed in parallel >> net: Convert proc_net_ns_ops >> net: Convert net_ns_ops methods >> net: Convert sysctl_pernet_ops >> net: Convert netfilter_net_ops >> net: Convert nf_log_net_ops >> net: Convert net_inuse_ops >> net: Convert net_defaults_ops >> net: Convert netlink_net_ops >> net: Convert rtnetlink_net_ops >> net: Convert audit_net_ops >> net: Convert uevent_net_ops >> net: Convert proto_net_ops >> net: Convert pernet_subsys ops, registered via net_dev_init() >> net: Convert fib_* pernet_operations, registered via subsys_initcall >> net: Convert subsys_initcall() registered pernet_operations from net/sched >> net: Convert genl_pernet_ops >> net: Convert wext_pernet_ops >> net: Convert sysctl_core_ops >> net: Convert pernet_subsys, registered from inet_init() >> net: Convert unix_net_ops >> net: Convert packet_net_ops >> net: Convert ipv4_sysctl_ops >> net: Convert addrconf_ops >> net: Convert loopback_net_ops >> net: Convert default_device_ops >> net: Convert diag_net_ops >> >> >> drivers/net/loopback.c | 1 >> fs/proc/proc_net.c | 1 >> include/linux/rtnetlink.h | 1 >> include/net/net_namespace.h | 6 +++ >> kernel/audit.c | 1 >> lib/kobject_uevent.c | 1 >> net/core/dev.c | 2 + >> net/core/fib_notifier.c | 1 >> net/core/fib_rules.c | 1 >> net/core/net-procfs.c | 2 + >> net/core/net_namespace.c | 94 +++++++++++++++++++++++++------------------ >> net/core/rtnetlink.c | 5 +- >> net/core/sock.c | 2 + >> net/core/sock_diag.c | 1 >> net/core/sysctl_net_core.c | 1 >> net/ipv4/af_inet.c | 2 + >> net/ipv4/arp.c | 1 >> net/ipv4/devinet.c | 1 >> net/ipv4/fib_frontend.c | 1 >> net/ipv4/icmp.c | 1 >> net/ipv4/igmp.c | 1 >> net/ipv4/ip_fragment.c | 1 >> net/ipv4/ipmr.c | 1 >> net/ipv4/ping.c | 1 >> net/ipv4/proc.c | 1 >> net/ipv4/raw.c | 1 >> net/ipv4/route.c | 4 ++ >> net/ipv4/sysctl_net_ipv4.c | 1 >> net/ipv4/tcp_ipv4.c | 2 + >> net/ipv4/tcp_metrics.c | 1 >> net/ipv4/udp.c | 1 >> net/ipv4/udplite.c | 1 >> net/ipv4/xfrm4_policy.c | 1 >> net/ipv6/addrconf.c | 1 >> net/netfilter/core.c | 1 >> net/netfilter/nf_log.c | 1 >> net/netlink/af_netlink.c | 1 >> net/netlink/genetlink.c | 1 >> net/packet/af_packet.c | 1 >> net/sched/act_api.c | 1 >> net/sched/sch_api.c | 1 >> net/sysctl_net.c | 1 >> net/unix/af_unix.c | 1 >> net/wireless/wext-core.c | 1 >> net/xfrm/xfrm_policy.c | 1 >> 45 files changed, 114 insertions(+), 41 deletions(-) >> >> -- >> Signed-off-by: Kirill Tkhai