[openib-general] {PATCH] OpenSM: Add option for force SDR link speed
Yevgeny Kliteynik
kliteyn at dev.mellanox.co.il
Thu Nov 2 05:44:24 PST 2006
Looks good, thanks.
-- Yevgeny
Hal Rosenstock wrote:
> OpenSM: Add option for force SDR link speed
>
> Add option to opensm.opts to force link speed. Currently, only forcing
> to SDR link speed is supported.
>
> Signed-off-by: Hal Rosenstock <halr at voltaire.com>
>
> Index: include/opensm/osm_subnet.h
> ===================================================================
> --- include/opensm/osm_subnet.h (revision 10010)
> +++ include/opensm/osm_subnet.h (working copy)
> @@ -34,7 +34,6 @@
> * $Id$
> */
>
> -
> /*
> * Abstract:
> * Declaration of osm_subn_t.
> @@ -238,9 +237,10 @@ typedef struct _osm_subn_opt
> uint8_t sm_priority;
> uint8_t lmc;
> boolean_t lmc_esp0;
> - uint8_t max_op_vls;
> + uint8_t max_op_vls;
> + uint8_t force_link_speed;
> boolean_t reassign_lids;
> - boolean_t reassign_lfts;
> + boolean_t reassign_lfts;
> boolean_t ignore_other_sm;
> boolean_t single_thread;
> boolean_t no_multicast_option;
> Index: opensm/osm_subnet.c
> ===================================================================
> --- opensm/osm_subnet.c (revision 10018)
> +++ opensm/osm_subnet.c (working copy)
> @@ -452,6 +452,7 @@ osm_subn_set_default_opt(
> p_opt->lmc = OSM_DEFAULT_LMC;
> p_opt->lmc_esp0 = FALSE;
> p_opt->max_op_vls = OSM_DEFAULT_MAX_OP_VLS;
> + p_opt->force_link_speed = 0;
> p_opt->reassign_lids = FALSE;
> p_opt->reassign_lfts = TRUE;
> p_opt->ignore_other_sm = FALSE;
> @@ -840,6 +841,10 @@ osm_subn_parse_conf_file(
> "max_op_vls",
> p_key, p_val, &p_opts->max_op_vls);
>
> + __osm_subn_opts_unpack_uint8(
> + "force_link_speed",
> + p_key, p_val, &p_opts->force_link_speed);
> +
> __osm_subn_opts_unpack_boolean(
> "reassign_lids",
> p_key, p_val, &p_opts->reassign_lids);
> @@ -1061,6 +1066,9 @@ osm_subn_write_conf_file(
> "leaf_head_of_queue_lifetime 0x%02x\n\n"
> "# Limit the maximal operational VLs\n"
> "max_op_vls %u\n\n"
> + "# Force switch links which are more than SDR capable to \n"
> + "# operate at SDR speed\n\n"
> + "force_link_speed %u\n\n"
> "# The subnet_timeout code that will be set for all the ports\n"
> "# The actual timeout is 4.096usec * 2^<subnet_timeout>\n"
> "subnet_timeout %u\n\n"
> @@ -1081,6 +1089,7 @@ osm_subn_write_conf_file(
> p_opts->head_of_queue_lifetime,
> p_opts->leaf_head_of_queue_lifetime,
> p_opts->max_op_vls,
> + p_opts->force_link_speed,
> p_opts->subnet_timeout,
> p_opts->local_phy_errors_threshold,
> p_opts->overrun_errors_threshold
> Index: opensm/osm_lid_mgr.c
> ===================================================================
> --- opensm/osm_lid_mgr.c (revision 10010)
> +++ opensm/osm_lid_mgr.c (working copy)
> @@ -1152,6 +1152,14 @@ __osm_lid_mgr_set_physp_pi(
> sizeof(p_pi->link_width_enabled) ))
> send_set = TRUE;
>
> + if ( p_mgr->p_subn->opt.force_link_speed )
> + ib_port_info_set_link_speed_enabled( p_pi, IB_LINK_SPEED_ACTIVE_2_5 );
> + else
> + ib_port_info_set_link_speed_enabled( p_pi, ib_port_info_get_link_speed_enabled(p_old_pi) );
> + if (memcmp( &p_pi->link_speed, &p_old_pi->link_speed,
> + sizeof(p_pi->link_speed) ))
> + send_set = TRUE;
> +
> /* M_KeyProtectBits are always zero */
> p_pi->mkey_lmc = p_mgr->p_subn->opt.lmc;
> /* Check to see if the value we are setting is different than
> Index: opensm/osm_link_mgr.c
> ===================================================================
> --- opensm/osm_link_mgr.c (revision 10010)
> +++ opensm/osm_link_mgr.c (working copy)
> @@ -310,6 +310,14 @@ __osm_link_mgr_set_physp_pi(
> sizeof(p_pi->link_width_enabled) ))
> send_set = TRUE;
>
> + if ( p_mgr->p_subn->opt.force_link_speed )
> + ib_port_info_set_link_speed_enabled( p_pi, IB_LINK_SPEED_ACTIVE_2_5 );
> + else
> + ib_port_info_set_link_speed_enabled( p_pi, ib_port_info_get_link_speed_enabled(p_old_pi) );
> + if (memcmp( &p_pi->link_speed, &p_old_pi->link_speed,
> + sizeof(p_pi->link_speed) ))
> + send_set = TRUE;
> +
> /* calc new op_vls and mtu */
> op_vls =
> osm_physp_calc_link_op_vls( p_mgr->p_log, p_mgr->p_subn, p_physp );
>
>
>
>
>
> _______________________________________________
> openib-general mailing list
> openib-general at openib.org
> http://openib.org/mailman/listinfo/openib-general
>
> To unsubscribe, please visit http://openib.org/mailman/listinfo/openib-general
>
More information about the general
mailing list