From 05e4eb5cfa5e329f03f73205201544383ea68e20 Mon Sep 17 00:00:00 2001 From: Sepherosa Ziehau Date: Tue, 28 Apr 2009 21:46:49 +0800 Subject: [PATCH] serializer: Revoke PROFILE_SERIALIZER kernel option This kernel is added by me to do preliminary serializer contention profiling. It is kinda invasive and expands struct lwkt_serialize considerably. Need to find a better way... --- sys/conf/options | 3 --- sys/config/LINT | 3 --- sys/dev/netif/em/Makefile | 5 +---- sys/dev/netif/em/if_em.c | 23 ----------------------- sys/dev/netif/emx/Makefile | 5 +---- sys/dev/netif/emx/if_emx.c | 21 --------------------- sys/kern/lwkt_serialize.c | 33 --------------------------------- sys/sys/serialize.h | 4 ---- 8 files changed, 2 insertions(+), 95 deletions(-) diff --git a/sys/conf/options b/sys/conf/options index 9a430dc346..34965eb9b6 100644 --- a/sys/conf/options +++ b/sys/conf/options @@ -654,9 +654,6 @@ SCTP_MAP_LOGGING opt_sctp.h # SYSLINK opt_syslink.h -# serializer profiling support -PROFILE_SERIALIZER opt_serializer.h - # Receive Side Scaling RSS opt_rss.h RSS_DEBUG opt_rss.h diff --git a/sys/config/LINT b/sys/config/LINT index d695e32836..5fb4570e6b 100644 --- a/sys/config/LINT +++ b/sys/config/LINT @@ -2808,9 +2808,6 @@ options SCTP_STR_LOGGING options SCTP_FR_LOGGING options SCTP_MAP_LOGGING -# Serializer profiling -options PROFILE_SERIALIZER - # Receive Side Scaling options RSS options RSS_DEBUG diff --git a/sys/dev/netif/em/Makefile b/sys/dev/netif/em/Makefile index 821a180bb2..aa8381f0ee 100644 --- a/sys/dev/netif/em/Makefile +++ b/sys/dev/netif/em/Makefile @@ -4,16 +4,13 @@ KMOD= if_em SRCS= if_em.c SRCS+= device_if.h bus_if.h pci_if.h -SRCS+= opt_polling.h opt_ktr.h opt_serializer.h +SRCS+= opt_polling.h opt_ktr.h KMODDEPS = ig_hal .ifndef BUILDING_WITH_KERNEL opt_polling.h: echo '#define DEVICE_POLLING 1' > ${.OBJDIR}/${.TARGET} - -opt_serializer.h: - touch ${.OBJDIR}/${.TARGET} .endif .include diff --git a/sys/dev/netif/em/if_em.c b/sys/dev/netif/em/if_em.c index dc42aab58a..8e21c286b3 100644 --- a/sys/dev/netif/em/if_em.c +++ b/sys/dev/netif/em/if_em.c @@ -95,7 +95,6 @@ */ #include "opt_polling.h" -#include "opt_serializer.h" #include #include @@ -3873,10 +3872,6 @@ em_sysctl_stats(SYSCTL_HANDLER_ARGS) static void em_add_sysctl(struct adapter *adapter) { -#ifdef PROFILE_SERIALIZER - struct ifnet *ifp = &adapter->arpcom.ac_if; -#endif - sysctl_ctx_init(&adapter->sysctl_ctx); adapter->sysctl_tree = SYSCTL_ADD_NODE(&adapter->sysctl_ctx, SYSCTL_STATIC_CHILDREN(_hw), OID_AUTO, @@ -3904,24 +3899,6 @@ em_add_sysctl(struct adapter *adapter) OID_AUTO, "txd", CTLFLAG_RD, &adapter->num_tx_desc, 0, NULL); -#ifdef PROFILE_SERIALIZER - SYSCTL_ADD_UINT(&adapter->sysctl_ctx, - SYSCTL_CHILDREN(adapter->sysctl_tree), - OID_AUTO, "serializer_sleep", CTLFLAG_RW, - &ifp->if_serializer->sleep_cnt, 0, NULL); - SYSCTL_ADD_UINT(&adapter->sysctl_ctx, - SYSCTL_CHILDREN(adapter->sysctl_tree), - OID_AUTO, "serializer_tryfail", CTLFLAG_RW, - &ifp->if_serializer->tryfail_cnt, 0, NULL); - SYSCTL_ADD_UINT(&adapter->sysctl_ctx, - SYSCTL_CHILDREN(adapter->sysctl_tree), - OID_AUTO, "serializer_enter", CTLFLAG_RW, - &ifp->if_serializer->enter_cnt, 0, NULL); - SYSCTL_ADD_UINT(&adapter->sysctl_ctx, - SYSCTL_CHILDREN(adapter->sysctl_tree), - OID_AUTO, "serializer_try", CTLFLAG_RW, - &ifp->if_serializer->try_cnt, 0, NULL); -#endif if (adapter->hw.mac.type >= e1000_82540) { SYSCTL_ADD_PROC(&adapter->sysctl_ctx, SYSCTL_CHILDREN(adapter->sysctl_tree), diff --git a/sys/dev/netif/emx/Makefile b/sys/dev/netif/emx/Makefile index e73efcaa19..23985219e4 100644 --- a/sys/dev/netif/emx/Makefile +++ b/sys/dev/netif/emx/Makefile @@ -1,7 +1,7 @@ KMOD= if_emx SRCS= if_emx.c SRCS+= device_if.h bus_if.h pci_if.h -SRCS+= opt_ifpoll.h opt_ktr.h opt_serializer.h opt_emx.h opt_rss.h +SRCS+= opt_ifpoll.h opt_ktr.h opt_emx.h opt_rss.h KMODDEPS = ig_hal @@ -10,9 +10,6 @@ KMODDEPS = ig_hal opt_ifpoll.h: touch ${.OBJDIR}/${.TARGET} -opt_serializer.h: - touch ${.OBJDIR}/${.TARGET} - opt_emx.h: touch ${.OBJDIR}/${.TARGET} diff --git a/sys/dev/netif/emx/if_emx.c b/sys/dev/netif/emx/if_emx.c index 09540f356f..008189c530 100644 --- a/sys/dev/netif/emx/if_emx.c +++ b/sys/dev/netif/emx/if_emx.c @@ -65,7 +65,6 @@ */ #include "opt_ifpoll.h" -#include "opt_serializer.h" #include "opt_rss.h" #include "opt_emx.h" @@ -3361,9 +3360,6 @@ emx_sysctl_stats(SYSCTL_HANDLER_ARGS) static void emx_add_sysctl(struct emx_softc *sc) { -#ifdef PROFILE_SERIALIZER - struct ifnet *ifp = &sc->arpcom.ac_if; -#endif #ifdef EMX_RSS_DEBUG char rx_pkt[32]; int i; @@ -3393,23 +3389,6 @@ emx_add_sysctl(struct emx_softc *sc) SYSCTL_ADD_INT(&sc->sysctl_ctx, SYSCTL_CHILDREN(sc->sysctl_tree), OID_AUTO, "txd", CTLFLAG_RD, &sc->num_tx_desc, 0, NULL); -#ifdef notyet -#ifdef PROFILE_SERIALIZER - SYSCTL_ADD_UINT(&sc->sysctl_ctx, SYSCTL_CHILDREN(sc->sysctl_tree), - OID_AUTO, "serializer_sleep", CTLFLAG_RW, - &ifp->if_serializer->sleep_cnt, 0, NULL); - SYSCTL_ADD_UINT(&sc->sysctl_ctx, SYSCTL_CHILDREN(sc->sysctl_tree), - OID_AUTO, "serializer_tryfail", CTLFLAG_RW, - &ifp->if_serializer->tryfail_cnt, 0, NULL); - SYSCTL_ADD_UINT(&sc->sysctl_ctx, SYSCTL_CHILDREN(sc->sysctl_tree), - OID_AUTO, "serializer_enter", CTLFLAG_RW, - &ifp->if_serializer->enter_cnt, 0, NULL); - SYSCTL_ADD_UINT(&sc->sysctl_ctx, SYSCTL_CHILDREN(sc->sysctl_tree), - OID_AUTO, "serializer_try", CTLFLAG_RW, - &ifp->if_serializer->try_cnt, 0, NULL); -#endif -#endif - SYSCTL_ADD_PROC(&sc->sysctl_ctx, SYSCTL_CHILDREN(sc->sysctl_tree), OID_AUTO, "int_throttle_ceil", CTLTYPE_INT|CTLFLAG_RW, sc, 0, emx_sysctl_int_throttle, "I", diff --git a/sys/kern/lwkt_serialize.c b/sys/kern/lwkt_serialize.c index 7b972e3d36..6bb7e14b46 100644 --- a/sys/kern/lwkt_serialize.c +++ b/sys/kern/lwkt_serialize.c @@ -44,8 +44,6 @@ * disablement facility. */ -#include "opt_serializer.h" - #include #include #include @@ -125,10 +123,6 @@ lwkt_serialize_init(lwkt_serialize_t s) #ifdef INVARIANTS s->last_td = (void *)-4; #endif - s->sleep_cnt = 0; - s->tryfail_cnt = 0; - s->enter_cnt = 0; - s->try_cnt = 0; } #ifdef SMP @@ -149,9 +143,6 @@ lwkt_serialize_adaptive_enter(lwkt_serialize_t s) #ifdef INVARIANTS s->last_td = curthread; #endif -#ifdef PROFILE_SERIALIZER - s->enter_cnt++; -#endif } #endif /* SMP */ @@ -166,9 +157,6 @@ lwkt_serialize_enter(lwkt_serialize_t s) #ifdef INVARIANTS s->last_td = curthread; #endif -#ifdef PROFILE_SERIALIZER - s->enter_cnt++; -#endif } /* @@ -181,9 +169,6 @@ lwkt_serialize_try(lwkt_serialize_t s) ASSERT_NOT_SERIALIZED(s); -#ifdef PROFILE_SERIALIZER - s->try_cnt++; -#endif logslz(try, s); if ((error = atomic_intr_cond_try(&s->interlock)) == 0) { #ifdef INVARIANTS @@ -192,9 +177,6 @@ lwkt_serialize_try(lwkt_serialize_t s) logslz(tryok, s); return(1); } -#ifdef PROFILE_SERIALIZER - s->tryfail_cnt++; -#endif logslz(tryfail, s); return (0); } @@ -242,9 +224,6 @@ lwkt_serialize_handler_call(lwkt_serialize_t s, void (*func)(void *, void *), #ifdef INVARIANTS s->last_td = curthread; #endif -#ifdef PROFILE_SERIALIZER - s->enter_cnt++; -#endif if (atomic_intr_handler_is_enabled(&s->interlock) == 0) func(arg, frame); @@ -271,9 +250,6 @@ lwkt_serialize_handler_try(lwkt_serialize_t s, void (*func)(void *, void *), * enabled. */ if (atomic_intr_handler_is_enabled(&s->interlock) == 0) { -#ifdef PROFILE_SERIALIZER - s->try_cnt++; -#endif logslz(try, s); if (atomic_intr_cond_try(&s->interlock) == 0) { #ifdef INVARIANTS @@ -293,9 +269,6 @@ lwkt_serialize_handler_try(lwkt_serialize_t s, void (*func)(void *, void *), return(0); } } -#ifdef PROFILE_SERIALIZER - s->tryfail_cnt++; -#endif logslz(tryfail, s); return(1); } @@ -316,9 +289,6 @@ lwkt_serialize_sleep(void *info) crit_enter(); tsleep_interlock(s); if (atomic_intr_cond_test(&s->interlock) != 0) { -#ifdef PROFILE_SERIALIZER - s->sleep_cnt++; -#endif logslz(sleep_beg, s); tsleep(s, 0, "slize", 0); logslz(sleep_end, s); @@ -369,9 +339,6 @@ lwkt_serialize_adaptive_sleep(void *arg) crit_enter(); tsleep_interlock(s); if (atomic_intr_cond_test(&s->interlock) != 0) { -#ifdef PROFILE_SERIALIZER - s->sleep_cnt++; -#endif logslz(sleep_beg, s); tsleep(s, 0, "slize", 0); logslz(sleep_end, s); diff --git a/sys/sys/serialize.h b/sys/sys/serialize.h index b179de2521..4719bbb857 100644 --- a/sys/sys/serialize.h +++ b/sys/sys/serialize.h @@ -23,10 +23,6 @@ struct thread; struct lwkt_serialize { __atomic_intr_t interlock; struct thread *last_td; - unsigned int sleep_cnt; - unsigned int tryfail_cnt; - unsigned int enter_cnt; - unsigned int try_cnt; }; #ifdef INVARIANTS -- 2.11.4.GIT