Changeset View
Changeset View
Standalone View
Standalone View
sys/dev/ixl/ixl_txrx.c
Show First 20 Lines • Show All 886 Lines • ▼ Show 20 Lines | while (entry->stat != 0) | ||||
SYSCTL_ADD_UQUAD(ctx, child, OID_AUTO, entry->name, | SYSCTL_ADD_UQUAD(ctx, child, OID_AUTO, entry->name, | ||||
CTLFLAG_RD, entry->stat, | CTLFLAG_RD, entry->stat, | ||||
entry->description); | entry->description); | ||||
entry++; | entry++; | ||||
} | } | ||||
} | } | ||||
void | void | ||||
ixl_add_queues_sysctls(device_t dev, struct ixl_vsi *vsi) | ixl_vsi_add_queues_stats(struct ixl_vsi *vsi, struct sysctl_ctx_list *ctx) | ||||
{ | { | ||||
struct sysctl_ctx_list *ctx = device_get_sysctl_ctx(dev); | |||||
struct sysctl_oid_list *vsi_list, *queue_list; | struct sysctl_oid_list *vsi_list, *queue_list; | ||||
struct sysctl_oid *queue_node; | struct sysctl_oid *queue_node; | ||||
char queue_namebuf[32]; | char queue_namebuf[IXL_QUEUE_NAME_LEN]; | ||||
struct ixl_rx_queue *rx_que; | struct ixl_rx_queue *rx_que; | ||||
struct ixl_tx_queue *tx_que; | struct ixl_tx_queue *tx_que; | ||||
struct tx_ring *txr; | struct tx_ring *txr; | ||||
struct rx_ring *rxr; | struct rx_ring *rxr; | ||||
vsi_list = SYSCTL_CHILDREN(vsi->vsi_node); | vsi_list = SYSCTL_CHILDREN(vsi->vsi_node); | ||||
/* Queue statistics */ | /* Queue statistics */ | ||||
for (int q = 0; q < vsi->num_rx_queues; q++) { | for (int q = 0; q < vsi->num_rx_queues; q++) { | ||||
bzero(queue_namebuf, sizeof(queue_namebuf)); | bzero(queue_namebuf, sizeof(queue_namebuf)); | ||||
snprintf(queue_namebuf, QUEUE_NAME_LEN, "rxq%02d", q); | snprintf(queue_namebuf, sizeof(queue_namebuf), "rxq%02d", q); | ||||
queue_node = SYSCTL_ADD_NODE(ctx, vsi_list, | queue_node = SYSCTL_ADD_NODE(ctx, vsi_list, | ||||
OID_AUTO, queue_namebuf, CTLFLAG_RD | CTLFLAG_MPSAFE, | OID_AUTO, queue_namebuf, CTLFLAG_RD | CTLFLAG_MPSAFE, | ||||
NULL, "RX Queue #"); | NULL, "RX Queue #"); | ||||
queue_list = SYSCTL_CHILDREN(queue_node); | queue_list = SYSCTL_CHILDREN(queue_node); | ||||
rx_que = &(vsi->rx_queues[q]); | rx_que = &(vsi->rx_queues[q]); | ||||
rxr = &(rx_que->rxr); | rxr = &(rx_que->rxr); | ||||
Show All 11 Lines | SYSCTL_ADD_UQUAD(ctx, queue_list, OID_AUTO, "desc_err", | ||||
CTLFLAG_RD, &(rxr->desc_errs), | CTLFLAG_RD, &(rxr->desc_errs), | ||||
"Queue Rx Descriptor Errors"); | "Queue Rx Descriptor Errors"); | ||||
SYSCTL_ADD_UINT(ctx, queue_list, OID_AUTO, "itr", | SYSCTL_ADD_UINT(ctx, queue_list, OID_AUTO, "itr", | ||||
CTLFLAG_RD, &(rxr->itr), 0, | CTLFLAG_RD, &(rxr->itr), 0, | ||||
"Queue Rx ITR Interval"); | "Queue Rx ITR Interval"); | ||||
} | } | ||||
for (int q = 0; q < vsi->num_tx_queues; q++) { | for (int q = 0; q < vsi->num_tx_queues; q++) { | ||||
bzero(queue_namebuf, sizeof(queue_namebuf)); | bzero(queue_namebuf, sizeof(queue_namebuf)); | ||||
snprintf(queue_namebuf, QUEUE_NAME_LEN, "txq%02d", q); | snprintf(queue_namebuf, sizeof(queue_namebuf), "txq%02d", q); | ||||
queue_node = SYSCTL_ADD_NODE(ctx, vsi_list, | queue_node = SYSCTL_ADD_NODE(ctx, vsi_list, | ||||
OID_AUTO, queue_namebuf, CTLFLAG_RD | CTLFLAG_MPSAFE, | OID_AUTO, queue_namebuf, CTLFLAG_RD | CTLFLAG_MPSAFE, | ||||
NULL, "TX Queue #"); | NULL, "TX Queue #"); | ||||
queue_list = SYSCTL_CHILDREN(queue_node); | queue_list = SYSCTL_CHILDREN(queue_node); | ||||
tx_que = &(vsi->tx_queues[q]); | tx_que = &(vsi->tx_queues[q]); | ||||
txr = &(tx_que->txr); | txr = &(tx_que->txr); | ||||
Show All 17 Lines |