On Mon, Jul 7, 2025 at 3:47 AM <xu.xi...@zte.com.cn> wrote:
>
> > >
> > > -/*
> > > - * tcp event with arguments sk and skb
> > > - *
> > > - * Note: this class requires a valid sk pointer; while skb pointer could
> > > - *       be NULL.
> > > - */
> > > -DECLARE_EVENT_CLASS(tcp_event_sk_skb,
> > > +#define TCP_RETRANSMIT_QUIT_REASON             \
> > > +               ENUM(TCP_RETRANS_ERR_DEFAULT,           "retransmit 
> > > terminate unexpectedly")    \
> > > +               ENUM(TCP_RETRANS_SUCCESS,               "retransmit 
> > > successfully")              \
> > > +               ENUM(TCP_RETRANS_IN_HOST_QUEUE,         "packet still 
> > > queued in driver")        \
> > > +               ENUM(TCP_RETRANS_END_SEQ_ERROR,         "invalid end 
> > > sequence")                 \
> > > +               ENUM(TCP_RETRANS_TRIM_HEAD_NOMEM,       "trim head no 
> > > memory")                  \
> > > +               ENUM(TCP_RETRANS_UNCLONE_NOMEM,         "skb unclone 
> > > keeptruesize no memory")   \
> > > +               ENUM(TCP_RETRANS_FRAG_NOMEM,            "fragment no 
> > > memory")                   \
> >
> > Do we really need 3 + 1 different 'NOMEMORY' status ?
>
> Yes, different "NOMEM" status pinpoint exact failure stages in packet 
> retransmission,
> which helps distinguish which process triggered it. Beneficia

ENOMEM is ENOMEM. Honestly I fail to see why it matters.

If this was the case, we would have thousands of different ENOMEM errnos.

Reply via email to