From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S966230AbdGUCBC (ORCPT ); Thu, 20 Jul 2017 22:01:02 -0400 Received: from mx2.suse.de ([195.135.220.15]:59691 "EHLO mx1.suse.de" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S964809AbdGUCBB (ORCPT ); Thu, 20 Jul 2017 22:01:01 -0400 Date: Fri, 21 Jul 2017 04:00:57 +0200 From: "Luis R. Rodriguez" To: Mark Salyzyn Cc: linux-kernel@vger.kernel.org, pavel@ucw.cz, andriy.shevchenko@linux.intel.com, joe@perches.com, prarit@redhat.com, rjw@rjwysocki.net, tglx@linutronix.de, Petr Mladek , Sergey Senozhatsky , Steven Rostedt , Kees Cook , Anton Vorontsov , Colin Cross , Tony Luck , Andrew Morton , "Paul E. McKenney" , Ingo Molnar , Peter Zijlstra , Geert Uytterhoeven , Mark Salyzyn , "Luis R. Rodriguez" , Nicholas Piggin , Olof Johansson , "Jason A. Donenfeld" , Josh Poimboeuf Subject: Re: [PATCH v5] printk: Add pr_info_show_time Message-ID: <20170721020057.GA18884@wotan.suse.de> References: <20170720182505.9357-1-salyzyn@android.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20170720182505.9357-1-salyzyn@android.com> User-Agent: Mutt/1.6.0 (2016-04-01) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Thu, Jul 20, 2017 at 11:24:22AM -0700, Mark Salyzyn wrote: > diff --git a/lib/Kconfig.debug b/lib/Kconfig.debug > index 98fe715522e8..0d63c3fb4e24 100644 > --- a/lib/Kconfig.debug > +++ b/lib/Kconfig.debug > @@ -30,6 +30,58 @@ config CONSOLE_LOGLEVEL_DEFAULT > usage in the kernel. That is controlled by the MESSAGE_LOGLEVEL_DEFAULT > option. > > +# set if time is being printed in pr_info_show_time() > +config PR_INFO_SHOW_TIME > + bool > + > +choice > + prompt "pr_info_show_time() alternate time message prefix" > + help > + Activate alternate time prefix in pr_info_show_time > + > + The primary use of the instrumentation is to aid field > + analysis of Battery and Power usage. The instrumentation > + may also help triage and synchronize kernel logs and user > + space activity logs at key displacements. > + config PR_INFO_SHOW_TIME_MONOTONIC > + bool "monotonic" > + help > + Deactivate alternate time prefix in pr_info_show_time. > + Doing so because monotonic time is part of the normal > + printk time logging. > + > + Print only the supplied message in pr_info_show_time, > + indistinguishable from pr_info. > + config PR_INFO_SHOW_TIME_REALTIME > + bool "realtime" > + select PR_INFO_SHOW_TIME > + help > + Activate alternate time prefix in pr_info_show_time > + > + The primary use of the instrumentation is to aid field > + analysis of Battery and Power usage. The instrumentation > + may also help triage and synchronize kernel logs and user > + space activity logs at key displacements. For instance > + CLOCK_MONOTONIC stops while suspended, while CLOCK_REALTIME > + continues, and the timestamps help re-orient post-analysis. > + > + Prefix realtime [.U] timestamp in pr_info_show_time > + config PR_INFO_SHOW_TIME_BOOTTIME > + bool "boottime" > + select PR_INFO_SHOW_TIME > + help > + Activate alternate time prefix in pr_info_show_time > + > + The primary use of the instrumentation is to aid field > + analysis of Battery and Power usage. The instrumentation > + may also help triage and synchronize kernel logs and user > + space activity logs at key displacements. For instance > + CLOCK_MONOTONIC stops while suspended, while CLOCK_BOOTTIME > + continues, and the timestamps help re-orient post-analysis. > + > + Prefix boottime [.B] timestamp in pr_info_show_time > +endchoice There is no depends magic anywhere here, so none of this actually has complex dependencies, this is just boot time preference setup, and for that I think a boot param and sysctl value could easily not only enable the same but *also* enable run time ability to swap between these. Even for the branch performance consideration can't jump labels be used to address that if there is a concern for that? I think that would also make the code easier to read and remove all this kconfig extra stuff. Then its just a run time thing. Also, should there be no checks for time being available and ready before this is used? Luis