Message ID | 20180709132004.14468-6-tvrtko.ursulin@linux.intel.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
On 7/9/2018 6:19 AM, Tvrtko Ursulin wrote: > From: Tvrtko Ursulin <tvrtko.ursulin@intel.com> > > Now that we scale timestamps to get better timeline granularity, the hacky > hand rolled micro-second time to HTML date conversion does no longer cut > it. > > Use perl built-in gmtime to handle things properly. > > Signed-off-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com> > Cc: John Harrison <John.C.Harrison@Intel.com> > --- > scripts/trace.pl | 15 ++++----------- > 1 file changed, 4 insertions(+), 11 deletions(-) > > diff --git a/scripts/trace.pl b/scripts/trace.pl > index e2978e5382c2..aeaf2392162e 100755 > --- a/scripts/trace.pl > +++ b/scripts/trace.pl > @@ -346,24 +346,17 @@ sub sanitize_ctx > sub ts > { > my ($us) = @_; > - my ($d, $h, $m, $s); > + my ($y, $mo, $d, $h, $m, $s); > > $us *= 1000 unless $no_timeline_scaling; > > $s = int($us / 1000000); > $us = $us % 1000000; > > - $m = int($s / 60); > - $s = $s % 60; > + ($s, $m, $h, $d, $mo, $y) = gmtime($s); > > - $h = int($m / 60); > - $m = $m % 60; > - > - $d = 1 + int($h / 24); > - $h = $h % 24; > - > - return sprintf('2017-01-%02u %02u:%02u:%02u.%06u', > - int($d), int($h), int($m), int($s), int($us)); > + return sprintf('%04u-%02u-%02u %02u:%02u:%02u.%06u', > + 1970 + $y, 1 + $mo, $d, $h, $m, $s, int($us)); Maybe not bother with the +1970 in the scaling case given that the whole date thing is meaningless when microseconds become milliseconds? Actually, even in the non-scaling case the epoch is actually whenever the traced system was last booted and not some specific calendar date. So maybe leaving out the offset regardless would make sense? Again, a minor point so... Reviewed-by: John Harrison <John.C.Harrison@Intel.com> > } > > # Main input loop - parse lines and build the internal representation of the
diff --git a/scripts/trace.pl b/scripts/trace.pl index e2978e5382c2..aeaf2392162e 100755 --- a/scripts/trace.pl +++ b/scripts/trace.pl @@ -346,24 +346,17 @@ sub sanitize_ctx sub ts { my ($us) = @_; - my ($d, $h, $m, $s); + my ($y, $mo, $d, $h, $m, $s); $us *= 1000 unless $no_timeline_scaling; $s = int($us / 1000000); $us = $us % 1000000; - $m = int($s / 60); - $s = $s % 60; + ($s, $m, $h, $d, $mo, $y) = gmtime($s); - $h = int($m / 60); - $m = $m % 60; - - $d = 1 + int($h / 24); - $h = $h % 24; - - return sprintf('2017-01-%02u %02u:%02u:%02u.%06u', - int($d), int($h), int($m), int($s), int($us)); + return sprintf('%04u-%02u-%02u %02u:%02u:%02u.%06u', + 1970 + $y, 1 + $mo, $d, $h, $m, $s, int($us)); } # Main input loop - parse lines and build the internal representation of the