[ofa-general] OpenSM QoS Query

Hal Rosenstock hal.rosenstock at gmail.com
Thu Aug 7 11:54:43 PDT 2008


On Thu, Aug 7, 2008 at 12:31 PM, Amar Mudrankit
<amar.mudrankit at gmail.com> wrote:
> Considering the following QoS configuration for OpenSM running over OFED-1.3.1
>
>
>  /var/cache/opensm/opensm.opts
>
> # QoS default options
> qos_max_vls 8
> qos_high_limit 8
> qos_vlarb_high 1:1,2:1
> qos_vlarb_low 1:1
> qos_sl2vl 0,1,2,3,4,5,6,7,15,15,15,15,15,15,15,15
>
>
> /etc/opensm/qos-policy.conf
>
> qos-ulps
>
>           default    :  0
>           ipoib      :   1
>           srp, target-port-guid <some-valid-port-guid>  : 2
>
> end-qos-ulps
>
> IPoIB running in connected mode with MTU of 65520 bytes.
>
> In this scenario, do we expect SRP to starve and will not get an
> opportunity to send data?
>
> This is because, if the packet size of IPoIB data is 64K, the Limit of
> High Priority(8 * 4KB) will be eaten up by IPoIB itself so that next
> active table would be low priority VL arbitration table. In the low
> priority VL arbitration table also, we have configured IPoIB, which
> will send IPoIB data. Eventually when high priority table will become
> active again, 64K ipoib data will be sent. This will not ever schedule
> service level 2 (of that of SRP). Is this understanding correct?
>
> or
>
> When the second time High priority VL arbitration table becomes
> active, the current pointer will be pointing to service level 2 in
                                                                   ^^^^^^^^^^^^^
                                                                          VL
> high priority table and SRP data can flow? I am not sure if this
> second possibility is valid.

The arbitration is supposed to be "fair weighted". See 7.6.9.2.4
ARBITRATION RULES WITHIN THE HIGH AND LOW COMPONENTS IBA 1.2.1 vol 1
p, 194-5 for more details. It states:
"Within each High or Low Priority table, weighted fair arbitration is used,
with the order of entries in each table specifying the order of VL scheduling,
and the weighting value specifying the amount of bandwidth allocated
to that entry. Each entry in the table is processed in order.
A separate pointer and available weight count is maintained for each of
the two tables. The pointers identify the current entry in the table, while the
available weight count indicates the amount of weight that the current
entry has available for data packet transmission"

and:
"Further, implementations are not required to implement the pointers,
available weight counter and HighPriCounter. They must, however, behave
in a manner equivalent to that described in this section."

So FWIW I think the right answer is 2.

BTW, this is an arbiter question. The SM merely sets up the relevant tables.

-- Hal

>
> Thanks and Regards,
> Amar
> _______________________________________________
> general mailing list
> general at lists.openfabrics.org
> http://lists.openfabrics.org/cgi-bin/mailman/listinfo/general
>
> To unsubscribe, please visit http://openib.org/mailman/listinfo/openib-general
>



More information about the general mailing list