Re: [PATCH] um: vector: Replace locks guarding queue depth with atomics

2024-07-04 Thread Anton Ivanov
On 04/07/2024 10:55, Johannes Berg wrote: On Thu, 2024-07-04 at 10:52 +0100, Anton Ivanov wrote: There is an extra issue there - stats. I need to double-check the locking when they are being fetched. Same story - these need atomics. Otherwise we can potentially get the same ABBA lock issue

Re: [PATCH] um: vector: Replace locks guarding queue depth with atomics

2024-07-04 Thread Johannes Berg
On Thu, 2024-07-04 at 11:55 +0200, Johannes Berg wrote: > On Thu, 2024-07-04 at 10:52 +0100, Anton Ivanov wrote: > > > > > > There is an extra issue there - stats. I need to double-check the locking > > > when > > > they are being fetched. > > > > Same story - these need atomics. Otherwise we ca

Re: [PATCH] um: vector: Replace locks guarding queue depth with atomics

2024-07-04 Thread Johannes Berg
On Thu, 2024-07-04 at 10:52 +0100, Anton Ivanov wrote: > > > > There is an extra issue there - stats. I need to double-check the locking > > when > > they are being fetched. > > Same story - these need atomics. Otherwise we can potentially get the same > ABBA > lock issue when they are being fe

Re: [PATCH] um: vector: Replace locks guarding queue depth with atomics

2024-07-04 Thread Johannes Berg
On Thu, 2024-07-04 at 10:45 +0100, Anton Ivanov wrote: > > (it probably also never even executes twice unless you actually have SMP > > or preemption?) > > It does. If half of the vector is at the end of the array which is used to > imitate a ring buffer and the other half is at the beginning. Qu

Re: [PATCH] um: vector: Replace locks guarding queue depth with atomics

2024-07-04 Thread Anton Ivanov
On 04/07/2024 10:45, Anton Ivanov wrote: On 04/07/2024 10:17, Johannes Berg wrote: Hi Anton, Thanks for taking a look! Also thanks for the other explanation. On Thu, 2024-07-04 at 08:21 +0100, anton.iva...@cambridgegreys.com wrote: From: Anton Ivanov UML vector drivers use ring buffer

Re: [PATCH] um: vector: Replace locks guarding queue depth with atomics

2024-07-04 Thread Anton Ivanov
On 04/07/2024 10:17, Johannes Berg wrote: Hi Anton, Thanks for taking a look! Also thanks for the other explanation. On Thu, 2024-07-04 at 08:21 +0100, anton.iva...@cambridgegreys.com wrote: From: Anton Ivanov UML vector drivers use ring buffer structures which map preallocated skbs onto

Re: [PATCH] um: vector: Replace locks guarding queue depth with atomics

2024-07-04 Thread Johannes Berg
Hi Anton, Thanks for taking a look! Also thanks for the other explanation. On Thu, 2024-07-04 at 08:21 +0100, anton.iva...@cambridgegreys.com wrote: > From: Anton Ivanov > > UML vector drivers use ring buffer structures which map > preallocated skbs onto mmsg vectors for use with sendmmsg > and

[PATCH] um: vector: Replace locks guarding queue depth with atomics

2024-07-04 Thread anton . ivanov
From: Anton Ivanov UML vector drivers use ring buffer structures which map preallocated skbs onto mmsg vectors for use with sendmmsg and recvmmsg. They are designed around a single consumer, single producer pattern allowing simultaneous enqueue and dequeue. Lock debugging with preemption showed