mirror of https://gitee.com/openkylin/linux.git
IB/mlx5: Fire the CQ completion handler from tasklet
Previously, mlx5_ib_cq_comp was executed from interrupt context. Under heavy load, this could cause the CPU core to be in an interrupt context too long. Instead of executing the handler from the interrupt context we execute it from a much friendly tasklet context. Signed-off-by: Matan Barak <matanb@mellanox.com> Signed-off-by: Doug Ledford <dledford@redhat.com>
This commit is contained in:
parent
94c6825e0f
commit
c16d2750a0
|
@ -879,7 +879,10 @@ struct ib_cq *mlx5_ib_create_cq(struct ib_device *ibdev,
|
||||||
|
|
||||||
mlx5_ib_dbg(dev, "cqn 0x%x\n", cq->mcq.cqn);
|
mlx5_ib_dbg(dev, "cqn 0x%x\n", cq->mcq.cqn);
|
||||||
cq->mcq.irqn = irqn;
|
cq->mcq.irqn = irqn;
|
||||||
cq->mcq.comp = mlx5_ib_cq_comp;
|
if (context)
|
||||||
|
cq->mcq.tasklet_ctx.comp = mlx5_ib_cq_comp;
|
||||||
|
else
|
||||||
|
cq->mcq.comp = mlx5_ib_cq_comp;
|
||||||
cq->mcq.event = mlx5_ib_cq_event;
|
cq->mcq.event = mlx5_ib_cq_event;
|
||||||
|
|
||||||
INIT_LIST_HEAD(&cq->wc_list);
|
INIT_LIST_HEAD(&cq->wc_list);
|
||||||
|
|
Loading…
Reference in New Issue