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 <[email protected]>
>
> 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?
>
> 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: [email protected]
>
> 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 <[email protected]>
>