From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1755094AbdIGLRu (ORCPT ); Thu, 7 Sep 2017 07:17:50 -0400 Received: from mx0b-00082601.pphosted.com ([67.231.153.30]:43448 "EHLO mx0b-00082601.pphosted.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1754219AbdIGLRs (ORCPT ); Thu, 7 Sep 2017 07:17:48 -0400 From: Roman Gushchin To: CC: Roman Gushchin , Alexander Viro , Ingo Molnar , Subject: [RFC] proc, coredump: add CoreDumping flag to /proc/pid/status Date: Thu, 7 Sep 2017 12:17:15 +0100 Message-ID: <20170907111715.1359-1-guro@fb.com> X-Mailer: git-send-email 2.13.5 MIME-Version: 1.0 Content-Type: text/plain X-Originating-IP: [2620:10d:c092:200::1:f7c2] X-ClientProxiedBy: DB6PR07CA0190.eurprd07.prod.outlook.com (2603:10a6:6:42::20) To CO1PR15MB1078.namprd15.prod.outlook.com (2a01:111:e400:7b66::8) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 7f38d7a6-0410-423a-a240-08d4f5e20d34 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:CO1PR15MB1078; X-Microsoft-Exchange-Diagnostics: 1;CO1PR15MB1078;3:0obuB6VkLe9TaD+iS4m165Aa6awrRKQBIJ2rnIcmL8r4oG4utN7JeHlHuS9Bja9bgZsutKc7tCwYuViK5iRY1z62MEyrfAIRjYRhgKRNxwA+lXuLxeKVLfs1mBJUhNSuIDzOvtO0cl9dkXX7NiFqmSVr8tI8lP9Y9VhrlwnG9KEdG/5wT6HblgOFJfgZnmcy2Q8NEJIO6O7viPz5qARzlR9388u0kkm7TLA7XDIWt6rkweZ2x/gR6h/RBSW4JFul;25:knuFqgeRp52RS1y13hz2lesu5BsLvi8aT7XT/aFsNwsP5qjnPdREdtqQWMsoe1gzhjrsUQ+KASjlNz4ffjeH6ARIfQ0i3NcryRQ0AN/imwy+dbv4U/eYNLp4vRmSpF2+VHcVU74PWtEBkMIkS9NzxKV+CKgTMsIJw9MFoYfLFPCVL+ZM1PS73w+Ze378D7A5NDL6zxVPSl/68zFJHDW2kO3gQ+V68SCS1rdJpDVzUxaX7HRK6pLKKg+KjoeGRHOIojBSzaav+cE897V4QT6nx2PIDqEpdQ3Bc4OONFilKsEXlFWggFLfkHxJzSikpQM0vzeX63/H63EHnfAHMUPPuw==;31:XMOiwKx7t/1ppvsGAtdv49F1nS3QjPuTkNXj/yuvxi2VplJdp5qWvgsCXZOgE6VYkzHOkSNHTeI+OBOZo6setR2AyfeHGV4pstmvtv8uauFjh+NtNKq5t5Er1l0Vs1JHbA/Twxt5JCPGuMgd/IltyNrd/U6GEzeuvCque9QMd2giJzKivGBdbFXt+EoGKg/9teA9lb4OxbmuJL/lSx4hgyxpd/wdXo1t/sl/ZIAG1YE= X-MS-TrafficTypeDiagnostic: CO1PR15MB1078: X-Microsoft-Exchange-Diagnostics: 1;CO1PR15MB1078;20:Qk13jNwimMJXm05GOY43HW1C1hjHdjupPRmgk8/+12/5z83LeZjTXL1LdS5W9uc6WHUHoh5vLxYiNUR+rkeZ4WJp1CJRqbtFsaQIPg4/dtqujxz5sQ6btVPwWvhobbCChbrqLTUZ8ktHKo3jH6FRvIJomLaBmI8mh3Bwzc+8NqamrvwO5genopyrkkRNyFesHSfn+1butaJYlLEaQsDwHdNVV7I2GMpXdoRE5s/QlTpru7RxUhRlDUgE5HnhV+QU125L7Ceh+jfiD+yeOjZO5X2B/W3CN1LTr+VbX5ijnk8XitC0qYvfp9LLlKDkxZsrXl6FYD7LrIR7KWXUbPUocvPH7oxyXzK6IpBo/Qh1WIw5pRaMfpmHtjiyO2p7MYHbaqimodA5Ss5KdQtCxGku2NBGhjF1CGdgpXnsB9TK9dogIAl2kE4TbdpOJ+0lq/DdhSNHNYoV354hxehBI6nWd19Bvj1wNR5OrDHZyB4c959zhroMNnZxSid4r5ZrleP6;4:zauy/A818qXq453QcWNNn7vhJ808BMduW9q0KkvaARY0r9w8cYyiHGZaEPJdrjvjMYsFwcibwR+buDOgo0c5znSRawac9p/Cqkf1nXEPxsLKTPtIaDfNCwI+ttbWN9wAsK0mIhJf2kSL4zQFJq/fwkAjdNvSYQe+LBfJsIb2ZopqisQGZRGblPTP7+6DpFU7X2gAxGYM0orYge+3LzN2e2bgOXMZ7ngMwK33hw0XYkpyPzyHSdKHdkjIuqwHJHsIKmRJsVhZ5I5bgRsR1qQu8siav6zN1nQBlUew0gxMSs/QLmorukDME8gIlRVFjMobUcqCDAXqqOH5ALT/IJ+4xk1zWrKNJ8ZukaRIJl656A8= 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)(5005006)(8121501046)(100000703101)(100105400095)(93006095)(93001095)(10201501046)(3002001)(6041248)(20161123562025)(20161123564025)(20161123558100)(20161123555025)(20161123560025)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(6072148)(201708071742011)(100000704101)(100105200095)(100000705101)(100105500095);SRVR:CO1PR15MB1078;BCL:0;PCL:0;RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095);SRVR:CO1PR15MB1078; X-Forefront-PRVS: 04238CD941 X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10019020)(6009001)(189002)(199003)(305945005)(7736002)(25786009)(50226002)(6512007)(54906002)(8936002)(81156014)(81166006)(8676002)(189998001)(68736007)(69596002)(50986999)(42186005)(53416004)(105586002)(2361001)(2351001)(478600001)(106356001)(33646002)(101416001)(5003940100001)(36756003)(47776003)(5660300001)(2906002)(97736004)(6116002)(1076002)(6666003)(6916009)(86362001)(4326008)(575784001)(110136004)(48376002)(53936002)(6486002)(50466002)(6506006)(42262002)(309714004);DIR:OUT;SFP:1102;SCL:1;SRVR:CO1PR15MB1078;H:castle.thefacebook.com;FPR:;SPF:None;PTR:InfoNoRecords;MX:1;A:1;LANG:en; X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1;CO1PR15MB1078;23:R1sx0Fz4GoiNwBPIw096BKRcBLIQfhV1U9J9h7ff4?= =?us-ascii?Q?hAQ/vrC7+7rruthEJawfPNbaKlNT+999dOT39FyxM/vZmigmRi/GRB5+yC7h?= =?us-ascii?Q?2/XKfGGvJv+kC2Jnk+EdTL8RqVV3fw+JK0xFPpKOV+JakgYbyD1EVpTIUdHl?= =?us-ascii?Q?tDNtnijp1t3OxCA6TkEJ6KLJcNRBe575j8usYESw+3HmLrtdNll9Z/8soKhv?= =?us-ascii?Q?F5Za7Sx56+Z35uv3eD7FQnlMrjs4daDMLiHRcX4L8zWmXP4DKcYPO6lRx0Z8?= =?us-ascii?Q?XFwiKPd0EOAcBJPZcBys14ascjqLthrgIjiN3eG6YsxmVFMDZWvS7pyDyvMS?= =?us-ascii?Q?1QYPKnsTn5g75aOjphbRAm1A+YaEd5SNW9SFApwzvcKHPcvaOC+nq9WIFkbR?= =?us-ascii?Q?DdytqugiOrhc4pk8wfIP4gJbUTcGDSzwQH7t1fPYTzR+2lgJp2CeGM1F9MI6?= =?us-ascii?Q?CO7LH5528Wu4ghHeGlDTh9CPxKP+z6a+RP5dQGZ9h64RiMY5zluf23zXinZo?= =?us-ascii?Q?b43u1J8fgY33s2ABD8mymVuN5y8E+E0wOsL4TS1Q3vyj8BULntVD/Gcn19fc?= =?us-ascii?Q?RCuR1+iUVHZp5OOmBk1T8MWCgKGCCWrZaXh0Vkb1leAdPNewkPF57dktGxnv?= =?us-ascii?Q?9ts8rikRrxDQ4BOft7iEDlNEKcDCEB+H90obKpi9BZayIO5ciJbWk7MR0D/R?= =?us-ascii?Q?C9hD2nqd7W+pTMpe3FJmHwKz3eQHYqi9FIT7MvYdCc+X6hwnOeaGuaZ8Atr8?= =?us-ascii?Q?+c/fQzqxAyghsBdNoFY8HZm6yL8+vXK8m3TQtJhy/8Avt9CJwjbB2LmLLNwA?= =?us-ascii?Q?2JPXZmX4pr84XcOEYls7fUJsUJEcpEAWmvZpqc0hTGIOP/AjhQsp1Wjy3utk?= =?us-ascii?Q?7ry0rmWO6KxlhT5bzAfpDYVy32+YzH36I87+h5RUk8/8Z18i/P7SyFM1ouDh?= =?us-ascii?Q?+b2FsqT9yQOefVYGf5GB2Twpus/EM/+6LBr2HE+/BJBpNj89OnYLtfWoquKg?= =?us-ascii?Q?mONmEpuEjuTJLx7YjMJoTzMFPg/3m9xOjvwRYMBMK4HlVSnpGmOnl193aEVX?= =?us-ascii?Q?sP4wigXZdujACB6/113vrXW87u0+czFY5lS+ziUqnXxxoxwylfOEvAzdl9Ge?= =?us-ascii?Q?OUdltIxJxw=3D?= X-Microsoft-Exchange-Diagnostics: 1;CO1PR15MB1078;6:JIMK0bnxSl+hRTM04WM7YrwGrR08Z7XOfOfBglw5bl4FkIhSBEqn/hOWHKhsDzZ4uj+PpnjUF50u30pHI6TZcs8xOh1ZJBb7xFz62mazSLK1Uy3OGgl32TzeqlKsKJ8SEWX6bK89amZmPEYmb7bkJWIPpqbJTbImoHv0qAkeYspo3dhcSsN1UDNjhit69L0ng5yVHHXxZ2yiseXRuQq4pE4XmJjMZck5Ysyrudo5y/wMDY9RLEixcIju7WYDgX3FFAJ6j/yIY4eTjRtBuCOv5Xc7QmkbNYR5tBKXkBXzBiOVFwVJQ3/Rw47hp3cfFHrTAYEtczV2c/awPsVuYAHciw==;5:snDuo4dOIJcwbvRNZEw5/HFI1ILlYfbAQuAOv7ax62wufYK6dkKw9VWvuiXdxbjhscBgnnHI6KhrASUsx5mAmknc9lxRI6ODzH4qVdHUbkaEcSpCwbbjyyZ69OoFxn8AqjA+8lMQSa2Ury/gSNghnw==;24:LZx5B9OkEALY7ezLohubupgCVz5r7zQ2F3sWOTJbx6XYRe6odI+GLcg6r7uI9aIV9jLQrug7R7uV8caFJG6Q2XUm+IzynbekziXnLON45wk=;7:UJQDd33+3Qpn9cwsRDhSpWsU85beBsgeSuhYKU8/Y7iD5qjMQIA9Y2nMtU3YHaDFbT9oJx5jgIKtgiCGWOMhn+K77xAAB/h3EOUCnLDrjOkfbhmC6L4QlVWlyEprlYRwhAnlzZLkuzGR082PUrYZmIp0Ic43FwNvyxAb3WELAX/zUCguJlcDlLYN7AGFo5lOc+rAhLnsT5WAuWTQMGohRS6sNXVSxSah3/R5MMf9XoA= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1;CO1PR15MB1078;20:1EgbdaJCidJ1izxrC44w8B/m9M9aItvXn2tQymu4ALtIObI3I7B4aV6N3oJu7BDHLYPu9pDKsrbZlLt9VBcqhVMMgMGh54Wu3kZj36jqXLKurhi0kyswZTOIeeL5rIQWaYvsbJkQjQSWx4NFvYhVclZhlteigRz6ZHSdHDAE0Fg= X-MS-Exchange-CrossTenant-OriginalArrivalTime: 07 Sep 2017 11:17:38.7799 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 8ae927fe-1255-47a7-a2af-5f3a069daaa2 X-MS-Exchange-Transport-CrossTenantHeadersStamped: CO1PR15MB1078 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-07_08:,, 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: 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