• Steven Rostedt's avatar
    tracing: Remove the extra 4 bytes of padding in events · b000c806
    Steven Rostedt authored
    Due to a userspace issue with PowerTop v2beta, which hardcoded
    the offset of event fields that it was using, it broke when
    we removed the Big Kernel Lock counter from the event header.
    
     (commit e6e1e259 "tracing: Remove lock_depth from event entry")
    
    Because this broke userspace, it was determined that we must
    keep those 4 bytes around.
    
     (commit a3a4a5ac "Regression: partial revert "tracing: Remove lock_depth from event entry"")
    
    This unfortunately wastes space in the ring buffer. 4 bytes per
    event, where a lot of events are just 24 bytes. That's 16% of the
    buffer wasted. A million events will add 4 megs of white space
    into the buffer.
    
    It was later noticed that PowerTop v2beta could not work on systems
    where the kernel was 64 bit but the userspace was 32 bits.
    The reason was because the offsets are different between the
    two and the hard coded offset of one would not work with the other.
    
    With PowerTop v2 final, it implemented the same interface that both
    perf and trace-cmd use. That is, it reads the format file of
    the event to find the offsets of the fields it needs. This fixes
    the problem with running powertop on a 32 bit userspace running
    on a 64 bit kernel. It also no longer requires the 4 byte padding.
    
    As PowerTop v2 has been out for a while, and is included in all
    major distributions, it is time that we can safely remove the
    4 bytes of padding. Users of PowerTop v2beta should upgrade to
    PowerTop v2 final.
    
    Cc: Linus Torvalds <torvalds@linux-foundation.org>
    Acked-by: default avatarArjan van de Ven <arjan@linux.intel.com>
    Signed-off-by: default avatarSteven Rostedt <rostedt@goodmis.org>
    b000c806
trace_events.c 38.1 KB