Thanks, Seb.

On Mon, 28 Sep 2009, Sebastien Roy wrote:

> On Fri, 2009-09-18 at 12:29 -0700, Kais Belgaied wrote:
>> Background
>> ==========
>>
>> Project Crossbow (PSARC/2006/357) enables creating hardware-based MAC
>> clients (some of these MAC clients are data links such as VNICs) both on
>> the RX and TX side. We define hardware-based MAC clients as having dedicated
>> hardware resources; a RX hardware-based MAC client will have one or more RX
>> ring for exclusive use while a TX hardware-based MAC client will have one or
>> more TX ring for exclusive use.  MAC clients that are not hardware-based
>> (RX or TX) share hardware resources with other MAC clients, such MAC
>> clients will not have any TX or RX rings exclusively reserved for them.
>> MAC clients may be hardware-based on RX, but not on TX (and vice-versa).
>
> To me, that last sentence is essentially saying, "MAC clients may not be
> hardware-based on both RX and TX".  Is that what you meant?

No. It was just to note that it *need* not be h/w on both. How about
"MAC clients could be hardware based on either TX, RX, both or neither"
or some such.

> If so, can you simply say that instead?  Also, why?
>
>> Proposal
>> ========
>>
>> This proposal gives administrative control over whether a MAC client
>> should be hardware-based or not (RX and TX) and also allows them to
>> specify the number of RX or TX rings that a MAC client needs, if it is
>> hardware-based.
>>
>> We introduce two properties for a link:
>>
>>     rxringcnt: The number of RX rings needed.
>>     txringcnt: The number of TX rings needed.
>>
>> The values for these properties could be:
>>
>>     0     : This link must not assigned any hardware rings of the
>>             specified type.
>>
>>     x > 0 : This link needs x rings.
>>
>> If the property is not specified for a link, the system will attempt
>> to maxmize the hardware resource utilization by making this MAC client
>> hardware-based depending on rings availability.
>
> This is slightly ambiguous to me.  Does that mean that if I neglect to
> override the default, that the first MAC client gets all of the hardware
> resources while subsequent clients get none?


That's not the case. Today, when we create a VNIC and don't specify the
-H option we try to give it one ring (assuming we have free rings).
That won't change, if we don't specify rxringcnt then we will try to
give the new MAC client 1 ring and make it hardware based. We do
this till there are free rings available. When there aren't any
free rings, MAC clients that don't specify this property will be
software based.

> I would think that unless
i otherwise specified, a sensible default behavior would result in evenly
> distributing resources among clients.
>
>> dladm show-phys will be modified to display the ring information on TX and
>> RX.
>>
>> e.g:
>>     # dladm show-phys -H nxge0
>>     LINK         RINGTYPE RINGS                CLIENTS
>>     nxge0        RX       0                    <mcast>
>>     nxge0        TX       0,5                  vnic1
>>     nxge0        RX       1-3                  vnic1
>>
>> which means vnic1 has exclusive use of 3 RX rings and 5 TX rings.
>
> I would interpret the above as "vnic1 has transmit rings 0 and
> 5" (because of the comma), and "vnic1 has receive rings 1, 2, and
> 3" (because of the hyphen).  Am I reading that right?

yes.

>
> How do I view the total number of hardware resources available on nxge0?

the read-only rings property (rxringavailcnt, txringavailcnt) we are
introducing is for that purpose.

let me know if I missed answering any of your questions.

thanks!

-venu

> The above three lines only seem to show me what the clients are using.
>
> -Seb
>
>
>

Reply via email to