]> 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)
commit9c4b732683cecd63a9782eb8086a466ec9333b74
treedf1ca03a469862d425a0aa49b49db5c9a1711fe9
parent02f10552856c61e0606375f995aae5f9e5144746
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 36b5bd54cd71c ("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