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 <ch...@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.