Skip to content
  • Lai Jiangshan's avatar
    tracing: fix splice return too large · 93cfb3c9
    Lai Jiangshan authored
    
    
    I got these from strace:
    
     splice(0x3, 0, 0x5, 0, 0x1000, 0x1) = 12288
     splice(0x3, 0, 0x5, 0, 0x1000, 0x1) = 12288
     splice(0x3, 0, 0x5, 0, 0x1000, 0x1) = 12288
     splice(0x3, 0, 0x5, 0, 0x1000, 0x1) = 16384
     splice(0x3, 0, 0x5, 0, 0x1000, 0x1) = 8192
     splice(0x3, 0, 0x5, 0, 0x1000, 0x1) = 8192
     splice(0x3, 0, 0x5, 0, 0x1000, 0x1) = 8192
    
    I wanted to splice_read 4096 bytes, but it returns 8192 or larger.
    
    It is because the return value of tracing_buffers_splice_read()
    does not include "zero out any left over data" bytes.
    
    But tracing_buffers_read() includes these bytes, we make them
    consistent.
    
    Signed-off-by: default avatarLai Jiangshan <laijs@cn.fujitsu.com>
    Cc: Frederic Weisbecker <fweisbec@gmail.com>
    Cc: Steven Rostedt <srostedt@redhat.com>
    LKML-Reference: <49D46674.9030804@cn.fujitsu.com>
    Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
    93cfb3c9