[dpdk-dev] ixgbe: Add missing rx_mbuf_alloc_failed statistics for vector PMD

Message ID 1417166505-486-1-git-send-email-balazs.nemeth@intel.com (mailing list archive)
State Accepted, archived
Headers

Commit Message

Balazs Nemeth Nov. 28, 2014, 9:21 a.m. UTC
  The statistics that is reported through the rx_nombuf fields in struct
rte_eth_stats was not set when the vector PMD was used. The statistics
should report the number of mbufs that could _not_ be allocated during
rearm of the RX queue. The non-vector PMD reports it correctly. The
use of either vector PMD or non-vector PMD depends on runtime
configuration. Hence it is possible that a change in configuration
would disable this statistics. To prevent this from happening, the
statistics should be reported by both implementations.

Signed-off-by: Balazs Nemeth <balazs.nemeth@intel.com>
---
 lib/librte_pmd_ixgbe/ixgbe_rxtx_vec.c | 2 ++
 1 file changed, 2 insertions(+)
  

Comments

Bruce Richardson Nov. 28, 2014, 1:18 p.m. UTC | #1
On Fri, Nov 28, 2014 at 09:21:45AM +0000, Balazs Nemeth wrote:
> The statistics that is reported through the rx_nombuf fields in struct
> rte_eth_stats was not set when the vector PMD was used. The statistics
> should report the number of mbufs that could _not_ be allocated during
> rearm of the RX queue. The non-vector PMD reports it correctly. The
> use of either vector PMD or non-vector PMD depends on runtime
> configuration. Hence it is possible that a change in configuration
> would disable this statistics. To prevent this from happening, the
> statistics should be reported by both implementations.
> 
> Signed-off-by: Balazs Nemeth <balazs.nemeth@intel.com>

Acked-by: Bruce Richardson <bruce.richardson@intel.com>

> ---
>  lib/librte_pmd_ixgbe/ixgbe_rxtx_vec.c | 2 ++
>  1 file changed, 2 insertions(+)
> 
> diff --git a/lib/librte_pmd_ixgbe/ixgbe_rxtx_vec.c b/lib/librte_pmd_ixgbe/ixgbe_rxtx_vec.c
> index 42c0f60..579bc46 100644
> --- a/lib/librte_pmd_ixgbe/ixgbe_rxtx_vec.c
> +++ b/lib/librte_pmd_ixgbe/ixgbe_rxtx_vec.c
> @@ -71,6 +71,8 @@ ixgbe_rxq_rearm(struct igb_rx_queue *rxq)
>  						dma_addr0);
>  			}
>  		}
> +		rte_eth_devices[rxq->port_id].data->rx_mbuf_alloc_failed +=
> +			RTE_IXGBE_RXQ_REARM_THRESH;
>  		return;
>  	}
>  
> -- 
> 2.1.2
>
  
Thomas Monjalon Nov. 28, 2014, 3:24 p.m. UTC | #2
> > The statistics that is reported through the rx_nombuf fields in struct
> > rte_eth_stats was not set when the vector PMD was used. The statistics
> > should report the number of mbufs that could _not_ be allocated during
> > rearm of the RX queue. The non-vector PMD reports it correctly. The
> > use of either vector PMD or non-vector PMD depends on runtime
> > configuration. Hence it is possible that a change in configuration
> > would disable this statistics. To prevent this from happening, the
> > statistics should be reported by both implementations.
> > 
> > Signed-off-by: Balazs Nemeth <balazs.nemeth@intel.com>
> 
> Acked-by: Bruce Richardson <bruce.richardson@intel.com>

Applied

Thanks
  

Patch

diff --git a/lib/librte_pmd_ixgbe/ixgbe_rxtx_vec.c b/lib/librte_pmd_ixgbe/ixgbe_rxtx_vec.c
index 42c0f60..579bc46 100644
--- a/lib/librte_pmd_ixgbe/ixgbe_rxtx_vec.c
+++ b/lib/librte_pmd_ixgbe/ixgbe_rxtx_vec.c
@@ -71,6 +71,8 @@  ixgbe_rxq_rearm(struct igb_rx_queue *rxq)
 						dma_addr0);
 			}
 		}
+		rte_eth_devices[rxq->port_id].data->rx_mbuf_alloc_failed +=
+			RTE_IXGBE_RXQ_REARM_THRESH;
 		return;
 	}