From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751512AbdINWor (ORCPT ); Thu, 14 Sep 2017 18:44:47 -0400 Received: from mx0a-00082601.pphosted.com ([67.231.145.42]:44862 "EHLO mx0a-00082601.pphosted.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751268AbdINWop (ORCPT ); Thu, 14 Sep 2017 18:44:45 -0400 Date: Thu, 14 Sep 2017 15:44:31 -0700 From: Roman Gushchin To: CC: Alexander Viro , Ingo Molnar , , Andrew Morton , Oleg Nesterov Subject: Re: [RFC] proc, coredump: add CoreDumping flag to /proc/pid/status Message-ID: <20170914224431.GA9735@castle> References: <20170907111715.1359-1-guro@fb.com> MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Disposition: inline In-Reply-To: <20170907111715.1359-1-guro@fb.com> User-Agent: Mutt/1.8.3 (2017-05-23) X-Originating-IP: [2620:10d:c090:180::1:1f06] X-ClientProxiedBy: MWHPR22CA0025.namprd22.prod.outlook.com (2603:10b6:300:69::11) To DM3PR15MB1084.namprd15.prod.outlook.com (2603:10b6:0:12::10) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: cc2f43f3-76d3-40f0-f1d9-08d4fbc22dac X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:(300000500095)(300135000095)(300000501095)(300135300095)(300000502095)(300135100095)(22001)(2017030254152)(300000503095)(300135400095)(2017052603199)(201703131423075)(201703031133081)(201702281549075)(300000504095)(300135200095)(300000505095)(300135600095)(300000506095)(300135500095);SRVR:DM3PR15MB1084; X-Microsoft-Exchange-Diagnostics: 1;DM3PR15MB1084;3:P2BbJt7NLkzqdYgFy8ZRu3Pl4LDh34Wp1t8qhxfdtraEmDuoiNR4pew68xcwIw1ABd2n3oW6NFCfP9QyHyrVrTFxE+tn3SlerxMWs3Xi7K+NcXd0b0uxdBvN72AI0i5rcmGyG0oBJNeVy4LZRXjLOTS6LODdpQMpQ7+6M48t438bjVnoHxo4JowMw2n17gGKuswByf39azmshGa8Atwu4l4wdPW389M0pZVsMU7YqcxW5ZshQm8eu+eTfKn6Vkt4;25:YcGxWNBv2JbapE29x1ga4H3UxuKVxZjHSIAK7nr4CU3Yu3NgaJAr3NrpmnB/153aY5PqyzAF4F6fY8YqpnDD6HUg+yqSWcyrV4gd9Lc0dW6/WwB2nRjiZpgmZpV/mVkUj3D2VaaGhKD1NZhd2ZTU/nmN5aDoOmYZu6N1w+ML6oNN4q2wwkQB9RBWJgt/HhmwNGUvpFADFOlly1vbi7ds2ugKCdVYrS9TOe+OgGQvYg5qqcsFSeNCenx3CcepyTfgHFW7SEJUuaNlQkj1WKsf4H1v6oooTaP0tq5sGbe+Znw/E4qH8p/nOAWDm77O2yf3NDUWbtAjFxxj0ya3iweqvw==;31:uauOJfjbqCwlYClRrtoFm1X0nb6xDljP1ERASBPzpW0HLAUxSi/XnVzDrcZHpFmt7mYvfwIVptr0N3d5r88Wl28aEfvFOwPKV618jhXhkBTuRmMHnkMYab4LSyKBhKEpa5gxhs41Ui5klqkWmaXYSpbTFAatJGvrP5fGlinTBcxseXDUJGGoyLguVa+l0xsV5qXJUnDxnxi6iwYenSb0Jie3jgjJOZ8TxBuMGje5Tok= X-MS-TrafficTypeDiagnostic: DM3PR15MB1084: X-Microsoft-Exchange-Diagnostics: 1;DM3PR15MB1084;20:99FtKZXlaw2cpLn9K/hpWQBptUF2KLQ1SI7SZuRJDMd9gQEliuPBhlmdKdLIXw7r97Wzh3GgKuTms8A0TzIhh4gGCtFNBn55qDW0YKgA9E+P2m5atMzKnrQ0Zo6AZAtQDfnL4YTQUtYd3iUd1mcZgVVcSiPqwecq0hM4kDM6Nb33uRvaQZtLSQC6ZEdFNYMRuxlpUc0ZsLRXEjG6guc80cKVcYIQ76QQ/gHtGVVT8yaVt1A05qV+HYIgPur7kfwCyF7u6885fqVVsip+Tl1axvJJx/G3/ZeUQhutcOXmbXtesb+5jfrrykGx/Epa5i3Tktx7sV0FMdar1Nlcs74+Ktjc9176KDSUEoMbM9ieRkTf05zbAcA3zQr7jlUUhMzzbDm2epz8pEjylDGJ+vUdYeWGIcHsbJHY8rm45QhcYpNrTDXWhQzlL0cJzmq/LiWriC1rrwIit1MVRwDvC/zj0C3CGrZVeuxnEPThFladvWfp9zqzDSyU0qzzI7k/MMV9;4:oOsQx+jeTXKch0AQQq9JRcpGbByyWVDdH8g3GpjrKAQdFqWpGGYtLugFmaLz/FCQ/LupiUunLbXpb7CJE7SJOkv4YevQhbezDBx5/39B+qAA8fh65aUWcusEy2/JmFxzUoXUlg5Bbi1Z6z9aWQiTpKAFjNwLZUChQD29VgK5ZZ07vSBIdwY1L1ZFXYQ6pj3KhqhCgps6ZTE/syPiqlK3cDEGRYvEMDf30vZtLz/vsx7bK6JonvQv3NDTHypigYWkyiGHYBscVa5BJYgFI8g2p/H8W26KhMDbVaxbBOgJgTGlR3OkYFX2DlWbqmV5d98UCdWpPzp9d4+FK0y7ZrVpocNDAafLFmY6JFLZDubFPM1x4KlyL/84qqIU9eWdRJxK 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)(10201501046)(100000703101)(100105400095)(93006095)(93001095)(3002001)(6041248)(20161123560025)(20161123555025)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(20161123564025)(20161123558100)(20161123562025)(6072148)(201708071742011)(100000704101)(100105200095)(100000705101)(100105500095);SRVR:DM3PR15MB1084;BCL:0;PCL:0;RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095);SRVR:DM3PR15MB1084; X-Forefront-PRVS: 0430FA5CB7 X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10019020)(979002)(6009001)(346002)(376002)(24454002)(189002)(199003)(23726003)(106356001)(105586002)(25786009)(50466002)(6116002)(101416001)(229853002)(54356999)(2361001)(33656002)(1076002)(76176999)(97736004)(2351001)(6496005)(33716001)(16586007)(5660300001)(50986999)(478600001)(83506001)(110136004)(55016002)(47776003)(9686003)(81156014)(54906002)(8676002)(2906002)(68736007)(4326008)(316002)(8936002)(81166006)(305945005)(575784001)(6916009)(189998001)(2950100002)(6666003)(53936002)(86362001)(58126008)(6246003)(7736002)(18370500001)(42262002)(309714004)(969003)(989001)(999001)(1009001)(1019001);DIR:OUT;SFP:1102;SCL:1;SRVR:DM3PR15MB1084;H:castle;FPR:;SPF:None;PTR:InfoNoRecords;MX:1;A:1;LANG:en; X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1;DM3PR15MB1084;23:WeRe/VWaHZ9oLmu9lTjXrKX7ipLw9FJqqc+XRC0vb?= =?us-ascii?Q?Y+K5ATzt47RxLMYXh6cJthiBvOuCD23bQzOyrr1eE1wXAk18/lbDfIIS6i49?= =?us-ascii?Q?YHpYFnkM1tyF2vV8lrG6Cod3foCEn8hgFeVBhwWjRiHI+apSpPKygPBRjikt?= =?us-ascii?Q?MqmRV6H7uZuqNrRLe6DCSrpXXy9o/3NjZiz33oEUpu2ezbcDHt4arRa8vYy8?= =?us-ascii?Q?SllyMS8GCulln4ThuPKiIGq3BzMTCffoOPoBa8N2VBzH9vLRJOHGiAG1CdlG?= =?us-ascii?Q?Dxcgx2eeRQ5I84s0TzvE59kWVvwRwjFTY/euYLREiIQjcAZCwNPXUKwXH/0U?= =?us-ascii?Q?jQhSXkD+mH37sMGI5F7Mhvo5PcnDPurkzUk3DsW99Weyv42kvN0XrV4R6vz3?= =?us-ascii?Q?mEFQ2Z+f6rwHdRbV7FJuB3a+hVoavNID5Vk4TqdwYXgojqUak+aw5H7HjhoH?= =?us-ascii?Q?sAoqMtKG8rSKjueXzcOnvEa8KeJlNIgabhWzzCVv2CQSaXrTGUs+BCoj1b7s?= =?us-ascii?Q?1hGjphAfQ4CnahecI7xdYqJGowETqyUKzHuebtPT6feJgdXOMDNtkwALv3h0?= =?us-ascii?Q?+BAi/YmqA54TZjlTgoL6l9tryHGmFnzOU91B2LbGpzSUXgU43dHuW3Y2sJoi?= =?us-ascii?Q?25FlL4kQSLjbNzsaJ+M/ZnXP1wJ9OLkGLC3OLYVCqkG4SXQNlQ2EiwwttYxd?= =?us-ascii?Q?kil3Z0bGc5CBoT3lvQXhz8AcUSZOIqvAuiY+kV0hAkfLCtPVuGQhYfP0kkoz?= =?us-ascii?Q?IdkBlRk/9hBxb7n9Ev8dlRjNyof0lFzsOajr0jRBm6USB5ubyzOhmlDm3sSE?= =?us-ascii?Q?5TpvJsz+xzHE9FVwMpfBb+IDJTF5J8Wadkq9JbDyoiT5ZgoRRQAVbm8vUJKu?= =?us-ascii?Q?OwFFlASUEJE5WfTgeOMdyINJDNSNBDA+lJgFbsPK53PEbtdSLpNvb/C/iHSd?= =?us-ascii?Q?JQ+mS9wvajEE5fQ9eaIbwxkjfra97EucfT1rx0eyREaxBITgAh3BiE5eidfd?= =?us-ascii?Q?XUfulwOsvOIpXsq1+HsMqV7S2b9GeOfPUsrH++c19850nHXMIaAt8J29KYaj?= =?us-ascii?Q?IhYaqLHrPgfHVQJFHcmAY8/Ugfl1dq8k7Hd9XhXfXL2BdjwsWd7erbm82oJ9?= =?us-ascii?Q?6CcvcFSOS1fSZdv6Tbdtz2F8IRTl2tSrxK7pkCtt9slugzbfJ9nMwXyOeAtz?= =?us-ascii?Q?nwFvm9dv4D8s9bYihVb71iCdW+hGWKaFbjyBrrtUHzkuDLWHcOwXg0bL9q5a?= =?us-ascii?Q?sYrUElb1pZsfN9fFqiLCUl0taeX5WG5v9Z1fduCgpa/cLSNWyvRrXg+r030V?= =?us-ascii?Q?zaYpBcePz0/7dzKK+xuttmZEVxinos3Q2iJEuf6V/YtUtUXmgHH3tiRX0Fje?= =?us-ascii?Q?zd9hkX0qJA8L+LRRxXQ67N8eG4=3D?= X-Microsoft-Exchange-Diagnostics: 1;DM3PR15MB1084;6:yb4EuMWfMblj/Jbm9XOLJQfSBP24/uenpUO/O3ntHLVNsREvIBHKqNUEPIo7y/aTGQgxQ0DBztnbSXYM6VMCQd1Xs2a8aICZKqkbavR4Coc2oY0d1Vs2AwFRD+9/JDz4LqN3BplIaqPx5BVKP4O0VIL8SlCMvCkHnNYvJ6l80ucRGepSBTY7tPbti1vCUlxrY+0bov3S/eXzukBGJ52PpC34IrPY5RrdThcwpMBGnpzqO+V1mxZ/DtXlcZiYGX88khPnlCcZWXOycY5limO2wlXZ5Yyji0w0WGpiJweU9VOsdIdhqeWT/j6Giga7ovs3KEqe2n4bfnDaMsj0mdrLGQ==;5:Fn/83UNDLkdHPYa2AyONsIe/lK8PLYyGDYA16oUwx76j6AwXMif4GcH7NBLPQrWpSbLRrTqz5hEZQeleKNfGPGAdG+NH54aNDtsiko9Yd6kxgA8JxfOmE/OJU915k67uI/6nwY+E5AwepDt3+BMteD/nKV0RKlI2brtQM3nV5R0=;24:mwhiahsQZgaCpnho+NuN1yVHogRzqTRnCSrnope5VhrrZl5yPkw2zBlQh04pA5kwI5CbkXcpDL16LBecAMv+eKioPCCyVWRVnxi6VSZdYVE=;7:3ijUkU6WwGTglpJBsXHmmvAIdxLORz5nuXZsTxJyEsYYvk6TtjggxRy2rP4FK0uW2XuRob6q17MuJbDqyLBoBxQw4N9/56rPVjb9SA0OBs7FS6+2kh/6gMjJ+vz+gq6IarxEpSnHQk+o2Ov4CSwSnM+V2yKl6yopqyPvghIKTXlB/vOWCKKtw/aHxnFYL+PbXLRgqnwlUYH2YphHmowqCOrMQKfkpae4ffgW4hmY6TM= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1;DM3PR15MB1084;20:ySr0CpIG3b6cN3SlvKoWXYFjkhSwJ2CYjEWfiADc4JVCez6dxSJMVLSOTB5xdKbqxIgAH/1O3d4QNgybSfsxuvCxuJ5VmdUevmkB/ep5+CXbYqQZ/B2aE0SYecUyI3qr7rMSkOjyis3NTHVymhYscfZjCtrYPGUkoE7fCaNDIEQ= X-MS-Exchange-CrossTenant-OriginalArrivalTime: 14 Sep 2017 22:44:36.7743 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 8ae927fe-1255-47a7-a2af-5f3a069daaa2 X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM3PR15MB1084 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-14_07:,, signatures=0 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Adding Andrew Morton and Oleg Nesterov to cc. On Thu, Sep 07, 2017 at 12:17:15PM +0100, Roman Gushchin wrote: > 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 >