Messages in this thread | | | From | Chunyu Hu <> | Date | Tue, 1 Aug 2017 21:02:12 +0800 | Subject | Re: [PATCH] tracing: Fix trace_pipe_raw read panic |
| |
A gentle ping. Any comment on this? Maybe have better solution for this?
On 25 July 2017 at 04:24, Steven Rostedt <rostedt@goodmis.org> wrote: > > Hi Chunyu, > > Thanks for the patch. I'm currently traveling, and will have little > time to test it. Hopefully I can get to it sometime this week. > > -- Steve > > > On Mon, 24 Jul 2017 15:21:06 +0800 > Chunyu Hu <chuhu@redhat.com> wrote: > >> per_cpu trace directories and files are created for all possible cpus, >> but only the cpus which have ever been on-lined have their own per cpu >> ring buffer (allocated by cpuhp threads). While trace_buffers_open, the >> open handler for trace file 'trace_pipe_raw' is always trying to access >> field of ring_buffer_per_cpu, and would panic with the NULL pointer. >> >> Align the behavior of trace_pipe_raw with trace_pipe, that returns -NODEV >> when openning it if that cpu does not have trace ring buffer. >> >> Reproduce: >> cat /sys/kernel/debug/tracing/per_cpu/cpu31/trace_pipe_raw >> (cpu31 is never on-lined, this is a 16 cores x86_64 box) >> >> Tested with: >> 1) boot with maxcpus=14, read trace_pipe_raw of cpu15. >> Got -NODEV. >> 2) oneline cpu15, read trace_pipe_raw of cpu15. >> Get the raw trace data.
| |