SORT BY:

LIST ORDER
THREAD
AUTHOR
SUBJECT


SEARCH

IPS HOME


    [Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

    RE: iSCSI: Flow Control



    
    
    Somesh,
    
    You are just describing an implementation.
    
    As commands are but a small part of the load you can post a large enough
    number
    to each NIC or have the NICs grab them from a pool (and marking them
    in-use) through
    a bus transaction.
    
    Julo
    
    "GUPTA,SOMESH (HP-Cupertino,ex1)" <somesh_gupta@am.exch.hp.com> on
    11/10/2000 17:31:00
    
    Please respond to "GUPTA,SOMESH (HP-Cupertino,ex1)"
          <somesh_gupta@am.exch.hp.com>
    
    To:   Matt Wakeley <matt_wakeley@agilent.com>, IPS Reflector
          <ips@ece.cmu.edu>
    cc:
    Subject:  RE: iSCSI: Flow Control
    
    
    
    
    
    > -----Original Message-----
    > From: Matt Wakeley [mailto:matt_wakeley@agilent.com]
    > Sent: Wednesday, October 11, 2000 4:39 AM
    > To: IPS Reflector
    > Subject: Re: iSCSI: Flow Control
    >
    >
    > "GUPTA,SOMESH (HP-Cupertino,ex1)" wrote:
    >
    > > I agree. The only difference of opinion I have is whether the
    > > credit/window should be on a per connection basis or a session
    > > basis.
    >
    > Since the "commands" go across the various TCP connections,
    > but ultimately
    > end up in the same single command queue, what does command
    > credit/window per
    > TCP connection buy you?
    
    Assuming that flow control is needed, the following are the
    pros for per connection credit/window (I will assume multiple
    NICs and also each connection on a session in a seperate NIC)
    
    1. For the target - the target provides credit based among
    other factors on the availability of command buffers. An
    exclusive (at any instant in time) list of command buffers
    will be posted to each NIC (to make sure that different NICs
    do not overwrite each other). If the credit is per session, what
    value of credit is given out (if credit can be adjusted
    dynamically)? It is the credit per session, based on the
    least number of buffers available for any given NIC?
    
    2. For the initiator - Let us assume that all connections are
    flow controlled due to running out of credit. Now the credit
    is extended on one of the connections. In the credit per session
    model, the new credit has to flow to the host, which can then
    post additional commands on any of the connections in the
    session. The host can also only post the commands to any
    of the NICs that fall within the window. It has to queue up
    all others in a seperate queue. In addition, the NIC will
    have to interrupt the host so that the host processes
    the credit/window indication.
    
       If the credit is per connection, then the host can post
    available commands to each of the adapters using whatever
    load balancing algorithms have been adopted. Then as credit
    is available on each of the connections, the commands can be
    transmitted.
    
       One of the side effects of this is that the commands may
    not arrive at the target in the "session-wide" order i.e.
    a connection is blocked and its commands are not going
    through so a certain number of commands in a "session-wide"
    command sequence did not get through or because a poor
    load balancing algorithm was being used etc. I think these are
    the serious side-effects of trying to do multiple connection
    sessions - and similar nasty effects occour no matter what
    algorithm for load balancing is attempted - connections can
    always block or quality degrade throwing off the pacing of
    the entire session.
    
    >
    > -Matt
    >
    
    
    
    


Home

Last updated: Tue Sep 04 01:06:42 2001
6315 messages in chronological order