tracing: More fixes for 7.3
Get series with b4
b4 am [email protected]Versions newest first
- v1 Latest3 patches 0 repliesNew
Patches in v1 No applies recorded yet
| # | Subject and files | Size | Replies | Applied |
|---|---|---|---|---|
| 1/3 | tracing/user_events: Clear copied tracing state before fork duplicationkernel/ | +3 | 0 replies | |
| 2/3 | tracing: Fix retry exhaustion in simple ring buffer reader swapkernel/ | +2 | 0 replies | |
| 3/3 | ring-buffer: Stop remote reader update when page swap failskernel/ | +5 | 0 replies |
Reviews trailers per patch
2 of 3 patches have a Reviewed-by or Acked-by.
| Patch | Bradley Morgan | Vincent Donnefort |
|---|---|---|
| 1/3 | R-b | |
| 2/3 | R-b | |
| 3/3 |
Trailers given in replies are filled; those carried in the patches from earlier versions are outlined with dashes.
Cover letter [for-linus][PATCH 0/3] tracing: More fixes for 7.3
More fixes for 7.3:
- Clear user events state on fork in case of alloc failure
On fork, the child gets a pointer to the parent's user events state. It makes a copy of it then updates the child's pointer to it. But if the allocation fails, the duplication function leaves the child with a pointer to its parent's descriptor. When the child cleans up its data, it will free the parent's descriptor while the parent is still using it.
In the duplication function, set the child's user_event_mm to NULL before testing if the allocation succeeded, and when it exits it will not free the parent's descriptor.
- Fix retry exhaustion in simple ring buffer reader swap
simple_ring_buffer_swap_reader_page() starts with retry set to 8 and post-decrements it only after a failed link replacement. On the final attempt, a successful replacement leaves retry at zero, while a failed replacement leaves it at -1.
But the check for success expects the retry value to be non-zero and exits with an error on zero. This is the opposite result. Fix it.
- Fail nicely when the remote swap_reader_page() returns an error
Currently, if the swap_reader_page() of a remote buffer fails, it triggers a WARN_ON_ONCE() and continues normally. Instead, have it exit with an error and a pr_warn() print instead of a full WARNING.
git://git.kernel.org/pub/scm/linux/kernel/git/trace/linux-trace.git
trace/fixes
Head SHA1: 5eab74874d11160725c42ab676ba97a797a362eb
Ivan Immanuel Shaji (2):
tracing: Fix retry exhaustion in simple ring buffer reader swap
ring-buffer: Stop remote reader update when page swap fails
Jérémy Jean (1):
tracing/user_events: Clear copied tracing state before fork duplication
----
kernel/trace/ring_buffer.c | 7 +++++-- kernel/trace/simple_ring_buffer.c | 4 ++-- kernel/trace/trace_events_user.c | 3 +++ 3 files changed, 10 insertions(+), 4 deletions(-)