Re: [PATCH v1 04/25] lib/vsprintf: Print time and date in human readable format via %pt

From: Joe Perches
Date: Thu Jun 08 2017 - 11:48:18 EST


On Thu, 2017-06-08 at 17:33 +0200, Arnd Bergmann wrote:
> On Thu, Jun 8, 2017 at 4:55 PM, Andy Shevchenko
> <andy.shevchenko@xxxxxxxxx> wrote:
> > On Thu, Jun 8, 2017 at 5:49 PM, Arnd Bergmann <arnd@xxxxxxxx> wrote:
> > > On Thu, Jun 8, 2017 at 3:47 PM, Andy Shevchenko
> > > <andriy.shevchenko@xxxxxxxxxxxxxxx> wrote:
> > > > There are users which print time and date represented by content of
> > > > struct rtc_time in human readable format.
> > > >
> > > > Instead of open coding that each time introduce %pt[dt][rv] specifier.
> > >
> > > I really like the idea, and the implementation seems fine for this use case, but
> > > before we reserve %pt for rtc_time, could we discuss whether we want
> > > that for printing struct tm, struct timespec64, time64_t or ktime_t instead?
> >
> > How many users?
>
> It's hard to predict, I would assume we get more users once there is an
> easy way to print the time.
>
> > For struct tm it's somelike 4 (which want to print its content).
>
> Good point. I notice that they all convert from time64_t or time_t into
> struct tm immediately before printing it, so we can scratch that one
> as long as there is a way to pretty-print a time64_t. We also don't
> need to print a time_t as we want to kill that one off anyway.
>
> If we only care about printing time64_t and rtc_time, we can easily
> use %pT for one and %pt for the other, but there may still be good
> reasons to print a timespec64 or ktime_t.

> > > I can see good reasons for pretty-printing any of them, but the namespace for
> > > format strings is rather limited.


The kernel already uses different types for the same leading
letter. For
instance: %pI4 vs %pI6, %pap vs %pad

A single 't' letter could do reasonably well.