From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752138AbdLDPzJ (ORCPT ); Mon, 4 Dec 2017 10:55:09 -0500 Received: from mail-eopbgr10112.outbound.protection.outlook.com ([40.107.1.112]:32407 "EHLO EUR02-HE1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1751066AbdLDPzB (ORCPT ); Mon, 4 Dec 2017 10:55:01 -0500 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: davem@davemloft.net, ebiederm@xmission.com References: <151120175301.3159.9577108443167812854.stgit@localhost.localdomain> Cc: 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, avagin@virtuozzo.com, gorcunov@virtuozzo.com, eric.dumazet@gmail.com, stephen@networkplumber.org From: Kirill Tkhai Message-ID: Date: Mon, 4 Dec 2017 18:54:51 +0300 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.4.0 MIME-Version: 1.0 In-Reply-To: <151120175301.3159.9577108443167812854.stgit@localhost.localdomain> Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: 7bit X-Originating-IP: [195.214.232.6] X-ClientProxiedBy: AM5PR0502CA0023.eurprd05.prod.outlook.com (2603:10a6:203:91::33) To DB6PR0801MB1333.eurprd08.prod.outlook.com (2603:10a6:4:a::27) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: f37cd6a1-3a41-49b0-f425-08d53b2f5d90 X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:(4534020)(4602075)(7168020)(4627115)(201703031133081)(201702281549075)(5600026)(4604075)(2017052603286);SRVR:DB6PR0801MB1333; X-Microsoft-Exchange-Diagnostics: 1;DB6PR0801MB1333;3:3lAQHv0g+W95KEVOoCwYGYjR+V+peXaMgOv4hd6uqpWDTsS+qezK7fa/qbwzHB7fK6NQLA2qNmh1fVIArqHVIYBbuw3+Vw4G1TDn4jGs6uegcB33kLAVnQoLsUYEd3+CGm5q29F+sLm2kJ6HkokvP2mgI9gR2uojP9UN5oKcSh63m8NItxV7BcXBcXH/uAqTr2gVYafCYXj6//ZLsVp4NSJGzjHKuiZw+qeSliD7QSmRJkEbJKfcqWzSSV0MOc7O;25:YxzYINOaq3gXhFZnHqe7XRiWne2+A5EjSq0vGCyNp09hvoy8hlG90bI9pJzo94p4Yty1AiRPmO+W3bcR8eWD1Ztl2Qg1nF3t5rhNiIr3fF2nbrkpJOurj7y14y6AH1Xo0LPXNx94fBwgT5bkZDfq4nIoJg8rKVT7HZ+1tM6dNZUVXhZq5qA0YARAPXu0idoS822DkruxA2Gk2yoJi6WaxmW/WBxYnq258qi4iphbenStuf37jcdqNpXPXHNdvoDT3jMOLd21u4AN+CrctMgpPX48nv/avlRmLhWGsrmZHgr9mbVxlxL0VtgSCO/kt4UL5Qj390q4FDPj+5kYHf7huw==;31:Ojz/qd8Gr0E7Um6Mrq5QScwwwQgrgX2gxaHA9EE2incO8Mcc6HOabb7HJ+uWYClmpUnf5wuLPHrZPFqHkQIh/gDTcJyCVv+z1yxML5lLc1crcmIf02tTHcrkdpxpkqwRp+U0vDLBLDjpDC9YP3bXowuHT74hc0I3qjbS0IF2iY8HopeUs6Fs0eNsAfCfGzDlxkS8Idu1Vjo5y7vWK2xX42duI0tppw+9vyUljlP3vHY= X-MS-TrafficTypeDiagnostic: DB6PR0801MB1333: X-Microsoft-Exchange-Diagnostics: 1;DB6PR0801MB1333;20:6+kZMBaa8FC2pIcWUNITMzGp0Rp+APF1OTleQ3AX+3MfQ/aHoOOOtGoGG9p8FUJKy0AA3J/8dW70KBJke5W5Qjlw9qVXctT5J1YCTJLfJLGGReqPcWGoE0aLBkoJD4bkUm5H1zWziNbSz1VFOScugYs4ows7vUpVEFlOfNP9S9E8rAftP0TCWculsrkY+KU5QqCvVW/8r68s2L86UOHwpAjhXML6Y+/Cz0Nr16fWVAufFUCowke+vH9/Bth08sQ9b478RduFqYe4uiN/LOj13rpZtgzYl3ljOF0SH0DTdecSx+lgGPIBWLTQnzjHa94ZSBYom3+/3Y2XbmcOIqbuRgBKPw6zlYTyAe7gOsKJ7y4RJRrfNuazVeZMHfF27jL9FMZqv2hRRh9iZl/EHcTO+cm9vxFNbrf+qfTyT+i8nJw=;4:399pBYSPEZKuGZuQ3DgE1F1JVMc9HTjEagituYfSMdtokxc9p2rfghPDnwYB793kiVeCSjUfwG4L90RyB4hyDQ9c7Qf35DIQM8YdaqT6ZpkEMysJ6zlRiRBLB+/OQy68D/aBasPko35ktBE8cfgiFCPtF3j595H4ivrDaHP9T/4XfcLBjSdydRnYx3qwGTC/bU6rzDAdeyGF6RrkxxvBiP185ENvvSU1xSJEsWS8m40HqxJhA70UL/aigyuqiG8BZL/E/hOaRlAavHF/lI2WDw== X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(6040450)(2401047)(8121501046)(5005006)(3002001)(3231022)(93006095)(93001095)(10201501046)(6041248)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(20161123558100)(20161123564025)(20161123562025)(20161123560025)(20161123555025)(6072148)(201708071742011);SRVR:DB6PR0801MB1333;BCL:0;PCL:0;RULEID:(100000803101)(100110400095);SRVR:DB6PR0801MB1333; X-Forefront-PRVS: 051158ECBB X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10019020)(6009001)(6049001)(346002)(376002)(366004)(24454002)(199003)(189002)(316002)(189998001)(52146003)(53936002)(2486003)(16576012)(23676004)(64126003)(77096006)(305945005)(52116002)(25786009)(8936002)(58126008)(16526018)(7736002)(68736007)(86362001)(83506002)(55236003)(101416001)(229853002)(50466002)(31686004)(6486002)(31696002)(6246003)(33646002)(8676002)(39060400002)(47776003)(7416002)(478600001)(36756003)(4326008)(54356011)(2906002)(65806001)(81156014)(97736004)(66066001)(230700001)(65956001)(53546010)(6666003)(76176011)(3846002)(105586002)(5660300001)(6116002)(2950100002)(81166006)(106356001)(65826007);DIR:OUT;SFP:1102;SCL:1;SRVR:DB6PR0801MB1333;H:[172.16.25.196];FPR:;SPF:None;PTR:InfoNoRecords;A:1;MX:1;LANG:en; X-Microsoft-Exchange-Diagnostics: =?utf-8?B?MTtEQjZQUjA4MDFNQjEzMzM7MjM6QU91RXpXSG9ZNkNFSWFtYXJ2UUsrdTFw?= =?utf-8?B?Zjg0YXhZemlYcFhqMmttdmJXSVQzeXkxY1dxOTlOQXVxbm84TEhvbHBHdlZm?= =?utf-8?B?NjZIdmZ6dU5GckhHbmNuek9nNVplMFFJUzBYanRhYjlFVHlKL3IrWHN4Q2FL?= =?utf-8?B?ampVOWFDTnY0bmJ2ay9vUmswcldwdkVpYmwxSFBDWTFocWJSVTcwZktTakl3?= =?utf-8?B?R3F2bG9yOXhOZTBwaTN0NllWaitVdE05a0tuaE05SnVSZTNiOVl0by95eHY1?= =?utf-8?B?SU5Wd3llRTZ6aHR2RVlwUUZsdzFOYXJzSkkzbjRENk52UDhqdktaUUxLWWxX?= =?utf-8?B?TllqWVI0WVV0VzNXMHV6UFU1ZUdURXg0ZFdTQVhsNkZPYjV2UGwxcVdSeFlY?= =?utf-8?B?V21rdS9QZnNFQzNQSkl5OHNKOFBmL3JzbDdvZW9ONy9QeFUxZmpzZmlXckxR?= =?utf-8?B?WFppa1J1cnZyNXNYSVZUWFRsWjdkdkgxODh4OVczcHFwZHlqRXVFR1Z2b3RX?= =?utf-8?B?Z0htOWQwSTBxa2tocmF0N0lRTVhqUVZPamhudWpIVkJMU3NKcGVtbENtSDRL?= =?utf-8?B?MGZYaDJHVnVSZ0h3aEVmeFhRcVVBQ1Z3NXViQUh4clFXbEhVZDFVcWtSdVdV?= =?utf-8?B?VEllNDNIVW15MTNUODJhcjlEdkdVL01WRGRYWHNhUzhkT2lsYzVrV3B6UGk0?= =?utf-8?B?T1VmaEVYeGJ5OEVpd1lMZ3ZPVTZDV1RyLzF5a3Zkbyttdm5EZ0cxcnErMjlp?= =?utf-8?B?MkN1a3MyVFlVV2w5dktPbEgyeGtBRTJxQmdyM0VKcEJvL3RTcUY2SVVmc0pB?= =?utf-8?B?L0xBSnU2ZzFCWlJkeWhZWnFubWFkMzZ5YVVodlIzSDVLQ2NFTElOcWUzTnA4?= =?utf-8?B?K01PeWFLbVpLcDlSNHlVV0ErN0E0blVUQ1BXRU9uZHVNdnM5S1ZaWUhqaGNz?= =?utf-8?B?ZnNLZnJQYm1aRUYzWWFuQnhMajRCbFRmMjJYT0NyZC9MOE1iUWtGbDJLZzRh?= =?utf-8?B?K3IzenhPNkVsc0xtRE9VY3UyZXZVNkhLdTR0THl0eG1icDFtSWpHYUV6MXp0?= =?utf-8?B?SnJ3Kzc1NW1Lc1UxWVFVRit6aGNCYWhtSG1YYkF5aVNzY2JOcndIM3BJQVkx?= =?utf-8?B?dkRjQUdTOGNLeUdlRWZkWkhyV3VpbXdFWXp5NjdlZ3d5WW1SdVNyWldMR3pM?= =?utf-8?B?WDJ6czBua0ozUEZxcDlBUVlHN3VMd3JWdkxGZ2NEbk5WR1hOTHNzN1pzdUZh?= =?utf-8?B?M0pXK1NvNVpJNkZ2djA0T2dGY2QwOGhabjl4VnpsV2s2SEJlZ2ZPcHp2c0NX?= =?utf-8?B?V2dIc2taNFd6V2xsUjAxSGkvT1JRRkdqSXc4bG5JZHhmclF4WWc4a2NJNnZ6?= =?utf-8?B?eFQ3bXpYYlNkZUIraCtMUDBvTkFsdTFEUk5QdDdUWEtuYTA4bmpNYVlaZjBY?= =?utf-8?B?QzdwdTJNYUVRQ2Zwa0lvUHNYaHRKbkNMQzJvalloSjlZTXZXVVdVWkdnTkxV?= =?utf-8?B?OWR6M204REgzSWs4clo4Y1dyYkIwOWFiSTNJR3JiOGpwWHZ5bCtZV1B3WjZX?= =?utf-8?B?QUNtWHNlVjkvUUhXb2FPek5CR0IrOERCS1NFR1hCbS9WS05oOXBkQlRzVVAz?= =?utf-8?B?bmVZMzY2YVptNUZxUzJBQjdJcWs2MkRnZDJYRzduVU5MajZGYWZ1elBaNzBV?= =?utf-8?B?TFB1SnZaT09uVG1pNFJpOXAyeXY1QzRQcHV0YzhCaDhRRWlXNnFjSDNVUzZy?= =?utf-8?B?V1E0Mm4yaXpwMkdtRGgrcmZ3MkVVckpNbXkvYVZHN1RvKzhTbmpLNUVMSVB1?= =?utf-8?B?NEdHUjR6WUZ4NkMrbHdzREpnVFJYZlZaeVZDMFV3UXk5aXN0S1dJVW9Tc2Zr?= =?utf-8?B?eGVLZXVjUFlOcit1dHNIRk5wT1FmL0Njc2xRMXRGZlZQTEphdjRYWlc0N2xK?= =?utf-8?B?TmVhS0hydzFLZVE9PQ==?= X-Microsoft-Exchange-Diagnostics: 1;DB6PR0801MB1333;6:P9RKNtMesGazr19CWnTGvXdvOYjpx0HW44hqZVebWWrKGguZuiarYjiAVTIUPHi4gzsExItn4m1QLda9hk7ikVxGPo1A7rJokUI6a5ZO0SaxSrZ7wKmn2aDbEfTHSNq5LrcNSpz5466Yf8VJ2ObF8pjYYlHLNiiQWv8udOcyus7djnda96H8OlQO7i7RkYHQA57tn+Gijm7T3Qu4halxbG+t7382d37/XRK5/dmb3Kz9n/uFC/Ct+TN76NuAtJ2Lv8myLy/VZ3mfdVPpA7jv3POWdTi+UNT/xdmNcBoUysEeJdmuH4wWgAAqVzi54e7Fc72uGiIxlDJ/bOy6spu5NHCktVp6mjEfaeLXpLQhKqg=;5:wm+KbnA7Toth5hIMIIclLYWcOAFZnuVdZIht/2E38uXEC6wbn2LzgpnT8pICIwQCUwC26RxoEBFj1WeU9ZjEB1MKgO1dBrHAvglRXrimQ7aDi6Vv99RPWdKaQgqBjdV76ud/hXgaRMdhm5Sx8EE61MHiUcUeOZgUXA6Dtd3s+8I=;24:tRqGG05/DJXPOK+ML2MrpWCRGgwqQ2bRMszhLLcsuf3wBGJyHL74lsRgvFkpXxhyRlo6UuqNUA8NEjlHM6KAtv8hy3ou8pVnlQzF8w97jtw=;7:hSkU9TkSOuohvTIOj93j2Z39pCiFIItTjzPLqcr/8nMLyI7HRQq1LneYCYeDULyr4A/bk8N4xGFdQryisy0/PAWJEHBuH0ERKrOIO27qZQt6445cNLOv7BSt1qQ1CFSRkrxU1FZQIzbea3BA7kS/QlEQZH2msVUneCqX9M4vh1HR5PDDRd1jyL3Vig9AWZlmgNuwPVjd9BYl5fgl3Gt2spLcv1mxiTYvlJjX/5jFGb6BEUZR96He4+aVQvMqsDbs SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1;DB6PR0801MB1333;20:m8r5r43/a7s0p7RCTxBsEUdgl4+AjD51RjbhOqwSf5xIAt8LYMwTty2UtWF0f6L6+K/3sA1hYYiQkM9792l0TzTa5OWkGwqWwMsGCTZiQ/iM2zcfac/YiLiYFBkr6a6VDJDy8yOaKSoapSkY7+QxmHHobgcNpgO3YxCdte4sucI= X-OriginatorOrg: virtuozzo.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Dec 2017 15:54:54.3949 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: f37cd6a1-3a41-49b0-f425-08d53b2f5d90 X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 0bc7f26d-0264-416e-a6fc-8352af79c58f X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB6PR0801MB1333 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Still no comments :( Ping, ping, ping. Here is the second version of big patch set with Eric's commentaries accounted. What will we do next? On 20.11.2017 21:32, 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) > --- > > 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 >