Changeset View
Changeset View
Standalone View
Standalone View
sys/dev/sfxge/sfxge_ev.c
Show All 12 Lines | |||||
OID_AUTO, name, CTLFLAG_RD, NULL, ""); | OID_AUTO, name, CTLFLAG_RD, NULL, ""); | ||||
if (evq_stats_node == NULL) | if (evq_stats_node == NULL) | ||||
return (ENOMEM); | return (ENOMEM); | ||||
for (id = 0; id < EV_NQSTATS; id++) { | for (id = 0; id < EV_NQSTATS; id++) { | ||||
SYSCTL_ADD_PROC( | SYSCTL_ADD_PROC( | ||||
ctx, SYSCTL_CHILDREN(evq_stats_node), | ctx, SYSCTL_CHILDREN(evq_stats_node), | ||||
OID_AUTO, efx_ev_qstat_name(sc->enp, id), | OID_AUTO, efx_ev_qstat_name(sc->enp, id), | ||||
CTLTYPE_U64|CTLFLAG_RD, | CTLTYPE_U64 | CTLFLAG_RD | CTLFLAG_NEEDGIANT, | ||||
evq, id, sfxge_evq_stat_handler, "Q", | evq, id, sfxge_evq_stat_handler, "Q", | ||||
""); | ""); | ||||
} | } | ||||
return (0); | return (0); | ||||
} | } | ||||
static void | static void | ||||
Show All 24 Lines | |||||
stat_list = SYSCTL_CHILDREN(sc->stats_node); | stat_list = SYSCTL_CHILDREN(sc->stats_node); | ||||
for (id = 0; id < EV_NQSTATS; id++) { | for (id = 0; id < EV_NQSTATS; id++) { | ||||
snprintf(name, sizeof(name), "ev_%s", | snprintf(name, sizeof(name), "ev_%s", | ||||
efx_ev_qstat_name(sc->enp, id)); | efx_ev_qstat_name(sc->enp, id)); | ||||
SYSCTL_ADD_PROC( | SYSCTL_ADD_PROC( | ||||
ctx, stat_list, | ctx, stat_list, | ||||
OID_AUTO, name, CTLTYPE_U64|CTLFLAG_RD, | OID_AUTO, name, | ||||
CTLTYPE_U64 | CTLFLAG_RD | CTLFLAG_NEEDGIANT, | |||||
sc, id, sfxge_ev_stat_handler, "Q", | sc, id, sfxge_ev_stat_handler, "Q", | ||||
""); | ""); | ||||
} | } | ||||
} | } | ||||
#endif /* EFSYS_OPT_QSTATS */ | #endif /* EFSYS_OPT_QSTATS */ | ||||
static void | static void | ||||
Show All 24 Lines | |||||
KASSERT(intr->state == SFXGE_INTR_INITIALIZED, | KASSERT(intr->state == SFXGE_INTR_INITIALIZED, | ||||
("intr->state != SFXGE_INTR_INITIALIZED")); | ("intr->state != SFXGE_INTR_INITIALIZED")); | ||||
/* Set default interrupt moderation; add a sysctl to | /* Set default interrupt moderation; add a sysctl to | ||||
* read and change it. | * read and change it. | ||||
*/ | */ | ||||
sc->ev_moderation = SFXGE_MODERATION; | sc->ev_moderation = SFXGE_MODERATION; | ||||
SYSCTL_ADD_PROC(sysctl_ctx, SYSCTL_CHILDREN(sysctl_tree), | SYSCTL_ADD_PROC(sysctl_ctx, SYSCTL_CHILDREN(sysctl_tree), | ||||
OID_AUTO, "int_mod", CTLTYPE_UINT|CTLFLAG_RW, | OID_AUTO, "int_mod", | ||||
CTLTYPE_UINT | CTLFLAG_RW | CTLFLAG_NEEDGIANT, | |||||
sc, 0, sfxge_int_mod_handler, "IU", | sc, 0, sfxge_int_mod_handler, "IU", | ||||
"sfxge interrupt moderation (us)"); | "sfxge interrupt moderation (us)"); | ||||
#if EFSYS_OPT_QSTATS | #if EFSYS_OPT_QSTATS | ||||
sc->evqs_stats_node = SYSCTL_ADD_NODE( | sc->evqs_stats_node = SYSCTL_ADD_NODE( | ||||
device_get_sysctl_ctx(sc->dev), SYSCTL_CHILDREN(sc->stats_node), | device_get_sysctl_ctx(sc->dev), SYSCTL_CHILDREN(sc->stats_node), | ||||
OID_AUTO, "evq", CTLFLAG_RD, NULL, "Event queues stats"); | OID_AUTO, "evq", CTLFLAG_RD, NULL, "Event queues stats"); | ||||
if (sc->evqs_stats_node == NULL) { | if (sc->evqs_stats_node == NULL) { | ||||
Show All 12 Lines |