Yunsong (Roamer) Lu wrote:

>Thank you for the comments!
>
>  
>
>>1)
>>This documents describes polling single ring.
>>Can you poll group of rings, if they all share common interrupt number?
>>    
>>
>Polling can only happen on single ring, regardless sharing interrupt or 
>not. Practically, if a shared group interrupt is used, to poll a ring 
>group is just to poll all single rings separately.
>  
>
I recall, some conversations whether rings belonging to same
group have same interrupt number so that blanking that shared
interrupt, can emulate polling of a group.
My original question also, said that can you mask it in a framework,
such as even if individual rings generate different interrupts, it can
be delivered as some common virtual interrupt to upper layer,
so polling  on ring-group could work.
cause, if drive rimplementation doesn't support it, can we implement
it in mac framework?

>  
>
>>mrg_intr is described to be "nice to have" per group based common
>>interrupt number, Is it driver dependent? or the mac framework
>>can have virtual interrupt that masks individual interrupts of each
>>individual ring of given group?
>>    
>>
>Driver need to make the decision
>
so you mean it is NIC/hardware limited factor
or driver implementation specific?

> whether to enable per-group interrupt 
>if there are no enough interrupts for all rings,
>
so, the interrupts may be limited in number.
In that case sharing same interrupt among multiple rings
of the group should help, isn't it?

> because this depends on 
>how the hardware and driver organize interrupt sources.
>
>  
>
I guess, driver should have ability to program interrupt vector
and assigning interrupts, I may be missing something?

>>2)
>>If any hardware/network driver does not have ring support,
>>can crossbow for such drivers emulate channel/Fifo/ring behavior in 
>>software?
>>    
>>
>The term "Ring" is used to describe a software data structure that is 
>mapped to hardware traffic channel, receive or transmit, 
>
I understand that.

>so any NIC has 
>at least 1 receive "ring" and 1 transmit "ring".
>  
>
yeah.

>>Does SRS would serve that purpose?
>>    
>>
>SRS is on top of hardware ring.
>
>  
>
In the absence of multiple RX/TX rings support in hardware,
does crossbow emulate RX/TX multiple rings/groups behavior?
or are there plans to extend it in future phases?
can SRS (softt ring Set) help us to achieve that in future?

>>3)
>>I see there is mac_rx_ring_info_t and mac_rx_ring_group_info_t.
>>how about if you have common structures for rx and tx side for info?
>>Instead of having  mac_rx_ring_info_t and mac_rx_ring_group_info_t
>>would it make sense to have mac_ring_info_t and mac_ring_group_info_t
>>to be usable for rx and tx side rings or ring-groups.?
>>
>>e.g. To implement above you can have mac_cb function pointer
>>in mac_ring_info_t , and say -
>>1) for rx side  "mac_cb" can be initialized as "mr_poll" and
>>2) on Tx side "mac_cb" can be initialized as "mr_send"
>>since mr_driver, mr_intr, mr_start, mr_stop are members of
>>mac_rx_ring_info_t as well as mac_tx_ring_info_t and it's just that
>>mr_poll and mr_send routines are different for rx and tx side ring_info
>>respectively.
>>    
>>
>(*mr_poll)() and (*mr_send)() have different prototypes, and they could 
>evolve in the future. More functions are possibly to be added to either 
>data structure.
>
>The two different data structures, mac_rx_ring_info_t and 
>mac_tx_ring_info_t, are used to simplify the interface.
>
They have 4 out of 5 redundant members.

> But if we can 
>make sure the two data structures are just slightly different, we may 
>consider to combine them.
>
>  
>
aren't they just slightly different in just one structure member
i.e. mr_poll and mr_send?

>You may have seen that the transmit ring group and receive ring group 
>perform very different, so the mac_rx_ring_group_info_t should be very 
>different from mac_tx_ring_group_info_t. So we'd better to keep them 
>separately.
>  
>
ok.

>In the MAC framework, we're using common data structures, 
>mac_ring_t/mac_ring_group_t, to simplify the resource management logic.
>
>  
>
yeah, I see that and also mac_capab_ring_t is used on TX as well as
RX side, that's I wondered why there is seaparate

mac_rx_ring_info_t and mac_tx_ring_info_t and why not just mac_ring_info_t
with a member mac_cb that can hold mac_poll for rx side rings and mac_send 
for TX side ring.

