All of lore.kernel.org
 help / color / mirror / Atom feed
From: Sasha Khapyorsky <sashak-smomgflXvOZWk0Htik3J/w@public.gmane.org>
To: Yevgeny Kliteynik
	<kliteyn-LDSdmyG8hGV8YrgS2mwiifqBs+8SCbDb@public.gmane.org>
Cc: Linux RDMA <linux-rdma-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>
Subject: Re: [PATCH v3] opensm/osmeventplugin: added new events to monitor SM
Date: Thu, 17 Jun 2010 17:18:02 +0300	[thread overview]
Message-ID: <20100617141802.GH20172@me> (raw)
In-Reply-To: <4C10CF60.8060904-LDSdmyG8hGV8YrgS2mwiifqBs+8SCbDb@public.gmane.org>

On 14:41 Thu 10 Jun     , Yevgeny Kliteynik wrote:
> Hi Sasha,
> 
> Adding new events that allow event plug-in to see
> when SM finishes heavy sweep and routing configuration,
> when it updates dump files, when it is no longer master,
> and when SM port is down:
> 
>   OSM_EVENT_ID_HEAVY_SWEEP_DONE
>   OSM_EVENT_ID_UCAST_ROUTING_DONE

What is wrong with using Subnet Up event for those purposes?

>   OSM_EVENT_ID_ENTERING_STANDBY
>   OSM_EVENT_ID_SM_PORT_DOWN

Instead I would suggest to make "state change" event.

>   OSM_EVENT_ID_SA_DB_DUMPED

Again, "Subnet Up" indicates that all sweep stuff is done (including
dump files).

