From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1756017AbdKNRZ5 (ORCPT ); Tue, 14 Nov 2017 12:25:57 -0500 Received: from mail-eopbgr10123.outbound.protection.outlook.com ([40.107.1.123]:26048 "EHLO EUR02-HE1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1754324AbdKNRZu (ORCPT ); Tue, 14 Nov 2017 12:25:50 -0500 Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=ktkhai@virtuozzo.com; Subject: Re: [PATCH] net: Convert net_mutex into rw_semaphore and down read it on net->init/->exit To: Eric Dumazet 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, avagin@virtuozzo.com, gorcunov@virtuozzo.com References: <151066759055.14465.9783879083192000862.stgit@localhost.localdomain> <1510679257.2849.170.camel@edumazet-glaptop3.roam.corp.google.com> From: Kirill Tkhai Message-ID: Date: Tue, 14 Nov 2017 20:25:41 +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: <1510679257.2849.170.camel@edumazet-glaptop3.roam.corp.google.com> Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: 7bit X-Originating-IP: [195.214.232.6] X-ClientProxiedBy: AM5P194CA0018.EURP194.PROD.OUTLOOK.COM (2603:10a6:203:8f::28) To HE1PR0801MB1338.eurprd08.prod.outlook.com (2603:10a6:3:39::28) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 351ed50c-e5d5-4888-798d-08d52b84bcc2 X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:(22001)(4534020)(4602075)(4627115)(201703031133081)(201702281549075)(2017052603199);SRVR:HE1PR0801MB1338; X-Microsoft-Exchange-Diagnostics: 1;HE1PR0801MB1338;3:IMhKVnZ9Jrnawx/0wRiZAq1GNzsPHMtYKZMUUR0UxcjRjAv3NYjhwL0FHFPyZZeOmsS6TZQkxGieS/+jAxem4Of7YhIJRwjx31DjR+ZxYDxREX4aS20Hmnq2y4sGhBpsfck4Ifd75b8ZjL9IpgoQ+3QpNLESiHvuazVa1i9PjOAY5SmllM4+IU42Od6kFAH6uY7iYuBjPIHgaLbuhZI16Wmo08QS0UEph0fGlX58v3vkSykbVYuI2rihhy8bzMyE;25:t0W2PIoJQ4pFk8JYpJWqILDuM+wPbZGyuKuXNxaXd8bU/YcmBtrEQzfOJ4L1MKWBfRfmiLIZ2OTbyvpEsD8xLvSHjSUZ8nRG7uSG5n4dMxGD9SNGo/5iZl97hqnsIZKPoxcxTMowElcEkPlrqvezCgHg6VYS4ZQ36ycO4bNNI7kiI9psUcJjMNAuuzQj77+mwoL+7ZksR5x0Z/DF+Jk8WH6DKs8fFIlO22c8iCV5NhnpJCVbhmRX7O7FauivzQWBMJODyT0Fa66iPwN7XernaRijKHTcwYwpsbV5fWJGRhpF5+6ZtrBcXoJkHnDs2iURkGGi0RgJPmluTGbvYFQX9g==;31:B7/iL01oUfml7IE58vmAc1N88ttvDyWLChH/Y6yZgnz9Hj8uxiNQ4maliYc6ZjWTkV5BfAo17NWmqHUtR7XJP55wCC95IWExEVK5pYq4I97zFmC82fi1ITfMbsycrQ3drFT34VfrsFpRDH3jzVl8pKBt3lIBBkNdZ6eHawmEKbA1+7QCA74AvaphuvzhXDaq+JV3JPAZ37FggTR7/1hDZLGhh8uIJ3L3QVxh2j4d5ZM= X-MS-TrafficTypeDiagnostic: HE1PR0801MB1338: X-Microsoft-Exchange-Diagnostics: 1;HE1PR0801MB1338;20:EwMBgXQaf5tgMAyIkXE/kLSqzyXHcEuDGGwEN5K6IlIiBxoVGl5VsX9F1UbRVcdWclnKwpwk3U2jyM2WqYtEVZoOG+TUz4aEqFVDqLGDD1bCS3PrgdiTTKK8bRi1VFwwdtg4ri4pm+Hi3DKBqx0I92m2LsUFEEKjqVu8vJ7jl5aP3Mu5OdKK993kQYgm82O8Z0t+xRUhPqJtIZQ6cyUJ3QAIRG/4aDfHoRW8XjRe+3je2WVZJv4Iqfc9HFhe8fNEa5cUzixKr5kwfElAiBv8DGJgS0uiXy6ZdGAsasJY6Amphw1fq0ZyHj5QlOHJtdW40RJAGI2jE+jugptYQRKLLuQlEMy1JRiQcMGhdpKzMwauiZY7/iJWDc7gYAk63FNSXZuNsERxL44yG6W9OmoNYPhhT/U5SuJ+d3B3U96bIsU=;4:LUF73gedXi/yY/AL9NGphbdusoSB/7hFmqEWIE880PikKkLfJkz/fx2H1ub947ss62KNukosqLLAfjCfnchRQB4Vh60XsvFP1gJrFCN+OXQtz6+0Z4sZIWsCCcu4F7x4zRr1yOa8JGXreSJjacSQthgxXBXqdhXzIdh7YRkSDIW6+LuzeTlZsR+ITibRlqZ3RIaz9dj5XRFxVf6ZD06yP/jNjxTHDE5wqcjjizFMmH4Zv4sBiQWOiJrDKYMGAeXp0CsWQijc7byFyF+qdvfTlA== X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(100000700101)(100105000095)(100000701101)(100105300095)(100000702101)(100105100095)(6040450)(2401047)(8121501046)(5005006)(3002001)(10201501046)(3231022)(100000703101)(100105400095)(93006095)(93001095)(6041248)(20161123562025)(20161123560025)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(20161123558100)(20161123555025)(20161123564025)(6072148)(201708071742011)(100000704101)(100105200095)(100000705101)(100105500095);SRVR:HE1PR0801MB1338;BCL:0;PCL:0;RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095);SRVR:HE1PR0801MB1338; X-Forefront-PRVS: 04916EA04C X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10019020)(6049001)(6009001)(346002)(376002)(199003)(377424004)(54094003)(189002)(24454002)(478600001)(305945005)(101416001)(31696002)(86362001)(64126003)(316002)(105586002)(50986999)(76176999)(106356001)(189998001)(107886003)(47776003)(39060400002)(31686004)(66066001)(7736002)(58126008)(7416002)(36756003)(2906002)(77096006)(6486002)(65956001)(65806001)(53936002)(50466002)(16576012)(54356999)(68736007)(16526018)(4326008)(3846002)(229853002)(6246003)(5660300001)(6116002)(65826007)(230700001)(2950100002)(53546010)(6916009)(97736004)(33646002)(25786009)(83506002)(81166006)(8936002)(81156014)(8676002)(23676003)(4001150100001);DIR:OUT;SFP:1102;SCL:1;SRVR:HE1PR0801MB1338;H:[172.16.25.196];FPR:;SPF:None;PTR:InfoNoRecords;A:1;MX:1;LANG:en; X-Microsoft-Exchange-Diagnostics: =?utf-8?B?MTtIRTFQUjA4MDFNQjEzMzg7MjM6dDVEN200eXdwbFJTSGxDOVBUakZiVkw5?= =?utf-8?B?VjdMU01CUit6cm9HeFI0YW4xWVN5WEF6NG5pVjhKUVRoNmh2Q2JVdUtDUk8w?= =?utf-8?B?M3NTRUVVK3FFNjRuRm9pc0pqdVVDc0dLaUZDcm1tb0hiWTBXN241bnpZVEJa?= =?utf-8?B?bHFVK0pHeCtBdloxSTlDaXh5T3hLOVc3S3ZkM3Q4YXg1ZEY4RzJpajVOS1pC?= =?utf-8?B?eWVkcUI1QzlhZjIxU1NoMkFqVTBYQlpta0VhT3VZTmZ3cGhzM2ZIR1pnN1Ux?= =?utf-8?B?dlgwTzlQQlpYblZ6R2FyUjhjWFpqY0pKcDRBL0k4NW9XVzhaVjBMSmtZYXFX?= =?utf-8?B?emltOHVLVlJRSFloUXpjeGw0MnBPSjI3bWhRNmRIQVM4R0NvK09zUldNUlhF?= =?utf-8?B?RHpkdkRvK1BQVDF4SkowY2lOc09FajJWZlVSLzFoS3ZGTXZnTlFCNHg2aXoy?= =?utf-8?B?RlZmVHF6N3NoOVlNVXRMVlFZbEdrTHNFcWNXbzhSTDk2VHJETG1lQ0JwajRZ?= =?utf-8?B?b1IwNlBIOFZ0M2NzdS9QN3FQcUlKYVRwQUZIRmVmODJQalhPdkR6YXppMmtX?= =?utf-8?B?cU5ZZE1NVVZPWlNSL2twUGRGQVYxNjBnL0NlK1Zwai8vek9yc1FlNlJjeUhm?= =?utf-8?B?U3hQTTAwM0w1RWFyOUlacVp4TWVpSGlBaUMzN0FVT250dGh2dzIzeDlLWWtz?= =?utf-8?B?L2U1d2JkcWU4MEtETHcyRTlMTEw5dS82T1FDRFFkMW5LRUJtaDVuWVFmK0Nr?= =?utf-8?B?K3pvYlprT3JZQnNBNkswak9IUDRoM0U3c0lZb0lTcWwvT3R0TU9iSHBmOUU3?= =?utf-8?B?VGN4WkE0QnFWYXRNYTRFc2hhTXpVVHVOZFVCQTFOSmVIV0FDcjREQjhwK29Q?= =?utf-8?B?WmVVaUNUb3MyWDhjYTlrdGdxa2VVL2tyU1R2SWpYY0JSK2ZqQXhLcm5EZE1h?= =?utf-8?B?aDllS2QreWozOERZSE9kc3A5WHFzdzllQVpxWGhnTjBKcCs5YnNkSFhLWFZs?= =?utf-8?B?QkhmbHdRRFFTNHRXN2lGRVFzdHZ2dFJGNEFxOWRybWs0WFpsb3ZCK1VZRUs1?= =?utf-8?B?T1lIY3ljckdmUmNVUE0zanFubnAvWmUzUWtscG5raW5JNjY2L3dNcHcxakJj?= =?utf-8?B?OW9kd0lUSzV2cE9nTWZUcm9yZVRWK3pjSWgrU1pMSnRVdGZFY05Ja0Zjakx3?= =?utf-8?B?ZTZNYmhYY05BUkVzdnl4WEJGSDUwakcvNTFmYnFjbHlnRzlJK3l6cy9LK1E3?= =?utf-8?B?S2drWktzVExhVVdiNytZallERnF1K3F0Z1hFTzlSay8vcWh4aGpRYzJiL0ZJ?= =?utf-8?B?YzZnM1ZZejBkY3Job2NPUWMxejMzRzZVa0h3Wlpzek5pY1FjcEpIczZtM3M5?= =?utf-8?B?WVZoRW5JN0lTUXpjUWdpclNJTnBmWVR0T2FxYUd1Z2hhckhmT2pNWVRQejdG?= =?utf-8?B?dktTNjRsNVB5ZmNvMTFmK2VNdkhMUVBFVnozcVZVWEhzR3pmTjFyUzNCTlZu?= =?utf-8?B?MC8vTUU5RDlyWCsxQ0NnNHRSejRVU254VGpHUHM1RDJ5ejU0V3hmRm5GSkZz?= =?utf-8?B?NXNNNVp1M3Uyc2xEQ0dSK3p0UEJ4aEE3NXB6aEpPdEpSRXN1amg0VGhqVzNZ?= =?utf-8?B?aHVTK2h5MndsNk5xcVFMSnRUcGlKWUIyelVkZGxOOXQxSksxK3R3YUFLajF0?= =?utf-8?B?aEltRmlwcSs4am0ySmQ1VHpURUJIR2dOZTBDUmRLY2R4ME12cXQwK2lyOGRl?= =?utf-8?B?TzJYT2hkd29icTdUYWR1c0VGWVFJSjJiTUZvb0wycnZ2Qlo4UU9PUlZENS9w?= =?utf-8?B?UDdNd3N3SE5rWWdYRk9HS0JvczBkTm5RM2xKY3huMnJtNDkyV1YrSTQ1Tksv?= =?utf-8?B?UEhWbTFCV1BzNyszV2J2UzlsN0UrektpaUlxRWdRNGZkL05SY3dMSFdWajNX?= =?utf-8?Q?BEAsKzzMkfrrHK+vMK1FCxyMaqsX9zKo=3D?= X-Microsoft-Exchange-Diagnostics: 1;HE1PR0801MB1338;6:8h2qXd0BA6Cs6wN2Km3Ek4MScxxDaMeJTzNEPX+g9L0yoV/p3ol0bkRaxULq9l9NsuPE6bbhGN7NHJ52qaSQf9Eum2KqBOYLmFkB8tWpJxwgiNezmnq1ZnBNkbf7SPFw5OSNYAUdMMlnf2GvaskWN4Gjr4UoRJ1uzFmE8j8szyVXbZ24IUnFk9WYmlPiwvR+d5UMNIjMebSPZQOrj5+JjSdznMeZUoE2Dwx5Q3I4tdwEIJxmKbip8+Ec2i8FedsOZ6KOFARO00eWA5prNEq5pnpIbDktV7M09ZOsJQfsco0ZGbwwTe4cffoQQyJotJqPbcNheDfwhNyycZgjTCHb2KzNbG1T+1OfKUxSorc60d8=;5:KP8MA4Xd573GmbyG3yk+zXVz6zYgj4HpnTD7SpooTonmq0jRn400wmZ37lYIN2vcjoRgf+FXWrtacTv0B8ZUtefFt0SsQDftm2DZ76CMvn5bnpop8QiVQnbwXQSmKewhHV5iifnYwx62ATibuxygPo380lCkw/HgrUdl3j4ZVz0=;24:jWC+V+w1bG6iKuS8j4K1+HYJPXoxCaFlvyvN5Sy4FEOU8JNBFuRrlJj1u+U+deQpGVjXF/OmVOYk1qxWXlVR8kpikCF3ZW+TlOrZ0q8f0SM=;7:evSK5V8CFAr85r66sLg0E6wZLRUDntRTx7lncqII6YBAuQ5nPraJeTGpaACVFCQK3aGU+ChSjkpCNcFSvJ9YJIVYeSUiiKTVsmStZQNR+7pbF68pbBAiewc82LqP5KOcv/2p76vaXyjeWlBLyg3NiS57KNuBBiCRr2LjF5U4LaAByj/1tVDuBtOKKFUfDxU231/mOsmpmX247fsrpUiwmc+gjfadq6nUFi2JuaC8M+QpCfjk2bAjiZmFl++USlwv SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1;HE1PR0801MB1338;20:f01YkGsflnK2vpY1klPDhRIDdnIvak7zKpgaWx3z3KePMmABiI4Ya9GqcOg67BrLGHSdsweldXTnwUOkjacKxQZiaDRhrJ7JsGCOaIJJOxOGvWVgOyunNHEUJHNRaJUM5MQYJHT78bel98shM/NscmGO3uIrz+BFLBD0DWsjyMc= X-OriginatorOrg: virtuozzo.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 14 Nov 2017 17:25:42.4863 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 351ed50c-e5d5-4888-798d-08d52b84bcc2 X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 0bc7f26d-0264-416e-a6fc-8352af79c58f X-MS-Exchange-Transport-CrossTenantHeadersStamped: HE1PR0801MB1338 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 14.11.2017 20:07, Eric Dumazet wrote: > On Tue, 2017-11-14 at 16:53 +0300, Kirill Tkhai wrote: >> Curently mutex is used to protect pernet operations list. It makes >> cleanup_net() to execute ->exit methods of the same operations set, >> which was used on the time of ->init, even after net namespace is >> unlinked from net_namespace_list. >> > ... > >> The solution is to convert net_mutex to the rw_semaphore. Then, >> pernet_operations::init/::exit methods, modifying the net-related data, >> will require down_read() locking only, while down_write() will be used >> for changing pernet_list. >> > ... > >> This patch requires commit 76f8507f7a64 "locking/rwsem: Add down_read_killable()" >> from Linus tree (not in net-next yet). > > > Looks great, thanks for doing this. > > I wonder if the down_read_killable() is really needed, maybe a > down_read() would not be blocking the thread too long after this change. I'm afraid there are spin_unlock() or similar actions leading to preempt_enable(), which are made under the mutex/new rw_sem. They may be preempted and leave a cpu for some time. So the possibility to break the wait may be useful in some way...