From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751269AbdEBRdL (ORCPT ); Tue, 2 May 2017 13:33:11 -0400 Received: from mail-he1eur01on0137.outbound.protection.outlook.com ([104.47.0.137]:26299 "EHLO EUR01-HE1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1750770AbdEBRdI (ORCPT ); Tue, 2 May 2017 13:33:08 -0400 Authentication-Results: chromium.org; dkim=none (message not signed) header.d=none;chromium.org; dmarc=none action=none header.from=virtuozzo.com; Subject: Re: [PATCH 2/2] pid_ns: Introduce ioctl to set vector of ns_last_pid's on ns hierarhy To: Oleg Nesterov References: <149245014695.17600.12640895883798122726.stgit@localhost.localdomain> <149245057248.17600.1341652606136269734.stgit@localhost.localdomain> <20170426155352.GA12131@redhat.com> <785e1986-da03-72aa-06c0-234ed2dbc0fd@virtuozzo.com> <20170427161255.GA19350@redhat.com> <20170427162254.GB19579@redhat.com> <43249645-f621-511e-dfa8-7bd78c547d2c@virtuozzo.com> <20170502163324.GA25036@redhat.com> CC: , , , , , , , , , , , , , , From: Kirill Tkhai Message-ID: Date: Tue, 2 May 2017 20:33:00 +0300 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.8.0 MIME-Version: 1.0 In-Reply-To: <20170502163324.GA25036@redhat.com> Content-Type: text/plain; charset="windows-1252" Content-Transfer-Encoding: 7bit X-Originating-IP: [195.214.232.6] X-ClientProxiedBy: AM5PR0101CA0001.eurprd01.prod.exchangelabs.com (10.169.240.11) To DB6PR0802MB2280.eurprd08.prod.outlook.com (10.172.228.8) X-MS-Office365-Filtering-Correlation-Id: ada5c33b-04ac-483d-3cfc-08d4918149ca X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:(22001)(201703131423075)(201703031133081);SRVR:DB6PR0802MB2280; X-Microsoft-Exchange-Diagnostics: 1;DB6PR0802MB2280;3:gZtw8LRrKgUluYgVp0PCMuECPtZ8rEAERMIWFJbJUajj0SFMf7eKiXreoYSzPqYSaL3EYjyltw0gRoRzLSylLhAOSBfdNP6ZruIF2Hwq5Kwy4up08ZKb3OYuzKSKszhZZOcwQlJtgJ5dGm9HZa1MciwqMpB3CeKPZrH23/Ywxq1vRzxltCNxbRbmYJho8TnvurIWU0z3ZFzWKG/HNL4YJNmlC3Vjm6shsvZcLu6RzU5gm0auj20Kr5GH6itpLgX9/6Og6I1wgFixKmlhE3fl7vVi7mjd4YjzrViq4icUYQXUVsY8uAZ5dEWwV5IgzPdsj/4SGABNWIuLltpFwjcQ1Q==;25:Tm0j+OD2wjjAI8EeLy3KLNDDttgIsxCgpBxBBzIMnkz9WOI46Szbv9OK8KmDw8Wo7JNLyV/gIZOeYpEG8PXcy7lxQ4FD2sYlC/H9hAIwjrx2AnmW9rjggX24liljnUi5qe0sNqKBRsPE46Xmv/aIzGxf4pv3Oj4trbQ3FSCykoE0B44OKiN5oQGLhMm7YjySrFdulMiK17nPNH9bB6nb4qBBWm02KDLqzJcll0xyAParhh0saIhgAQE2sO05xc1VccKLduWrD3S3Yn6LKi9offwvphJ0T6a6sPH/PcNziTfglN7dDl71C7kdasVih0MH1uUANSOJvoytcPk2Xl41jS53CJ+xTySsJggx46XJoMEJf0+2Larewiu3492+GejRAj3SdDcwcLMeg1UdHFvepbSc3Y04ujT4p98ORYNPDJkZCC/CBMssRpXFManKC6sa X-Microsoft-Exchange-Diagnostics: 1;DB6PR0802MB2280;31:o4j2YDSlUjrPIcMgO0euJfPRqwIJLtaue9EosiMvO/lu/h2Y+wDccOdu03sLFTWBneJBfCOVhPkMWT2vis2jBKZEHT9cD39g9R7BVWObRuUFn6YgxdBJb14RnvslvsQ+1r5gw63PtD3dkuf57A5UuDPjZeQYrHA2K1opKqjJaM2iuS+bkElXQUpJZDRSW6tRrtOTOrX/s++jlMIvBHdRSjF91n/SoAhwrcXMSvPKi6g=;20:o8rkoP4OqrPoN9eC5zscCcYvtZ9ffbG9Pl5yrQe71ovOyObF041eQzoyB+bNOXlGesGKhdLt31frMBobUGZcl1ImZo+S3zQKQtLM7sIKZUl7y2v6ZbtDXqhbs/KOyJV1Byu7vq/8/j6QgY/8hfsx6FJLKCM8xddzwPALsalKyp4k3f1JPSXxBVKshR4tI5XgrMGEwoDg8detLqFIftKd/pyM6doweahshe8h/C/GJZdYE9iI/oxK3v7eL7CIoDMVeglNpmhc1gvNWUodOO35fvCs+Gbhp5U/JXMuAvxDaQeQrsfk3fzScpQ1NM8APjX87U03SaAD32sFMnDL0SPl84Y+Wi8hAvflmDCT4jflYwrh77bUKbQdmu3ZSSMfNOHGgijxqCCHcnnyIqioiKxc0L6Xck0teIvoMNdJR2e42fY= X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(6040450)(601004)(2401047)(8121501046)(5005006)(93006095)(93001095)(3002001)(10201501046)(6041248)(20161123558100)(20161123562025)(20161123560025)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(20161123555025)(20161123564025)(6072148);SRVR:DB6PR0802MB2280;BCL:0;PCL:0;RULEID:;SRVR:DB6PR0802MB2280; X-Microsoft-Exchange-Diagnostics: 1;DB6PR0802MB2280;4:DQvQXzcWDyDOZ/aOGg1xQhmjCDKLPLwfdWkcQlBzjM8qj6NVm878Z9mTqxXeIEZfMseI/YKd9kx2plE4Tqu6jOAG2LireP1PlNn3UMeM4vxNRKmKTxd3yAICU5Blf5HqQeaFfeY6SA57fBRgGO4ADmZKi1ATRb7KPCL1ZVwc6MjuNmwNASIMfNWJyHOZj3ewt9Wt9BZr+tlSag+7Ngyghjx1Vn2cdJP2jJ23XcNVkBpH2c6stXYHr+nL3dEctpm8s0RP/PloX2i0LvdMgzXasiJIwvtW+vJKXf6HcFrYO2ECysTUH22ZFb1VPLCSbfGTE5Y/Ks2SQZvmb7BnaXme/OrfFtbJrOfPxhjYB8zAXqIBg20eGraJK2JtNquIXz9tsTLdG1n/nl0Hezds1sUuqIyaOieRA4c5/NZY63S7EOT3EhY9rSPqq/plJSgJGRn9U6B7ySn5ykr84k9HiskUDBxDQeCm02EjNTD93KE29jiPH+e/j6VrE/EOEpOP3amxRFs91z6+8iUfBh7ocBr/YNQh2hxEgdSiVnd4rbSbLlRO6gB9u7qoS+I0d6k7MbULd5b6vvETQu/qVn9N0Po0PQRYwZaK6RoWICIutL2z5cjKwMqjnkqWViX58IzIL7H439sy56H8rkAQZrKxYNyTklvKAEu6C11AmI/f1i296Jdxc58W1udMU6oM4YkaAftbLPPuHINBEIj8QPFjW0lWhNYFiwuYpoBGWXjlflOpBAmuLkntyfX+5WBinrYlBOb5OGhY1a55GgXVktI8cWdNdYXIFaoqfK9gjmY8ds32+nk= X-Forefront-PRVS: 02951C14DC X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10019020)(4630300001)(6049001)(6009001)(39400400002)(39840400002)(39410400002)(39450400003)(24454002)(47776003)(5660300001)(50466002)(65956001)(66066001)(93886004)(2906002)(65806001)(6116002)(83506001)(3846002)(31686004)(64126003)(23746002)(229853002)(6246003)(42186005)(478600001)(38730400002)(110136004)(6916009)(50986999)(33646002)(31696002)(54356999)(53936002)(90366009)(4326008)(76176999)(305945005)(36756003)(230700001)(54906002)(189998001)(6486002)(8676002)(25786009)(53546009)(4001350100001)(7736002)(81166006)(77096006)(86362001)(2950100002);DIR:OUT;SFP:1102;SCL:1;SRVR:DB6PR0802MB2280;H:[172.16.25.137];FPR:;SPF:None;MLV:sfv;LANG:en; X-Microsoft-Exchange-Diagnostics: =?Windows-1252?Q?1;DB6PR0802MB2280;23:uk5Kx1y2irEcHFgS6qc3uKFHpW6FK/v3g8G?= =?Windows-1252?Q?InYHtunqr9GpYagc22i7b7n1gFhFS3jLufJRp3Jhm9GiSimDNeAbzYOd?= =?Windows-1252?Q?hYFk47fBgm03Rgud5kRSbyoJooJRq7qwoTRiqCTG3DgwXgYZdJBjiPoI?= =?Windows-1252?Q?QaAC6cNWD6mi7TxkThtBe3lhMwA25jTGTOkDc91oyoGxp6GyXGj9Hgr9?= =?Windows-1252?Q?zm3uxze3Q1vPoRdJ41VC9f7mM5WGniKOgcGObHbjyHb0vGj6POP7hFMe?= =?Windows-1252?Q?jlAwtX4zFUSRmqM5pnVmFUbVmUMtl6iqOulgEGsEuUyIrVraYYWZBx5V?= =?Windows-1252?Q?rRb2exfsQDCrxNpvyBavLQqYSWc8FimI2Nxo0YKd8i8e2TJOCBFm7wCu?= =?Windows-1252?Q?rFJ5i7LzF1BF+goUI+22Ygp1I/eDx14hATQY7Ul7aNd224OBteK7Jkhb?= =?Windows-1252?Q?NLY7I51qtx4w1YWFjdyZ32FChqmZzEvyq5ftWrAA1EAq6nJoAjivx6FV?= =?Windows-1252?Q?1VUQ48HSPDoFwxBwhmDwU4dsz81CfwwRMEUuwAjuJ1JpbMsdvhHHH3Ie?= =?Windows-1252?Q?DqA2ysqJm7Z7SaIm8bXXgn4KIuxzKkZ+fOKEfg74MYjEP/dSGVuogY6a?= =?Windows-1252?Q?p90RdzValt3GpdjldD5Lj6+HjISuefx3EylkBq2gLRgUQbTEzai5VANF?= =?Windows-1252?Q?36Jitw4l3ei2dw7r+cSnrxnXEkJJsQvsl5urtY1sxBpbaqHldHsXFykH?= =?Windows-1252?Q?sbMbOOtxLHHzCl1ATZOhVeeEBVT6tAbtzkVSwWfNo6/E8URvm3h/WnCh?= =?Windows-1252?Q?rrIaF3DJQURzRjbk3/A1MGwwNvHkUm4G1PtfXi/ac4PU9t+g1nZz130H?= =?Windows-1252?Q?+axYLu7xiO2tMJIjMUkajJOOJ00T7ZgF/yAtQ7sWSR83JrhTcotcuU4Y?= =?Windows-1252?Q?LobsfGELFl7rmLc5x5jtY65PyYIXrXwWeOrMZHbn4T4nLeWOW7p/hVyW?= =?Windows-1252?Q?U2uL+IDuaHBg2A4MO29Y/x2RBYhc0AgsP1SEogsWyMoE1WaYLvn8iwTx?= =?Windows-1252?Q?06lA8chpiUnUZ3BYMapB4+7puQB3ZGrNy2/7e8WSHcQPlMj5kZxNRqlb?= =?Windows-1252?Q?iAbJuMEeiOalLbc+dgy6GUug9O5f6m0YdStBbL76/P+YaEuYHLzLx2gJ?= =?Windows-1252?Q?nFE0I1VbTV9+g2L/JOrf3nf7d+1hvFUgeLHZ29fKZr6K09UP2tr3QP6k?= =?Windows-1252?Q?x4aNJgP3+nEvsWDguZjpB/W1GnsSXEwNvxmIzLRBAWRHPT+n67Y5JDCD?= =?Windows-1252?Q?IeH8PY8/tAHuJhFsGsbx9sIf21lKe8tkkt13KpYaqCc3aj6qQ0cJwfXh?= =?Windows-1252?Q?w3sHrZj3PJ2oGt63BKiQnwIwD9hTNcHwJLw=3D=3D?= X-Microsoft-Exchange-Diagnostics: 1;DB6PR0802MB2280;6:QIFkOTMxMBJyFzKagpYzAoy6BLc7Tp+nyzRc0qyeUzB3qqggbtjl/mO01GUpmI4DoWu/K0vQ9dbRjcm19uwjlL5iTUhDrRHXbBy2ouc4MJQRhqmeWjmf/g5GTfox9kq2Dm8A6XgB5dnbj3mnec1BaWd19xcCU1tARqhMXNkQMaGCOX3zbJzLrVfGVHIQr8WJYteVVgF6C6VG5fLKsek8I5XDbDZIh6esgcEi0b1I/r2E6s4viFHIOn5D6eWISn3zCnZJqlbqATgTqLBhGCnA2Ii7lSMBOvOC0RRs00s1eTzYd6CxuHGrwLSCO1zzcCEXw533I/q8nzFvbYdTZfVG5M45SXclTolc4WTlZoDX4iskzC66FSsfl1EY27gKIDH9Jg1k7VDz3FR9edIPGS8blUYgNo0XgKa2v2INQgbq8ipf8/1Dp0REWy6z8yQRPvF9XxJhxYcjPBYl+orDpY12pHxCN/KxofT6VggnzIRkxzbq3FLKOIK9hHybaDGpMBmnldgjamQdJcK7VNAksE6ubQ==;5:5ygKA0/8zF9wWL+EmUAhbShWAhdEUo1W1fPcT+ilRbzlarV7kuLMj4dmVHzUx0bI1fpEQGoPTYvVm1w17WOCUfrSKr2KswjtHCGXWcYs7zIusk4uxBHNd9tHHSTslSsPbAI128RMGXAFf/qNyn6R+gtZW7GbN6ClmUoSUyywp9k=;24:BadJzbyR21ZO6ZjNP6fQDPEoyD5MUpY5hvZoKr9YjgzoNxRk3dCOLDZDliJC8ndAE/zrHBrLMX6gZiq36gceQlhFMu5dfjJaIoir3VOdZpg= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1;DB6PR0802MB2280;7:tp+nRgpE69wAya265DizmoBAhRf3T598UQYI6k0TuNmqTT9kXvjRgwrAmbMcKgpB7FdQTdlnvBOtwyx2/GqveEVGDrrsHTNJmOf/qIPG//rQjE2AiL72OFQO3kQOKXu+5T04amJX1xrK5TC6MM6cemo7YfXnJtCkrQU/iZ0eD7FtmfSsh7qqcErvIrrkMLSPCVaacDtnJSkvfp4IWID5NjoAsXj45Pm4PWSVlf29b6LKT6FqbTxxWk/Qz64+8EFITAo4A13dPGF0FbE+wkDWr3DQY3fiSzMqPbSZ4yhGhSgL0wjtJRwtcrQcLQ30JX9a4uojiglTZH9g7gYIKl17/A==;20:v07A18pNhawIPyl5aiKeLvuOgl6WchqEYIZqOPcoN1KqecwpnLzFHg0rhXzwzev0ygVwx9Wk67k58q3SZh9Kr8pWqh59QylUifpR7w3q0Hdh/77QOBEswyUMil2MI+i3NM2GbpMBBQWxbPeUWSIcFgoWbbUvo28L12kGm7L4V/g= X-OriginatorOrg: virtuozzo.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 02 May 2017 17:33:02.8131 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB6PR0802MB2280 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 02.05.2017 19:33, Oleg Nesterov wrote: > sorry for delay, vacation... > > On 04/28, Kirill Tkhai wrote: >> >> On 27.04.2017 19:22, Oleg Nesterov wrote: >>> >>> Ah, OK, I didn't notice the ns->child_reaper check in pidns_for_children_get(). >>> >>> But note that it doesn't need tasklist_lock too. >> >> Hm, are there possible strange situations with memory ordering, when we see >> ns->child_reaper of already died ns, which was placed in the same memory? >> Do we have to use some memory barriers here? > > Could you spell please? I don't understand your concerns... > > I don't see how, say, > > static struct ns_common *pidns_for_children_get(struct task_struct *task) > { > struct ns_common *ns = NULL; > struct pid_namespace *pid_ns; > > task_lock(task); > if (task->nsproxy) { > pid_ns = task->nsproxy->pid_ns_for_children; > if (pid_ns->child_reaper) { > ns = &pid_ns->ns; > get_pid_ns(ns); > } > } > task_unlock(task); > > return ns; > } > > can be wrong. It also looks more clean to me. > > ->child_reaper is not stable without tasklist, it can be dead/etc, but > we do not care? I mean the following. We had a pid_ns1 with a child_reaper set. Then it became dead, and a new pid_ns2 were allocated in the same memory. A task on another cpu opens the pid_for_children file, and because of there is no memory ordering, it sees pid_ns1->child_reaper, when it opens pid_ns2. I forgot, what guarantees this situation is impossible? What guarantees, the renewed content of pid_ns2 on another cpu is seen not later, than we can't open it?