• Steven Rostedt (Red Hat)'s avatar
    ring-buffer: Get timestamp after event is allocated · a4543a2f
    Steven Rostedt (Red Hat) authored
    Move the capturing of the timestamp to after an event is allocated.
    If the event is not a commit (where it is an event that preempted
    another event), then no timestamp is needed, because the delta of
    nested events is always zero.
    
    If the event starts on a new page, no delta needs to be calculated
    as the full timestamp will be added to the page header, and the
    event will have a delta of zero.
    
    Now if the event requires a time extend (the delta does not fit
    in the 27 bit delta slot in the header), then the event is discarded,
    the length is extended to hold the TIME_EXTEND event that allows for
    a 59 bit delta, and the commit is tried again.
    
    If the event can't be discarded (another event came in after it),
    then the TIME_EXTEND is added directly to the allocated event and
    the rest of the event is given padding.
    Signed-off-by: default avatarSteven Rostedt <rostedt@goodmis.org>
    a4543a2f
ring_buffer.c 131 KB