Re: [RFC PATCH 4/6] ftrace: Allow stealing pages from pipe buffer

From: Steven Rostedt
Date: Mon Jul 30 2012 - 18:12:24 EST


On Tue, 2012-07-24 at 11:37 +0900, Yoshihiro YUNOMAE wrote:
> From: Masami Hiramatsu <masami.hiramatsu.pt@xxxxxxxxxxx>
>
> Use generic steal operation on pipe buffer to allow stealing
> ring buffer's read page from pipe buffer.
>
> Note that this could reduce the performance of splice on the
> splice_write side operation without affinity setting.
> Since the ring buffer's read pages are allocated on the
> tracing-node, but the splice user does not always execute
> splice write side operation on the same node. In this case,
> the page will be accessed from the another node.
> Thus, it is strongly recommended to assign the splicing
> thread to corresponding node.
>
> Signed-off-by: Masami Hiramatsu <masami.hiramatsu.pt@xxxxxxxxxxx>

Acked-by: Steven Rostedt <rostedt@xxxxxxxxxxx>

-- Steve


> Cc: Frederic Weisbecker <fweisbec@xxxxxxxxx>
> Cc: Ingo Molnar <mingo@xxxxxxxxxx>
> ---
>
> kernel/trace/trace.c | 8 +-------
> 1 files changed, 1 insertions(+), 7 deletions(-)
>
> diff --git a/kernel/trace/trace.c b/kernel/trace/trace.c
> index a120f98..ae01930 100644
> --- a/kernel/trace/trace.c
> +++ b/kernel/trace/trace.c
> @@ -4194,12 +4194,6 @@ static void buffer_pipe_buf_release(struct pipe_inode_info *pipe,
> buf->private = 0;
> }
>
> -static int buffer_pipe_buf_steal(struct pipe_inode_info *pipe,
> - struct pipe_buffer *buf)
> -{
> - return 1;
> -}
> -
> static void buffer_pipe_buf_get(struct pipe_inode_info *pipe,
> struct pipe_buffer *buf)
> {
> @@ -4215,7 +4209,7 @@ static const struct pipe_buf_operations buffer_pipe_buf_ops = {
> .unmap = generic_pipe_buf_unmap,
> .confirm = generic_pipe_buf_confirm,
> .release = buffer_pipe_buf_release,
> - .steal = buffer_pipe_buf_steal,
> + .steal = generic_pipe_buf_steal,
> .get = buffer_pipe_buf_get,
> };
>
>


--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/