On Fri, Nov 19, 2021 at 10:40 AM Maxime Coquelin <[email protected]> wrote: > > Hi Kevin, David, > > On 11/18/21 16:31, Kevin Traynor wrote: > > On 15/10/2021 16:04, David Marchand wrote: > >> When troubleshooting multiqueue setups, having per queue statistics helps > >> checking packets repartition in rx and tx queues. > >> > >> Per queue statistics are exported by most DPDK drivers (with capability > >> RTE_ETH_DEV_AUTOFILL_QUEUE_XSTATS). But since OVS only filters statistics > >> it exposes, there is nothing to request in DPDK API. > >> > >> Extend existing filter with a regular expression. > >> string_ends_with() helper is not used anymore, and removed as a > >> consequence. > >> > >> Querying statistics with > >> $ ovs-vsctl get interface dpdk0 statistics | \ > >> sed -e 's#[{}]##g' -e 's#, #\n#g' > >> > >> and comparing gives: > >> @@ -13,7 +13,12 @@ > >> rx_phy_crc_errors=0 > >> rx_phy_in_range_len_errors=0 > >> rx_phy_symbol_errors=0 > >> +rx_q0_bytes=0 > >> rx_q0_errors=0 > >> +rx_q0_packets=0 > >> +rx_q1_bytes=0 > >> +rx_q1_errors=0 > >> +rx_q1_packets=0 > >> rx_wqe_errors=0 > >> tx_broadcast_packets=0 > >> tx_bytes=0 > >> @@ -27,3 +32,13 @@ > >> tx_pp_rearm_queue_errors=0 > >> tx_pp_timestamp_future_errors=0 > >> tx_pp_timestamp_past_errors=0 > >> +tx_q0_bytes=0 > >> +tx_q0_packets=0 > >> +tx_q1_bytes=0 > >> +tx_q1_packets=0 > >> +tx_q2_bytes=0 > >> +tx_q2_packets=0 > >> +tx_q3_bytes=0 > >> +tx_q3_packets=0 > >> +tx_q4_bytes=0 > >> +tx_q4_packets=0 > >> > >> Signed-off-by: David Marchand <[email protected]> > > > > The patch looks good but I tested with with ixgbe, and seeing something > > I am unsure of. I changed the number of rxqs to 11 but I am only seeing > > stats for q0. i'm not sure if this because there was no traffic yet > > (even though there is also no traffic on q0). i will set up a traffic > > gen and see what happens when the q1-q10 receives traffic. > > I think the problem is that when port reconfiguration is called because > the number of queues changed, netdev_dpdk_clear_xstats() is not called. > > So the next time netdev_dpdk_configure_xstats() is called, it returns > true early as it is already configured. So old configuration is keeped. > > When increasing the number of queues, I think we get your behavior, i.e. > only previous number of queues counters are disaplayed. But when > decreasing the number of queues, I think rte_eth_xstats_get_by_id() will > fail. > > I think calling netdev_dpdk_clear_xstats() in netdev_dpdk_reconfigure() > should fix your issue.
Thanks for the analysis. I'll need a bit more time to dig in (I don't understand the logic behind the configure_xstats/clear_xstats stuff). In any case, it seems this is a bug predating my patch. -- David Marchand _______________________________________________ dev mailing list [email protected] https://mail.openvswitch.org/mailman/listinfo/ovs-dev
