On Thu, Apr 13, 2017 at 01:22:39PM +0100, Ferruh Yigit wrote: > On 4/13/2017 1:05 PM, Adrien Mazarguil wrote: > > Hi Charles, > > > > On Thu, Apr 13, 2017 at 07:52:34AM +0000, Myers, Charles wrote: > >> I ran into an issue where the mlx4 driver stops receiving packets when > >> mbuf allocation fails in mlx4_rx_burst(). > >> > >> This issue appears to be caused because the code doesn't recycle the > >> existing mbuf to the sges array > >> when mbuf allocation fails as is done in the code right above it which > >> handles the > >> (wc.status != IBV_WC_SUCCESS) case. > >> > >> Copying the code from the above case before jumping to repost fixes the > >> issue for me. > >> > >> Signed-off-by: Charles Myers <charles.my...@spirent.com> > > > > Thanks, this addresses a very old bug present since v2.1.0. As a fix, the > > subject line should contain the word "fix", something like: > > Hi Adrien, Charles, > > I can't see this patch, any chance that it doesn't hit the mail list? Is > there a patchwork link for patch?
Ah, I probably only got it because I was also a recipient. Charles, have you subscribed to dev@dpdk.org? > > > > net/mlx4: fix Rx after mbuf allocation failure > > > > And since it's a fix: > > > > Fixes: acac55f16412 ("mlx4: use MOFED 3.0 fast verbs interface for Rx > > operations") > > Cc: sta...@dpdk.org > > > > Please also make sure the commit log is formatted according to the > > submission guidelines (50 chars max for subject line, 75 chars for the rest > > (except for the Fixes line), yada yada - see check-git-log.sh). > > > >> --- > >> drivers/net/mlx4/mlx4.c | 3 +++ > >> 1 file changed, 3 insertions(+) > >> > >> diff --git a/drivers/net/mlx4/mlx4.c b/drivers/net/mlx4/mlx4.c index > >> aff9155..59d26fe 100644 > >> --- a/drivers/net/mlx4/mlx4.c > >> +++ b/drivers/net/mlx4/mlx4.c > >> @@ -3169,6 +3169,9 @@ struct txq_mp2mr_mbuf_check_data { > >> /* Increase out of memory counters. */ > >> ++rxq->stats.rx_nombuf; > >> ++rxq->priv->dev->data->rx_mbuf_alloc_failed; > >> + > > > > Another nit here, the above blank line is unnecessary. > > > >> + /* Add SGE to array for repost. */ > >> + sges[i] = elt->sge; > >> goto repost; > >> } > >> > >> -- > >> 1.7.9.5 > >> > > > > Otherwise, > > > > Acked-by: Adrien Mazarguil <adrien.mazarg...@6wind.com> > > > -- Adrien Mazarguil 6WIND