From: Mark Salyzyn <salyzyn@android.com>
To: linux-kernel@vger.kernel.org
Cc: rjw@rjwysocki.net, len.brown@intel.com, pavel@ucw.cz,
linux-pm@vger.kernel.org, a.zummo@towertech.it,
alexandre.belloni@free-electrons.com, linux-rtc@vger.kernel.org,
Mark Salyzyn <salyzyn@android.com>
Subject: [PATCH 1/4] rtc-lib: Add rtc_show_time(const char *prefix_msg)
Date: Tue, 18 Jul 2017 10:25:23 -0700 [thread overview]
Message-ID: <20170718172525.114514-1-salyzyn@android.com> (raw)
Go directly to the rtc for persistent wall clock time and print.
Useful if REALTIME is required to be logged in a low level power
management function or when clock activities are suspended. An
aid to permit user space alignment of kernel activities.
Feature activated by CONFIG_RTC_SHOW_TIME.
Signed-off-by: Mark Salyzyn <salyzyn@android.com>
---
drivers/rtc/Kconfig | 11 +++++++++++
drivers/rtc/rtc-lib.c | 16 ++++++++++++++++
include/linux/rtc.h | 5 +++++
3 files changed, 32 insertions(+)
diff --git a/drivers/rtc/Kconfig b/drivers/rtc/Kconfig
index 72419ac2c52a..7c308605bf42 100644
--- a/drivers/rtc/Kconfig
+++ b/drivers/rtc/Kconfig
@@ -5,6 +5,17 @@
config RTC_LIB
bool
+config RTC_SHOW_TIME
+ bool "rtc_show_time instrumentation"
+ select RTC_LIB
+ help
+ Activate rtc_show_time(const char *msg) wall clock time
+ instrumentation.
+
+ The instrumentation is used to help triage and synchronize
+ kernel logs using CLOCK_MONOTONIC and user space activity
+ logs utilizing CLOCK_REALTIME references.
+
config RTC_MC146818_LIB
bool
select RTC_LIB
diff --git a/drivers/rtc/rtc-lib.c b/drivers/rtc/rtc-lib.c
index 1ae7da5cfc60..676d6a83e843 100644
--- a/drivers/rtc/rtc-lib.c
+++ b/drivers/rtc/rtc-lib.c
@@ -94,6 +94,22 @@ void rtc_time64_to_tm(time64_t time, struct rtc_time *tm)
}
EXPORT_SYMBOL(rtc_time64_to_tm);
+#ifdef CONFIG_RTC_SHOW_TIME
+void rtc_show_time(const char *prefix_msg)
+{
+ struct timespec ts;
+ struct rtc_time tm;
+
+ getnstimeofday(&ts);
+ rtc_time_to_tm(ts.tv_sec, &tm);
+ pr_info("%s %d-%02d-%02d %02d:%02d:%02d.%09lu UTC\n",
+ prefix_msg ? prefix_msg : "Time:",
+ tm.tm_year + 1900, tm.tm_mon + 1, tm.tm_mday,
+ tm.tm_hour, tm.tm_min, tm.tm_sec, ts.tv_nsec);
+}
+EXPORT_SYMBOL(rtc_show_time);
+#endif
+
/*
* Does the rtc_time represent a valid date/time?
*/
diff --git a/include/linux/rtc.h b/include/linux/rtc.h
index 0a0f0d14a5fb..bf625e023799 100644
--- a/include/linux/rtc.h
+++ b/include/linux/rtc.h
@@ -22,6 +22,11 @@ extern int rtc_year_days(unsigned int day, unsigned int month, unsigned int year
extern int rtc_valid_tm(struct rtc_time *tm);
extern time64_t rtc_tm_to_time64(struct rtc_time *tm);
extern void rtc_time64_to_tm(time64_t time, struct rtc_time *tm);
+#ifdef CONFIG_RTC_SHOW_TIME
+extern void rtc_show_time(const char *prefix_msg);
+#else
+#define rtc_show_time(prefix_msg)
+#endif
ktime_t rtc_tm_to_ktime(struct rtc_time tm);
struct rtc_time rtc_ktime_to_tm(ktime_t kt);
--
2.13.2.932.g7449e964c-goog
next reply other threads:[~2017-07-18 17:25 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-07-18 17:25 Mark Salyzyn [this message]
2017-07-18 17:41 ` [PATCH 1/4] rtc-lib: Add rtc_show_time(const char *prefix_msg) Joe Perches
2017-07-18 17:46 ` Andy Shevchenko
2017-07-18 17:49 ` Andy Shevchenko
2017-07-18 17:52 ` Alexandre Belloni
2017-07-18 20:00 ` Mark Salyzyn
2017-07-18 20:08 ` Mark Salyzyn
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20170718172525.114514-1-salyzyn@android.com \
--to=salyzyn@android.com \
--cc=a.zummo@towertech.it \
--cc=alexandre.belloni@free-electrons.com \
--cc=len.brown@intel.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-pm@vger.kernel.org \
--cc=linux-rtc@vger.kernel.org \
--cc=pavel@ucw.cz \
--cc=rjw@rjwysocki.net \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.