DPDK patches and discussions
 help / color / mirror / Atom feed
* [dpdk-dev] No packets received if burst is too small in rte_eth_rx_burst
       [not found] <415214732.17903310.1481728244157.JavaMail.zimbra@ulg.ac.be>
@ 2016-12-14 15:13 ` tom.barbette
  2016-12-14 16:52   ` Bruce Richardson
  0 siblings, 1 reply; 5+ messages in thread
From: tom.barbette @ 2016-12-14 15:13 UTC (permalink / raw)
  To: dev

Hi list,

Between 2.2.0 and 16.04 (up to at least 16.07.2 if not current), with the XL710 controller I do not get any packet when calling rte_eth_rx_burst if nb_pkts is too small. I would say smaller than 32. The input rate is not big, if that helps. But It should definitely get at least one packet per second.

Any ideas? Is that a bug or expected behaviour? Could be caused by other ABI changes?

Thanks,
Tom

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [dpdk-dev] No packets received if burst is too small in rte_eth_rx_burst
  2016-12-14 15:13 ` [dpdk-dev] No packets received if burst is too small in rte_eth_rx_burst tom.barbette
@ 2016-12-14 16:52   ` Bruce Richardson
  2016-12-17 10:43     ` tom.barbette
  0 siblings, 1 reply; 5+ messages in thread
From: Bruce Richardson @ 2016-12-14 16:52 UTC (permalink / raw)
  To: tom.barbette; +Cc: dev

On Wed, Dec 14, 2016 at 04:13:53PM +0100, tom.barbette@ulg.ac.be wrote:
> Hi list,
> 
> Between 2.2.0 and 16.04 (up to at least 16.07.2 if not current), with the XL710 controller I do not get any packet when calling rte_eth_rx_burst if nb_pkts is too small. I would say smaller than 32. The input rate is not big, if that helps. But It should definitely get at least one packet per second.
> 
> Any ideas? Is that a bug or expected behaviour? Could be caused by other ABI changes?
> 
Does this issue still occur even if you disable the vector driver in
your build-time configuration?

/Bruce

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [dpdk-dev] No packets received if burst is too small in rte_eth_rx_burst
  2016-12-14 16:52   ` Bruce Richardson
@ 2016-12-17 10:43     ` tom.barbette
  2016-12-19 10:25       ` Bruce Richardson
  0 siblings, 1 reply; 5+ messages in thread
From: tom.barbette @ 2016-12-17 10:43 UTC (permalink / raw)
  To: Bruce Richardson; +Cc: dev

Hi,

Your comments made me saw the line "PMD: i40e_set_rx_function(): Vector rx enabled, please make sure RX burst size no less than 4 (port=0)."

The problem was probably that I was under this limit... Is there a way to get that limit through a function or something? 

With 16.04 I received sometimes 5 or 7 packets with a burst_size of 4 which respects this limit. I see that "[dpdk-dev] net/i40e: fix out-of-bounds writes during vector Rx" fixed that, as the limit was in fact 32 no matter the message.

At the end, what should be the minimal rx burst size? How to find it at runtime for any NIC? I imagine that vector rx will create a problem if I give a burst size of 1 even with a recent DPDK version, right?

Thanks,
Tom

Tom Barbette 
PhD Student @ Université de Liège 

Office 1/13 
Bâtiment B37 
Quartier Polytech 
Allée de la découverte, 12 
4000 Liège 

04/366 91 75 
0479/60 94 63 


----- Mail original -----
De: "Bruce Richardson" <bruce.richardson@intel.com>
À: "tom barbette" <tom.barbette@ulg.ac.be>
Cc: dev@dpdk.org
Envoyé: Mercredi 14 Décembre 2016 17:52:21
Objet: Re: [dpdk-dev] No packets received if burst is too small in rte_eth_rx_burst

On Wed, Dec 14, 2016 at 04:13:53PM +0100, tom.barbette@ulg.ac.be wrote:
> Hi list,
> 
> Between 2.2.0 and 16.04 (up to at least 16.07.2 if not current), with the XL710 controller I do not get any packet when calling rte_eth_rx_burst if nb_pkts is too small. I would say smaller than 32. The input rate is not big, if that helps. But It should definitely get at least one packet per second.
> 
> Any ideas? Is that a bug or expected behaviour? Could be caused by other ABI changes?
> 
Does this issue still occur even if you disable the vector driver in
your build-time configuration?

