Messages in this thread | | | Date | Fri, 6 May 2022 13:31:11 -0700 | From | Stephen Hemminger <> | Subject | Re: [PATCH RFC v1 net-next 1/4] net: Introduce Qdisc backpressure infrastructure |
| |
On Fri, 6 May 2022 12:44:22 -0700 Peilin Ye <yepeilin.cs@gmail.com> wrote:
> +static inline void qdisc_backpressure_overlimit(struct Qdisc *sch, struct sk_buff *skb) > +{ > + struct sock *sk = skb->sk; > + > + if (!sk || !sk_fullsock(sk)) > + return; > + > + if (cmpxchg(&sk->sk_backpressure_status, SK_UNTHROTTLED, SK_OVERLIMIT) == SK_UNTHROTTLED) { > + sock_hold(sk); > + list_add_tail(&sk->sk_backpressure_node, &sch->backpressure_list); > + } > +}
What if socket is closed? You are holding reference but application maybe gone.
Or if output is stalled indefinitely?
| |