On Mon, Sep 16, 2024 at 9:46 AM Eelco Chaudron <[email protected]> wrote:
> On 14 Sep 2024, at 7:26, Jun Wang wrote:
>
> > For many network cards, xstat statistics cannot be queried in the
> > ovs interface. A new interface is added to retrieve all xstat
> > information of the network card.
> Hi Jun,
>
> Isn’t this already handled with netdev_dpdk_get_custom_stats()? I think you 
> can see them with ‘ovs-vsctl get Interface <port> statistics.
>
> If this is not the case this is what we should enhance.

xstats are currently filtered to only save per queue stats and some
common counters.

static bool
is_queue_stat(const char *s)
{
    uint16_t tmp;

    return (s[0] == 'r' || s[0] == 't') &&
            (ovs_scan(s + 1, "x_q%"SCNu16"_packets", &tmp) ||
             ovs_scan(s + 1, "x_q%"SCNu16"_bytes", &tmp));
}

static void
netdev_dpdk_configure_xstats(struct netdev_dpdk *dev)
    OVS_REQUIRES(dev->mutex)
{
...

        /* For custom stats, we filter out everything except per
rxq/txq basic
         * stats, and dropped, error and management counters. */
        if (is_queue_stat(name) ||
            string_ends_with(name, "_errors") ||
            strstr(name, "_management_") ||
            string_ends_with(name, "_dropped")) {

            dev->rte_xstats_ids[dev->rte_xstats_ids_size] = id;
            dev->rte_xstats_ids_size++;
        }


Could you explain which stats you are missing?


-- 
David Marchand

_______________________________________________
dev mailing list
[email protected]
https://mail.openvswitch.org/mailman/listinfo/ovs-dev

Reply via email to