Messages in this thread | | | Date | Fri, 27 Jun 2014 09:46:58 +0200 | From | Petr Mládek <> | Subject | Re: [PATCH] ring-buffer: Race when writing and swapping cpu buffer in parallel |
| |
On Thu 2014-06-26 20:55:00, Steven Rostedt wrote: > On Thu, 26 Jun 2014 09:58:31 -0400 > Steven Rostedt <rostedt@goodmis.org> wrote: > > > What we can do is force ring_buffer_swap_cpu() to only work for the CPU > > that it is on. As we have snapshot in per_cpu buffers, to make that > > work, we will need to change the per_cpu version of snapshot to do a > > smp_call_function_single() to the CPU that it wants to take a snapshot > > of, and run the swap there. > > > > To force this, we can remove the cpu parameter from the > > ring_buffer_swap_cpu(). By doing this, we may be able to remove some of > > the CONFIG_RING_BUFFER_ALLOW_SWAP hacks too! > > > > I'm not going to sacrifice the general performance of the ring buffer > > for a feature that is seldom (if ever) used.
Fair enough. I see the point.
> Did you want to do the above, or do you want me to write something up?
I could look at it the following week.
When I think about it, the race is not that critical. In the worst case, it slightly modifies the swapped buffer but there should not be danger of any data corruption. Anyway, I will try to get rid of it the way you suggested. It might be more important when the ringbuffer has more users.
Best Regards, Petr
| |