[ofa-general] [PATCH] opensm: consolidate SM state logging code
Sasha Khapyorsky
sashak at voltaire.com
Sun Feb 10 05:31:33 PST 2008
Consolidate SM state transition logging code with single
__osm_report_sm_state() function.
Signed-off-by: Sasha Khapyorsky <sashak at voltaire.com>
---
opensm/opensm/osm_helper.c | 8 ++--
opensm/opensm/osm_sm_state_mgr.c | 71 +++++++++----------------------------
opensm/opensm/osm_sminfo_rcv.c | 6 +--
3 files changed, 24 insertions(+), 61 deletions(-)
diff --git a/opensm/opensm/osm_helper.c b/opensm/opensm/osm_helper.c
index de4ba33..0c11198 100644
--- a/opensm/opensm/osm_helper.c
+++ b/opensm/opensm/osm_helper.c
@@ -2346,10 +2346,10 @@ const char *osm_get_sm_mgr_signal_str(IN osm_sm_signal_t signal)
}
const char *const __osm_sm_mgr_state_str[] = {
- "IB_SMINFO_STATE_NOTACTIVE", /* 0 */
- "IB_SMINFO_STATE_DISCOVERING", /* 1 */
- "IB_SMINFO_STATE_STANDBY", /* 2 */
- "IB_SMINFO_STATE_MASTER", /* 3 */
+ "NOTACTIVE", /* 0 */
+ "DISCOVERING", /* 1 */
+ "STANDBY", /* 2 */
+ "MASTER", /* 3 */
"UNKNOWN STATE!!" /* 4 */
};
diff --git a/opensm/opensm/osm_sm_state_mgr.c b/opensm/opensm/osm_sm_state_mgr.c
index 73d39fa..4f0bf72 100644
--- a/opensm/opensm/osm_sm_state_mgr.c
+++ b/opensm/opensm/osm_sm_state_mgr.c
@@ -69,44 +69,14 @@
/**********************************************************************
**********************************************************************/
-static void
-__osm_sm_state_mgr_standby_msg(IN const osm_sm_state_mgr_t * p_sm_mgr)
-{
- osm_log(p_sm_mgr->p_log, OSM_LOG_SYS, "Entering STANDBY state\n"); /* Format Waived */
-
- osm_log_msg_box(p_sm_mgr->p_log, OSM_LOG_VERBOSE, __FUNCTION__,
- "ENTERING SM STANDBY STATE");
-}
-
-/**********************************************************************
- **********************************************************************/
-static void
-__osm_sm_state_mgr_master_msg(IN const osm_sm_state_mgr_t * p_sm_mgr)
-{
- osm_log(p_sm_mgr->p_log, OSM_LOG_SYS, "Entering MASTER state\n"); /* Format Waived */
-
- osm_log_msg_box(p_sm_mgr->p_log, OSM_LOG_VERBOSE, __FUNCTION__,
- "ENTERING SM MASTER STATE");
-}
-
-/**********************************************************************
- **********************************************************************/
-static void
-__osm_sm_state_mgr_discovering_msg(IN const osm_sm_state_mgr_t * p_sm_mgr)
-{
- osm_log_msg_box(p_sm_mgr->p_log, OSM_LOG_VERBOSE, __FUNCTION__,
- "ENTERING SM DISCOVERING STATE");
-}
-
-/**********************************************************************
- **********************************************************************/
-static void
-__osm_sm_state_mgr_notactive_msg(IN const osm_sm_state_mgr_t * p_sm_mgr)
+static void __osm_report_sm_state(IN const osm_sm_state_mgr_t * p_sm_mgr)
{
- osm_log(p_sm_mgr->p_log, OSM_LOG_SYS, "Entering NOT-ACTIVE state\n"); /* Format Waived */
+ char buf[64];
+ const char *state_str = osm_get_sm_mgr_state_str(p_sm_mgr->p_subn->sm_state);
- osm_log_msg_box(p_sm_mgr->p_log, OSM_LOG_VERBOSE, __FUNCTION__,
- "ENTERING SM NOT-ACTIVE STATE");
+ osm_log(p_sm_mgr->p_log, OSM_LOG_SYS, "Entering %s state\n", state_str);
+ snprintf(buf, sizeof(buf), "ENTERING SM %s STATE", state_str);
+ osm_log_msg_box(p_sm_mgr->p_log, OSM_LOG_VERBOSE, __FUNCTION__, buf);
}
#if 0
@@ -373,15 +343,10 @@ osm_sm_state_mgr_init(IN osm_sm_state_mgr_t * const p_sm_mgr, IN osm_sm_t * sm)
p_sm_mgr->p_log = sm->p_log;
p_sm_mgr->p_subn = sm->p_subn;
- if (p_sm_mgr->p_subn->opt.sm_inactive) {
- /* init the state of the SM to not active */
- p_sm_mgr->p_subn->sm_state = IB_SMINFO_STATE_NOTACTIVE;
- __osm_sm_state_mgr_notactive_msg(p_sm_mgr);
- } else {
- /* init the state of the SM to discovering */
- p_sm_mgr->p_subn->sm_state = IB_SMINFO_STATE_DISCOVERING;
- __osm_sm_state_mgr_discovering_msg(p_sm_mgr);
- }
+ p_sm_mgr->p_subn->sm_state = p_sm_mgr->p_subn->opt.sm_inactive ?
+ IB_SMINFO_STATE_NOTACTIVE : IB_SMINFO_STATE_DISCOVERING;
+
+ __osm_report_sm_state(p_sm_mgr);
status = cl_spinlock_init(&p_sm_mgr->state_lock);
if (status != CL_SUCCESS) {
@@ -459,7 +424,6 @@ osm_sm_state_mgr_process(IN osm_sm_state_mgr_t * const p_sm_mgr,
/*
* Update the state of the SM to MASTER
*/
- __osm_sm_state_mgr_master_msg(p_sm_mgr);
/* Turn on the moved_to_master_state flag */
p_sm_mgr->p_subn->moved_to_master_state = TRUE;
/* Turn on the first_time_master_sweep flag */
@@ -467,6 +431,7 @@ osm_sm_state_mgr_process(IN osm_sm_state_mgr_t * const p_sm_mgr,
p_sm_mgr->p_subn->first_time_master_sweep =
TRUE;
p_sm_mgr->p_subn->sm_state = IB_SMINFO_STATE_MASTER;
+ __osm_report_sm_state(p_sm_mgr);
/*
* Make sure to set the subnet master_sm_base_lid
* to the sm_base_lid value
@@ -479,8 +444,8 @@ osm_sm_state_mgr_process(IN osm_sm_state_mgr_t * const p_sm_mgr,
* Finished all discovery actions - move to STANDBY
* start the polling
*/
- __osm_sm_state_mgr_standby_msg(p_sm_mgr);
p_sm_mgr->p_subn->sm_state = IB_SMINFO_STATE_STANDBY;
+ __osm_report_sm_state(p_sm_mgr);
/*
* Since another SM is doing the LFT config - we should not
* ignore the results of it
@@ -514,9 +479,9 @@ osm_sm_state_mgr_process(IN osm_sm_state_mgr_t * const p_sm_mgr,
* case 2: Got a signal to move to DISCOVERING
* Move to DISCOVERING state and start sweeping
*/
- __osm_sm_state_mgr_discovering_msg(p_sm_mgr);
p_sm_mgr->p_subn->sm_state =
IB_SMINFO_STATE_DISCOVERING;
+ __osm_report_sm_state(p_sm_mgr);
p_sm_mgr->p_subn->coming_out_of_standby = TRUE;
osm_sm_signal(&p_sm_mgr->p_subn->p_osm->sm,
OSM_SIGNAL_EXIT_STBY);
@@ -525,15 +490,14 @@ osm_sm_state_mgr_process(IN osm_sm_state_mgr_t * const p_sm_mgr,
/*
* Update the state to NOT_ACTIVE
*/
- __osm_sm_state_mgr_notactive_msg(p_sm_mgr);
p_sm_mgr->p_subn->sm_state = IB_SMINFO_STATE_NOTACTIVE;
+ __osm_report_sm_state(p_sm_mgr);
break;
case OSM_SM_SIGNAL_HANDOVER:
/*
* Update the state to MASTER, and start sweeping
* OPTIONAL: send ACKNOWLEDGE
*/
- __osm_sm_state_mgr_master_msg(p_sm_mgr);
/* Turn on the moved_to_master_state flag */
p_sm_mgr->p_subn->moved_to_master_state = TRUE;
/* Turn on the first_time_master_sweep flag */
@@ -545,6 +509,7 @@ osm_sm_state_mgr_process(IN osm_sm_state_mgr_t * const p_sm_mgr,
p_sm_mgr->p_subn->force_heavy_sweep = TRUE;
p_sm_mgr->p_subn->sm_state = IB_SMINFO_STATE_MASTER;
+ __osm_report_sm_state(p_sm_mgr);
/*
* Make sure to set the subnet master_sm_base_lid
* to the sm_base_lid value
@@ -574,8 +539,8 @@ osm_sm_state_mgr_process(IN osm_sm_state_mgr_t * const p_sm_mgr,
* Update the state to STANDBY
* start the polling
*/
- __osm_sm_state_mgr_standby_msg(p_sm_mgr);
p_sm_mgr->p_subn->sm_state = IB_SMINFO_STATE_STANDBY;
+ __osm_report_sm_state(p_sm_mgr);
__osm_sm_state_mgr_start_polling(p_sm_mgr);
break;
default:
@@ -622,8 +587,8 @@ osm_sm_state_mgr_process(IN osm_sm_state_mgr_t * const p_sm_mgr,
* Just sent a HANDOVER signal - move to STANDBY
* start the polling
*/
- __osm_sm_state_mgr_standby_msg(p_sm_mgr);
p_sm_mgr->p_subn->sm_state = IB_SMINFO_STATE_STANDBY;
+ __osm_report_sm_state(p_sm_mgr);
__osm_sm_state_mgr_start_polling(p_sm_mgr);
break;
case OSM_SM_SIGNAL_WAIT_FOR_HANDOVER:
@@ -637,9 +602,9 @@ osm_sm_state_mgr_process(IN osm_sm_state_mgr_t * const p_sm_mgr,
__osm_sm_state_mgr_start_polling(p_sm_mgr);
break;
case OSM_SM_SIGNAL_DISCOVER:
- __osm_sm_state_mgr_discovering_msg(p_sm_mgr);
p_sm_mgr->p_subn->sm_state =
IB_SMINFO_STATE_DISCOVERING;
+ __osm_report_sm_state(p_sm_mgr);
break;
default:
__osm_sm_state_mgr_signal_error(p_sm_mgr, signal);
diff --git a/opensm/opensm/osm_sminfo_rcv.c b/opensm/opensm/osm_sminfo_rcv.c
index 0fe246a..1e9e5cf 100644
--- a/opensm/opensm/osm_sminfo_rcv.c
+++ b/opensm/opensm/osm_sminfo_rcv.c
@@ -238,8 +238,7 @@ __osm_sminfo_rcv_process_set_request(IN osm_sm_t * sm,
"__osm_sminfo_rcv_process_set_request: ERR 2F04: "
"Check legality failed. AttributeModifier:0x%X RemoteState:%s\n",
p_smp->attr_mod,
- osm_get_sm_mgr_state_str(ib_sminfo_get_state
- (sm_smi)));
+ osm_get_sm_mgr_state_str(ib_sminfo_get_state(sm_smi)));
/* send a response with error code */
status = osm_resp_send(sm, p_madw, 7, payload);
if (status != IB_SUCCESS)
@@ -288,8 +287,7 @@ __osm_sminfo_rcv_process_set_request(IN osm_sm_t * sm,
"__osm_sminfo_rcv_process_set_request: ERR 2F07: "
"Failed check of legality of needed SM transition. AttributeModifier:0x%X RemoteState:%s\n",
p_smp->attr_mod,
- osm_get_sm_mgr_state_str(ib_sminfo_get_state
- (sm_smi)));
+ osm_get_sm_mgr_state_str(ib_sminfo_get_state(sm_smi)));
/* send a response with error code */
status = osm_resp_send(sm, p_madw, 7, payload);
if (status != IB_SUCCESS)
--
1.5.4.rc5
More information about the general
mailing list