mbox series

[net,v8,0/3] fix packet stuck problem for lockless qdisc

Message ID 1620959218-17250-1-git-send-email-linyunsheng@huawei.com (mailing list archive)
Headers show
Series fix packet stuck problem for lockless qdisc | expand

Message

Yunsheng Lin May 14, 2021, 2:26 a.m. UTC
This patchset fixes the packet stuck problem mentioned in [1].

Patch 1: Add STATE_MISSED flag to fix packet stuck problem.
Patch 2: Fix a tx_action rescheduling problem after STATE_MISSED
         flag is added in patch 1.
Patch 3: Fix the significantly higher CPU consumption problem when
         multiple threads are competing on a saturated outgoing
         device.

V8: Change function name in patch 3 as suggested by Jakub, adjust
    commit log in patch 2, and add Acked-by from Jakub.
V7: Fix netif_tx_wake_queue() data race noted by Jakub.
V6: Some performance optimization in patch 1 suggested by Jakub
    and drop NET_XMIT_DROP checking in patch 3.
V5: add patch 3 to fix the problem reported by Michal Kubecek.
V4: Change STATE_NEED_RESCHEDULE to STATE_MISSED and add patch 2.

[1]. https://lkml.org/lkml/2019/10/9/42

Yunsheng Lin (3):
  net: sched: fix packet stuck problem for lockless qdisc
  net: sched: fix tx action rescheduling issue during deactivation
  net: sched: fix tx action reschedule issue with stopped queue

 include/net/pkt_sched.h   |  7 +------
 include/net/sch_generic.h | 35 ++++++++++++++++++++++++++++++++-
 net/core/dev.c            | 29 ++++++++++++++++++++++-----
 net/sched/sch_generic.c   | 50 +++++++++++++++++++++++++++++++++++++++++++++--
 4 files changed, 107 insertions(+), 14 deletions(-)

Comments

Yunsheng Lin May 14, 2021, 2:56 a.m. UTC | #1
On 2021/5/14 10:26, Yunsheng Lin wrote:
> This patchset fixes the packet stuck problem mentioned in [1].
> 
> Patch 1: Add STATE_MISSED flag to fix packet stuck problem.
> Patch 2: Fix a tx_action rescheduling problem after STATE_MISSED
>          flag is added in patch 1.
> Patch 3: Fix the significantly higher CPU consumption problem when
>          multiple threads are competing on a saturated outgoing
>          device.
> 
> V8: Change function name in patch 3 as suggested by Jakub, adjust
>     commit log in patch 2, and add Acked-by from Jakub.

Please ignore this patchset, there is some typo in patch 3.

> V7: Fix netif_tx_wake_queue() data race noted by Jakub.
> V6: Some performance optimization in patch 1 suggested by Jakub
>     and drop NET_XMIT_DROP checking in patch 3.
> V5: add patch 3 to fix the problem reported by Michal Kubecek.
> V4: Change STATE_NEED_RESCHEDULE to STATE_MISSED and add patch 2.
> 
> [1]. https://lkml.org/lkml/2019/10/9/42
> 
> Yunsheng Lin (3):
>   net: sched: fix packet stuck problem for lockless qdisc
>   net: sched: fix tx action rescheduling issue during deactivation
>   net: sched: fix tx action reschedule issue with stopped queue
> 
>  include/net/pkt_sched.h   |  7 +------
>  include/net/sch_generic.h | 35 ++++++++++++++++++++++++++++++++-
>  net/core/dev.c            | 29 ++++++++++++++++++++++-----
>  net/sched/sch_generic.c   | 50 +++++++++++++++++++++++++++++++++++++++++++++--
>  4 files changed, 107 insertions(+), 14 deletions(-)
>