diff options
author | Steven Luong <sluong@cisco.com> | 2024-03-20 12:28:49 -0700 |
---|---|---|
committer | Beno�t Ganne <bganne@cisco.com> | 2024-05-23 17:50:50 +0000 |
commit | 1b053782a51d0bd2b1172b62665520af476d1a54 (patch) | |
tree | f146eb175b54c00b62bb0fc621030c2084b47ef5 /src | |
parent | 0df582e8ecbe6a4d45c9b2a8b822dcbe039eec29 (diff) |
virtio: Add RX queue full statisitics
In production network, often the host and the vm are managed by different
groups. The host statistics may not be readily available to the folks who
manage the VM. Having the RX queue full statistics in VPP can inform
that there might possibly be drops in the host.
Type: improvement
Change-Id: I43206647ac0d8092968c4187236d9696ae0acccd
Signed-off-by: Steven Luong <sluong@cisco.com>
Diffstat (limited to 'src')
-rw-r--r-- | src/vnet/devices/virtio/node.c | 10 | ||||
-rw-r--r-- | src/vnet/devices/virtio/virtio_inline.h | 1 |
2 files changed, 11 insertions, 0 deletions
diff --git a/src/vnet/devices/virtio/node.c b/src/vnet/devices/virtio/node.c index 8c837575cf8..027e1ed4e74 100644 --- a/src/vnet/devices/virtio/node.c +++ b/src/vnet/devices/virtio/node.c @@ -282,6 +282,16 @@ virtio_device_input_gso_inline (vlib_main_t *vm, vlib_node_runtime_t *node, if (n_left == 0) return 0; + if (PREDICT_FALSE (n_left == vring->queue_size)) + { + /* + * Informational error logging when VPP is not pulling packets fast + * enough. + */ + vlib_error_count (vm, node->node_index, VIRTIO_INPUT_ERROR_FULL_RX_QUEUE, + 1); + } + if (type == VIRTIO_IF_TYPE_TUN) { next_index = VNET_DEVICE_INPUT_NEXT_IP4_INPUT; diff --git a/src/vnet/devices/virtio/virtio_inline.h b/src/vnet/devices/virtio/virtio_inline.h index 179f319aa4c..41bba755934 100644 --- a/src/vnet/devices/virtio/virtio_inline.h +++ b/src/vnet/devices/virtio/virtio_inline.h @@ -17,6 +17,7 @@ #define foreach_virtio_input_error \ _ (BUFFER_ALLOC, "buffer alloc error") \ + _ (FULL_RX_QUEUE, "full rx queue (driver tx drop)") \ _ (UNKNOWN, "unknown") typedef enum |