From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751181AbdA1Gix (ORCPT ); Sat, 28 Jan 2017 01:38:53 -0500 Received: from mail-he1eur01on0124.outbound.protection.outlook.com ([104.47.0.124]:46690 "EHLO EUR01-HE1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1750865AbdA1Gio (ORCPT ); Sat, 28 Jan 2017 01:38:44 -0500 Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=ptikhomirov@virtuozzo.com; From: Pavel Tikhomirov Subject: Re: [PATCH] prctl.2: Document new PR_SET_CHILD_SUBREAPER semantics To: References: <20170127100543.18390-1-ptikhomirov@virtuozzo.com> <20170127101125.18709-1-ptikhomirov@virtuozzo.com> CC: linux-man , Ingo Molnar , Peter Zijlstra , Andrew Morton , Cyrill Gorcunov , John Stultz , Thomas Gleixner , Oleg Nesterov , Nicolas Pitre , Michal Hocko , Stanislav Kinsburskiy , Mateusz Guzik , lkml , Pavel Emelyanov , Konstantin Khorenko , Lennart Poettering , "Eric W . Biederman" , Kay Sievers Message-ID: <39f3a8c2-cad6-be8a-1843-d43e228a8326@virtuozzo.com> Date: Sat, 28 Jan 2017 09:38:31 +0300 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.6.0 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset="utf-8"; format=flowed Content-Transfer-Encoding: 7bit X-Originating-IP: [46.39.230.37] X-ClientProxiedBy: HE1P192CA0003.EURP192.PROD.OUTLOOK.COM (10.171.121.141) To DB6PR0801MB1845.eurprd08.prod.outlook.com (10.169.227.143) X-MS-Office365-Filtering-Correlation-Id: ff68894d-8c23-48a6-481d-08d447484b94 X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:(22001);SRVR:DB6PR0801MB1845; X-Microsoft-Exchange-Diagnostics: 1;DB6PR0801MB1845;3:KrRzGIv+UNjR+znnxW/QBiGsJmmR2qZ7WNc3l1eATBqdN6JBpEwmw5+jCntoVM3k4ZhWiDUXwFdZBz7Hqwqpj+ybMaKAjWeNZ0pkCshSITfwCWR1FMuJImd3VwgERbXLu0N5J+Gucr5UytsWuweyBHWBU1tWGH9pTcHp3cSO29B+fOtcW2Zykvz1+1QgYSbMn1e4722KUaialAsBfbQjyN+W7h/rjSv9aMosYxZXe8k4pZ9RHjGENL//1IM37VtrZIL9wmedfQZ6Igy8/SZTfw== X-Microsoft-Exchange-Diagnostics: 1;DB6PR0801MB1845;25:UdIttMQHn0oWqQj4A+TcX+52o2z1KWFBwoz1wJ26jokhPvC3QiQCUKDwACwW6tydyebb+vl+r7MTGyNqmgsZmQJZUabP+O9dyM8kKbbc6S/2msVbTDPyTVxafJHSMjKiMnklpHwGFpWa7IKAHFxxVOKGCltz3EzBTYZx/j1YQehGE6qtEvxvmuvsKBEAd4M0/vtCyQBnxqIdqLvr6jMMdMukjYh2UXVJekv7ho2g7k76PMq2QxNKkD44eD4k5WMg30DBnAEfQQbVW5lAoZoVh0DgXfLRmHUE/w6V7xEjVemvK1P0+PRocb79GDbsuPNsqZtUB7Pt2e+j84Wy5nFN+TCH1zDWqokFuOaFFKvxPsxZFEX6DEGaapd6ufcS7DgS+h8vWXaNcmoAzpSJ+2olBLJ/05AaNNm0mccQWzSKf9krYaXuibLD6xm8oriASbqV6R4imCXtdPgbsHxvngY5kKu9P2hBuoPlbhSEFoZ/vfoIlNzFglmpUmtyyRqF+XysRA92sD9+83uFYpriMvpRFcDqVPCAg9xNv2k5RCy6/BiqL8X1cv3ZkoFXSa/UYGPu1afpPW7EE0VQAT5U6z80LyFJPMVWc5Ni5TJ4IJzMaUQSYij6t3ZXhWo/IJlw/OxcwjOfelTGCJj0pirnnWzlPHESvZ9qXy+FjjnLdTKeRqjZ89UDDYMLF+RBglbn9ff6zalsh42CtSJBhJ06p+cYLOWlZIgLvVK55X5xEJX51iN/+aZYJDm6pvo5VNn2dmR9gvoz0d3bOx8kJRz1zFWCiER0zKGcrSMIzUqZL98+Bh4= X-Microsoft-Exchange-Diagnostics: 1;DB6PR0801MB1845;31:2x/hmxsddZrQ/iMBd9Tve2NgwdHCikMLZLz0s5xQrf6799mxkxhhvXZXjTt4pBEO7bf0diQeQsg42lEdqCouoqfdrWaMm/P98yoT4URsBS6/FAhpdCc4l5LFg/dYSgwosUV1+G6ctu0bEb+3UlR+ORo6fgul8mCXrs8KFBA9WzaRVn4bztTqjvJBrRGYh6wf2VHgJnfNHxMznjZdHTmXuZJ3MDKsoxNoQWBZm95443SUVH2F0K7tX6r6xp2lw4F4BuxaUPQhFcfb5hgSz4g/qg==;20:s6SjhUQrzkzFxpTrzNhwXKmcHWYO+cM/ytmN6RmhvVNARW4IaQtCOj8lq4OPVr008jsdktBiwYzSaNDF2Q8DOOFakbYWbVhbbfqfOqhvDPJHxHX6imt8ZlxAzww4/o2eLM3Fp8oetf6ahjv9sUehywiMBLHycPZs44UHH758KNo+hk/lXY+GW5ZfNny7IWpowX36B7iBZ01P8OQFRX6MufGHpcks5XjXqYiziaudkf63WrFjNWV3kspMpiFUfwx9 X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(6040375)(601004)(2401047)(5005006)(8121501046)(3002001)(10201501046)(6041248)(20161123555025)(20161123560025)(20161123564025)(20161123562025)(6072148);SRVR:DB6PR0801MB1845;BCL:0;PCL:0;RULEID:;SRVR:DB6PR0801MB1845; X-Microsoft-Exchange-Diagnostics: 1;DB6PR0801MB1845;4:lNBOMx3IIGKx50ddGUl+pHwWsRPNRaIXhaF7F+/cLOWQQ7hEq8sJf8Jsy3fuhtVl6Fh2hYK9cjsFcZztXBtBjTwhcly8mcPZEr0iqpFWiijxpq/y9zsivaaLZC/+iT3bBUZSEllOB2XCldGrVrIaQn2MyN+297ptnNOkCN9CcASl+El25tanslVzy3My7UJU9Rd8TNwvBAV09yYsI3DEthVMGJhYBo2tTB+BdzjlquEyNRo3/cFwE2T3Z9Qc4MdWmqQo2B06bru3htWMAMNu+sFEDHrcaYgMYHlLqFcC7et0Xm6Ko542B5CAsxoWqfV2sxxAmhS+CZ8SVD2MAokrP387nKcvxFJwjg4c4eLnTtPwoM9I+GKupSs7RRR2saHdO1ICiDIBMF21FpnIal1FCBQE22fXkKqwzq8NA2hqQCCF72qrehILkvqjWB9saQ1G/qn8+7iwTwpIoXzwAJv5mLlH0PWottnLrxVvoxpIsQ4oQuEPL56ncOK0uZLsvz4rAJahqL+mO3J+QSEIbEtqWSrEg30t1VJHzMkMzP+H6XNLo5Wo0PiEekK9X4CF5E77mj6wUA/qA84JiY3KnNQllg== X-Forefront-PRVS: 02015246A9 X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10019020)(4630300001)(979002)(6009001)(6049001)(7916002)(39830400002)(39450400003)(39410400002)(377454003)(24454002)(199003)(189002)(38730400001)(6486002)(105586002)(39060400001)(305945005)(42186005)(101416001)(4326007)(229853002)(4001350100001)(230700001)(2351001)(25786008)(53936002)(66066001)(65956001)(65806001)(77096006)(92566002)(106356001)(47776003)(90366009)(7736002)(36756003)(81166006)(81156014)(3846002)(83506001)(6306002)(23676002)(7416002)(117156001)(68736007)(31696002)(6116002)(64126003)(31686004)(2906002)(65826007)(2950100002)(54906002)(54356999)(33646002)(5660300001)(97736004)(86362001)(6666003)(189998001)(8676002)(50466002)(6916009)(76176999)(50986999)(110136003)(969003)(989001)(999001)(1009001)(1019001);DIR:OUT;SFP:1102;SCL:1;SRVR:DB6PR0801MB1845;H:[192.168.0.104];FPR:;SPF:None;PTR:InfoNoRecords;A:1;MX:1;LANG:en; X-Microsoft-Exchange-Diagnostics: =?utf-8?B?MTtEQjZQUjA4MDFNQjE4NDU7MjM6c1ZoTitRMzhSRk9DSW1ZVzdwRXFkOGZY?= =?utf-8?B?aHFCVnNQcVRkRkMrRmFpVlhxT016VXE2YlZ4c2xyYlJkaEx2WE91OUx3ZHAr?= =?utf-8?B?Y2phSlZ3WmdJODNRQUphSFVWdnVMdVdRdTFlTXdPSkNlWWZGL21GbDJ3aDlR?= =?utf-8?B?bFN6Z25KTWc2NnFldmkyQ2xCZ1ZlZnltMVRVbEc2SkZ6OCtJUWtKNXVDMUdh?= =?utf-8?B?N2ZDZjdWbUVMcVFSWnExaUY1R2pwanhacnBrMElOOTB5Szc5aUhPUDJibU5o?= =?utf-8?B?SWVEbzJQZlJ2WEYyZytaM3ZadXUxTi9sQkNSRTU2M01rWHNQZ0EyRmo0RE5r?= =?utf-8?B?UEsyOWZ5a3ZocVJKSWZaVS9nWDQxVmIyR3lWU1FxZmNmeE1NT21EWnRPNVRU?= =?utf-8?B?MDl1Y2NCcmdMdFVwNmhBZVRqVklVdGpBeDR0akNpUzg0ZWYvUFpweTJZTGw4?= =?utf-8?B?c2FjQmJKK3diNFhDdGJCcmx0MDZWeEU5L3ZETFVEemdQTDVrOTNHdSt6My9o?= =?utf-8?B?ekJXc3pyYTdodC9sbnZZN3RJMEZidGkrd3FuY0Jvci8zMyt0ZmV6WldPRDBw?= =?utf-8?B?U0ZJcjFXelhyZnArUFljeG5MelNTbjljRFZMdXk4ZWh5RCtIRkhxVEdxcWt2?= =?utf-8?B?ZFFWbWRyRkQwVDF1TjRpQVY0b2Y1YUVEUFF1aEM0R3R4eU5DRlhMK3NjSmNx?= =?utf-8?B?R3NOTXF2SmlFbEFNSHVmSzlpamxWNEZSckwxUDFSWVZTVG5NbTl2dVlFOTBK?= =?utf-8?B?ZW5SNnlzcFNOWHcwa1YyTk9KSlQ1a2NzUjcyMXdJWFVsT3VPMmpYbytzd3k4?= =?utf-8?B?WnFPYm1DUmVFckJRR1NqVThrbHUvNDNhQ0tmV0REZGVlZUlmNGpBSFltNjRK?= =?utf-8?B?bHJxc0JrODFzbnQvYzdaaHhHb0pROE9RQklHamlRMVJKdmZUVlNrWUZvSGxM?= =?utf-8?B?T1FmQTQyOHc5U1dmamhtTWdUQVJFR0t5U2VEcExsdzRaUncxclVYS3cwejRS?= =?utf-8?B?ZW5xVTBkMENFbFZia1dmUklUeS9PWnA1OHRMenJkZ0YwR09DRGVWUDVwMjBK?= =?utf-8?B?UG0rTDY2UkVTYVo0emlZWGdsT1g0L0NnMENBNXQxWDl2SUNHYzlPMTlSSzRB?= =?utf-8?B?N2dmclNTclFYcWtNYmVERnZwYk5kTXBpdERNdkdOTExJUzc3ZlVFT1RRUmtY?= =?utf-8?B?dUdIdUZVOVlmcUUvSXZFNm8zcjNGamVjM0VieC9pMHJDNitDVXRnb2NWTnFv?= =?utf-8?B?cDdXMlk1LzY2Q1dWSXV5UGhuNm1XZStCRE83c0dXMUdPdkxYamJQQ2phcGpq?= =?utf-8?B?dnNOQzFaWmwzMFcvc1crcFh1MklTOWlRZkY3TStWVGVMdjJSZys1cHdGSkVi?= =?utf-8?B?WVJqcG05Z2dHNE9KMjkrNm9HaTkyM1QrVEJucHcvR2x6b0lYemxwWXJLOU4z?= =?utf-8?B?djZtN3Z1OTM0OVQzeGI3UUVIVlV6NXh4cUl1STFzT3o2ZC8zVElHM2p1YU43?= =?utf-8?B?QUs0dUYzWVlaOTZQdFM4VVBLb24wQThaNlVvcW1GZHhKUTl6SVRIVWlmTE9q?= =?utf-8?B?R0xvUlVIMk1PTnVZbzk3T2VUSlJNNjZ1NkNoT2wxVGdnNHpnTXdFNCs4eWR6?= =?utf-8?B?ZFNlMzZkL0NIdmZiNWoyWUdhNXUza3pzYkc2VFl0R2srNURXTmVUcjVZbHdv?= =?utf-8?B?V3pZSjd2M1hlUllCYXF1UTNKUTJPTEpYYUhGc013U0hKUE9rVG82bnlmbnhm?= =?utf-8?B?VFhXLzVLV2RLenVULzFuZ21OVW16OEdjMlh2UkRNbUFPT2daSEU4NXVMTVBh?= =?utf-8?B?SjQzUjhTdnh3TS8rMlJBdElaMzJJbnMwL2s5ZldEaTJPQ3J3Z2VoSExBRjRM?= =?utf-8?B?SXMzYmQzTzN3ZXh2UkZUNm5yRWNVd3RzZEJnMHdJYTFXcFNIaVVJNnh2M1Va?= =?utf-8?B?MjU4dGF2MzNhWHh4SzQzOVhDTjlaNG9Wamp2aWR4bWtuaGNjRy9adUxpUXBv?= =?utf-8?B?b05hTlBFMlo2L0tLUGlxSnNMNkRpQnlaZzJRWCtaY1ExUzdyS2gzOTdpMlRC?= =?utf-8?B?ckEvZ3pVUjE5S2VIVW1jV1B2WnIxcUgrQzhWQnE5bnZJbTlLR0x4Tmxmbk1Z?= =?utf-8?B?YnZ3d0dUWFNLc21SSS9NbkhCV294a1pnOGlPSzNyeU1PZm9LZFR0eXhDNnZV?= =?utf-8?Q?TEPY9VJ5n1B9bmHFX/StGemibEneJ/IDMIT5rr0tz8bs=3D?= X-Microsoft-Exchange-Diagnostics: 1;DB6PR0801MB1845;6:eILauzEsmWPH2guM41sMXeYRzINXdfq3eG2C5pZ5qXKxhR6Gn+HelgM6VR1v4QhZdX6arMxbolfVAtwasRCZoG1xguovHzqAajY/5QLhHY3u/8MqgjyNFDWGSUOWTla73XjZsrwJ9ObE2CeQXRhLJ0Su1XD2edwLoZrQ2ZGa5gK8+kpa3zu9cl0V4LEqk4xjTxHF2/iNVQ+aw4AEKWP2Qvz3VqsebfSPL8flCYcaQvvfEcgoERYswzmFs3Ggjm84HChgcdXNMX4E//qCJMyrQjlit1kwTc8/1Jv4m7boWb9cAjA4gwWQl27gp60Ci3ZRv+CQ/qo8m3rmtNLlgG9dOqNGboflUUDTCJ9rDzlUGFMK93GpGd99yl24p9JA+w7Pmlgog2C2gaC58lrXyXsw4MY/WpJDO1Vnok8WPBOSgbs=;5:jlwqgMfmXCdsSHoqQyCmjsVz4KNsviiMnRCnW/4zhrBUAZfkWbjr2ukghY4la+rsxY5OKHQ1Tm/9DV145zvGtYq6Hk+FItJ7khrAzLmwQ4uP0Tc9i7sO2jkcnsJAAj9jmqEblaJQHLC9tg/oOeQ36g==;24:ZWdlxL9e0zNV9KSCd4GpYSIDWdaqe/FeAn7CjLFDrCyyJMN1yutbYbzgXkamnyGxK89srneWve+Ys6pDPr4pclKn+xYv59ZriuhQo9g+CmM= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1;DB6PR0801MB1845;7:u4zZDnmIaLM6/W8GoCfvowaLYiaUpF/OVm/TufkDt59UANxRkIPRKWjnO0xt2z9hiKhQE66HIGaSHtu0Txyb9STwD9UJfkjXq7on7pSYNKuPtE85yrh7f3vAQMH1zJjv6qzegOIqHwzFi5tiSJcg26qIuOhKNoDAdKC+BrlxXuwB1BO8x4f0ulW/DAsWD3CnVZwcu6Q484bwEanb9FYGi5wDR/WqUIopq3G/6jF465N4oOBrfHcuUzZsZDPQYdh59C49L5H/RQJmifZlH1L6a8yrXbRlZnUl0dWgSaCOr7I3se/rojGXbh4bL7ioMgUP8YJZ9MpOFehDUrMpltLrjttIGlvz4r1tiCApKzthICb1+WtP1aKBjIVl/qQmJOX3rzqdAAfco/3HolZhDV/mdKFAITOrSmCjcpCvhyaxa2mD4VCD/CKHr4J8RSlTxNfbfy595KEoduviecIFskv4dg==;20:GDou3LKJdAshaHsLQVZ+OPmIa5S2SNzdJ2SRxmE/ZvHp0MNHQJYkJ57dXfKAgoeL120U8TzIvwk1D7WivGbdsGAUD989FgxjwaXoNEX7LNGcyJ4+b3DrHwNHfukwYDFHQcCy+gYv1l39wjZr4v9Zu3j8ZUZyMT5KdMSPQ60k62s= X-OriginatorOrg: virtuozzo.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 28 Jan 2017 06:38:35.8156 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB6PR0801MB1845 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 01/28/2017 01:47 AM, Michael Kerrisk (man-pages) wrote: > Hello Pavel, > > On 27 January 2017 at 23:11, Pavel Tikhomirov wrote: >> old semantics was non deterministic and worked differently >> depending on the external factors, but nothing changes if >> process first sets itself subreaper and only after forks > > When did the kernel behavior change? Sorry for inconvenience, should have added you to cc of a main patch also. Kernel behavior haven't changed yet, doc change will be a continuation of "[PATCH v2 0/2] prctl: make PR_SET_CHILD_SUBREAPER deterministic", see https://lkml.org/lkml/2017/1/27/108 > > Cheers, > > Michael > > >> Signed-off-by: Pavel Tikhomirov >> --- >> man2/prctl.2 | 24 +++++++++++++++++------- >> 1 file changed, 17 insertions(+), 7 deletions(-) >> >> diff --git a/man2/prctl.2 b/man2/prctl.2 >> index 97cf21a..84fbd7e 100644 >> --- a/man2/prctl.2 >> +++ b/man2/prctl.2 >> @@ -162,20 +162,30 @@ if >> is zero, unset the attribute. >> >> When a process is marked as a child subreaper, >> -all of the children that it creates, and their descendants, >> +all of the children that it creates or have created already, and their descendants, >> will be marked as having a subreaper. >> In effect, a subreaper fulfills the role of >> .BR init (1) >> for its descendant processes. >> -Upon termination of a process >> -that is orphaned (i.e., its immediate parent has already terminated) >> -and marked as having a subreaper, >> -the nearest still living ancestor subreaper >> -will receive a >> +Upon termination of a process having a subreaper, >> +all its children become orphaned >> +and will be reparented to the nearest still living ancestor subreaper. >> +So that on it's adopted child termination >> +these subreaper will receive a >> .BR SIGCHLD >> signal and will be able to >> .BR wait (2) >> -on the process to discover its termination status. >> +on the child to discover its termination status. >> + >> +Note, that on older kernels these prctl works slightly different. >> +Child subreaper process was not actualy the >> +.BR init (1) >> +for all its descendants. >> +If process forks a child while not been a child subreaper, >> +and after sets himself child subreaper, >> +sub-tree of the child might or might not reparent to the subreaper, >> +depending on the configuration of ancestors of the subreaper, >> +at the time of forking our subtree. >> .TP >> .BR PR_GET_CHILD_SUBREAPER " (since Linux 3.4)" >> Return the "child subreaper" setting of the caller, >> -- >> 2.9.3 >> > > > -- Best regards, Tikhomirov Pavel Software Developer, Virtuozzo.