]> git.baikalelectronics.ru Git - kernel.git/commit
ring-buffer: Have 32 bit time stamps use all 64 bits
authorSteven Rostedt (Google) <rostedt@goodmis.org>
Wed, 27 Apr 2022 21:08:12 +0000 (17:08 -0400)
committerSteven Rostedt (Google) <rostedt@goodmis.org>
Wed, 27 Apr 2022 21:19:30 +0000 (17:19 -0400)
commit4d0501f3a9f496aaeb575d548b7ccabb41cb319a
treedf1ca03a469862d425a0aa49b49db5c9a1711fe9
parent0bd4019224690a9669792147bedb85b9102b591f
ring-buffer: Have 32 bit time stamps use all 64 bits

When the new logic was made to handle deltas of events from interrupts
that interrupted other events, it required 64 bit local atomics.
Unfortunately, 64 bit local atomics are expensive on 32 bit architectures.
Thus, commit da0562d284f29 ("ring-buffer: Add rb_time_t 64 bit operations
for speeding up 32 bit") created a type of seq lock timer for 32 bits.
It used two 32 bit local atomics, but required 2 bits from them each for
synchronization, making it only 60 bits.

Add a new "msb" field to hold the extra 4 bits that are cut off.

Link: https://lore.kernel.org/all/20220426175338.3807ca4f@gandalf.local.home/
Link: https://lkml.kernel.org/r/20220427170812.53cc7139@gandalf.local.home
Signed-off-by: Steven Rostedt (Google) <rostedt@goodmis.org>
kernel/trace/ring_buffer.c