[dpdk-dev] [PATCH] The VMXNET3 PMD can't receive packet suddenly after a lot of traffic coming in. The root cause is due to mbuf allocation fail in vmxnet3_post_rx_bufs() and there is no error handling when it is called from vmxnet3_recv_pkts(). Th...

Stephen Hemminger stephen at networkplumber.org
Thu Jul 23 18:45:33 CEST 2015


On Thu, 23 Jul 2015 07:31:01 +0000
Vithal S Mohare <vmohare at arubanetworks.com> wrote:

> +    /* VMXNET3
> +     * In the above loop, vmxnet3_post_rx_bufs would fai if all the mbufs currently allocated.
> +     * In such scenarios where hw device hasn't left with any of 'rx' descriptors, packets from
> +     * network will not be 'DMA'd to driver.  While the only way to refresh 'rxd' back to hw is
> +     * though above i.e. when packet is received from hw.  So, there is potential dead-lock.
> +     *
> +     * Now, to break the deadlock, vmxnet3_post_rx_bufs() is triggered below when the poll 
> +     * goes empty 'rcd'.  vmxnet3_post_rx_bufs() is no-op if all the descriptors are allocated
> +     * in hw
> +     */

This is the kind of thing which should be in the git change log
description not the code. Comments like this are too wordy and get out
of date.


More information about the dev mailing list