lkml.org 
[lkml]   [2016]   [Nov]   [29]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    From
    Subject[for-next][PATCH 3/8] ring-buffer: Always inline rb_event_data()
    From: "Steven Rostedt (Red Hat)" <rostedt@goodmis.org>

    The rb_event_data() is the fast path of getting the ring buffer data from an
    event. Externally, ring_buffer_event_data() is used to access this function.
    But unfortunately, rb_event_data() is not inlined, and calling
    ring_buffer_event_data() causes that function to be called again. Force
    rb_event_data() to be inlined to lower the number of operations needed when
    calling ring_buffer_event_data().

    Link: http://lkml.kernel.org/r/20161121183700.GW26852@two.firstfloor.org

    Reported-by: Andi Kleen <andi@firstfloor.org>
    Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
    ---
    kernel/trace/ring_buffer.c | 2 +-
    1 file changed, 1 insertion(+), 1 deletion(-)

    diff --git a/kernel/trace/ring_buffer.c b/kernel/trace/ring_buffer.c
    index 1f3580cee6cc..2760aaca6d1b 100644
    --- a/kernel/trace/ring_buffer.c
    +++ b/kernel/trace/ring_buffer.c
    @@ -245,7 +245,7 @@ unsigned ring_buffer_event_length(struct ring_buffer_event *event)
    EXPORT_SYMBOL_GPL(ring_buffer_event_length);

    /* inline for ring buffer fast paths */
    -static void *
    +static __always_inline void *
    rb_event_data(struct ring_buffer_event *event)
    {
    if (event->type_len == RINGBUF_TYPE_TIME_EXTEND)
    --
    2.10.2

    \
     
     \ /
      Last update: 2016-11-29 16:16    [W:3.797 / U:0.024 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site