[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-changelog] [xen master] console: provide timestamps as an offset since boot
commit d983db72bb5692d20c99f34570fef94e82d23277 Author: Andrew Cooper <andrew.cooper3@xxxxxxxxxx> AuthorDate: Thu Mar 13 14:37:58 2014 +0100 Commit: Jan Beulich <jbeulich@xxxxxxxx> CommitDate: Thu Mar 13 14:37:58 2014 +0100 console: provide timestamps as an offset since boot This adds a new "Linux style" console timestamp method, which is shorter and more useful than the current date/time timestamps with single-second granularity. Signed-off-by: Andrew Cooper <andrew.cooper3@xxxxxxxxxx> Acked-by: Keir Fraser <keir@xxxxxxx> --- docs/misc/xen-command-line.markdown | 15 +++++++-- xen/drivers/char/console.c | 56 +++++++++++++++++++++++++++++----- 2 files changed, 59 insertions(+), 12 deletions(-) diff --git a/docs/misc/xen-command-line.markdown b/docs/misc/xen-command-line.markdown index 8261e1c..80a0a55 100644 --- a/docs/misc/xen-command-line.markdown +++ b/docs/misc/xen-command-line.markdown @@ -275,11 +275,20 @@ cleared. This allows a single port to be shared by two subsystems makes sense on its own. ### console\_timestamps -> `= <boolean>` +> `= none | date | boot` -> Default: `false` +> Default: `none` + +Specify which timestamp format Xen should use for each console line. + +* `none`: No timestamps +* `date`: Date and time information + * `[YYYY-MM-DD HH:MM:SS]` +* `boot`: Seconds and microseconds since boot + * `[SSSSSS.uuuuuu]` -Flag to indicate whether include a timestamp with each console line. +For compatibility with the older boolean parameter, specifying +`console_timestamps` alone will enable the `date` option. ### console\_to\_ring > `= <boolean>` diff --git a/xen/drivers/char/console.c b/xen/drivers/char/console.c index beda79f..9c032bf 100644 --- a/xen/drivers/char/console.c +++ b/xen/drivers/char/console.c @@ -49,8 +49,17 @@ static bool_t __read_mostly opt_console_to_ring; boolean_param("console_to_ring", opt_console_to_ring); /* console_timestamps: include a timestamp prefix on every Xen console line. */ -static bool_t __read_mostly opt_console_timestamps; -boolean_param("console_timestamps", opt_console_timestamps); +enum con_timestamp_mode +{ + TSM_NONE, /* No timestamps */ + TSM_DATE, /* [YYYY-MM-DD HH:MM:SS] */ + TSM_BOOT /* [SSSSSS.uuuuuu] */ +}; + +static enum con_timestamp_mode __read_mostly opt_con_timestamp_mode = TSM_NONE; + +static void parse_console_timestamps(char *s); +custom_param("console_timestamps", parse_console_timestamps); /* conring_size: allows a large console ring than default (16kB). */ static uint32_t __initdata opt_conring_size; @@ -546,23 +555,52 @@ static int printk_prefix_check(char *p, char **pp) ((loglvl < upper_thresh) && printk_ratelimit())); } +static void __init parse_console_timestamps(char *s) +{ + if ( *s == '\0' || /* Compat for old booleanparam() */ + !strcmp(s, "date") ) + opt_con_timestamp_mode = TSM_DATE; + else if ( !strcmp(s, "boot") ) + opt_con_timestamp_mode = TSM_BOOT; + else if ( !strcmp(s, "none") ) + opt_con_timestamp_mode = TSM_NONE; +} + static void printk_start_of_line(const char *prefix) { struct tm tm; char tstr[32]; + uint64_t sec, nsec; __putstr(prefix); - if ( !opt_console_timestamps ) - return; + switch ( opt_con_timestamp_mode ) + { + case TSM_DATE: + tm = wallclock_time(); - tm = wallclock_time(); - if ( tm.tm_mday == 0 ) + if ( tm.tm_mday == 0 ) + return; + + if ( opt_con_timestamp_mode == TSM_DATE ) + snprintf(tstr, sizeof(tstr), "[%04u-%02u-%02u %02u:%02u:%02u] ", + 1900 + tm.tm_year, tm.tm_mon + 1, tm.tm_mday, + tm.tm_hour, tm.tm_min, tm.tm_sec); + break; + + case TSM_BOOT: + sec = NOW(); + nsec = do_div(sec, 1000000000); + + snprintf(tstr, sizeof(tstr), "[%5"PRIu64".%06"PRIu64"] ", + sec, nsec / 1000); + break; + + case TSM_NONE: + default: return; + } - snprintf(tstr, sizeof(tstr), "[%04u-%02u-%02u %02u:%02u:%02u] ", - 1900 + tm.tm_year, tm.tm_mon + 1, tm.tm_mday, - tm.tm_hour, tm.tm_min, tm.tm_sec); __putstr(tstr); } -- generated by git-patchbot for /home/xen/git/xen.git#master _______________________________________________ Xen-changelog mailing list Xen-changelog@xxxxxxxxxxxxx http://lists.xensource.com/xen-changelog
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |