Updates for kernel tracing ring buffer
Description: Updates for kernel tracing ring buffer
JIRA: https://issues.redhat.com/browse/RHEL-23763
Build Info: https://brewweb.engineering.redhat.com/brew/taskinfo?taskID=60719054
Tested: Verified Brew build test kernel RPMs and confirmed issue is resovled
Signed-off-by: Mamatha Inamdar minamdar@redhat.com
commit b71645d6af10196c46cbe3732de2ea7d36b3ff6d Author: Zheng Yejian zhengyejian1@huawei.com Date: Sat Aug 5 11:38:15 2023 +0800
tracing: Fix cpu buffers unavailable due to 'record_disabled' missed
Trace ring buffer can no longer record anything after executing
following commands at the shell prompt:
fff
-bash: echo: write error: Bad file descriptor
The root cause is that:
1. After `echo 0 > tracing_cpumask`, 'record_disabled' of cpu buffers
in 'tr->array_buffer.buffer' became 1 (see tracing_set_cpumask());
2. After `echo 1 > snapshot`, 'tr->array_buffer.buffer' is swapped
with 'tr->max_buffer.buffer', then the 'record_disabled' became 0
(see update_max_tr());
3. After `echo fff > tracing_cpumask`, the 'record_disabled' become -1;
Then array_buffer and max_buffer are both unavailable due to value of
'record_disabled' is not 0.
To fix it, enable or disable both array_buffer and max_buffer at the same
time in tracing_set_cpumask().
Link: https://lkml.kernel.org/r/20230805033816.3284594-2-zhengyejian1@huawei.com
Cc: <mhiramat@kernel.org>
Cc: <vnagarnaik@google.com>
Cc: <shuah@kernel.org>
Fixes: 71babb2705e2 ("tracing: change CPU ring buffer state from tracing_cpumask")
Signed-off-by: Zheng Yejian <zhengyejian1@huawei.com>
Signed-off-by: Steven Rostedt (Google) <rostedt@goodmis.org>
Signed-off-by: Mamatha Inamdar minamdar@redhat.com