/Bruce

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [dpdk-dev] No packets received if burst is too small in rte_eth_rx_burst
  2016-12-17 10:43     ` tom.barbette
@ 2016-12-19 10:25       ` Bruce Richardson
  2016-12-19 13:24         ` Thomas Monjalon
  0 siblings, 1 reply; 5+ messages in thread
From: Bruce Richardson @ 2016-12-19 10:25 UTC (permalink / raw)
  To: tom.barbette; +Cc: dev

On Sat, Dec 17, 2016 at 11:43:25AM +0100, tom.barbette@ulg.ac.be wrote:
> Hi,
> 
> Your comments made me saw the line "PMD: i40e_set_rx_function(): Vector rx enabled, please make sure RX burst size no less than 4 (port=0)."
> 
> The problem was probably that I was under this limit... Is there a way to get that limit through a function or something? 
> 
> With 16.04 I received sometimes 5 or 7 packets with a burst_size of 4 which respects this limit. I see that "[dpdk-dev] net/i40e: fix out-of-bounds writes during vector Rx" fixed that, as the limit was in fact 32 no matter the message.
> 
> At the end, what should be the minimal rx burst size? How to find it at runtime for any NIC? I imagine that vector rx will create a problem if I give a burst size of 1 even with a recent DPDK version, right?
> 

Sadly, there doesn't appear to be any way to discover this, and the i40e
driver requires at least a burst size of 4 even with the latest DPDK.
>From i40e_rxtx_vec_sse.c:

243         /* nb_pkts has to be floor-aligned to RTE_I40E_DESCS_PER_LOOP */
244         nb_pkts = RTE_ALIGN_FLOOR(nb_pkts, RTE_I40E_DESCS_PER_LOOP);
245

I think in this case the gap is not so much having a discovery mechanism
to determine min burst size, but rather a driver gap so as to allow some
form of slower-path fallback when we get below min-size bursts for the
vector driver.

/Bruce

> Thanks,
> Tom
> 
> Tom Barbette 
> PhD Student @ Université de Liège 
> 
> Office 1/13 
> Bâtiment B37 
> Quartier Polytech 
> Allée de la découverte, 12 
> 4000 Liège 
> 
> 04/366 91 75 
> 0479/60 94 63 
> 
> 
> ----- Mail original -----
> De: "Bruce Richardson" <bruce.richardson@intel.com>
> À: "tom barbette" <tom.barbette@ulg.ac.be>
> Cc: dev@dpdk.org
> Envoyé: Mercredi 14 Décembre 2016 17:52:21
> Objet: Re: [dpdk-dev] No packets received if burst is too small in rte_eth_rx_burst
> 
> On Wed, Dec 14, 2016 at 04:13:53PM +0100, tom.barbette@ulg.ac.be wrote:
> > Hi list,
> > 
> > Between 2.2.0 and 16.04 (up to at least 16.07.2 if not current), with the XL710 controller I do not get any packet when calling rte_eth_rx_burst if nb_pkts is too small. I would say smaller than 32. The input rate is not big, if that helps. But It should definitely get at least one packet per second.
> > 
> > Any ideas? Is that a bug or expected behaviour? Could be caused by other ABI changes?
> > 
> Does this issue still occur even if you disable the vector driver in
> your build-time configuration?
> 
> /Bruce

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [dpdk-dev] No packets received if burst is too small in rte_eth_rx_burst
  2016-12-19 10:25       ` Bruce Richardson
@ 2016-12-19 13:24         ` Thomas Monjalon
  0 siblings, 0 replies; 5+ messages in thread
From: Thomas Monjalon @ 2016-12-19 13:24 UTC (permalink / raw)
  To: Bruce Richardson; +Cc: dev, tom.barbette

2016-12-19 10:25, Bruce Richardson:
> On Sat, Dec 17, 2016 at 11:43:25AM +0100, tom.barbette@ulg.ac.be wrote:
> > Hi,
> > 
> > Your comments made me saw the line "PMD: i40e_set_rx_function(): Vector rx enabled, please make sure RX burst size no less than 4 (port=0)."
> > 
> > The problem was probably that I was under this limit... Is there a way to get that limit through a function or something? 
> > 
> > With 16.04 I received sometimes 5 or 7 packets with a burst_size of 4 which respects this limit. I see that "[dpdk-dev] net/i40e: fix out-of-bounds writes during vector Rx" fixed that, as the limit was in fact 32 no matter the message.
> > 
> > At the end, what should be the minimal rx burst size? How to find it at runtime for any NIC? I imagine that vector rx will create a problem if I give a burst size of 1 even with a recent DPDK version, right?
> > 
> 
> Sadly, there doesn't appear to be any way to discover this, and the i40e
> driver requires at least a burst size of 4 even with the latest DPDK.
> From i40e_rxtx_vec_sse.c:
> 
> 243         /* nb_pkts has to be floor-aligned to RTE_I40E_DESCS_PER_LOOP */
> 244         nb_pkts = RTE_ALIGN_FLOOR(nb_pkts, RTE_I40E_DESCS_PER_LOOP);
> 245
> 
> I think in this case the gap is not so much having a discovery mechanism
> to determine min burst size, but rather a driver gap so as to allow some
> form of slower-path fallback when we get below min-size bursts for the
> vector driver.

Yes this is a severe bug.

Please Tom, could you keep asking/monitoring this bug until it is fixed?
Thanks for reporting.

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2016-12-19 13:24 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
     [not found] <415214732.17903310.1481728244157.JavaMail.zimbra@ulg.ac.be>
2016-12-14 15:13 ` [dpdk-dev] No packets received if burst is too small in rte_eth_rx_burst tom.barbette
2016-12-14 16:52   ` Bruce Richardson
2016-12-17 10:43     ` tom.barbette
2016-12-19 10:25       ` Bruce Richardson
2016-12-19 13:24         ` Thomas Monjalon

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).