Bug #169
closedLttng Kernel Module: Timestamp offset invalid on a 32 bit OS
0%
Description
In the metadata of a kernel trace we have the following clock descriptor:
clock {
name = monotonic;
uuid = "ed4eb84f-b43c-4133-8db8-28203028f97b";
description = "Monotonic Clock";
freq = 1000000000; /* Frequency, in Hz /
/ clock value offset from Epoch is: offset * (1/freq) */
offset = 18445690674791632402;
};
The offset is too high, it should be
clock {
name = monotonic;
uuid = "ed4eb84f-b43c-4133-8db8-28203028f97b";
description = "Monotonic Clock";
freq = 1000000000; /* Frequency, in Hz /
/ clock value offset from Epoch is: offset * (1/freq) */
offset = 1330617403233586776;
};
Like in UST.
Updated by Mathieu Desnoyers over 12 years ago
- Status changed from New to Resolved
- Assignee set to Mathieu Desnoyers
- Priority changed from Normal to High
- Target version set to 2.0 stable
fixed by:
commit 17ec046afa9b641b95951ca9594c3b7351d5e658
Author: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Date: Tue Mar 13 16:09:52 2012 -0400
Ensure that multiplication of clock offset is done on 64-bit
This is not a bug in UST per se, because we happen to force
multiplication by a ULL number, but force cast to uint64_t anyway to
ensure we don't trigger this overflow if the constant ever happen to
change.
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>