dpdk vmxnet3 очистить статистику отсутствует (?) реализация

dpdk Реализация ПМД stats_reset из rte_ethdev.h:struct eth_dev_ops для сброса статистики порта.
PMD vmxnet3 не регистрируется под

static const struct eth_dev_ops vmxnet3_eth_dev_ops = {
    ...
    .stats_get            = vmxnet3_dev_stats_get,
    .xstats_get_names     = vmxnet3_dev_xstats_get_names,
    .xstats_get           = vmxnet3_dev_xstats_get,
    ...

Есть только get функции, но нет reset,

  • Значит ли это vmxnet3 не может очистить статистику порта?
  • Есть ли способ реализовать это?

Странно то, что никто не жалуется на это по интернету. Похоже, я единственный, кому это нужно.

  • dpdk версии 17.11.1, dpdk-stable-18.02.2

1 ответ

Решение

Означает ли это, что vmxnet3 не может очистить статистику портов?

Да, PMD не реализует функциональность.

Есть ли способ реализовать это?

Мы можем обойти это в коде или реализовать тот же обходной путь в PMD и отправить патч на dev@dpdk.org, как описано здесь: https://www.dpdk.org/contribute/

Идея обходного пути заключается в том, что мы можем хранить базовую статистику:

stats_reset() {
    base_stats = eth_stats_get()
}

stats_get() {
    return etc_stats_get() - base_stats
}

Не стесняйтесь спрашивать, если это не ясно.

Другие вопросы по тегам