From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752025AbdITXHR (ORCPT ); Wed, 20 Sep 2017 19:07:17 -0400 Received: from mx0a-00082601.pphosted.com ([67.231.145.42]:47898 "EHLO mx0a-00082601.pphosted.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751584AbdITXHM (ORCPT ); Wed, 20 Sep 2017 19:07:12 -0400 From: Roman Gushchin To: Andrew Morton CC: Linus Torvalds , , Roman Gushchin , Alexander Viro , Ingo Molnar , , Subject: [RESEND] proc, coredump: add CoreDumping flag to /proc/pid/status Date: Wed, 20 Sep 2017 16:06:34 -0700 Message-ID: <20170920230634.31572-1-guro@fb.com> X-Mailer: git-send-email 2.13.5 In-Reply-To: <20170914224431.GA9735@castle> References: <20170914224431.GA9735@castle> MIME-Version: 1.0 Content-Type: text/plain X-Originating-IP: [2620:10d:c090:200::5:e3e0] X-ClientProxiedBy: CO2PR04CA0075.namprd04.prod.outlook.com (2603:10b6:102:1::43) To CO1PR15MB1079.namprd15.prod.outlook.com (2a01:111:e400:7b66::9) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: d78756e6-18d7-48a6-7fc2-08d5007c4eaa X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:(300000500095)(300135000095)(300000501095)(300135300095)(22001)(300000502095)(300135100095)(2017030254152)(300000503095)(300135400095)(2017052603199)(201703131423075)(201703031133081)(201702281549075)(300000504095)(300135200095)(300000505095)(300135600095)(300000506095)(300135500095);SRVR:CO1PR15MB1079; X-Microsoft-Exchange-Diagnostics: 1;CO1PR15MB1079;3:4TNOCHbLJ4Ob1JISG7ixtuhDib5nkXKNYGFiAPq1MHfnyzuribaTjEc0XAtmbSMAj8bebqKb/jQv+y964zjli4Fmrg5WR7iKEjZpsJpYk8MgmuiY3eKxJJ7izoY0vwYaQXpqASu53sm+2gzViL8j086fIimDuwzFeBeJ4Zi9UrWjYG0Vh01tDucnj9nr4LBLC59JuT8i2n6PrUXOjdf54o20/VlCIzZHznEFbW7pJwGQBD1R9INhRYvZ+K6Jeih3;25:7+N1sesRVfJsHZmdVTTF17GZnDGX0yrFACvlC8SROZaNVJnZbPtQMRGx0GnINbqkvcPGqPI+NeZbxwztUc2a6k1SnHllCiSowXt0SA1iwB/OSYcpwYd2bKe9vr5i3+YrlEXTF3LwlkKU8Ntj2WaGoxYUletNBrn6IrFwpfHq6G3BDS0er/lUX6Swz3gy5QmyQP4471GgBHa3UhZdB9d2sMESHtfX1ME/fBMyQEl03Ys8bdnFBMzZpCj9WPLxEsjhLAhKOUqs9LimRpFKOzBvts48dTnjyno6nmeG7ETDfncunkqtwxTn3EUhY4xLoY/9ZrtyVGiWZKExu8L+kS9qEA==;31:mzH0ZRQ7vIAM+L1FJ0/M/yL5J6f0TaI2k7Cht7u7NezGr7WIjJWL2d6vdthtwp/edyVA0HlwoXE3+ILZCiz/VLysAJL41R9Db0gL3cbd9AcPujQ+PRz5T+E+qR9aVDlGBGH0w4feZPWdzhoycN9gJSU5JuWm27PHB7USFVN+08r34n3byAFOoeJqLioolJnGP6381Vhje4UaH79FrxxaVlyLOscH7oWEiA6EAjwkYt0= X-MS-TrafficTypeDiagnostic: CO1PR15MB1079: X-Microsoft-Exchange-Diagnostics: 1;CO1PR15MB1079;20:xFju1tKL7s4TE2gRiOavoiT3u1/+tLsqwxpUCX10XOTKmCNrEFW2Tdh4xljGngjoyP1gTAVSDZxnw4LliuDWu4DtLj3aDtXC0s11wXKpKJiBSUCvVufRzudorRaykazdrrIU4vlHPIfCAedNtLHLwG+6aZ7R8nSgPj1dKDqzllUXZcg8SdxGFgsSlN5smTw6MFqzP/+/7OhbOzAKTVFpXH8ssxrD14ADjU4OB9tbgZGvGeY0ZV5c4Sw6uIFelTOW/njLYJVPSnWG8xq+sy1lbnJyUMGZAYImEPZkxrUS/eMKvKct9y9334UhH2p0ncKS8tw/JtY+SNdxBssPF+ZNefjCqbuNzKk+ltnMoX6ZpfQgKdjIL08fH1Zl9CtN5NYuswHhp2mNGdqdLYpPoZuW4wkIuQRK/3vv6qvcbtFji3p8YdK+dGyylK9cehVwKsHcsRgfS8Ta2MJllBcuulclaqEAaCjP42lwn1cdHQIC6HFXpvJb4qbI9fVOF3uIl/ca;4:11ooiooYl7KhpU9OqG4/aOfEftq2HUhSokX2kPqvXTtHO4OHkTyNf/6yY+DCEcgQndiZxsA5SYv0usP2caJkMV8C451v0JzixYnzI3kLg1ovT3O419k0T477MT4ThYQWWDw8xZl9FgLOZISoS2Bq6Grhc4DX9X7NENmW2+MacZooKUy9ZOOV576W1ahx9gGXg6625fkYM/ydBqANNUkOvzbjkQZudwruu5QNXM7zJ2N1nP1c+yOtWrGYDPs/9lAC2AMZ+60vVObxoALpjxcosaskJpgWeQ7E2urEh5vJYtodAL8u0zAFLY4iR38JVJylI40yFazsj1FPmH53Kp1EZ5+kfgUZ/pzUCDOig8zckL8= X-Exchange-Antispam-Report-Test: UriScan:(72170088055959)(9452136761055)(67672495146484); X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(100000700101)(100105000095)(100000701101)(100105300095)(100000702101)(100105100095)(6040450)(2401047)(8121501046)(5005006)(100000703101)(100105400095)(93006095)(93001095)(10201501046)(3002001)(6041248)(20161123560025)(20161123555025)(20161123562025)(20161123564025)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(20161123558100)(6072148)(201708071742011)(100000704101)(100105200095)(100000705101)(100105500095);SRVR:CO1PR15MB1079;BCL:0;PCL:0;RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095);SRVR:CO1PR15MB1079; X-Forefront-PRVS: 04362AC73B X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10019020)(6009001)(346002)(376002)(199003)(189002)(53416004)(6666003)(316002)(4326008)(105586002)(25786009)(6916009)(2950100002)(575784001)(6506006)(53936002)(16586007)(6512007)(6486002)(54906003)(50466002)(86362001)(189998001)(101416001)(8676002)(6116002)(1076002)(5660300001)(68736007)(47776003)(33646002)(7736002)(5003940100001)(50226002)(8936002)(106356001)(97736004)(81166006)(76176999)(478600001)(36756003)(305945005)(50986999)(69596002)(2906002)(81156014)(48376002)(42262002)(309714004);DIR:OUT;SFP:1102;SCL:1;SRVR:CO1PR15MB1079;H:castle.thefacebook.com;FPR:;SPF:None;PTR:InfoNoRecords;A:1;MX:1;LANG:en; X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1;CO1PR15MB1079;23:FD9TvC9O624LKPgDjGAU7Cy5oNsMWD2k1La1xdRjP?= =?us-ascii?Q?vrbsb2Xzij6Wzah4mGGMtGCRAu9v8/qeP4TrJt7KcBQ0GYoD9InilqcpyAK2?= =?us-ascii?Q?luKlSbS9eON5KDlJnfHi6uA8WY8QUDjYelZoIQnqC7+t7Jx/Z8425P1JurpP?= =?us-ascii?Q?0WDOB0N4KMFFMio+LlVAfO2a1t/RVVPulEGQlUatW4T+8mIVxB8DGa9wWQfl?= =?us-ascii?Q?ZU+dzH8/Giu4KcrClBN3RpuTMdzVGv52FRjHMFW8S69Da8wi5cfru9GBoght?= =?us-ascii?Q?bwqXRvhM0N+bF6dJzRCeW9MTWFkZ1ATejP22Nwx5aXDhyKFaG8nqN45Sa899?= =?us-ascii?Q?5OjfuC85DzkLW1haKasHwCf0Qjc4U6z35dyZLWvqEgQZKoI7OtlcTrj/LAzU?= =?us-ascii?Q?t6CRqp6rcs7iieXvTChrS5FDu0wcXRab10H8oobpomO6cYZ4EaF/+7+5Je6o?= =?us-ascii?Q?Gf/pTEhyQjzRIJ31eckauLvw2FC5mgMiv2gQ9WrSAClLg0Y7uUlbMOotVCr8?= =?us-ascii?Q?bJJrqiGel89uMUVPl3m8ZMMTMRmim+LBFwnjB17GrE2F2GESxtzoazHsgTUS?= =?us-ascii?Q?DKQfSHTMUh8w4CoIVT5GfgApn43lV8LcuBK/S6DWgxLDLARbgD8vU7K/uNIX?= =?us-ascii?Q?B+M1rOEygETKg+7QD1ACaAj3Nm45c5jILia8IgJJQVoRJkKDC29Ze9/lR3EZ?= =?us-ascii?Q?wnb8glLrO1L716q6aqwEwA8LWUvDUuxs8pg74wQapDO0EDX4vAI5OvedfHdR?= =?us-ascii?Q?COJ/xe4I0BxKcqPEADa3vcKucLezxOQjYnt3Q1xEa+fPH2LLMS1AMMR77abq?= =?us-ascii?Q?W7mUHF551dWkAz0vwxS+ntKScJhBE/THU9ndzJ0FJhn3/+16JDyhgk9FHgwU?= =?us-ascii?Q?rbB6LAdXm9QCqgEcsjQv3qEvEnRNpxkYnhQ+N5GsiFwCXZaOscYBWQrmDFF4?= =?us-ascii?Q?ijre6x3+/Jz3LXm4NFTRzLml7rKaRmkOTQvg3fV9DbtCO3I2B6CVSCzijyVV?= =?us-ascii?Q?GBEOG1efVr5Fx/I4HvPrFedFFQElwJrtogwf/8EOBibtmr1k93qFSISxH8V2?= =?us-ascii?Q?7CREBVbQnMQ9khQPLGkxfyGeEZGG0uFK/HNIS7orkvueGlvgR6ONmf1IMbWf?= =?us-ascii?Q?Osj+kpOJsZlnijWxLEEwxPIvZmySJqAmCJTvWxhDbZMpcGNV/Scxw=3D=3D?= X-Microsoft-Exchange-Diagnostics: 1;CO1PR15MB1079;6:JIX1fwwMTySBIs0LxRBr8Acv47wEF8cvFYfYBEV8rXWTvoFQMDyHYr7gBpZmnOHkyeH9LTb4ZqMfKQqro9Q/ncMTIk6UYtdWBRC2RsG/vgh+cGqaTaEIBzBYOVKTHq9jmgDoJMMXk+1SrofyDl6PnUK5MNnQu8LCFrSXoyLpFXMVefuyQV2ShPw8vGQALrh0GzWHYczYuZBZU/fruCgPnzK5CLHw+4z+p1iH6SeUCtlBNEsnSeGXxoFnb4KCYmAXSfjTAuHZSI3MjMNS7U+hmTrlm246F5Y/wiutF0/U3CULQcjn8igoGho/iaWHmgNJXLk6AcGWgoKZrvc5KIFfBQ==;5:TLwKfLnGFGTwjd36A8sZLSf9jTiCGLkiLb1l7ktnjTVUc+GvQW0FkmeGTd4r3iC5y5+qZhZJUlYaVX4U8ylZHnOsWAWezykcf7AZwZWWYUoJ4pPG9Ajll4k+96PtLJHM9K1k4MlnkI9Vyw8rM+GULA==;24:H/wG+Pdew8/X2zsh4yD5XQCVKPYVCTuKp0tcKSvg9gxLvKwj6vl9g4e5zGDz+irFFMoAvsom0agL6btVvMR1BeUvknb8wfHIXkpz0DFP0Ro=;7:78RyuVYQFNgQ2+O8grAlRmzERMk7zJhnvrQh5lmPXBCYqlT5CoXrj+p20RWjny8a89kdu0In5D/C+N8i5YZ/0POwc9fhokIMZPAJZQgkdz6kR1xNYQY/C3A8kF40LaFWSh4ErHSLlB6N3+Jr6vsLFe/iFLb8rT7mp6AAU3do5BADpIuAyLrYHuXf+XC2gCDXiVar0eTN7Ph8sf0TPozHspWi/hMKr0q2X3ytef0B0Y8= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1;CO1PR15MB1079;20:9zFxzDCNah3BdT1RqR/B8wreg0Z2H1dzRaEgfGrVv1wdm1BeBm/R9CefLxrtwa4ae5WuFmOe33GpkmsVaC6QM9jDpdsIUskki5nzljjr35yAPfMBZ61cgljb3iPzuS64als6MFtrNsKltaOZpvhridZ0V8hdGi+iiMeh/rEPHjs= X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 Sep 2017 23:07:03.4628 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 8ae927fe-1255-47a7-a2af-5f3a069daaa2 X-MS-Exchange-Transport-CrossTenantHeadersStamped: CO1PR15MB1079 X-OriginatorOrg: fb.com X-Proofpoint-Spam-Reason: safe X-FB-Internal: Safe X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10432:,, definitions=2017-09-20_06:,, signatures=0 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Right now there is no convenient way to check if a process is being coredumped at the moment. It might be necessary to recognize such state to prevent killing the process and getting a broken coredump. Writing a large core might take significant time, and the process is unresponsive during it, so it might be killed by timeout, if another process is monitoring and killing/restarting hanging tasks. To provide an ability to detect if a process is in the state of being coreduped, we can expose a boolean CoreDumping flag in /proc/pid/status. Example: $ cat core.sh #!/bin/sh echo "|/usr/bin/sleep 10" > /proc/sys/kernel/core_pattern sleep 1000 & PID=$! cat /proc/$PID/status | grep CoreDumping kill -ABRT $PID sleep 1 cat /proc/$PID/status | grep CoreDumping $ ./core.sh CoreDumping: 0 CoreDumping: 1 Signed-off-by: Roman Gushchin Cc: Andrew Morton Cc: Alexander Viro Cc: Ingo Molnar Cc: kernel-team@fb.com Cc: linux-kernel@vger.kernel.org --- fs/proc/array.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/fs/proc/array.c b/fs/proc/array.c index 88c355574aa0..fc4a0aa7f487 100644 --- a/fs/proc/array.c +++ b/fs/proc/array.c @@ -369,6 +369,11 @@ static void task_cpus_allowed(struct seq_file *m, struct task_struct *task) cpumask_pr_args(&task->cpus_allowed)); } +static inline void task_core_dumping(struct seq_file *m, struct mm_struct *mm) +{ + seq_printf(m, "CoreDumping:\t%d\n", !!mm->core_state); +} + int proc_pid_status(struct seq_file *m, struct pid_namespace *ns, struct pid *pid, struct task_struct *task) { @@ -379,6 +384,7 @@ int proc_pid_status(struct seq_file *m, struct pid_namespace *ns, if (mm) { task_mem(m, mm); + task_core_dumping(m, mm); mmput(mm); } task_sig(m, task); -- 2.13.5