[dpdk-dev] [PATCH v1] ixgbe_pmd: forbid tx_rs_thresh above 1 for all NICs but 82598

Thomas Monjalon thomas.monjalon at 6wind.com
Fri Sep 11 16:55:08 CEST 2015


2015-09-11 17:47, Avi Kivity:
> On 09/11/2015 05:25 PM, didier.pallard wrote:
> > On 08/25/2015 08:52 PM, Vlad Zolotarov wrote:
> >>
> >> Helin, the issue has been seen on x540 devices. Pls., see a chapter 
> >> 7.2.1.1 of x540 devices spec:
> >>
> >> A packet (or multiple packets in transmit segmentation) can span any 
> >> number of
> >> buffers (and their descriptors) up to a limit of 40 minus WTHRESH 
> >> minus 2 (see
> >> Section 7.2.3.3 for Tx Ring details and section Section 7.2.3.5.1 for 
> >> WTHRESH
> >> details). For best performance it is recommended to minimize the 
> >> number of buffers
> >> as possible.
> >>
> >> Could u, pls., clarify why do u think that the maximum number of data 
> >> buffers is limited by 8?
> >>
> >> thanks,
> >> vlad
> >
> > Hi vlad,
> >
> > Documentation states that a packet (or multiple packets in transmit 
> > segmentation) can span any number of
> > buffers (and their descriptors) up to a limit of 40 minus WTHRESH 
> > minus 2.
> >
> > Shouldn't there be a test in transmit function that drops properly the 
> > mbufs with a too large number of
> > segments, while incrementing a statistic; otherwise transmit function 
> > may be locked by the faulty packet without
> > notification.
> >
> 
> What we proposed is that the pmd expose to dpdk, and dpdk expose to the 
> application, an mbuf check function.  This way applications that can 
> generate complex packets can verify that the device will be able to 
> process them, and applications that only generate simple mbufs can avoid 
> the overhead by not calling the function.

More than a check, it should be exposed as a capability of the port.
Anyway, if the application sends too much segments, the driver must
drop it to avoid hang, and maintain a dedicated statistic counter to allow
easy debugging.



More information about the dev mailing list