lkml.org 
[lkml]   [2021]   [Oct]   [25]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH v6 06/12] samples/bpf/test_overhead_kprobe_kern: make it adopt to task comm size change
    Date
    bpf_probe_read_kernel_str() will add a nul terminator to the dst, then
    we don't care about if the dst size is big enough. This patch also
    replaces the hard-coded 16 with TASK_COMM_LEN to make it adopt to task
    comm size change.

    Signed-off-by: Yafang Shao <laoar.shao@gmail.com>
    Cc: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
    Cc: Arnaldo Carvalho de Melo <arnaldo.melo@gmail.com>
    Cc: Andrii Nakryiko <andrii.nakryiko@gmail.com>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: Steven Rostedt <rostedt@goodmis.org>
    Cc: Al Viro <viro@zeniv.linux.org.uk>
    Cc: Kees Cook <keescook@chromium.org>
    Cc: Petr Mladek <pmladek@suse.com>
    ---
    samples/bpf/test_overhead_kprobe_kern.c | 11 ++++++-----
    samples/bpf/test_overhead_tp_kern.c | 5 +++--
    2 files changed, 9 insertions(+), 7 deletions(-)

    diff --git a/samples/bpf/test_overhead_kprobe_kern.c b/samples/bpf/test_overhead_kprobe_kern.c
    index f6d593e47037..8fdd2c9c56b2 100644
    --- a/samples/bpf/test_overhead_kprobe_kern.c
    +++ b/samples/bpf/test_overhead_kprobe_kern.c
    @@ -6,6 +6,7 @@
    */
    #include <linux/version.h>
    #include <linux/ptrace.h>
    +#include <linux/sched.h>
    #include <uapi/linux/bpf.h>
    #include <bpf/bpf_helpers.h>
    #include <bpf/bpf_tracing.h>
    @@ -22,17 +23,17 @@ int prog(struct pt_regs *ctx)
    {
    struct signal_struct *signal;
    struct task_struct *tsk;
    - char oldcomm[16] = {};
    - char newcomm[16] = {};
    + char oldcomm[TASK_COMM_LEN] = {};
    + char newcomm[TASK_COMM_LEN] = {};
    u16 oom_score_adj;
    u32 pid;

    tsk = (void *)PT_REGS_PARM1(ctx);

    pid = _(tsk->pid);
    - bpf_probe_read_kernel(oldcomm, sizeof(oldcomm), &tsk->comm);
    - bpf_probe_read_kernel(newcomm, sizeof(newcomm),
    - (void *)PT_REGS_PARM2(ctx));
    + bpf_probe_read_kernel_str(oldcomm, sizeof(oldcomm), &tsk->comm);
    + bpf_probe_read_kernel_str(newcomm, sizeof(newcomm),
    + (void *)PT_REGS_PARM2(ctx));
    signal = _(tsk->signal);
    oom_score_adj = _(signal->oom_score_adj);
    return 0;
    diff --git a/samples/bpf/test_overhead_tp_kern.c b/samples/bpf/test_overhead_tp_kern.c
    index eaa32693f8fc..80edadacb692 100644
    --- a/samples/bpf/test_overhead_tp_kern.c
    +++ b/samples/bpf/test_overhead_tp_kern.c
    @@ -4,6 +4,7 @@
    * modify it under the terms of version 2 of the GNU General Public
    * License as published by the Free Software Foundation.
    */
    +#include <linux/sched.h>
    #include <uapi/linux/bpf.h>
    #include <bpf/bpf_helpers.h>

    @@ -11,8 +12,8 @@
    struct task_rename {
    __u64 pad;
    __u32 pid;
    - char oldcomm[16];
    - char newcomm[16];
    + char oldcomm[TASK_COMM_LEN];
    + char newcomm[TASK_COMM_LEN];
    __u16 oom_score_adj;
    };
    SEC("tracepoint/task/task_rename")
    --
    2.17.1
    \
     
     \ /
      Last update: 2021-10-25 10:34    [W:4.069 / U:0.028 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site