Skip to contentSkip to conversation

Add cleanup of SA cache after handover

PATCH New Hal Rosenstock 1 participant 1 message Jun 3, 2015 InfiniBand

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 Add cleanup of SA cache after handover

From: Alex Netes <alexne-VPRAkNaXOzVWk0Htik3J/[email protected]>
Date: Sun, 19 Aug 2012 18:39:44 +0300

Previously, when SM becomes STANDBY after being MASTER, it preserved the SA cache. When the SM will become MASTER again, it's SA cache might be inconsistent. The solution is to clean the SA cache each time that the SM becomes STANDBY after a handover.

Also, enhance drop_event_subscriptions option for ServiceRecords

drop_event_subscriptions is supposed to be just drop SA event subscriptions (InformInfos). AGUID and MC subscriptions are always dropped
as client reregister mechanism works there.

As we are aware of potential issues with ServiceRecords (not being reregistered), dropping of those is also controlled by this option.

---

include/opensm/osm_port.h +56 -0
index 206c4a9..da06d31 100644
@@ -1611,5 +1611,61 @@ void osm_alias_guid_delete(IN OUT osm_alias_guid_t ** pp_alias_guid);
 *	Port
 *********/
 
+/****f* OpenSM: Port/osm_alias_guid_get_alias_guid
+* NAME
+*	osm_alias_guid_get_alias_guid
+*
+* DESCRIPTION
+*	This function retrieves alias guid from alias guid object.
+*
+* SYNOPSIS
+*/
+static inline ib_net64_t osm_alias_guid_get_alias_guid(IN osm_alias_guid_t *p_alias_guid)
+{
+	CL_ASSERT(p_alias_guid);
+	return p_alias_guid->alias_guid;
+}
+/*
+* PARAMETERS
+*	p_alias_guid
+*		[in] Pointer to a pointer to an alias guid object.
+*
+* RETURN VALUE
+*	This function returns the alias guid or NULL if fails.
+*
+* NOTES
+*
+* SEE ALSO
+*	Port
+*********/
+
+/****f* OpenSM: Port/osm_alias_guid_get_base_guid
+* NAME
+*	osm_alias_guid_get_base_guid
+*
+* DESCRIPTION
+*	This function retrieves base guid from alias guid object.
+*
+* SYNOPSIS
+*/
+static inline ib_net64_t osm_alias_guid_get_base_guid(IN osm_alias_guid_t *p_alias_guid)
+{
+	CL_ASSERT(p_alias_guid);
+	return osm_port_get_guid(p_alias_guid->p_base_port);
+}
+/*
+* PARAMETERS
+*	p_alias_guid
+*		[in] Pointer to a pointer to an alias guid object.
+*
+* RETURN VALUE
+*	This function returns the base guid or NULL if fails.
+*
+* NOTES
+*
+* SEE ALSO
+*	Port
+*********/
+
 END_C_DECLS
 #endif				/* _OSM_PORT_H_ */
opensm/osm_state_mgr.c +108 -0

132 lines not on this page · raw message

opensm/osm_subnet.c +1 -1
index 26038c3..457772f 100644
@@ -2613,7 +2613,7 @@ void osm_subn_output_conf(FILE *out, IN osm_subn_opt_t * p_opts)
 		"sm_inactive %s\n\n"
 		"# Babbling Port Policy\n"
 		"babbling_port_policy %s\n\n"
-		"# Drop event subscriptions (InformInfo) if the port goes away\n"
+		"# Drop event subscriptions (InformInfo and ServiceRecord) on port removal and SM coming out of STANDBY\n"
 		"drop_event_subscriptions %s\n\n"
 		"# Use Optimized SLtoVLMapping programming if supported by device\n"
 		"use_optimized_slvl %s\n\n"

--
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