> 
> The last event is reported when SA DB is actually dumped.
> 
> Signed-off-by: Yevgeny Kliteynik <kliteyn-LDSdmyG8hGV8YrgS2mwiifqBs+8SCbDb@public.gmane.org>
> ---
> 
> Changes from V2:
>   - reduced number of events that are reported
>   - rebased to latest master
> 
> ---
>  opensm/include/opensm/osm_event_plugin.h   |    7 ++++++-
>  opensm/opensm/osm_state_mgr.c              |   16 +++++++++++++++-
>  opensm/osmeventplugin/src/osmeventplugin.c |   15 +++++++++++++++
>  3 files changed, 36 insertions(+), 2 deletions(-)
> 
> diff --git a/opensm/include/opensm/osm_event_plugin.h b/opensm/include/opensm/osm_event_plugin.h
> index 33d1920..a565123 100644
> --- a/opensm/include/opensm/osm_event_plugin.h
> +++ b/opensm/include/opensm/osm_event_plugin.h
> @@ -72,7 +72,12 @@ typedef enum {
>  	OSM_EVENT_ID_PORT_SELECT,
>  	OSM_EVENT_ID_TRAP,
>  	OSM_EVENT_ID_SUBNET_UP,
> -	OSM_EVENT_ID_MAX
> +	OSM_EVENT_ID_MAX,

Likely you wanted to move OSM_EVENT_ID_MAX to be last in the list.

Sasha

> +	OSM_EVENT_ID_HEAVY_SWEEP_DONE,
> +	OSM_EVENT_ID_UCAST_ROUTING_DONE,
> +	OSM_EVENT_ID_ENTERING_STANDBY,
> +	OSM_EVENT_ID_SM_PORT_DOWN,
> +	OSM_EVENT_ID_SA_DB_DUMPED
>  } osm_epi_event_id_t;
> 
>  typedef struct osm_epi_port_id {
> diff --git a/opensm/opensm/osm_state_mgr.c b/opensm/opensm/osm_state_mgr.c
> index 81c8f54..3231ae9 100644
> --- a/opensm/opensm/osm_state_mgr.c
> +++ b/opensm/opensm/osm_state_mgr.c
> @@ -1151,6 +1151,8 @@ static void do_sweep(osm_sm_t * sm)
>  		if (!sm->p_subn->subnet_initialization_error) {
>  			OSM_LOG_MSG_BOX(sm->p_log, OSM_LOG_VERBOSE,
>  					"REROUTE COMPLETE");
> +			osm_opensm_report_event(sm->p_subn->p_osm,
> +				OSM_EVENT_ID_UCAST_ROUTING_DONE, NULL);
>  			return;
>  		}
>  	}
> @@ -1185,6 +1187,8 @@ repeat_discovery:
> 
>  		/* Move to DISCOVERING state */
>  		osm_sm_state_mgr_process(sm, OSM_SM_SIGNAL_DISCOVER);
> +		osm_opensm_report_event(sm->p_subn->p_osm,
> +				OSM_EVENT_ID_SM_PORT_DOWN, NULL);
>  		return;
>  	}
> 
> @@ -1205,6 +1209,8 @@ repeat_discovery:
>  				"ENTERING STANDBY STATE");
>  		/* notify master SM about us */
>  		osm_send_trap144(sm, 0);
> +		osm_opensm_report_event(sm->p_subn->p_osm,
> +				OSM_EVENT_ID_ENTERING_STANDBY, NULL);
>  		return;
>  	}
> 
> @@ -1212,6 +1218,9 @@ repeat_discovery:
>  	if (sm->p_subn->force_heavy_sweep)
>  		goto repeat_discovery;
> 
> +	osm_opensm_report_event(sm->p_subn->p_osm,
> +				OSM_EVENT_ID_HEAVY_SWEEP_DONE, NULL);
> +
>  	OSM_LOG_MSG_BOX(sm->p_log, OSM_LOG_VERBOSE, "HEAVY SWEEP COMPLETE");
> 
>  	/* If we are MASTER - get the highest remote_sm, and
> @@ -1314,6 +1323,8 @@ repeat_discovery:
> 
>  	OSM_LOG_MSG_BOX(sm->p_log, OSM_LOG_VERBOSE,
>  			"SWITCHES CONFIGURED FOR UNICAST");
> +	osm_opensm_report_event(sm->p_subn->p_osm,
> +			OSM_EVENT_ID_UCAST_ROUTING_DONE, NULL);
> 
>  	if (!sm->p_subn->opt.disable_multicast) {
>  		osm_mcast_mgr_process(sm);
> @@ -1375,7 +1386,10 @@ repeat_discovery:
> 
>  		if (osm_log_is_active(sm->p_log, OSM_LOG_VERBOSE) ||
>  		    sm->p_subn->opt.sa_db_dump)
> -			osm_sa_db_file_dump(sm->p_subn->p_osm);
> +			if (!osm_sa_db_file_dump(sm->p_subn->p_osm))
> +				osm_opensm_report_event(sm->p_subn->p_osm,
> +					OSM_EVENT_ID_SA_DB_DUMPED, NULL);
> +
>  	}
> 
>  	/*
> diff --git a/opensm/osmeventplugin/src/osmeventplugin.c b/opensm/osmeventplugin/src/osmeventplugin.c
> index b4d9ce9..af68a5c 100644
> --- a/opensm/osmeventplugin/src/osmeventplugin.c
> +++ b/opensm/osmeventplugin/src/osmeventplugin.c
> @@ -176,6 +176,21 @@ static void report(void *_log, osm_epi_event_id_t event_id, void *event_data)
>  	case OSM_EVENT_ID_SUBNET_UP:
>  		fprintf(log->log_file, "Subnet up reported\n");
>  		break;
> +	case OSM_EVENT_ID_HEAVY_SWEEP_DONE:
> +		fprintf(log->log_file, "Heavy sweep completed\n");
> +		break;
> +	case OSM_EVENT_ID_UCAST_ROUTING_DONE:
> +		fprintf(log->log_file, "Unicast routing completed\n");
> +		break;
> +	case OSM_EVENT_ID_ENTERING_STANDBY:
> +		fprintf(log->log_file, "Entering stand-by state\n");
> +		break;
> +	case OSM_EVENT_ID_SM_PORT_DOWN:
> +		fprintf(log->log_file, "SM port is down\n");
> +		break;
> +	case OSM_EVENT_ID_SA_DB_DUMPED:
> +		fprintf(log->log_file, "SA DB dump file updated\n");
> +		break;
>  	case OSM_EVENT_ID_MAX:
>  	default:
>  		osm_log(log->osmlog, OSM_LOG_ERROR,
> -- 
> 1.5.1.4
> 
> 
> --
> To unsubscribe from this list: send the line "unsubscribe linux-rdma" in
> the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
> 
--
To unsubscribe from this list: send the line "unsubscribe linux-rdma" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

  parent reply	other threads:[~2010-06-17 14:18 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-06-10 11:41 [PATCH v3] opensm/osmeventplugin: added new events to monitor SM Yevgeny Kliteynik
     [not found] ` <4C10CF60.8060904-LDSdmyG8hGV8YrgS2mwiifqBs+8SCbDb@public.gmane.org>
2010-06-17 14:18   ` Sasha Khapyorsky [this message]
2010-06-17 14:51     ` Yevgeny Kliteynik

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20100617141802.GH20172@me \
    --to=sashak-smomgflxvozwk0htik3j/w@public.gmane.org \
    --cc=kliteyn-LDSdmyG8hGV8YrgS2mwiifqBs+8SCbDb@public.gmane.org \
    --cc=linux-rdma-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.