Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754518AbcCYTgX (ORCPT ); Fri, 25 Mar 2016 15:36:23 -0400 Received: from mx1.redhat.com ([209.132.183.28]:38142 "EHLO mx1.redhat.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1754454AbcCYTgU (ORCPT ); Fri, 25 Mar 2016 15:36:20 -0400 From: Josh Poimboeuf To: Jiri Kosina , Jessica Yu , Miroslav Benes Cc: linux-kernel@vger.kernel.org, live-patching@vger.kernel.org, Vojtech Pavlik Subject: [RFC PATCH v1.9 13/14] livepatch: add /proc//patch_status Date: Fri, 25 Mar 2016 14:35:00 -0500 Message-Id: <9de6283945f99958dfd7fac0f24fcce98d5410a6.1458933243.git.jpoimboe@redhat.com> In-Reply-To: References: Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1264 Lines: 43 Expose the per-task klp_universe value so users can determine which tasks are holding up completion of a patching operation. Call it "patch_status" rather than "universe": it's at least more descriptive for the average user. Signed-off-by: Josh Poimboeuf --- fs/proc/base.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/fs/proc/base.c b/fs/proc/base.c index b1755b2..f90998b 100644 --- a/fs/proc/base.c +++ b/fs/proc/base.c @@ -2801,6 +2801,15 @@ static int proc_pid_personality(struct seq_file *m, struct pid_namespace *ns, return err; } +#ifdef CONFIG_LIVEPATCH +static int proc_pid_patch_status(struct seq_file *m, struct pid_namespace *ns, + struct pid *pid, struct task_struct *task) +{ + seq_printf(m, "%d\n", task->klp_universe); + return 0; +} +#endif /* CONFIG_LIVEPATCH */ + /* * Thread groups */ @@ -2900,6 +2909,9 @@ static const struct pid_entry tgid_base_stuff[] = { REG("timers", S_IRUGO, proc_timers_operations), #endif REG("timerslack_ns", S_IRUGO|S_IWUGO, proc_pid_set_timerslack_ns_operations), +#ifdef CONFIG_LIVEPATCH + ONE("patch_status", S_IRUSR, proc_pid_patch_status), +#endif }; static int proc_tgid_base_readdir(struct file *file, struct dir_context *ctx) -- 2.4.3