>>4)
>>AFAI understand these hardware resource capabilities can help do
>>load balancing/packet classification , how it can help virtualization?
>>    
>>
>The ring grouping isolate VNICs from hardware layer, and the 
>virtualization is done at layer 2 instead of L3/L4. 
>

Having user-prgrammed Rx rings(/flows) with L3/L4 classifications
on top of VNIC/NIC, would differentiate crossbow features over
other vendor's crossbow-like virtualization capabilities.

It would be especially useful, when you want to run multiple 
applications such
as streaming server(RTP), DHCP server (UDP)on same Virtual machine with 
a VNIC.
such as no single app can monopolize given VNIC's already capped bandwidth.

rx-ring grouping gives many benefits and I am not sure if we want to limit
it to just VNIC/L2 classification.

so I am trying to think-out loud here to wonder it's further exploitation
in line with VNICs.

>Ring group will be 
>the basic entity of virtualizing hardware resources.
>  
>
programming ring-group for L3/L4 classifications can help
prformance of network virtual machines, I suppose.

>>cause, As I see, virtual machines are identified using MAC+IP addresses,
>>Is there any userland utilities that can help steer, classify and 
>>administer
>>VM's traffic and steer across multiple rings by programming  policy/rule on
>>ring/s?
>>Is so, what is it and how user can enforce a policy dynamically on given
>>set of rings or ring groups?  I know flowadm can program ring
>>but can it program ring-group?
>>    
>>
>The updated Flow design will answer this.
>  
>
ok. :-)

>  
>
>>5)
>>Can you group rings of different physical NICs, If yes, what is the 
>>interface for the same?
>>    
>>
>No. You may check out the ring group definition in the document. :)
>
>  
>
so it's hardware design limitation of driver implementation limitation.?
btw, I don't see the definition, can you help me with a page number?
-Deepti

>Thanks,
>
>Roamer
>  
>
>>-Deepti
>>
>>
>>Yunsong (Roamer) Lu wrote:
>>
>>    
>>
>>>Hi,
>>>We've posted a new design document, Crossbow Hardware Resources
>>>Management and Virtualization, here:
>>>http://dlc.sun.com/osol/netvirt/downloads/docs/virtual_resources.pdf
>>>you're welcome to review and comment.
>>>
>>>In this document, we introduce the new driver interfaces of virtualizing
>>>NIC resources, like multiple rings and multiple MAC addresses, and we
>>>talk about the ideas about organizing various hardware implementations
>>>into the new framework. We're glad to know any comments from IHVs who
>>>are designing new NICs.
>>>
>>>What's not included in the document? The new design evolves GLDv3
>>>interfaces, but before finalizing those changed interfaces, like
>>>(*mc_tx)(), (*mc_unicast)(), (*mc_resoureces)(), mac_rx(), etc., we
>>>would like to listen to your opinions first. Also, support for PCI-SIG
>>>IOV will be added afterwards.
>>>
>>>Please feel free to comment and share your opinions!
>>>
>>>Thanks,
>>>
>>>Kais & Roamer
>>>
>>> 
>>>
>>>      
>>>
>>_______________________________________________
>>crossbow-discuss mailing list
>>crossbow-discuss at opensolaris.org
>>http://mail.opensolaris.org/mailman/listinfo/crossbow-discuss
>>    
>>
>
>  
>


  • [crossbow-disc... Paul Durrant
  • [crossbow-disc... Jason Jiang - Solaris China Team
  • [crossbow-disc... Yunsong (Roamer) Lu
    • [crossbow... Kais Belgaied
    • [crossbow... deepti dhokte - Sun Microsystems - Menlo Park United States
      • [cros... Yunsong (Roamer) Lu
        • [... deepti dhokte - Sun Microsystems - Menlo Park United States
          • ... Yunsong (Roamer) Lu
            • ... deepti dhokte - Sun Microsystems - Menlo Park United States
              • ... Yunsong (Roamer) Lu
              • ... deepti dhokte - Sun Microsystems - Menlo Park United States
              • ... Kais Belgaied
              • ... deepti dhokte - Sun Microsystems - Menlo Park United States
      • [cros... Kais Belgaied
        • [... deepti dhokte - Sun Microsystems - Menlo Park United States
          • ... Kais Belgaied
            • ... deepti dhokte

Reply via email to