From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754802AbdDQRfB (ORCPT ); Mon, 17 Apr 2017 13:35:01 -0400 Received: from mail-eopbgr30121.outbound.protection.outlook.com ([40.107.3.121]:3450 "EHLO EUR03-AM5-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1754682AbdDQRex (ORCPT ); Mon, 17 Apr 2017 13:34:53 -0400 Authentication-Results: redhat.com; dkim=none (message not signed) header.d=none;redhat.com; dmarc=none action=none header.from=virtuozzo.com; Subject: [PATCH 0/2] nsfs: Introduce ioctl to set vector of ns_last_pid's on pid ns hierarhy From: Kirill Tkhai To: , , , , , , , , , , , , , , , , Date: Mon, 17 Apr 2017 20:34:37 +0300 Message-ID: <149245014695.17600.12640895883798122726.stgit@localhost.localdomain> User-Agent: StGit/0.17.1-dirty MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 7bit X-Originating-IP: [195.214.232.6] X-ClientProxiedBy: HE1PR09CA0084.eurprd09.prod.outlook.com (10.174.50.156) To DB6PR0802MB2277.eurprd08.prod.outlook.com (10.172.227.150) X-MS-Office365-Filtering-Correlation-Id: 8e1e4dd3-70e7-4655-aa2c-08d485b80942 X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:(22001)(201703131423075)(201703031133081);SRVR:DB6PR0802MB2277; X-Microsoft-Exchange-Diagnostics: 1;DB6PR0802MB2277;3:V23pqA6ercnOiub0XlcAIVjwiwl9MP1HWDrxmB93BfF2uknm9BQ4ucfwK+D6NScuoX/Ub2ROx8q0qCAXxw0VXz+28FMylfL/iIpHFXojW8bL5OVHUQcBhjYIrtZdCO1tZ1EhKNXbuQEqPcQwQrd1TsVhDW+sQxWx8ZA72/2AaRqh1glC3m+lrLLBuQyDNpUPvB7IbkJy5TSr6OXZL+AEIw1vA8ofkalbARrVuDNqz59qC0NSQPo8yFLs+pBEVI2c6uuWF+9N+i+OkFAiIsfyfaeBN+E5P6P4JT3mHXwHpnhlYu54KBwZOwyZ2O/kazPE42BpKuEu69Hypum13oxBDw==;25:IhA0Ktlz3a5OVFNPUQrHvZbXQKUTRFstfmEfv+IS5Loekrta+Hg+FPhqqPsj5iLrGu5mc/Rjkgeraic4OuzRzFVV1kMSgRnU4V9OQwBjBVv1pA1eq2+5ZTQHbGPh/Fh9pMM8qyqfEZOjcvBA5jszmGjRIMCc1U9GKqMBueEjmHxPNsjfacYZY+vWul7tlB9z32fWSLOw6y6piyTuJn+Y4cVqQHYlsyo6mVtmypUPK+NxysJQYHNKTAertj0XRgEvLAMVHoAqkXgSMu7Bmg4p1K/5WPyzDj/74O7gpB3nJDIEeBdQSjNfq8mgTp9i3y7uwGSuzJadpZg4pRtGBSRl4sj9jjIHn7DB5TuOyu1KfFUk/zBqSVOKj0chn6v+WXiegqKRAUkFeqb0cOj/JRrHyOHE2jg3LB613TrwQ170BPDXSt0xVfoV8apAp78buvDmdMqpnxVeMeTYfCAAaEPB5A== X-Microsoft-Exchange-Diagnostics: 1;DB6PR0802MB2277;31:ERNXAOaH68AR3YFePOrpxay8MMtuUrh2E3VkF1wEWnkI3Z5yZomUR7HtrWNKyB3GUd7BlqmmsHhCTVs6FABLLf+QRNnqVzAYvnlkzfH6pWeaU0oJc31JHFmKuVyz5lx6gbbxesOpIIRxugBiqQW7eUzDdggfjyz4u2ny6Vc8pGtrTW1ba4YcXPcltstbS14Ni9w/nNT7CLQB/5a8tXkc6iRvpKD344DNLt4VSvfZYAXFpZXPxc7RgRg3Z5bTycRn;20:hp5mvv5iFrGyNz0xCyQHZrDIcFgzRpgNV2FEked7vXnc38D+Odi35Ve/lEXiC4hmx/UpnXKwtNJLEYZOVJXfwEcBxSuZMdWSgH7FO6YAVJ7/IsjvVWRV0s6rYKlD3wJ9yjq1LtVZgb5YNakDKGTDOaURF3s2suQRgiu7L3wpip4HUegLVZHr2a9X8IpyxrBRWFNAcBj/YkBQj0Y1oXG/LL6vXdxjVl6a+tRL2d29AjskC6bgMeyODWLett2lzJ86n0vz2r6Jjs1rOc0EsDwvw4GW1qy/uIUYNAMb8aNp/UqH/nnzsOeLQp4ZiYa9lXdkVaJ4333HqOW8ZP/58mZSczZqVVQUocrULrQ3IxPJ80kDQW7YwWYeP4iwYWZx+9tsR5k9XxurMAvEhL0R4q+ZZVYfbqkWDjSzYyCumbxSTww= X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(6040450)(601004)(2401047)(5005006)(8121501046)(3002001)(93006095)(93001095)(10201501046)(6041248)(20161123564025)(20161123562025)(20161123560025)(201703131423075)(201702281528075)(201703061421075)(20161123555025)(6072148);SRVR:DB6PR0802MB2277;BCL:0;PCL:0;RULEID:;SRVR:DB6PR0802MB2277; X-Microsoft-Exchange-Diagnostics: 1;DB6PR0802MB2277;4:b8cSwZqRQ9oV9P9Ds575R2otE/Oe4PbzZiSe/zytT6liS/v80xa4ScqvNuKnvBfcJzHB6GPof9zpif0SKnTVZAxaNA/n3LjGaqR44NdW15FAeIVeDdx+e28sSiTNmC4ynCeqYgFJZvmue7GSE3+667i85uoWlXfbe4PeqGoMQjMKajst+7iIMtWPBU/5LpTTkiRq3sJfsGNn4D6OfQX2ni64onDROatLw4w2BfaXt/K/XTbgfLE4WAmkyr+uJjDZWJpGZpWgtIuYvsiwdorYPABCq51RX4mGa4doY0GqY2T73UBti5f7ojGVSZpg0xNCBxjv4OYwtIpaazn/U4K/4hkDZIsKLhJHnblNnjQ41hW4v8cjT9ER7ftsbcKBWWhaiYRfi9qQvPiKI1Sz+rXVGLqeHl6OnjKwgGVU+UZaBaB5++xTxtm0bkW7Srg0rfmgS+3o0YdyITQQGJuiy4/xvXC9k1lJlj6fGMAsWTE3wLFgk1b7Yyj7kJ5/QhchNR9/1K1GMp+8ewFHV7j64+AKo0aWj3VQvR3fGyUVaqIfWT06zE3CH8xdVZgLyBMd6UjrXbZYiQYQHIj3JUqQVzRl/kjhOynr92turwhZZrGOdUKoa5OpRwXaL0Ub9GZQn5TsDMIQtWr/02F5BHzH4mLCEDG4MhIE8aHu1H0HQeiziKR0pkU8rTt4EOaN3pkeJFvdQ3d7vYsTbIIzvsoQ8VQ65g== X-Forefront-PRVS: 02801ACE41 X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10019020)(4630300001)(6009001)(6069001)(39400400002)(39830400002)(39450400003)(305945005)(2906002)(86362001)(81166006)(2201001)(42186005)(6666003)(7736002)(33646002)(103116003)(189998001)(230700001)(8676002)(23676002)(50466002)(47776003)(66066001)(50986999)(7416002)(61506002)(25786009)(54356999)(5660300001)(38730400002)(3846002)(6116002)(6506006)(53936002)(4001350100001)(83506001)(9686003)(921003)(1121003);DIR:OUT;SFP:1102;SCL:1;SRVR:DB6PR0802MB2277;H:localhost.localdomain;FPR:;SPF:None;MLV:sfv;LANG:en; X-Microsoft-Exchange-Diagnostics: =?utf-8?B?MTtEQjZQUjA4MDJNQjIyNzc7MjM6MjBSekQwYzNUTXh3UVZyS2VhRDBHejda?= =?utf-8?B?MXA1TDIveS9yR24wNkswbWFTTWZQU3FLYXRRTlFaQ2g2dHNXVUtCaC8xdDRH?= =?utf-8?B?T3lKejVac0dTaVJXa25qTlBUNkVocDVPdldLVCtIVXJpN0VpQ0F2ZEgvY2FI?= =?utf-8?B?WXRhNDQvbG0xam16ai83dFNxWEFnMkJrQkZMN2l0MWpQMi9vaW1wcDQ0SmNh?= =?utf-8?B?Z3pnQU0wZ2ZBcFBRUFk3bkpMUDRlRjZFbTBnQWpFTVB4eVVqY3R3TDNLY24r?= =?utf-8?B?bUJFNko3U3B5OHRIeCs1ZmR4ZDJsN0RYRExCNVZvZjZyYmVMS2xNNldJTlN2?= =?utf-8?B?RFRIUFRuV0hVMW9HdEZnejJQL2k0cnd0bGtkNjdOdE15eG1GdGxOTXJVSUIr?= =?utf-8?B?QkNKQjNMUVJhdXBCSXRwRUcwL1l0YmdIZHhsdkJCV1VvRW9Kdm9oUTgwaFhx?= =?utf-8?B?UUMrTXk0a3pLRXdlMTNCSllUZmhocEhGdzkxbS9uWVUzQjZmVFlGNmFXMHZh?= =?utf-8?B?M2l0L3M2UEo0SDlaRW94d1Q0cVNLSkNIWnhVR2FoNWhkQ2d0aVRoNlJLWXc0?= =?utf-8?B?WVp4OTdGamhiUm02WFkwMm5Sc2grUWdvUHd2ckRqTkl6OStuRnpLaFVWaHFw?= =?utf-8?B?WS9SYnJVL25DVXlJTUlsWDZjckdmT0J2QVVNYkQzQTJOOFZjVHozbjJ1Zzh3?= =?utf-8?B?b0F1aGFVMUlDL2Z5UzA2S3plT2dyb1Y5RnR1eGRjV1BSMkdMdDBDYng1R0Vs?= =?utf-8?B?b3MrTXJJWEVZSXRCeW5oa0Y4ZXR1RmRCd0pyZVJqK205TDhPYUIwR3NieEtl?= =?utf-8?B?L2FQaHhOMjcrYWt5Z2ZrM2pNNk1MRTY4ZHcvTXRhYy9EQ2ZSL2E2M0ZtZDQx?= =?utf-8?B?OXprekpMaWFtcStQakpCQ2J2ZlllS0NxVk9nbTQ4bFlvWlZjdGRSdmZLaVNh?= =?utf-8?B?Sy8zS3dRcDFBSi9qaWJZM2Foa3hNT0IwOXVlQlhlU2xlVTFGQVQ3ZkUvMFBP?= =?utf-8?B?OWoyVGE1ZjFKaGhxbmxRaEU4NjFpanBkbDdjYmQ4TVppcHcxVXZkUVQzQWJj?= =?utf-8?B?Y3FnT0R5WXRmUXZGYldFMXpzeVJpNmJVcmtvU2cvRkEvcWhBSjhIcTV1MHUr?= =?utf-8?B?WmJDRkpZRVJNV0lzL2xXWEp1NGVTYXgvRkhuazl2bUV4SHk3bVRhQkxKNnQv?= =?utf-8?B?ZS9nb2ZJN1lHTEZQMURESStRWU9xZ1U4VERheGxZZUZhYzN2WlMvK2tKK29t?= =?utf-8?B?WUd6VUdvVGdQME5KdnJTUjdOOTJaVE9rL0NMb0VKeVdJT3ZnT0dUSDQ4YnM5?= =?utf-8?Q?bv9a7pf5iKv7/+SqRnHw0vpgC2ncpA/j9c=3D?= X-Microsoft-Exchange-Diagnostics: 1;DB6PR0802MB2277;6:qpM/Bl2WhuxjSA8bhfCI4PTg1EBKmAHMyjojAZMN8L6CqbX3RKv7X4WcRscF9kWbLuRTr5pM3di7StOTPntWkC92qLGcunvDNJmhmy2gAJYe7aBhFC1A+GnREzBJrfiGFH2mleSrXhB4cQ7z5/sRufsBqlVazLi++yb0A5oWtI0SKkNLEKuMwq2Nwh9dvLvOolFKQ+1zYmR5Q5gpKr8IidVrpPv+g3Atzd2kUjCUx9h4lUTpkNahapDabMgORrWdi7BoH/bXXjX/prHefaG/SqG4YYaIyC2rB8bMDxhqmzb2Xq5Ek9haLuOZv+85zarg5DnawrR9Td40edvcv54f6etTgEFiO2qbCGryUqrRIAW+In5zAGMXyB4J8qEeUtws/J8cLjFDxbP61PZvchM1mZ9Zl7tdFxTdBkKtbTyBo9lzjeloLLd/EXZpILHBRu+Y+Fi5zv4ghVfJ2qy1Go9wpw==;5:qBD4Do5Q8yXF0RhoYIz3tSH9ZLjk0kSpZTanpecldqnqleoFjsD2fG4TWjKA+TjRA3gM6O07HSJOUvSmB0ieVDsJiisb4gn6d6XdzvAyjafM4a+VSu6/RKegjXUArKgJpaeDXKyJt2W3quPQ+05kEg==;24:KPJWnKTXe0TuOPjgNoqjoGYKZFCKCJmm0WcJkhmRYlD/+pMxXtZMw7VYYoUVi+OI5dB7xkNo0Mr6v8H1YemUzjbwZ6o/6Vfo/QrcNN6Di9U= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1;DB6PR0802MB2277;7:TeDwKLzYbffR4ClRFAt4rI0O7vQBDIyspkMCzOE6bQBi3iII3fb2Zlb8l2lJQ7Q+ERjdpmJCTzV0cQgW6nX1lSIIYt2Rzf7OSO50GnxZcbNmicHcxdsApgn9F/i8wBMX2lfDpRCTbTunNLNLKAjbeXNdft1fXjW9As8/3zn6DjEt0mZJvPLlVSOZCLuKh0qJdrkTXCnNS662bchvfBZNTPU+ZAdfTxNpS9n/b2Omr6HZo+tNFp9w4MtKyaPBAzb7Us/HBXdA4f5M/3WAh9N5HJGKcWCzhdpWL7nA8vJcS18OvsPgD9n2QH9pT1leXAkIgACCXLjQYO0tpNTwmjZTsw==;20:vt10Tl+vP5qJJytNC+8VSaYSfccMo5OiAN20M/nTRD5vQDfZPz0qbza1rihbxxPYo56Nroo43cuLzduBJicwI0DfoS/qvW4uhnarOn5iIqIuh0hwCnI3iqc8Jsw4AR1St2EVRCCUFevLjaRGzkf5H4/5q0kqDN1w19ZPhTgc6H8= X-OriginatorOrg: virtuozzo.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 17 Apr 2017 17:34:42.3307 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB6PR0802MB2277 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On implementing of nested pid namespaces support in CRIU (checkpoint-restore in userspace tool) we run into the situation, that it's impossible to create a task with specific NSpid effectively. After commit 49f4d8b93ccf "pidns: Capture the user namespace and filter ns_last_pid" it is impossible to set ns_last_pid on any pid namespace, except task's active pid_ns (before the commit it was possible to set it for pid_ns_for_children). Thus, if a restored task in a container has more than one pid_ns levels, the restorer code must have a task helper for every pid namespace of the task's pid_ns hierarhy. This is a big problem, because of communication with a helper for every pid_ns in the hierarchy is not cheap and not performance-good. It implies many wakeups of helpers to create a single task (independently, how you communicate with the helpers). So, this patchset tries to decide the problem. It introduces a namespaces-specific ioctls and implements the realization for pid_ns, which allows to write a vector of last pids on pid_ns hierarchy. The vector is passed as a ":"-delimited string with pids, written in reverse order. The first number corresponds to the opened namespace ns_last_pid, the second is to its parent, etc. If you have the pid namespaces hierarchy like: pid_ns1 (grand father) | v pid_ns2 (father) | v pid_ns3 (child) and the ns of task's of pid_ns3 is open, then the corresponding vector will be "last_ns_pid3:last_ns_pid2:last_ns_pid1". This vector may be short and it may contain less levels, for example, "last_ns_pid3:last_ns_pid2" or even "last_ns_pid3", in dependence of which levels you want to populate. Numbers last_ns_pidX are just numbers written in decimal form. --- Kirill Tkhai (2): nsfs: Add namespace-specific ioctl (NS_SPECIFIC_IOC) pid_ns: Introduce ioctl to set vector of ns_last_pid's on ns hierarhy fs/nsfs.c | 4 ++ include/linux/proc_ns.h | 1 + include/uapi/linux/nsfs.h | 11 ++++++ kernel/pid_namespace.c | 88 +++++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 104 insertions(+) -- Signed-off-by: Kirill Tkhai