From 1a0675816a9b8dd2e9598b815bfb7317b9d92207 Mon Sep 17 00:00:00 2001 From: Hailong Liu Date: Fri, 16 Sep 2022 17:00:47 +0800 Subject: [PATCH 1/2] schedmoni: Fix the help infomations Signed-off-by: Hailong Liu --- source/tools/detect/sched/schedmoni/schedmoni.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/source/tools/detect/sched/schedmoni/schedmoni.c b/source/tools/detect/sched/schedmoni/schedmoni.c index 13325256..e32a5a70 100644 --- a/source/tools/detect/sched/schedmoni/schedmoni.c +++ b/source/tools/detect/sched/schedmoni/schedmoni.c @@ -44,9 +44,9 @@ const char argp_program_doc[] = "USAGE: schedmoni [--help] [-s SPAN] [-t TID] [-c COMM] [-P] [-j|-f LOGFILE] [threshold]\n" "\n" "EXAMPLES:\n" -" schedmoni # trace latency higher than 10000 us (default)\n" +" schedmoni # trace latency higher than 50 ms (default)\n" " schedmoni -f a.log # result to a.log (default ~sysak/schedmoni/schedmoni.log)\n" -" schedmoni 1000 # trace latency higher than 1000 us\n" +" schedmoni 20 # trace latency higher than 20 ms\n" " schedmoni -p 123 # trace pid 123\n" " schedmoni -t 123 # trace tid 123 (use for threads only)\n" " schedmoni -c bash # trace aplication who's name is bash\n" -- Gitee From 3b7cdde84cc5aa54a1bf699ca5c56a260b73df20 Mon Sep 17 00:00:00 2001 From: Hailong Liu Date: Mon, 19 Sep 2022 15:18:29 +0800 Subject: [PATCH 2/2] schedmoni: Fix invalid indirect read from stack failing Signed-off-by: Hailong Liu --- source/tools/detect/sched/schedmoni/bpf/schedmoni.bpf.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/source/tools/detect/sched/schedmoni/bpf/schedmoni.bpf.c b/source/tools/detect/sched/schedmoni/bpf/schedmoni.bpf.c index 89b183d5..d333987c 100644 --- a/source/tools/detect/sched/schedmoni/bpf/schedmoni.bpf.c +++ b/source/tools/detect/sched/schedmoni/bpf/schedmoni.bpf.c @@ -180,6 +180,7 @@ static int trace_enqueue(struct task_struct *p, unsigned int runqlen) tgid = _(p->tgid); pid = _(p->pid); + __builtin_memset(comm, 0, sizeof(comm)); if (!pid) return 0; @@ -210,7 +211,7 @@ static int trace_enqueue(struct task_struct *p, unsigned int runqlen) if (targ_pid && targ_pid != pid) return 0; } - + __builtin_memset(&enq_info, 0, sizeof(struct enq_info)); ts = bpf_ktime_get_ns(); enq_info.ts = ts; enq_info.rqlen = runqlen; -- Gitee