On Wed, 2017-02-15 at 05:29 -0800, Eric Dumazet wrote: > > mlx4_eq_int() is a hard irq handler. > > How a tasklet could run in the middle of it ? > > A tasklet is a softirq handler.
Speaking of mlx4_eq_int() , 50% of cycles are spent on mb() (mfence) in eq_set_ci() I wonder why this very expensive mb() is required, right before exiting the interrupt handler.