* [PATCHv2] opensm/osm_qos.c: Eliminate unneeded endport SL to VL setup
@ 2010-01-25 20:22 Hal Rosenstock
[not found] ` <20100125202247.GA9197-Wuw85uim5zDR7s880joybQ@public.gmane.org>
0 siblings, 1 reply; 5+ messages in thread
From: Hal Rosenstock @ 2010-01-25 20:22 UTC (permalink / raw)
To: sashak-smomgflXvOZWk0Htik3J/w; +Cc: linux-rdma-u79uwXL29TY76Z2rM5mHXA
when using optimized programming and it's supported by the switch
Signed-off-by: Hal Rosenstock <hal.rosenstock-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
---
Changes since v1:
Add in update of vlarb tables for port 0 when optimized but no SL to VL
tables needed to be configured on that port
diff --git a/opensm/opensm/osm_qos.c b/opensm/opensm/osm_qos.c
index f814ea8..218e128 100644
--- a/opensm/opensm/osm_qos.c
+++ b/opensm/opensm/osm_qos.c
@@ -243,13 +243,15 @@ static int qos_extports_setup(osm_sm_t * sm, osm_node_t *node,
}
static int qos_endport_setup(osm_sm_t * sm, osm_physp_t * p,
- const struct qos_config *qcfg)
+ const struct qos_config *qcfg, int vlarb_only)
{
unsigned force_update = p->need_update || sm->p_subn->need_update;
p->vl_high_limit = qcfg->vl_high_limit;
if (vlarb_update(sm, p, 0, force_update, qcfg))
return -1;
+ if (vlarb_only)
+ return 0;
if (!(p->port_info.capability_mask & IB_PORT_CAP_HAS_SL_MAP))
return 0;
@@ -269,6 +271,7 @@ int osm_qos_setup(osm_opensm_t * p_osm)
osm_port_t *p_port;
osm_node_t *p_node;
int ret = 0;
+ int vlarb_only;
if (!p_osm->subn.opt.qos)
return 0;
@@ -292,6 +295,7 @@ int osm_qos_setup(osm_opensm_t * p_osm)
p_tbl = &p_osm->subn.port_guid_tbl;
p_next = cl_qmap_head(p_tbl);
while (p_next != cl_qmap_end(p_tbl)) {
+ vlarb_only = 0;
p_port = (osm_port_t *) p_next;
p_next = cl_qmap_next(p_next);
@@ -305,13 +309,20 @@ int osm_qos_setup(osm_opensm_t * p_osm)
(&p_node->sw->switch_info))
continue;
+ if (ib_switch_info_get_opt_sl2vlmapping(&p_node->sw->switch_info) &&
+ p_osm->sm.p_subn->opt.use_optimized_slvl &&
+ !memcmp(&swe_config.sl2vl, &sw0_config.sl2vl,
+ sizeof(swe_config.sl2vl)))
+ vlarb_only = 1;
+
cfg = &sw0_config;
} else if (osm_node_get_type(p_node) == IB_NODE_TYPE_ROUTER)
cfg = &rtr_config;
else
cfg = &ca_config;
- if (qos_endport_setup(&p_osm->sm, p_port->p_physp, cfg))
+ if (qos_endport_setup(&p_osm->sm, p_port->p_physp, cfg,
+ vlarb_only))
ret = -1;
}
--
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
^ permalink raw reply related [flat|nested] 5+ messages in thread
* Re: [PATCHv2] opensm/osm_qos.c: Eliminate unneeded endport SL to VL setup
[not found] ` <20100125202247.GA9197-Wuw85uim5zDR7s880joybQ@public.gmane.org>
@ 2010-01-26 13:26 ` Sasha Khapyorsky
2010-01-26 13:30 ` Hal Rosenstock
0 siblings, 1 reply; 5+ messages in thread
From: Sasha Khapyorsky @ 2010-01-26 13:26 UTC (permalink / raw)
To: Hal Rosenstock; +Cc: linux-rdma-u79uwXL29TY76Z2rM5mHXA
On 15:22 Mon 25 Jan , Hal Rosenstock wrote:
>
> when using optimized programming and it's supported by the switch
>
> Signed-off-by: Hal Rosenstock <hal.rosenstock-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
> ---
> Changes since v1:
> Add in update of vlarb tables for port 0 when optimized but no SL to VL
> tables needed to be configured on that port
>
> diff --git a/opensm/opensm/osm_qos.c b/opensm/opensm/osm_qos.c
> index f814ea8..218e128 100644
> --- a/opensm/opensm/osm_qos.c
> +++ b/opensm/opensm/osm_qos.c
> @@ -243,13 +243,15 @@ static int qos_extports_setup(osm_sm_t * sm, osm_node_t *node,
> }
>
> static int qos_endport_setup(osm_sm_t * sm, osm_physp_t * p,
> - const struct qos_config *qcfg)
> + const struct qos_config *qcfg, int vlarb_only)
> {
> unsigned force_update = p->need_update || sm->p_subn->need_update;
>
> p->vl_high_limit = qcfg->vl_high_limit;
> if (vlarb_update(sm, p, 0, force_update, qcfg))
> return -1;
> + if (vlarb_only)
> + return 0;
>
> if (!(p->port_info.capability_mask & IB_PORT_CAP_HAS_SL_MAP))
> return 0;
> @@ -269,6 +271,7 @@ int osm_qos_setup(osm_opensm_t * p_osm)
> osm_port_t *p_port;
> osm_node_t *p_node;
> int ret = 0;
> + int vlarb_only;
>
> if (!p_osm->subn.opt.qos)
> return 0;
> @@ -292,6 +295,7 @@ int osm_qos_setup(osm_opensm_t * p_osm)
> p_tbl = &p_osm->subn.port_guid_tbl;
> p_next = cl_qmap_head(p_tbl);
> while (p_next != cl_qmap_end(p_tbl)) {
> + vlarb_only = 0;
> p_port = (osm_port_t *) p_next;
> p_next = cl_qmap_next(p_next);
>
> @@ -305,13 +309,20 @@ int osm_qos_setup(osm_opensm_t * p_osm)
> (&p_node->sw->switch_info))
> continue;
>
> + if (ib_switch_info_get_opt_sl2vlmapping(&p_node->sw->switch_info) &&
> + p_osm->sm.p_subn->opt.use_optimized_slvl &&
> + !memcmp(&swe_config.sl2vl, &sw0_config.sl2vl,
> + sizeof(swe_config.sl2vl)))
> + vlarb_only = 1;
> +
qos_extports_setup() is running port setup loop (for both VLArb *and*
SL2VL) as:
for (i = 1; i < num_ports; i++) {
...
}
, starting from port '1'.
So you case will just effectively skip any SL2VL setup for port 0
(it was commented for V1 too).
Sasha
> cfg = &sw0_config;
> } else if (osm_node_get_type(p_node) == IB_NODE_TYPE_ROUTER)
> cfg = &rtr_config;
> else
> cfg = &ca_config;
>
> - if (qos_endport_setup(&p_osm->sm, p_port->p_physp, cfg))
> + if (qos_endport_setup(&p_osm->sm, p_port->p_physp, cfg,
> + vlarb_only))
> ret = -1;
> }
>
--
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
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCHv2] opensm/osm_qos.c: Eliminate unneeded endport SL to VL setup
2010-01-26 13:26 ` Sasha Khapyorsky
@ 2010-01-26 13:30 ` Hal Rosenstock
[not found] ` <f0e08f231001260530o6260986dice657109f4eea637-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
0 siblings, 1 reply; 5+ messages in thread
From: Hal Rosenstock @ 2010-01-26 13:30 UTC (permalink / raw)
To: Sasha Khapyorsky; +Cc: linux-rdma-u79uwXL29TY76Z2rM5mHXA
On Tue, Jan 26, 2010 at 8:26 AM, Sasha Khapyorsky <sashak-smomgflXvOZWk0Htik3J/w@public.gmane.org> wrote:
> On 15:22 Mon 25 Jan , Hal Rosenstock wrote:
>>
>> when using optimized programming and it's supported by the switch
>>
>> Signed-off-by: Hal Rosenstock <hal.rosenstock-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
>> ---
>> Changes since v1:
>> Add in update of vlarb tables for port 0 when optimized but no SL to VL
>> tables needed to be configured on that port
>>
>> diff --git a/opensm/opensm/osm_qos.c b/opensm/opensm/osm_qos.c
>> index f814ea8..218e128 100644
>> --- a/opensm/opensm/osm_qos.c
>> +++ b/opensm/opensm/osm_qos.c
>> @@ -243,13 +243,15 @@ static int qos_extports_setup(osm_sm_t * sm, osm_node_t *node,
>> }
>>
>> static int qos_endport_setup(osm_sm_t * sm, osm_physp_t * p,
>> - const struct qos_config *qcfg)
>> + const struct qos_config *qcfg, int vlarb_only)
>> {
>> unsigned force_update = p->need_update || sm->p_subn->need_update;
>>
>> p->vl_high_limit = qcfg->vl_high_limit;
>> if (vlarb_update(sm, p, 0, force_update, qcfg))
>> return -1;
>> + if (vlarb_only)
>> + return 0;
>>
>> if (!(p->port_info.capability_mask & IB_PORT_CAP_HAS_SL_MAP))
>> return 0;
>> @@ -269,6 +271,7 @@ int osm_qos_setup(osm_opensm_t * p_osm)
>> osm_port_t *p_port;
>> osm_node_t *p_node;
>> int ret = 0;
>> + int vlarb_only;
>>
>> if (!p_osm->subn.opt.qos)
>> return 0;
>> @@ -292,6 +295,7 @@ int osm_qos_setup(osm_opensm_t * p_osm)
>> p_tbl = &p_osm->subn.port_guid_tbl;
>> p_next = cl_qmap_head(p_tbl);
>> while (p_next != cl_qmap_end(p_tbl)) {
>> + vlarb_only = 0;
>> p_port = (osm_port_t *) p_next;
>> p_next = cl_qmap_next(p_next);
>>
>> @@ -305,13 +309,20 @@ int osm_qos_setup(osm_opensm_t * p_osm)
>> (&p_node->sw->switch_info))
>> continue;
>>
>> + if (ib_switch_info_get_opt_sl2vlmapping(&p_node->sw->switch_info) &&
>> + p_osm->sm.p_subn->opt.use_optimized_slvl &&
>> + !memcmp(&swe_config.sl2vl, &sw0_config.sl2vl,
>> + sizeof(swe_config.sl2vl)))
>> + vlarb_only = 1;
>> +
>
> qos_extports_setup() is running port setup loop (for both VLArb *and*
> SL2VL) as:
>
> for (i = 1; i < num_ports; i++) {
> ...
> }
>
> , starting from port '1'.
>
> So you case will just effectively skip any SL2VL setup for port 0
> (it was commented for V1 too).
This is intended. It's not needed since it's only doing this in the
wildcarded case and the wildcarding includes port 0.
-- Hal
>
> Sasha
>
>> cfg = &sw0_config;
>> } else if (osm_node_get_type(p_node) == IB_NODE_TYPE_ROUTER)
>> cfg = &rtr_config;
>> else
>> cfg = &ca_config;
>>
>> - if (qos_endport_setup(&p_osm->sm, p_port->p_physp, cfg))
>> + if (qos_endport_setup(&p_osm->sm, p_port->p_physp, cfg,
>> + vlarb_only))
>> ret = -1;
>> }
>>
> --
> 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
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCHv2] opensm/osm_qos.c: Eliminate unneeded endport SL to VL setup
[not found] ` <f0e08f231001260530o6260986dice657109f4eea637-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
@ 2010-06-14 13:09 ` Hal Rosenstock
[not found] ` <AANLkTilHxkXWzb-eEyWMLOtZXAnURNRvtw8-nZVL0OvW-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
0 siblings, 1 reply; 5+ messages in thread
From: Hal Rosenstock @ 2010-06-14 13:09 UTC (permalink / raw)
To: Sasha Khapyorsky; +Cc: linux-rdma-u79uwXL29TY76Z2rM5mHXA
Sasha,
On Tue, Jan 26, 2010 at 9:30 AM, Hal Rosenstock
<hal.rosenstock-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> wrote:
> On Tue, Jan 26, 2010 at 8:26 AM, Sasha Khapyorsky <sashak-smomgflXvObQFizaE/u3fw@public.gmane.orgm> wrote:
>> On 15:22 Mon 25 Jan , Hal Rosenstock wrote:
>>>
>>> when using optimized programming and it's supported by the switch
>>>
>>> Signed-off-by: Hal Rosenstock <hal.rosenstock-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
>>> ---
>>> Changes since v1:
>>> Add in update of vlarb tables for port 0 when optimized but no SL to VL
>>> tables needed to be configured on that port
>>>
>>> diff --git a/opensm/opensm/osm_qos.c b/opensm/opensm/osm_qos.c
>>> index f814ea8..218e128 100644
>>> --- a/opensm/opensm/osm_qos.c
>>> +++ b/opensm/opensm/osm_qos.c
>>> @@ -243,13 +243,15 @@ static int qos_extports_setup(osm_sm_t * sm, osm_node_t *node,
>>> }
>>>
>>> static int qos_endport_setup(osm_sm_t * sm, osm_physp_t * p,
>>> - const struct qos_config *qcfg)
>>> + const struct qos_config *qcfg, int vlarb_only)
>>> {
>>> unsigned force_update = p->need_update || sm->p_subn->need_update;
>>>
>>> p->vl_high_limit = qcfg->vl_high_limit;
>>> if (vlarb_update(sm, p, 0, force_update, qcfg))
>>> return -1;
>>> + if (vlarb_only)
>>> + return 0;
>>>
>>> if (!(p->port_info.capability_mask & IB_PORT_CAP_HAS_SL_MAP))
>>> return 0;
>>> @@ -269,6 +271,7 @@ int osm_qos_setup(osm_opensm_t * p_osm)
>>> osm_port_t *p_port;
>>> osm_node_t *p_node;
>>> int ret = 0;
>>> + int vlarb_only;
>>>
>>> if (!p_osm->subn.opt.qos)
>>> return 0;
>>> @@ -292,6 +295,7 @@ int osm_qos_setup(osm_opensm_t * p_osm)
>>> p_tbl = &p_osm->subn.port_guid_tbl;
>>> p_next = cl_qmap_head(p_tbl);
>>> while (p_next != cl_qmap_end(p_tbl)) {
>>> + vlarb_only = 0;
>>> p_port = (osm_port_t *) p_next;
>>> p_next = cl_qmap_next(p_next);
>>>
>>> @@ -305,13 +309,20 @@ int osm_qos_setup(osm_opensm_t * p_osm)
>>> (&p_node->sw->switch_info))
>>> continue;
>>>
>>> + if (ib_switch_info_get_opt_sl2vlmapping(&p_node->sw->switch_info) &&
>>> + p_osm->sm.p_subn->opt.use_optimized_slvl &&
>>> + !memcmp(&swe_config.sl2vl, &sw0_config.sl2vl,
>>> + sizeof(swe_config.sl2vl)))
>>> + vlarb_only = 1;
>>> +
>>
>> qos_extports_setup() is running port setup loop (for both VLArb *and*
>> SL2VL) as:
>>
>> for (i = 1; i < num_ports; i++) {
>> ...
>> }
>>
>> , starting from port '1'.
>>
>> So you case will just effectively skip any SL2VL setup for port 0
>> (it was commented for V1 too).
>
> This is intended. It's not needed since it's only doing this in the
> wildcarded case and the wildcarding includes port 0.
Any reason not to move ahead on this ? Thanks.
-- Hal
> -- Hal
>
>>
>> Sasha
>>
>>> cfg = &sw0_config;
>>> } else if (osm_node_get_type(p_node) == IB_NODE_TYPE_ROUTER)
>>> cfg = &rtr_config;
>>> else
>>> cfg = &ca_config;
>>>
>>> - if (qos_endport_setup(&p_osm->sm, p_port->p_physp, cfg))
>>> + if (qos_endport_setup(&p_osm->sm, p_port->p_physp, cfg,
>>> + vlarb_only))
>>> ret = -1;
>>> }
>>>
>> --
>> 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
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCHv2] opensm/osm_qos.c: Eliminate unneeded endport SL to VL setup
[not found] ` <AANLkTilHxkXWzb-eEyWMLOtZXAnURNRvtw8-nZVL0OvW-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
@ 2010-06-17 14:41 ` Sasha Khapyorsky
0 siblings, 0 replies; 5+ messages in thread
From: Sasha Khapyorsky @ 2010-06-17 14:41 UTC (permalink / raw)
To: Hal Rosenstock; +Cc: linux-rdma-u79uwXL29TY76Z2rM5mHXA
On 09:09 Mon 14 Jun , Hal Rosenstock wrote:
> >
> > This is intended. It's not needed since it's only doing this in the
> > wildcarded case and the wildcarding includes port 0.
>
> Any reason not to move ahead on this ? Thanks.
No reason. Applied. Thanks.
Sasha
--
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
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2010-06-17 14:41 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2010-01-25 20:22 [PATCHv2] opensm/osm_qos.c: Eliminate unneeded endport SL to VL setup Hal Rosenstock
[not found] ` <20100125202247.GA9197-Wuw85uim5zDR7s880joybQ@public.gmane.org>
2010-01-26 13:26 ` Sasha Khapyorsky
2010-01-26 13:30 ` Hal Rosenstock
[not found] ` <f0e08f231001260530o6260986dice657109f4eea637-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2010-06-14 13:09 ` Hal Rosenstock
[not found] ` <AANLkTilHxkXWzb-eEyWMLOtZXAnURNRvtw8-nZVL0OvW-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2010-06-17 14:41 ` Sasha Khapyorsky
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox