From patchwork Tue Mar 27 15:02:01 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Kirill Tkhai X-Patchwork-Id: 891657 X-Patchwork-Delegate: linville@tuxdriver.com Return-Path: X-Original-To: patchwork-incoming-netdev@ozlabs.org Delivered-To: patchwork-incoming-netdev@ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=netdev-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dmarc=pass (p=none dis=none) header.from=virtuozzo.com Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=virtuozzo.com header.i=@virtuozzo.com header.b="NGUhZKyU"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 409Z4D55jjz9s16 for ; Wed, 28 Mar 2018 02:02:20 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752568AbeC0PCS (ORCPT ); Tue, 27 Mar 2018 11:02:18 -0400 Received: from mail-eopbgr20129.outbound.protection.outlook.com ([40.107.2.129]:37229 "EHLO EUR02-VE1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1751045AbeC0PCK (ORCPT ); Tue, 27 Mar 2018 11:02:10 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=virtuozzo.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=XomczrSt6O6kz5vZcF83QEcVUtXJeU9ekiQsDSA7yrw=; b=NGUhZKyUfd3N0Bl799fH45ws50ROXz070lQfGSdFIQ60sfdjOJd6jVUtQ9qLSc10k/sR+V8E2QRTPPKho8CFJdrfNZwr9PaRBoUoctiZBtDXc+uLw8k8FqdZuge2E0fkrj63RFzDZScVIlsHCNvjxR46uSnQZQ4XUpO6RwMT0d0= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=ktkhai@virtuozzo.com; Received: from localhost.localdomain (195.214.232.6) by DB6PR0801MB1335.eurprd08.prod.outlook.com (2603:10a6:4:b::7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.609.10; Tue, 27 Mar 2018 15:02:06 +0000 Subject: [PATCH net-next 2/5] net: Reflect all pernet_operations are converted From: Kirill Tkhai To: davem@davemloft.net, ktkhai@virtuozzo.com, nicolas.dichtel@6wind.com, vyasevic@redhat.com, paulmck@linux.vnet.ibm.com, vyasevich@gmail.com, mark.rutland@arm.com, leonro@mellanox.com, avagin@virtuozzo.com, fw@strlen.de, ebiederm@xmission.com, roman.kapl@sysgo.com, dsahern@gmail.com, netdev@vger.kernel.org, bfields@fieldses.org Date: Tue, 27 Mar 2018 18:02:01 +0300 Message-ID: <152216292109.1634.3826601958310905054.stgit@localhost.localdomain> In-Reply-To: <152216238129.1634.4807322431520445566.stgit@localhost.localdomain> References: <152216238129.1634.4807322431520445566.stgit@localhost.localdomain> User-Agent: StGit/0.18 MIME-Version: 1.0 X-Originating-IP: [195.214.232.6] X-ClientProxiedBy: DB6PR0202CA0019.eurprd02.prod.outlook.com (2603:10a6:4:29::29) To DB6PR0801MB1335.eurprd08.prod.outlook.com (2603:10a6:4:b::7) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 0a4a85af-b251-4def-6471-08d593f3b5b5 X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(7020095)(4652020)(5600026)(4604075)(4534165)(7168020)(4627221)(201703031133081)(201702281549075)(2017052603328)(7153060)(7193020); SRVR:DB6PR0801MB1335; X-Microsoft-Exchange-Diagnostics: 1; DB6PR0801MB1335; 3:IAiRhZgAUUZB3LQ5/Pq6wz/9MY8rbNTXNic3uwo5sVjVt3EvTiDXqibdbYhRWkY6IOXy9ndkch0tRTbSFJC4UdbaXZqJHylMF9mK74as4Ld/NDynlsGINHB6oyMh84zv7LZqo59Ae3CtDRwj2iSfT7cdK0XzDCPNYxkcpP/seRCw3TCzSbZKjBNM5aeixtETtnRdTuzfVpf9+M9Ue181rDyFgLWGaTZ/RBCasCN03lY507WTU/8vVG/JhoUhDTDN; 25:Gfc2l8OZo2mOKV5xwiz5XSI+/He28Yr0McyOizxd1xMmLTpMIVqhk8aIWh02b5rgJ4+5tT5Upqru3viwdL26AfFxTAaobbtjOGDZivgcv/rVLv0vInUfDCGVWKkv5CtVNIp/ZH39IkGl2hx1iUqQxr3AvULcbD87YRYmBdahqUtHw61BpIDamRfQMMYvbqTx9UVOeI6FBxfVgKvEFgY7AK7dy5cz9ASAMbIfEwpg0DTMdFR8+kIjSyL55PXoV4vcQJvz5Qk/rtjrxaUPfvwJeIEbm9Ihz2VJGfCCzZyA3DVR9GrFLCd1AAqWnHQ8SnUYmpPovMf4hPSfir3lMjQNMA==; 31:/svG6JG5noXxgupKUBzkUhOizOM8vo6Ps8pXjQsfnrH9RLSx3t1y8w2O+TDi1XuqhbWlfyrU89cORsfgfFuRMFZpkgzOTjwUTzD0HH43w07rhuZgIfwwvM/biNgn7lBQFIczgVaN5mzgVZXivJGWq5JawTKNcx6XxMfeUgOjaEzCic4u5fUeYW2hfHBM2ECGUw7vgDrYuCXOVkFvJ1zgPYaQ26c7RvvvaP2gossGtzo= X-MS-TrafficTypeDiagnostic: DB6PR0801MB1335: X-Microsoft-Exchange-Diagnostics: 1; DB6PR0801MB1335; 20:g0of80iTyQgUboxOqxd9Z4rSf0JS+tJsp7zMsum1h5760qBN/KPTBrc/1x7rywU44+zxjZhKLs9b08rdUsgMCzuneTdnrTmpsRUX12T5fTHlgYADekBUCF7Z/GJDAOGTWDUx0M0JAyX4rpGP6/qDINdECDRbqMLeJlLjQfgJR9W3rsDOADaECulj5oA/7qCJ4pq4rpLEFVG9YyfbEoHZeVdVkb6PsFQxytf7b+SxXsBe7h2xV8gvUTgx/31kIBDEGO/iv+mQYTwsNvBnx3Ovyg1EMDtLnzXShLUbKMvaykd7cDVFHRiYu6VYSTtdSpq3NhVpDjB8CB7bEw9MyVxfNiGyVfkytiwUwyaN8IrS8S04/EcMQeCPbC/beCYyVSzk2/KLUNXULnqxzjZbABrdIGEs3C1/4S3QhYNLgB/R+cZLi5RA+lX8u6kzHlID51eAB0GxV4CvH0/OQGImrCIcZvVh3BddAnM7N/l/PUJWs9/B24+Z+4HNeS1+ZkkrXwQh; 4:58Qf04bq4T5qa0ToNgNCBcrwWeOeXE1XcRQLWg/NzL1BtbZeCaF7wXSayuavUPLOaPaRLuS64iYnEdTT0791khRsy+FoGSKwCN7x27OlxojVORREee01HO+bLeWSZITbj//1FK3/U5soL8jJNwbAHgczTIXJ26VOZeYgev9unC397wdtKA6NVdWDiVjlQRUYRZvJd7NvpZLb1p+yNMcPldr+/mWc1poSgBlUEB1FFYbzSWisTTPQv/6yO6kmCSXwL9aHKLgSsRo68/FRnGiE1A== X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(6040522)(2401047)(5005006)(8121501046)(93006095)(93001095)(3002001)(10201501046)(3231221)(944501327)(52105095)(6041310)(20161123558120)(20161123564045)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123560045)(20161123562045)(6072148)(201708071742011); SRVR:DB6PR0801MB1335; BCL:0; PCL:0; RULEID:; SRVR:DB6PR0801MB1335; X-Forefront-PRVS: 0624A2429E X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10019020)(979002)(6069001)(376002)(366004)(346002)(39840400004)(396003)(39380400002)(189003)(199004)(6116002)(3846002)(33896004)(2486003)(305945005)(6666003)(52116002)(316002)(7696005)(23676004)(230700001)(11346002)(50466002)(97736004)(86362001)(486005)(58126008)(486005)(2906002)(956004)(76176011)(446003)(59450400001)(26005)(103116003)(8936002)(68736007)(47776003)(25786009)(66066001)(16526019)(478600001)(106356001)(105586002)(55236004)(7416002)(39060400002)(186003)(81156014)(7736002)(53936002)(476003)(9686003)(386003)(55016002)(8676002)(61506002)(81166006)(5660300001)(6506007)(921003)(1121003)(969003)(989001)(999001)(1009001)(1019001); DIR:OUT; SFP:1102; SCL:1; SRVR:DB6PR0801MB1335; H:localhost.localdomain; FPR:; SPF:None; PTR:InfoNoRecords; MX:1; A:1; LANG:en; Received-SPF: None (protection.outlook.com: virtuozzo.com does not designate permitted sender hosts) X-Microsoft-Exchange-Diagnostics: =?utf-8?q?1=3BDB6PR0801MB1335=3B23=3ATe?= =?utf-8?q?ZHhQNizYo+l1YLkrLhoUmBsj6bK0QxZtGrDMLO4N0TXbL0ToJbR/A4Rf?= =?utf-8?q?IHEKwuNv7ZlzcfCCCPoGf/bZIogeZAJw0kG3qQmdqDFZYlBnA27xhi6B?= =?utf-8?q?kmlAaA5b1hgXVqt8ZLonjkWbuTMLqH5WQYv5rQFma2+LTaFL80jq3YWH?= =?utf-8?q?NERjmTcjsB0vlj+wXzT8EQryQREbNVBCiZU5IAvoD35seIjHpBZryvtU?= =?utf-8?q?aYr8hCxBKtEbnRXw7LzKJzPUk2CLJR7TKip3vml78dtK/nncno3fdH2Z?= =?utf-8?q?rPUM7Jnp3FkPbwHdWELgRKeHgFgNrYt/ESpVGRew3xb1GC5x+jx2tKf2?= =?utf-8?q?C8KF1ywqK1HT9HnjDNY30ahaHNDxqXQuEuuGausMg/0neWU0GvSAwwfL?= =?utf-8?q?ChddhECBOmidGpo4MEx1VtxuYTeKMWNZeBo4t/0ra0uCMIm7ecyMaasl?= =?utf-8?q?twZYamZtxwLZcykOHr/g1q6tSG9Qe86pb+i3Hp84qSF4Q2ZbmoOT5EBd?= =?utf-8?q?B7hv6iTDNMJt5YvFrNdnrT/kQYHXrRT6CDhs0kYApjvTBTiA9Sw2kcqV?= =?utf-8?q?rzZR01rWfXsIWklO19I07FP8yLhAtB+a4IKRoX+DySoR2FgbrAQmclRN?= =?utf-8?q?cQhQ5+EFRELztCTU7UzbO4LOe6sCZ/M2oIydB34ADlrxbLed5euehrxl?= =?utf-8?q?dN8Z+SQjt4wWaNWx/APgcjMp5+a+1e5C5vbl9XhLOY0oGRp4MQ2zmTBn?= =?utf-8?q?LRaAPDDfWlUwFWwaEIqdmBhLgfzjNyunWSgX1TcApMLeVknjr9PytAxY?= =?utf-8?q?XadDuJ9uv8xLqy6YNEsTK3QdhCzWVhRUh/HENOmo0qdhvOTDefpTqdif?= =?utf-8?q?iB3KIO7NlqvXDtyFv9ZuLBEvkNT7CXl+XpSrEc9uvl0ZKnB9aGnQLW14?= =?utf-8?q?qezBJsUn2e3UZUma35MbB9918iiRWe88lwBgGnvJ2lZxsJ1D8auG2Row?= =?utf-8?q?XsLuwMzdb84op+5j09K7/nPJ1WAIOh6puqPQG4iJ+P95ZUAJYG92H3fO?= =?utf-8?q?17CYlXTojwDbshc7MaJHrgMZPwSfeODQaXS85nojtD9ySEke+1UyIs2O?= =?utf-8?q?Y2ZDh0zzCeWO9rXrI+7aqloIi+oBvh4XBPK+RYgUmjuC74n7BFxt8diO?= =?utf-8?q?IiMZvxyyfSAk2Muhacm2+sWk/VIzRgkYaqN/auH7xMKFciK3keZn/WSK?= =?utf-8?q?50DSPg9HVaU3SenJ08RA/kPZ7cR/a7XYaF9ScAsJXWGpFDsPYfkelGn3?= =?utf-8?q?Gm1aD9JrRB56vbnZayN2Z6UklmHV32FBQZ78y84cR+uWIEWwoVdeEWmZ?= =?utf-8?q?DCDodcr8Kn0uOEvAhlpSlPmmDOg13Od6wUV6bx3UpfENYPG8dEfPMYym?= =?utf-8?q?5+QEhMBeaGsbMIRwuVRp5SLDgBvTTOkskcfbljIkKtLF4gqQcU7NETP7?= =?utf-8?q?PyyzpZ+Zvel2tYyWrksvP/hbjSJzCnpB/13REVwxCbBnHvzGE=3D?= X-Microsoft-Antispam-Message-Info: zpEwnJn5q2GAHnGjV/spmI58UehusE25X6L8jid5WV7zuLDcRaGHpTd7fNdjtDjtUnClVt7hl96Q9/VodxasGw/g3pKzUOGC3m0ScH2gFQAu4e3+DzgXqfs8BhsxSf1TUNmX1Lxy6RxVORXOub6xOBqt09aoPRfScTJrfyC7gkYQWMY90smOTKbQGWhCSQnw X-Microsoft-Exchange-Diagnostics: 1; DB6PR0801MB1335; 6:9m719ycKsg20LSHxhqspvRxgK56Hl894aZO/o/5mVLztmAutoV1Wt4VY4X6NltoBVBJj1SkcsoKth0MKtxQAKj+YRCSpe0iYJK0Six8BcaMy+pMvTh+0w6fSCad5XFNdq8v3PJJTK+xOBvq333pTXEFZwLPt2q+g36NKzqKu8jH7RQgPXEDtp9kvS1WH1IigH3KAvEw5Apr7wMk2urX2e1ttpdMLiC7pTfYMZ7VWGHEpg0hcWf/4c5EJforPi3482u0iCovF82ReUD5G7k3082LPviKg0gi0WR+PpxgbrSp31Wo8GW7X99N/+AmCPNOaq90I1jNLgK199UVagBpp/v6IDIYkz3In+gGIo4QhXf3z/NpKGy1pY5sz1zluAMqd96Mv4+sGwXN+ciqcqY3O+8qvjI3TtJghWFNzpvoeLvEpHvffH4AUsnA5+gfOamtEQHtKotJdvGEDPpK2Jr0IBg==; 5:TEf9v6cLrEaZbgLMoI7YVEFwP9WXLHauWOlYfLiG/DRBMvU7PNS+E9C9wojGkTFWOajsom6orby7WegjEUJk5Q59/q1+bj9K39JBrnvtj54ZzoZ0tI1+CSJ41Sqvah94pvT9RGezML355OZ9s2KibEXE08KDFsvoXejvhfBtJsY=; 24:WbIF70hAsMBumsuY55BwuwwYGAfez2FTrxa0jv5zCTRXf3kiCwyYKSEkMW9JQPx9zQR1jvQ1S9ZnZ+K/KL+G/OFGmEG6wacVK8KHVQ9JPzM= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; DB6PR0801MB1335; 7:edXuK02cZH2E+zwfEZMfdnX2C2f4arjhTIVU6sacEh3Sl7yu6GhUoyfVPicdSOV4ejpKxJGECGifXTdeOBXt5ixE0BdalnOX9xIZ3NS32wyVTu8+8YtPvTMAEFePjfDWqvv1eKgVshriknM5tFZq5apqQkaeza459flQSza6h0WlOZsINRYCNzUGsLenOnvOHHn88jkPO/y0J0od7FV39DVYoj0A3qJ+RcFeDXi9PkjJF5+VICwru+Eq26ZyTDvh; 20:+NLZTDO6owUsJvfUZJDvW5Hj8gBHuN6lkNvG95A5CIVeBlv8UQXWHKMUINOhiVFl6ItvlCYxrwc1YuJ48vAFB2NG93SzRilHa8sGV0uIWxWDzW/S3vFg5Xt1YEZLs3WSe0g+fzRO+vBru0HdGoM6ECIEXZgjxxoNBZ7/UdKn7YY= X-OriginatorOrg: virtuozzo.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 27 Mar 2018 15:02:06.6911 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 0a4a85af-b251-4def-6471-08d593f3b5b5 X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 0bc7f26d-0264-416e-a6fc-8352af79c58f X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB6PR0801MB1335 Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org All pernet_operations are reviewed and converted, hooray! Reflect this in core code: setup_net() and cleanup_net() will take down_read() always. Signed-off-by: Kirill Tkhai --- net/core/net_namespace.c | 43 ++++++------------------------------------- 1 file changed, 6 insertions(+), 37 deletions(-) diff --git a/net/core/net_namespace.c b/net/core/net_namespace.c index 95ba2c53bd9a..0f614523a13f 100644 --- a/net/core/net_namespace.c +++ b/net/core/net_namespace.c @@ -40,9 +40,8 @@ struct net init_net = { EXPORT_SYMBOL(init_net); static bool init_net_initialized; -static unsigned nr_sync_pernet_ops; /* - * net_sem: protects: pernet_list, net_generic_ids, nr_sync_pernet_ops, + * net_sem: protects: pernet_list, net_generic_ids, * init_net_initialized and first_device pointer. */ DECLARE_RWSEM(net_sem); @@ -406,7 +405,6 @@ struct net *copy_net_ns(unsigned long flags, { struct ucounts *ucounts; struct net *net; - unsigned write; int rv; if (!(flags & CLONE_NEWNET)) @@ -424,25 +422,14 @@ struct net *copy_net_ns(unsigned long flags, refcount_set(&net->passive, 1); net->ucounts = ucounts; get_user_ns(user_ns); -again: - write = READ_ONCE(nr_sync_pernet_ops); - if (write) - rv = down_write_killable(&net_sem); - else - rv = down_read_killable(&net_sem); + + rv = down_read_killable(&net_sem); if (rv < 0) goto put_userns; - if (!write && unlikely(READ_ONCE(nr_sync_pernet_ops))) { - up_read(&net_sem); - goto again; - } rv = setup_net(net, user_ns); - if (write) - up_write(&net_sem); - else - up_read(&net_sem); + up_read(&net_sem); if (rv < 0) { put_userns: @@ -490,21 +477,11 @@ static void cleanup_net(struct work_struct *work) struct net *net, *tmp, *last; struct llist_node *net_kill_list; LIST_HEAD(net_exit_list); - unsigned write; /* Atomically snapshot the list of namespaces to cleanup */ net_kill_list = llist_del_all(&cleanup_list); -again: - write = READ_ONCE(nr_sync_pernet_ops); - if (write) - down_write(&net_sem); - else - down_read(&net_sem); - if (!write && unlikely(READ_ONCE(nr_sync_pernet_ops))) { - up_read(&net_sem); - goto again; - } + down_read(&net_sem); /* Don't let anyone else find us. */ rtnl_lock(); @@ -543,10 +520,7 @@ static void cleanup_net(struct work_struct *work) list_for_each_entry_reverse(ops, &pernet_list, list) ops_free_list(ops, &net_exit_list); - if (write) - up_write(&net_sem); - else - up_read(&net_sem); + up_read(&net_sem); /* Ensure there are no outstanding rcu callbacks using this * network namespace. @@ -1006,9 +980,6 @@ static int register_pernet_operations(struct list_head *list, rcu_barrier(); if (ops->id) ida_remove(&net_generic_ids, *ops->id); - } else if (!ops->async) { - pr_info_once("Pernet operations %ps are sync.\n", ops); - nr_sync_pernet_ops++; } return error; @@ -1016,8 +987,6 @@ static int register_pernet_operations(struct list_head *list, static void unregister_pernet_operations(struct pernet_operations *ops) { - if (!ops->async) - BUG_ON(nr_sync_pernet_ops-- == 0); __unregister_pernet_operations(ops); rcu_barrier(); if (ops->id)