SORT BY:

LIST ORDER
THREAD
AUTHOR
SUBJECT


SEARCH

IPS HOME


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

    RE: Command Queue Depth (was asymmetric/Symmetric)



    
    
    >  -----Original Message-----
    >  From: julian_satran@il.ibm.com [mailto:julian_satran@il.ibm.com]
    >  Sent: Thursday, September 07, 2000 6:11 AM
    >  To: ips@ece.cmu.edu
    >  Subject: RE: Command Queue Depth (was asymmetric/Symmetric)
    >  
    >
           snip
    >  
    >  As for SCSI queue length I assumed that the busy or queue full status
    >  followed by an Asynch Event
    >  message indicating readiness is the mechanism provided by 
    >  SCSI to regulate
    >  the command flow.
    
    Actually, the approach was somewhat different, and is still only
    a recommendation and not a requirement.
    
    Every logical unit (not every target) was required to reserve
    at least one command queuing buffer for each logged-in initiator
    so that each logical unit could always accept at least one 
    command.  Then the queue was stuffed full until TASK SET FULL
    status was presented.  At that time, as each initiator encountered
    TASK SET FULL, it would back off until a previously queued command
    was completed.  At that time (serving the purpose of the
    asynchronous event notification hypothesized above), the queue
    could then be restuffed.  This back-off provided maximum queuing
    for maximum throughput and allowed any particular initiator to
    access all available resources at the time they were needed.  Given
    the bursty (self-similar statistical) nature of storage accesses,
    this appeared to be about the best we could do.  If a system ran
    into continuing problems, additional resources (more devices, more
    initiators, more links) were the only reasonable solution to 
    maintain the desired level of performance.
    
    The appropriate text from SAM-2 is provided here for your ASCII
    reference.
    
    Clause 5.2 Status
    
    TASK SET FULL. This status shall be implemented if the logical unit 
    supports the creation of tagged tasks (see 4.9). This status shall not be 
    implemented if the logical unit does not support the creation of tagged 
    tasks.
    
    When the logical unit has at least one task in the task set for an 
    initiator and a lack of task set resources prevents
    entering a newly received tagged task from that initiator 
    in the task set, TASK SET FULL shall be returned. When
    the logical unit has no task in the task set for an initiator 
    and a lack of task set resources prevents entering a newly
    received tagged task from that initiator in the task set, 
    BUSY should be returned.
    
    When the logical unit has at least one task in the task set and 
    a lack of task set resources prevents entering a
    newly received untagged task in the task, BUSY should 
    be returned.
    
    The logical unit should allow at least one queued command for 
    each supported initiator that has identified itself to
    the target by a protocol specific procedure or by the successful 
    transmission of a command.
    


Home

Last updated: Tue Sep 04 01:07:30 2001
6315 messages in chronological order