> On Jun 29, 2020, at 9:18 PM, Alexei Starovoitov <alexei.starovoitov@xxxxxxxxx> wrote: > > On Sun, Jun 28, 2020 at 10:58 PM Song Liu <songliubraving@xxxxxx> wrote: >> >> Introduce helper bpf_get_task_stack(), which dumps stack trace of given >> task. This is different to bpf_get_stack(), which gets stack track of >> current task. One potential use case of bpf_get_task_stack() is to call >> it from bpf_iter__task and dump all /proc/<pid>/stack to a seq_file. >> >> bpf_get_task_stack() uses stack_trace_save_tsk() instead of >> get_perf_callchain() for kernel stack. The benefit of this choice is that >> stack_trace_save_tsk() doesn't require changes in arch/. The downside of >> using stack_trace_save_tsk() is that stack_trace_save_tsk() dumps the >> stack trace to unsigned long array. For 32-bit systems, we need to >> translate it to u64 array. >> >> Acked-by: Andrii Nakryiko <andriin@xxxxxx> >> Signed-off-by: Song Liu <songliubraving@xxxxxx> > > It doesn't apply: > Applying: bpf: Introduce helper bpf_get_task_stack() > Using index info to reconstruct a base tree... > error: patch failed: kernel/bpf/stackmap.c:471 > error: kernel/bpf/stackmap.c: patch does not apply > error: Did you hand edit your patch? > It does not apply to blobs recorded in its index. > Patch failed at 0002 bpf: Introduce helper bpf_get_task_stack() Hmm.. seems "git format-patch -b" (--ignore-space-change) breaks it: # without -b, works fine $ git format-patch HEAD~1 0001-bpf-introduce-helper-bpf_get_task_stack.patch $ git reset --hard HEAD~1 HEAD is now at c385fe4fbd7bc perf: expose get/put_callchain_entry() $ git am ./0001-bpf-introduce-helper-bpf_get_task_stack.patch Applying: bpf: introduce helper bpf_get_task_stack() # with -b, doesn't apply :( $ git format-patch -b HEAD~1 0001-bpf-introduce-helper-bpf_get_task_stack.patch $ git reset --hard HEAD~1 HEAD is now at c385fe4fbd7bc perf: expose get/put_callchain_entry() $ git am ./0001-bpf-introduce-helper-bpf_get_task_stack.patch Applying: bpf: introduce helper bpf_get_task_stack() error: patch failed: kernel/bpf/stackmap.c:471 error: kernel/bpf/stackmap.c: patch does not apply Patch failed at 0001 bpf: introduce helper bpf_get_task_stack() hint: Use 'git am --show-current-patch' to see the failed patch When you have resolved this problem, run "git am --continue". If you prefer to skip this patch, run "git am --skip" instead. To restore the original branch and stop patching, run "git am --abort". Let me see how to fix it...