Signed-off-by: Ira Weiny <[email protected]>
---
include/opensm/osm_perfmgr.h | 7 +++++--
opensm/osm_perfmgr.c | 6 +++---
2 files changed, 8 insertions(+), 5 deletions(-)
diff --git a/include/opensm/osm_perfmgr.h b/include/opensm/osm_perfmgr.h
index 34925e8..67c0ce4 100644
--- a/include/opensm/osm_perfmgr.h
+++ b/include/opensm/osm_perfmgr.h
@@ -167,8 +167,11 @@ inline static void osm_perfmgr_set_state(osm_perfmgr_t *
p_perfmgr,
osm_perfmgr_state_t state)
{
p_perfmgr->state = state;
- if (state == PERFMGR_STATE_ENABLED)
- osm_sm_signal(p_perfmgr->sm, OSM_SIGNAL_PERFMGR_SWEEP);
+ if (state == PERFMGR_STATE_ENABLED) {
+ cl_timer_start(&p_perfmgr->sweep_timer, p_perfmgr->sweep_time_s
* 1000);
+ } else {
+ cl_timer_stop(&p_perfmgr->sweep_timer);
+ }
}
inline static osm_perfmgr_state_t osm_perfmgr_get_state(osm_perfmgr_t *
perfmgr)
diff --git a/opensm/osm_perfmgr.c b/opensm/osm_perfmgr.c
index cb1329e..ded5a5e 100644
--- a/opensm/osm_perfmgr.c
+++ b/opensm/osm_perfmgr.c
@@ -860,8 +860,7 @@ static void perfmgr_sweep(void *arg)
{
osm_perfmgr_t *pm = arg;
- if (pm->state == PERFMGR_STATE_ENABLED)
- osm_sm_signal(pm->sm, OSM_SIGNAL_PERFMGR_SWEEP);
+ osm_sm_signal(pm->sm, OSM_SIGNAL_PERFMGR_SWEEP);
cl_timer_start(&pm->sweep_timer, pm->sweep_time_s * 1000);
}
@@ -1380,7 +1379,8 @@ ib_api_status_t osm_perfmgr_init(osm_perfmgr_t * pm,
osm_opensm_t * osm,
init_monitored_nodes(pm);
- cl_timer_start(&pm->sweep_timer, pm->sweep_time_s * 1000);
+ if (pm->state == PERFMGR_STATE_ENABLED)
+ cl_timer_start(&pm->sweep_timer, pm->sweep_time_s * 1000);
status = IB_SUCCESS;
Exit:
--
1.7.1
--
To unsubscribe from this list: send the line "unsubscribe linux-rdma" in
the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html