From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751082AbbBLFBO (ORCPT ); Thu, 12 Feb 2015 00:01:14 -0500 Received: from szxga02-in.huawei.com ([119.145.14.65]:36200 "EHLO szxga02-in.huawei.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750717AbbBLFBM (ORCPT ); Thu, 12 Feb 2015 00:01:12 -0500 Message-ID: <54DC32F3.7040403@huawei.com> Date: Thu, 12 Feb 2015 12:58:27 +0800 From: Hekuang User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:31.0) Gecko/20100101 Thunderbird/31.3.0 MIME-Version: 1.0 To: Alexei Starovoitov , Steven Rostedt CC: Ingo Molnar , Namhyung Kim , Arnaldo Carvalho de Melo , Jiri Olsa , Masami Hiramatsu , Linux API , Network Development , LKML , Linus Torvalds , Peter Zijlstra , "Eric W. Biederman" , Subject: Re: [PATCH v3 linux-trace 1/8] tracing: attach eBPF programs to tracepoints and syscalls References: In-Reply-To: Content-Type: text/plain; charset="utf-8"; format=flowed Content-Transfer-Encoding: 7bit X-Originating-IP: [10.110.54.65] X-CFilter-Loop: Reflected Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org >> eBPF is very flexible, which means it is bound to have someone use it >> in a way you never dreamed of, and that will be what bites you in the >> end (pun intended). > understood :) > let's start slow then with bpf+syscall and bpf+kprobe only. I think BPF + system calls/kprobes can meet our use case (https://lkml.org/lkml/2015/2/6/44), but there're some issues to be improved. I suggest that you can improve bpf+kprobes when attached to function headers(or TRACE_MARKERS), make it converts pt-regs to bpf_ctx->arg1, arg2.., then top models and architectures can be separated by bpf. BPF bytecode is cross-platform, but what we can get by using bpf+kprobes is a 'regs->rdx' kind of information, such information is both architecture and kernel version related. We hope to establish some models for describing kernel procedures such as IO and network, which requires that it does not rely on architecture and does not rely to a specific kernel version as much as possible. From mboxrd@z Thu Jan 1 00:00:00 1970 From: Hekuang Subject: Re: [PATCH v3 linux-trace 1/8] tracing: attach eBPF programs to tracepoints and syscalls Date: Thu, 12 Feb 2015 12:58:27 +0800 Message-ID: <54DC32F3.7040403@huawei.com> References: Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; format=flowed Content-Transfer-Encoding: 7bit Cc: Ingo Molnar , Namhyung Kim , Arnaldo Carvalho de Melo , Jiri Olsa , Masami Hiramatsu , Linux API , Network Development , LKML , Linus Torvalds , Peter Zijlstra , "Eric W. Biederman" , To: Alexei Starovoitov , Steven Rostedt Return-path: In-Reply-To: Sender: linux-api-owner-u79uwXL29TY76Z2rM5mHXA@public.gmane.org List-Id: netdev.vger.kernel.org >> eBPF is very flexible, which means it is bound to have someone use it >> in a way you never dreamed of, and that will be what bites you in the >> end (pun intended). > understood :) > let's start slow then with bpf+syscall and bpf+kprobe only. I think BPF + system calls/kprobes can meet our use case (https://lkml.org/lkml/2015/2/6/44), but there're some issues to be improved. I suggest that you can improve bpf+kprobes when attached to function headers(or TRACE_MARKERS), make it converts pt-regs to bpf_ctx->arg1, arg2.., then top models and architectures can be separated by bpf. BPF bytecode is cross-platform, but what we can get by using bpf+kprobes is a 'regs->rdx' kind of information, such information is both architecture and kernel version related. We hope to establish some models for describing kernel procedures such as IO and network, which requires that it does not rely on architecture and does not rely to a specific kernel version as much as possible. From mboxrd@z Thu Jan 1 00:00:00 1970 From: Hekuang Subject: Re: [PATCH v3 linux-trace 1/8] tracing: attach eBPF programs to tracepoints and syscalls Date: Thu, 12 Feb 2015 12:58:27 +0800 Message-ID: <54DC32F3.7040403@huawei.com> References: Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; format=flowed Content-Transfer-Encoding: 7bit Return-path: In-Reply-To: Sender: linux-api-owner-u79uwXL29TY76Z2rM5mHXA@public.gmane.org To: Alexei Starovoitov , Steven Rostedt Cc: Ingo Molnar , Namhyung Kim , Arnaldo Carvalho de Melo , Jiri Olsa , Masami Hiramatsu , Linux API , Network Development , LKML , Linus Torvalds , Peter Zijlstra , "Eric W. Biederman" , wangnan0-hv44wF8Li93QT0dZR+AlfA@public.gmane.org List-Id: linux-api@vger.kernel.org >> eBPF is very flexible, which means it is bound to have someone use it >> in a way you never dreamed of, and that will be what bites you in the >> end (pun intended). > understood :) > let's start slow then with bpf+syscall and bpf+kprobe only. I think BPF + system calls/kprobes can meet our use case (https://lkml.org/lkml/2015/2/6/44), but there're some issues to be improved. I suggest that you can improve bpf+kprobes when attached to function headers(or TRACE_MARKERS), make it converts pt-regs to bpf_ctx->arg1, arg2.., then top models and architectures can be separated by bpf. BPF bytecode is cross-platform, but what we can get by using bpf+kprobes is a 'regs->rdx' kind of information, such information is both architecture and kernel version related. We hope to establish some models for describing kernel procedures such as IO and network, which requires that it does not rely on architecture and does not rely to a specific kernel version as much as possible.