Re: [PATCH] xfrm : lock input tasklet skb queue

2019-10-22 Thread Joerg Vehlow
Hi, I already send a patch on 2019-09-09 to this mailing list with a similar issue[1]. Sadly no replies, although this is a huge bug in the rt kernel. I fixed it a bit differently, using smaller locked regions. You have also propably a bug in your patch, because trans->queue.lock is no

Re: [PATCH] xfrm : lock input tasklet skb queue

2019-10-22 Thread Herbert Xu
On Mon, Oct 21, 2019 at 09:31:13AM -0700, Tom Rix wrote: > When preempt rt is full, softirq and interrupts run in kthreads. So it > is possible for the tasklet to sleep and for its queue to get modified > while it sleeps. This is ridiculous. The network stack is full of assumptions like this.

Re: [PATCH] xfrm : lock input tasklet skb queue

2019-10-21 Thread Tom Rix
When preempt rt is full, softirq and interrupts run in kthreads. So it is possible for the tasklet to sleep and for its queue to get modified while it sleeps. On Mon, Oct 21, 2019 at 1:37 AM Steffen Klassert wrote: > > On Sun, Oct 20, 2019 at 08:46:10AM -0700, Tom Rix wrote: > > On

Re: [PATCH] xfrm : lock input tasklet skb queue

2019-10-21 Thread Steffen Klassert
On Sun, Oct 20, 2019 at 08:46:10AM -0700, Tom Rix wrote: > On PREEMPT_RT_FULL while running netperf, a corruption > of the skb queue causes an oops. > > This appears to be caused by a race condition here > __skb_queue_tail(>queue, skb); > tasklet_schedule(>tasklet); > Where the

[PATCH] xfrm : lock input tasklet skb queue

2019-10-20 Thread Tom Rix
On PREEMPT_RT_FULL while running netperf, a corruption of the skb queue causes an oops. This appears to be caused by a race condition here __skb_queue_tail(>queue, skb); tasklet_schedule(>tasklet); Where the queue is changed before the tasklet is locked by tasklet_schedule. The