MCPcopy Create free account
hub / github.com/F-Stack/f-stack / iflib_add_device_sysctl_post

Function iflib_add_device_sysctl_post

freebsd/net/iflib.c:6709–6863  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

6707}
6708
6709static void
6710iflib_add_device_sysctl_post(if_ctx_t ctx)
6711{
6712 if_shared_ctx_t sctx = ctx->ifc_sctx;
6713 if_softc_ctx_t scctx = &ctx->ifc_softc_ctx;
6714 device_t dev = iflib_get_dev(ctx);
6715 struct sysctl_oid_list *child;
6716 struct sysctl_ctx_list *ctx_list;
6717 iflib_fl_t fl;
6718 iflib_txq_t txq;
6719 iflib_rxq_t rxq;
6720 int i, j;
6721 char namebuf[NAME_BUFLEN];
6722 char *qfmt;
6723 struct sysctl_oid *queue_node, *fl_node, *node;
6724 struct sysctl_oid_list *queue_list, *fl_list;
6725 ctx_list = device_get_sysctl_ctx(dev);
6726
6727 node = ctx->ifc_sysctl_node;
6728 child = SYSCTL_CHILDREN(node);
6729
6730 if (scctx->isc_ntxqsets > 100)
6731 qfmt = "txq%03d";
6732 else if (scctx->isc_ntxqsets > 10)
6733 qfmt = "txq%02d";
6734 else
6735 qfmt = "txq%d";
6736 for (i = 0, txq = ctx->ifc_txqs; i < scctx->isc_ntxqsets; i++, txq++) {
6737 snprintf(namebuf, NAME_BUFLEN, qfmt, i);
6738 queue_node = SYSCTL_ADD_NODE(ctx_list, child, OID_AUTO, namebuf,
6739 CTLFLAG_RD | CTLFLAG_MPSAFE, NULL, "Queue Name");
6740 queue_list = SYSCTL_CHILDREN(queue_node);
6741#if MEMORY_LOGGING
6742 SYSCTL_ADD_QUAD(ctx_list, queue_list, OID_AUTO, "txq_dequeued",
6743 CTLFLAG_RD,
6744 &txq->ift_dequeued, "total mbufs freed");
6745 SYSCTL_ADD_QUAD(ctx_list, queue_list, OID_AUTO, "txq_enqueued",
6746 CTLFLAG_RD,
6747 &txq->ift_enqueued, "total mbufs enqueued");
6748#endif
6749 SYSCTL_ADD_QUAD(ctx_list, queue_list, OID_AUTO, "mbuf_defrag",
6750 CTLFLAG_RD,
6751 &txq->ift_mbuf_defrag, "# of times m_defrag was called");
6752 SYSCTL_ADD_QUAD(ctx_list, queue_list, OID_AUTO, "m_pullups",
6753 CTLFLAG_RD,
6754 &txq->ift_pullups, "# of times m_pullup was called");
6755 SYSCTL_ADD_QUAD(ctx_list, queue_list, OID_AUTO, "mbuf_defrag_failed",
6756 CTLFLAG_RD,
6757 &txq->ift_mbuf_defrag_failed, "# of times m_defrag failed");
6758 SYSCTL_ADD_QUAD(ctx_list, queue_list, OID_AUTO, "no_desc_avail",
6759 CTLFLAG_RD,
6760 &txq->ift_no_desc_avail, "# of times no descriptors were available");
6761 SYSCTL_ADD_QUAD(ctx_list, queue_list, OID_AUTO, "tx_map_failed",
6762 CTLFLAG_RD,
6763 &txq->ift_map_failed, "# of times DMA map failed");
6764 SYSCTL_ADD_QUAD(ctx_list, queue_list, OID_AUTO, "txd_encap_efbig",
6765 CTLFLAG_RD,
6766 &txq->ift_txd_encap_efbig, "# of times txd_encap returned EFBIG");

Callers 2

iflib_device_registerFunction · 0.85
iflib_pseudo_registerFunction · 0.85

Calls 3

iflib_get_devFunction · 0.85
device_get_sysctl_ctxFunction · 0.85
snprintfFunction · 0.85

Tested by

no test coverage detected