From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Google-Smtp-Source: ACJfBov66VOGRg9d7AHrXlZhrwAv3ADD8rp17krDyIaBmbLY4lvSpps9/dmLACuyTya8l9mtkn9q ARC-Seal: i=1; a=rsa-sha256; t=1516297428; cv=none; d=google.com; s=arc-20160816; b=RXJ1T0pa/DS1rcjI+OxaxhrfB+xpbi17OUMBMgwXR+PI+lxQqRp5b+utsYSaGFvWvz AWn7r2PLkNSiHpaAAZcYTKJmtScVHYIvTNufBSlK3q7qtdyeVhC0gUoXhykYehHaRMid UzfdMo6t2C6yn2ED2R+9lR+Tts8b8JWu5IsQn8LmMlx5EieRF5yZE/mOw9IBM7Cwzwpm SfnaKPlBUQiL9URnYPOu3b7UCjfa0cxvHGsP6F7Fkr67l7XJNkmJFFORHmpfcluPsT0E 2cjdZ+W8cDrTleTz8nDJxmt3rIPVVZsRPv0VEiZSVo1OHPOrTz0dtWUyqwxBnotok6cU n/oQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=spamdiagnosticmetadata:spamdiagnosticoutput:user-agent:in-reply-to :content-disposition:mime-version:references:message-id:subject:cc :to:from:date:dkim-signature:arc-authentication-results; bh=42Eo+Kn2u3ZG0UAHRfZaUQ1ZW9W7w4mUzMYehuMWkuA=; b=nCxRn4Yp8f7dz7eZfFHZvLnzYAVs+onH9yPuCEVvQRUzMBC0ZJplh5sxHA5tvINjO2 z6dqnYZzfTXx1s4aV3KgYwob3YAnjurf0aZORhyVMtLxLR7XkEnojw/qHVkGITJKeYpl UbM0CPJ20a+wIvUeaTrqMunO+HgLoZejZBmon44lEvPadMOPsMGlfM3kVGpHkrYEuiHs pwaDv8ih1me1+7PcGTNjgxdHPsbhu0ofk56cR8AwsZQ2u473nyqu3wN6+jlV67fAW1LA HmIuSmsGkqWLV22wxXZ9Ied20V8+kssvfSICL5qAkDpSMEde+TlwDyJ0n0XIkIqRXxcO 8ANA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@virtuozzo.com header.s=selector1 header.b=HJ3U1whR; spf=pass (google.com: domain of avagin@virtuozzo.com designates 104.47.0.104 as permitted sender) smtp.mailfrom=avagin@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=HJ3U1whR; spf=pass (google.com: domain of avagin@virtuozzo.com designates 104.47.0.104 as permitted sender) smtp.mailfrom=avagin@virtuozzo.com; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=virtuozzo.com Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=avagin@virtuozzo.com; Date: Thu, 18 Jan 2018 09:43:30 -0800 From: Andrei Vagin To: Kirill Tkhai 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 Subject: Re: [PATCH v2 00/31] Replacing net_mutex with rw_semaphore Message-ID: <20180118174329.GA15877@outlook.office365.com> References: <151120175301.3159.9577108443167812854.stgit@localhost.localdomain> MIME-Version: 1.0 Content-Type: text/plain; charset=koi8-r Content-Disposition: inline In-Reply-To: <151120175301.3159.9577108443167812854.stgit@localhost.localdomain> User-Agent: Mutt/1.9.1 (2017-09-22) X-Originating-IP: [65.152.152.74] X-ClientProxiedBy: HE1PR05CA0280.eurprd05.prod.outlook.com (2603:10a6:3:fc::32) To DB5PR08MB0744.eurprd08.prod.outlook.com (2a01:111:e400:599c::14) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 6a0c161a-98f9-407b-166c-08d55e9b04e7 X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:(7020095)(4652020)(5600026)(4604075)(2017052603307)(7153060)(7193020);SRVR:DB5PR08MB0744; X-Microsoft-Exchange-Diagnostics: 1;DB5PR08MB0744;3:L4iJk2ny8QDxTv8WA8b6Ky9pQcIlJM8n1kHz3CMbKdNSs4xfB4aLuwX0vVc3XsbroKqbb/RD6KWPmd2G3yjqVf6B9yQi9YBGwBSDTk++NESb+2DZ89bIXs3GxnhE9l7g+6IpVwO0qUOBP6FFwqoFpufT61VdTL6RMYgvs5Sr+f1DM+bwXUEansNEfBFMkBGKSlbGz06WUnrBM767uyK7ToI941AEr+qgz3/COKoUhjIYtMQHzYm/h2wX3P531+qQ;25:xZp8rZs1fGvmYO2y5AxynYmITx/Tkj5Hv4wz77XBu0ZFJnrbIQkoQ4KJUPkis11UUSckS24k6xBAO9h7il2EnXgfoPBiWm9CGaesibK0H2luIEUyR17s0H8AA/+LGqI/WhxF5ySUk2fQljqLS8JhvdEdNrigMKEwWnOJJtslYqMj7AgvFPlTJc9BIpaz/CsVvIK9B7WPBsYypvslzzhPrJ7dwV9bpGr2pmBowA9zYqNdFhurio17HV0RSiKVrLRXCQhG63V+uI7tt4ZcFig2CAE7PQYOpdXm8DLL509ABlpJ78H3IgQ3jMRfg0lO/y6eW8vfypSXW0drElxNDrwLgA==;31:VW66QeTQFAveoBKCI8qIVX7poSwZb0btWLQAMUyC39/Sw1HytExC61hLGMHG98lk8Imh2PU0vHX0yqdqtHTk/XsXEOhD3dRW7SJaCxcPyV0JPY4qmECk2DYDaQoIO84jDsffTfnJ/LR1Imk1MGfWjM85mfdlfTfQnxYPYSm9TbaMpRWvzq7gBz1+QGyzOF78Ov5OAtuYJeNRYdRO8HzFjD5q+EF6OC3aJm3gIZiW9co= X-MS-TrafficTypeDiagnostic: DB5PR08MB0744: X-Microsoft-Exchange-Diagnostics: 1;DB5PR08MB0744;20:kzdSa6e068GgFNTzJ95o/zFA0L0AM+fHDjSpK6jvjZ+Cj5Yd+YJa2qhdT4U8lk7QnQxWyP5dlIWjZWj9eIElICVqqy8dKZQ2c3uXQ+Fte5A7d/pIC6xu9CJ9AShrh8lQ0N79Lf7//MO+nA2Hay0ZDkle3V2vCngqzuBswKfJNMV3KuSBYypdv26aBxdJBoYixKtvyNng5vO7OQsitUKAt/rWATWa3BynUPbClfdxx+NMueFaCotQ0o9KvdxFI/+s4hhHGHYHnUZC4UjhFbZ8XU6rXMtcsrftK4iOd/knCAqgsnrlPwiJMTjBgn4jX6zYospez0KSvjx8+1G58xJe13AyHQIg8TPwHLirB3y8nPeT//0/dQwwsnKYbjBSLMnsJs8XoHRUeIy2kXlkArzzvXUHdMeE6Nnr+na2hR/nbjs=;4:k1xlMrpC7Qkmj1+iah1y+QMaiFUxaprBbY42rIZ1c6X4i114tDBPsht2cNMfz4eT1JRyAI4tLgv4IptCBFnRP/oI4/UYJQKMxLWFMqKE1dCRL/inyilyKFh8otoEbvLKTfQxkKHLKGdBiA0/cOhjo0sKjBYJW2kRYDQIIrMVL1ykbxBgWaEHSVsuFz0qsffhiqw+e1AzLX7jeI2GWVEpDAHCfaswB137aCae/AEvuGWcllwfb/xxHrhU2QT4OxnmkIta3TU8mo+yjS1mACzGcg== X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(6040470)(2401047)(5005006)(8121501046)(10201501046)(3231023)(2400064)(944501161)(3002001)(93006095)(93001095)(6041268)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123560045)(20161123564045)(20161123562045)(20161123558120)(6072148)(201708071742011);SRVR:DB5PR08MB0744;BCL:0;PCL:0;RULEID:(100000803101)(100110400095);SRVR:DB5PR08MB0744; X-Forefront-PRVS: 05568D1FF7 X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10019020)(396003)(39850400004)(366004)(39380400002)(346002)(376002)(199004)(189003)(2906002)(4326008)(6246003)(53936002)(316002)(23686003)(229853002)(68736007)(33656002)(9686003)(97736004)(7696005)(16586007)(52116002)(26005)(58126008)(6862004)(39060400002)(86362001)(66066001)(7416002)(106356001)(55016002)(47776003)(478600001)(1076002)(53416004)(69596002)(76176011)(25786009)(6666003)(6116002)(3846002)(7736002)(386003)(8676002)(83506002)(5660300001)(81166006)(6636002)(81156014)(105586002)(50466002)(6506007)(2950100002)(8936002)(16526018)(305945005)(18370500001);DIR:OUT;SFP:1102;SCL:1;SRVR:DB5PR08MB0744;H:outlook.office365.com;FPR:;SPF:None;PTR:InfoNoRecords;A:1;MX:1;LANG:en; X-Microsoft-Exchange-Diagnostics: =?koi8-r?Q?1;DB5PR08MB0744;23:s6WChHVmzcS9v9Jkdv1DqkPOlfTfalC8/IrFTYpWwg7?= =?koi8-r?Q?DdAv0pe65E64bqogvubv/+56EKqwSmdDEcKFx24uc3jQhuxXpdveqO3mlfYrUZ?= =?koi8-r?Q?yrrV9LXpA6ajCuJNIG9p70GVuJktL6y8E9W54lIYREm8JKp6kyE034OlzXAflr?= =?koi8-r?Q?hFog0oqPeSfBtGMOnVr776HX9mhAoVkF36JxWnqlKPMYvzgqtsZhc6FXXfqq/q?= =?koi8-r?Q?jsyMdml+yznKKURuMLEVwXdCT84pB4ZCnBClfROMZssTRdEAJh2Ol5WVNJ10GC?= =?koi8-r?Q?yPAm61BLaFl4KlTQUroJ8OzGRypaeOZR1JYkAII+XnA61zJN7S7CEAhCCr/QpO?= =?koi8-r?Q?MXu2EdKPr67WpbBzcZfAIc4r7Ml2F3Od2PpmPULq5Wqn16T5taEZ5DtyvxX4Up?= =?koi8-r?Q?SbC0Q4wvuhcl/u/Zwy1iVWnqhwpKHlDBXJxKyGiUMMz/gbwp07EpEw7tlGOrsR?= =?koi8-r?Q?v63HcNVUXu6CpHFPeE46eG+lQzM/pRN2yY9G0B/I+cXzRqhXSBKTN9ejWgjLFP?= =?koi8-r?Q?FnNCJnCOG+sM0Wb6g1WYOuNwhU8WMSSDuNWAmfFxchdPLZvLIZxNfmzOmioAuR?= =?koi8-r?Q?w6W1XrA/UicXeMM7FPtPwJ+izljg8qMJMFJS8GxKjCFF3cb8Mf3emJUtvjiEJi?= =?koi8-r?Q?/40O/V5Ip+P5upvzv1a9zKAYrMWpnom7UxzJhbVy7/6yfPmPj3wjr3Bc6GTUy8?= =?koi8-r?Q?EY+VcANPw10d1wEUOWo1eU4BJAVdGZGxmGGnL20oFoFMJzzWusym4LvNNLX7Wd?= =?koi8-r?Q?eNOw1bJZnhhcWZGV5WojIPafgFn6NAeS8zRLug59i2eRcMKKoEze8hnHoAY0XV?= =?koi8-r?Q?DSpM3Og9hoS//eSRHvna14kpSvdck/7rxSWHn4qD9KcJ1m6hT31O7xZf+I6+v+?= =?koi8-r?Q?EsuWdLVZt7QkA3T9A85sw8F8V1YrMKaSCk74KCGvM6QVafd244NJ+4jsCQDyka?= =?koi8-r?Q?aDOlsQbo+VhODMfXrJmFBxGepLXCC+lk5lWoj9U2ADs2T1Xq/cvDiZ2dqKeqWa?= =?koi8-r?Q?5lRI53n9MDKZp6lOqvheXQeqxnPmtQvj6f53KfQtiFpDqAISf88J1we3st1c9m?= =?koi8-r?Q?qdaXj7x29CxN/pMn+cpvrhrk2qAXAjIziJBU9R+BJh7ZXaJH/ptwuQz15e18e8?= =?koi8-r?Q?5+WrqrRMo6LbPADLPH1MkPkj+/ZlduCr7c0k4wEubA2Ek5ZTCzUR5cpFInnMO8?= =?koi8-r?Q?dQUf4b/PvQ0QvmhohbXNXlMYjFdZMcGVjknlgew0TvUOpFHN/pMO8gonC162WN?= =?koi8-r?Q?vIzxu5MPuA5XH0JN8WQ=3D=3D?= X-Microsoft-Exchange-Diagnostics: 1;DB5PR08MB0744;6:SQ7DrUMQr7kRfZP2uL7qhLkIL+eqObmki7WX8TmBNdJNk7WQII1cPCLsIUqS2bED7rkLC9eHBrwL8JgByaqPSjpbAfzSln6/VCuo/3+gEJoyRAAKcxb2wo5TyBP/AzMP8aY9qC/ZySH/V+3zIuVzzvyFxsFzHNHBIXoX3L2xe0bQwC12wcfdVV2ohfMBJsCdffwJBjk/gKPh9mGB5dkvLoVNekIvmE67iP+teczSJEHUf7zyM8F/ucVUpAJ2pHTgqn4VENNxufZjxx+d3yQgD9y4pN29NDqeXCbYnDelHws6J8c39mVdR7T65RVuZlM/N5YI7Kn9ZPGFSFUkPMG25ms62/IfIs/e+TtTnOaGO5E=;5:x0vqprRPFdgoLcc70FwynUZx50IdfcikdWSmPgeKmax2ZAP+Zw6FErtOGXaF5S8+Ukm+UPFkyR4kuYnrYmM2sCwDYO1oPjHrW6gv90Dr7W7LFe6FrzwrYGk4AVhx2sA2gPgj9NlDinxRsvIwxIizXepavkI9ZC3cRCKCFLNhcSE=;24:nd+0BzXIHsLei0MjfbQ/KhBpwEJywGI0MdTpaqGIgpHwDOfLpHZDJTW3g7WNHtHPt4DMxTMQO/9BrMay+h848zNeT469Pd3PUbNtZUTKAQg=;7:nfVzpN7XHCDM1Zpwj/k5mJ0Dfg9C87ZP+c2zGhN2Wko2NM1wBwS6NmvkOf9IxWr1Ptdpnfw26Zr/s3ypFidd/RJpY7auxuLB7hz1whkNulSrfuYuHw3VCwnEhJtkTZTDZ3FSnWNTMi+QfXvEJKgToWumQL4fem7GK5VYHU0gu6c0dVEGuhf5vuGOynjWYwMiBbAeHVJLyAzEw9tqoWb2CYe31IgAn+TKtjDIA8jqgbSUCW5Lxtm84Ri4xiS2X9Ct SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1;DB5PR08MB0744;20:teI/Aw5sHotjvpEaVvPlEUA2riiYyYahBoPwrnMePvnGfoDvfUdIa+LphF4wfxo2mZtRCFAxEjGwgNMhuUWBysDP1SM0xx/TvfI3FlYnWRDO5irEHpz/b+aFa1fjvZhgot2+hquxYLfHofpWm6mlRtQ63sgv/iqXUhFD8jnIMe0= X-OriginatorOrg: virtuozzo.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 18 Jan 2018 17:43:37.1267 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 6a0c161a-98f9-407b-166c-08d55e9b04e7 X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 0bc7f26d-0264-416e-a6fc-8352af79c58f X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB5PR08MB0744 X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: =?utf-8?q?1584610921292824161?= X-GMAIL-MSGID: =?utf-8?q?1589953091896253607?= X-Mailing-List: linux-kernel@vger.kernel.org List-ID: 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 > --- > > 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