opensm/osm_sm_mad_ctrl.c Changes to some error messages
PATCH 1/1 opensm/osm_sm_mad_ctrl.c Changes to some error messages
Added info to some error messages and lowered log level on subsequent call to osm_dump_dr_smp() to reduce amount of logging with default log level setting.
---
opensm/opensm/osm_sm_mad_ctrl.c +42 -9
@@ -3,6 +3,7 @@* Copyright (c) 2002-2005 Mellanox Technologies LTD. All rights reserved. * Copyright (c) 1996-2003 Intel Corporation. All rights reserved. * Copyright (c) 2009 HNR Consulting. All rights reserved. +* Copyright (c) 2009 Sun Microsystems, Inc. All rights reserved. * * This software is available to you under a choice of one of two * licenses. You may choose to be licensed under the terms of the GNU
@@ -636,9 +637,38 @@ static void sm_mad_ctrl_rcv_callback(IN osm_madw_t * p_madw, status = p_smp->status;if (status !=0 ) { +char buf[BUF_SIZE ]; + +if (p_smp->mgmt_class ==IB_MCLASS_SUBN_DIR ) { +char ipath[BUF_SIZE ], rpath[BUF_SIZE ]; +char tmp[10 ]; +uint32_t i; + +for (i =0 ; i <= p_smp->hop_count; i++) { +if (i ==0 ) { +sprintf (ipath,"%d" , p_smp->initial_path[i]); +sprintf (rpath,"%d" , p_smp->return_path[i]); + }else { +sprintf (tmp,",%d" , p_smp->initial_path[i]); +strcat (ipath, tmp); +sprintf (tmp,",%d" , p_smp->return_path[i]); +strcat (rpath, tmp); + } + } +sprintf (buf,"\n\t\t\tInitial path: " ); +strcat (buf, ipath); +strcat (buf," Return path: " ); +strcat (buf, rpath); + }OSM_LOG (p_ctrl->p_log,OSM_LOG_ERROR ,"ERR 3111: " -"Error status = 0x%X\n" ,cl_ntoh16 (status)); -osm_dump_dr_smp (p_ctrl->p_log, p_smp,OSM_LOG_ERROR ); +"Received MAD with error status = 0x%X\n" +"\t\t\t%s(%s), attr_mod 0x%x, TID 0x%" PRIx64"%s\n" , +cl_ntoh16 (status),ib_get_sm_method_str (p_smp->method), +ib_get_sm_attr_str (p_smp->attr_id), +cl_ntoh32 (p_smp->attr_mod), +cl_ntoh64 (p_smp->trans_id), + p_smp->mgmt_class ==IB_MCLASS_SUBN_DIR ? buf :"" ); +osm_dump_dr_smp (p_ctrl->p_log, p_smp,OSM_LOG_VERBOSE ); }switch (p_smp->method) {
@@ -708,9 +738,15 @@ static void sm_mad_ctrl_send_err_cb(IN void *context, IN osm_madw_t * p_madw)CL_ASSERT (p_madw); + p_smp =osm_madw_get_smp_ptr (p_madw);OSM_LOG (p_ctrl->p_log,OSM_LOG_ERROR ,"ERR 3113: " -"MAD completed in error (%s)\n" , -ib_get_err_str (p_madw->status)); +"MAD completed in error (%s): " +"%s(%s), attr_mod 0x%x, TID 0x%" PRIx64"\n" , +ib_get_err_str (p_madw->status), +ib_get_sm_method_str (p_smp->method), +ib_get_sm_attr_str (p_smp->attr_id), +cl_ntoh32 (p_smp->attr_mod), +cl_ntoh64 (p_smp->trans_id));/* If this was a SubnSet MAD, then this error might indicate a problem
@@ -718,7 +754,6 @@ static void sm_mad_ctrl_send_err_cb(IN void *context, IN osm_madw_t * p_madw)such a problem. The subnet will not be up, and the next sweep should be a heavy sweep as well. */ - p_smp =osm_madw_get_smp_ptr (p_madw); if (p_smp->method == IB_MAD_METHOD_SET && (p_smp->attr_id == IB_MAD_ATTR_PORT_INFO || p_smp->attr_id == IB_MAD_ATTR_MCAST_FWD_TBL ||
@@ -734,6 +769,8 @@ static void sm_mad_ctrl_send_err_cb(IN void *context, IN osm_madw_t * p_madw) p_ctrl->p_subn->subnet_initialization_error = TRUE; } +osm_dump_dr_smp (p_ctrl->p_log, p_smp,OSM_LOG_VERBOSE ); +/* Since we did not get any response we suspect the DR path used for the target port.
@@ -764,10 +801,6 @@ static void sm_mad_ctrl_send_err_cb(IN void *context, IN osm_madw_t * p_madw)An error occurred. No response was received to a request MAD. Retire the original request MAD. */ - -osm_dump_dr_smp (p_ctrl->p_log,osm_madw_get_smp_ptr (p_madw), -OSM_LOG_ERROR ); -sm_mad_ctrl_update_wire_stats (p_ctrl);if (osm_madw_get_err_msg (p_madw) !=CL_DISP_MSGID_NONE ) {
--
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
A message that is not in the archive (sent off-list or not yet received): 4B0FD67D.3040405-UdXhSnd/[email protected]
Hi Line,
Quoted 49 lines · Line Holen
Added info to some error messages and lowered log level on subsequent call to
osm_dump_dr_smp()to reduce amount of logging with default log level setting.Signed-off-by Line Holen <[email protected]>---
opensm/opensm/osm_sm_mad_ctrl.c +24
-1@@ -3,6 +3,7 @@* Copyright (c) 2002-2005 Mellanox Technologies LTD. All rights reserved. * Copyright (c) 1996-2003 Intel Corporation. All rights reserved. * Copyright (c) 2009 HNR Consulting. All rights reserved. +* Copyright (c) 2009 Sun Microsystems, Inc. All rights reserved. * * This software is available to you under a choice of one of two * licenses. You may choose to be licensed under the terms of the GNU @@ -636,9 +637,38 @@ static void sm_mad_ctrl_rcv_callback(IN osm_madw_t * p_madw, status = p_smp->status;if (status !=0 ) { +char buf[BUF_SIZE ]; + +if (p_smp->mgmt_class ==IB_MCLASS_SUBN_DIR ) { +char ipath[BUF_SIZE ], rpath[BUF_SIZE ]; +char tmp[10 ]; +uint32_t i; + +for (i =0 ; i <= p_smp->hop_count; i++) { +if (i ==0 ) { +sprintf (ipath,"%d" , p_smp->initial_path[i]); +sprintf (rpath,"%d" , p_smp->return_path[i]); + }else { +sprintf (tmp,",%d" , p_smp->initial_path[i]); +strcat (ipath, tmp); +sprintf (tmp,",%d" , p_smp->return_path[i]); +strcat (rpath, tmp); + } + } +sprintf (buf,"\n\t\t\tInitial path: " ); +strcat (buf, ipath); +strcat (buf," Return path: " ); +strcat (buf, rpath); + } OSM_LOG(p_ctrl->p_log, OSM_LOG_ERROR, "ERR 3111: " -"Error status = 0x%X\n" ,cl_ntoh16 (status));
opensm/opensm/osm_sm_mad_ctrl.c static void sm_mad_ctrl_rcv_callback(IN osm_madw_t * p_madw, · line 672
Quoted 10 lines
opensm/opensm/osm_sm_mad_ctrl.c +8
-1-osm_dump_dr_smp (p_ctrl->p_log, p_smp,OSM_LOG_ERROR ); +"Received MAD with error status = 0x%X\n" +"\t\t\t%s(%s), attr_mod 0x%x, TID 0x%" PRIx64"%s\n" , +cl_ntoh16 (status),ib_get_sm_method_str (p_smp->method), +ib_get_sm_attr_str (p_smp->attr_id), +cl_ntoh32 (p_smp->attr_mod), +cl_ntoh64 (p_smp->trans_id), + p_smp->mgmt_class == IB_MCLASS_SUBN_DIR ? buf : ""); +osm_dump_dr_smp (p_ctrl->p_log, p_smp,OSM_LOG_VERBOSE ); }
What about moving this logging code into separate function?
Sasha
Quoted 39 lines
opensm/opensm/osm_sm_mad_ctrl.c +10
-3switch (p_smp->method) {@@ -708,9 +738,15 @@ static void sm_mad_ctrl_send_err_cb(IN void *context, IN osm_madw_t * p_madw)CL_ASSERT (p_madw); + p_smp =osm_madw_get_smp_ptr (p_madw);OSM_LOG (p_ctrl->p_log,OSM_LOG_ERROR ,"ERR 3113: " -"MAD completed in error (%s)\n" , -ib_get_err_str (p_madw->status)); +"MAD completed in error (%s): " +"%s(%s), attr_mod 0x%x, TID 0x%" PRIx64"\n" , +ib_get_err_str (p_madw->status), +ib_get_sm_method_str (p_smp->method), +ib_get_sm_attr_str (p_smp->attr_id), +cl_ntoh32 (p_smp->attr_mod), +cl_ntoh64 (p_smp->trans_id));/* If this was a SubnSet MAD, then this error might indicate a problem @@ -718,7 +754,6 @@ static void sm_mad_ctrl_send_err_cb(IN void *context, IN osm_madw_t * p_madw)such a problem. The subnet will not be up, and the next sweep should be a heavy sweep as well. */ - p_smp =osm_madw_get_smp_ptr (p_madw); if (p_smp->method == IB_MAD_METHOD_SET && (p_smp->attr_id == IB_MAD_ATTR_PORT_INFO || p_smp->attr_id == IB_MAD_ATTR_MCAST_FWD_TBL ||@@ -734,6 +769,8 @@ static void sm_mad_ctrl_send_err_cb(IN void *context, IN osm_madw_t * p_madw) p_ctrl->p_subn->subnet_initialization_error = TRUE; } +osm_dump_dr_smp (p_ctrl->p_log, p_smp,OSM_LOG_VERBOSE ); +/* Since we did not get any response we suspect the DR path used for the target port.
opensm/opensm/osm_sm_mad_ctrl.c static void sm_mad_ctrl_send_err_cb(IN void *context, IN osm_madw_t * p_madw) · line 806
Quoted 10 lines
opensm/opensm/osm_sm_mad_ctrl.c +0
-4@@ -764,10 +801,6 @@ static void sm_mad_ctrl_send_err_cb(IN void *context, IN osm_madw_t * p_madw)An error occurred. No response was received to a request MAD. Retire the original request MAD. */ - -osm_dump_dr_smp (p_ctrl->p_log,osm_madw_get_smp_ptr (p_madw), -OSM_LOG_ERROR ); -sm_mad_ctrl_update_wire_stats (p_ctrl);if (osm_madw_get_err_msg (p_madw) !=CL_DISP_MSGID_NONE ) {
--
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
Quoted 56 lines · Sasha Khapyorsky
Hi Line,
Quoted 53 lines · Line Holen
Added info to some error messages and lowered log level on subsequent call to
osm_dump_dr_smp()to reduce amount of logging with default log level setting.Signed-off-by Line Holen <[email protected]>---
opensm/opensm/osm_sm_mad_ctrl.c +27
-2@@ -3,6 +3,7 @@* Copyright (c) 2002-2005 Mellanox Technologies LTD. All rights reserved. * Copyright (c) 1996-2003 Intel Corporation. All rights reserved. * Copyright (c) 2009 HNR Consulting. All rights reserved. +* Copyright (c) 2009 Sun Microsystems, Inc. All rights reserved. * * This software is available to you under a choice of one of two * licenses. You may choose to be licensed under the terms of the GNU @@ -636,9 +637,38 @@ static void sm_mad_ctrl_rcv_callback(IN osm_madw_t * p_madw, status = p_smp->status;if (status !=0 ) { +char buf[BUF_SIZE ]; + +if (p_smp->mgmt_class ==IB_MCLASS_SUBN_DIR ) { +char ipath[BUF_SIZE ], rpath[BUF_SIZE ]; +char tmp[10 ]; +uint32_t i; + +for (i =0 ; i <= p_smp->hop_count; i++) { +if (i ==0 ) { +sprintf (ipath,"%d" , p_smp->initial_path[i]); +sprintf (rpath,"%d" , p_smp->return_path[i]); + }else { +sprintf (tmp,",%d" , p_smp->initial_path[i]); +strcat (ipath, tmp); +sprintf (tmp,",%d" , p_smp->return_path[i]); +strcat (rpath, tmp); + } + } +sprintf (buf,"\n\t\t\tInitial path: " ); +strcat (buf, ipath); +strcat (buf," Return path: " ); +strcat (buf, rpath); + } OSM_LOG(p_ctrl->p_log, OSM_LOG_ERROR, "ERR 3111: " -"Error status = 0x%X\n" ,cl_ntoh16 (status)); -osm_dump_dr_smp (p_ctrl->p_log, p_smp,OSM_LOG_ERROR ); + "Received MAD with error status = 0x%X\n" + "\t\t\t%s(%s), attr_mod 0x%x, TID 0x%" PRIx64 "%s\n", + cl_ntoh16(status), ib_get_sm_method_str(p_smp->method),
Quoted 8 lines
opensm/opensm/osm_sm_mad_ctrl.c static void sm_mad_ctrl_rcv_callback(IN osm_madw_t * p_madw, · line 672
Quoted 6 lines
opensm/opensm/osm_sm_mad_ctrl.c +5
-0+ib_get_sm_attr_str (p_smp->attr_id), +cl_ntoh32 (p_smp->attr_mod), +cl_ntoh64 (p_smp->trans_id), + p_smp->mgmt_class == IB_MCLASS_SUBN_DIR ? buf : ""); +osm_dump_dr_smp (p_ctrl->p_log, p_smp,OSM_LOG_VERBOSE ); }What about moving this logging code into separate function?
That's fine by me. I assume you mean all the logging code within the "if (status != 0)" section. I'll send a new patch.
Quoted 50 lines
Sasha
Quoted 47 lines
opensm/opensm/osm_sm_mad_ctrl.c +10
-7switch (p_smp->method) {@@ -708,9 +738,15 @@ static void sm_mad_ctrl_send_err_cb(IN void *context, IN osm_madw_t * p_madw)CL_ASSERT (p_madw); + p_smp =osm_madw_get_smp_ptr (p_madw);OSM_LOG (p_ctrl->p_log,OSM_LOG_ERROR ,"ERR 3113: " -"MAD completed in error (%s)\n" , -ib_get_err_str (p_madw->status)); +"MAD completed in error (%s): " +"%s(%s), attr_mod 0x%x, TID 0x%" PRIx64"\n" , +ib_get_err_str (p_madw->status), +ib_get_sm_method_str (p_smp->method), +ib_get_sm_attr_str (p_smp->attr_id), +cl_ntoh32 (p_smp->attr_mod), +cl_ntoh64 (p_smp->trans_id));/* If this was a SubnSet MAD, then this error might indicate a problem @@ -718,7 +754,6 @@ static void sm_mad_ctrl_send_err_cb(IN void *context, IN osm_madw_t * p_madw)such a problem. The subnet will not be up, and the next sweep should be a heavy sweep as well. */ - p_smp =osm_madw_get_smp_ptr (p_madw); if (p_smp->method == IB_MAD_METHOD_SET && (p_smp->attr_id == IB_MAD_ATTR_PORT_INFO || p_smp->attr_id == IB_MAD_ATTR_MCAST_FWD_TBL ||@@ -734,6 +769,8 @@ static void sm_mad_ctrl_send_err_cb(IN void *context, IN osm_madw_t * p_madw) p_ctrl->p_subn->subnet_initialization_error = TRUE; } +osm_dump_dr_smp (p_ctrl->p_log, p_smp,OSM_LOG_VERBOSE ); +/* Since we did not get any response we suspect the DR path used for the target port. @@ -764,10 +801,6 @@ static void sm_mad_ctrl_send_err_cb(IN void *context, IN osm_madw_t * p_madw)An error occurred. No response was received to a request MAD. Retire the original request MAD. */ - -osm_dump_dr_smp (p_ctrl->p_log,osm_madw_get_smp_ptr (p_madw), -OSM_LOG_ERROR ); -sm_mad_ctrl_update_wire_stats (p_ctrl);
Quoted 2 lines
opensm/opensm/osm_sm_mad_ctrl.c static void sm_mad_ctrl_send_err_cb(IN void *context, IN osm_madw_t * p_madw) · line 806
Quoted 2 lines
opensm/opensm/osm_sm_mad_ctrl.c +0
-0if (osm_madw_get_err_msg (p_madw) !=CL_DISP_MSGID_NONE ) {
--
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