|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] RE: iSCSI: Out of order commands
I understand what you are saying but that is a typical buffer manager
problem which most systems work with today. I have usually resolved this
in the past with a statistical probability analyses, often that is adjusted
in real time. Again, I see nothing unusual here.
.
.
.
John L. Hufferd
Senior Technical Staff Member (STSM)
IBM/SSG San Jose Ca
Main Office (408) 256-0403, Tie: 276-0403, eFax: (408) 904-4688
Home Office (408) 997-6136, Cell: (408) 499-9702
Internet address: hufferd@us.ibm.com
"Somesh Gupta" <somesh_gupta@silverbacksystems.com> on 11/08/2001 05:58:03
PM
Please respond to <somesh_gupta@silverbacksystems.com>
To: John Hufferd/San Jose/IBM@IBMUS
cc: "Robert D. Russell" <rdr@mars.iol.unh.edu>, Julian
Satran/Haifa/IBM@IBMIL, <ips@ece.cmu.edu>
Subject: RE: iSCSI: Out of order commands
John,
> -----Original Message-----
> From: John Hufferd [mailto:hufferd@us.ibm.com]
> Sent: Thursday, November 08, 2001 5:19 PM
> To: somesh_gupta@silverbacksystems.com
> Cc: Robert D. Russell; Julian Satran; ips@ece.cmu.edu
> Subject: RE: iSCSI: Out of order commands
>
>
>
> I understand your point, however, their are several approaches that I and
> others have used to mitigate this issue. We face that problem with Multi
> Processing all the time.
>
> One technique that I have seen use that is similar to what you describe
is
> to allocate a set of buffers to each processor (in this case an HBA), and
> when they are used up, and only then, the go back to the Buffer Mother,
to
> allocate another Buffer Set. In this way the Processors (HBA) run mostly
> independent, but once in awhile get a new supply. There are other
> techniques also, but that one clearly works wells and is very simple.
I agree with the mechanism above. So here is where the problem is.
Let us take a simplification of M adapters and 1 connection per
adapter. Let us also assume that the N buffers are given to each
adapter.
Total number of buffers used - M * N
Buffers available to each adapter - N
How large of a command window should be advertised in the case of
a session wide window.
If the window is N, then we are under-utilizing the buffers but we
will never drop commands.
If we advertise M * N, and the initiator decides to send commands
in an unbalanced manner (because 1 connection is working better),
then we have a potential problem where the one adapter uses up
its allocation - In the meantime the system will provide it some
more (but not enough),
and there is an imbalance leading to a situation where commands
may have to be dropped. (this could also happen if the system
did not allocate buffers evenly e.g. in a scenario where the
adapters are not using buffers at the same rate).
Now we can try to find a balance in the middle, but again there
is a loss of efficiency on one axis or the other.
>
> Therefore, I do not see the Session Window as a problem in the protocol.
>
> .
> .
> .
> John L. Hufferd
> Senior Technical Staff Member (STSM)
> IBM/SSG San Jose Ca
> Main Office (408) 256-0403, Tie: 276-0403, eFax: (408) 904-4688
> Home Office (408) 997-6136, Cell: (408) 499-9702
> Internet address: hufferd@us.ibm.com
>
>
> "Somesh Gupta" <somesh_gupta@silverbacksystems.com> on 11/08/2001
04:57:40
> PM
>
> Please respond to <somesh_gupta@silverbacksystems.com>
>
> To: John Hufferd/San Jose/IBM@IBMUS
> cc: "Robert D. Russell" <rdr@mars.iol.unh.edu>, Julian
> Satran/Haifa/IBM@IBMIL, <ips@ece.cmu.edu>
> Subject: RE: iSCSI: Out of order commands
>
>
>
> I think we may be talking about different things here.
> Yes, there are memories that are "on the iSCSI HBA"
> (in the case where everything is on a single board,
> this would be the memories that are controlled by
> only the iSCSI ASIC or whatever) - and these memories
> are not shared among multiple HBAs. These may be used
> for any book-keeping purposes, contexts, eddy buffering
> etc etc by the adapter.
>
> Then there is memory pool that is owned by the "system".
> Adapters will DMA commands/data/responses directly into
> and out of this memory pool which is managed by the "system".
> However to prevent adapters from running over each other,
> and over the "system" processor, producer/consumer
> mechanisms have to be implemented.
>
> This is necessary to maintain order on the system. So
> on a long-term basis, the memory in the system is shared
> across the HBAs - absolutely yes. But at any given
> instance in time, it is partitioned among various
> usages.
>
> So all in all I agree with you. The only point of difference
> is that it is not possible that a given buffer (part of
> a buffer pool) is accessible to multiple adapters at
> the same instance in time. It is a necessary condition to
> prevent corruption and chaos.
>
> > -----Original Message-----
> > From: John Hufferd [mailto:hufferd@us.ibm.com]
> > Sent: Thursday, November 08, 2001 4:40 PM
> > To: somesh_gupta@silverbacksystems.com
> > Cc: Robert D. Russell; Julian Satran; ips@ece.cmu.edu
> > Subject: RE: iSCSI: Out of order commands
> >
> >
> >
> > I guess I disagree with this design approach. The buffers on the iSCSI
> > HBAs are for Eddy buffers. Once you have the iSCSI Header
> should be able
> > to place the data directly into a Shared buffer. If you have a session
> > that spans HBAs, that should work just fine. But the buffers match the
> > Session Window, and the Buffers need to be shared across the
> HBAs, not in
> > the HBAs. Again, the HBAs should just have the Eddy Buffers.
> >
> > .
> > .
> > .
> > John L. Hufferd
> > Senior Technical Staff Member (STSM)
> > IBM/SSG San Jose Ca
> > Main Office (408) 256-0403, Tie: 276-0403, eFax: (408) 904-4688
> > Home Office (408) 997-6136, Cell: (408) 499-9702
> > Internet address: hufferd@us.ibm.com
> >
> >
> > "Somesh Gupta" <somesh_gupta@silverbacksystems.com> on 11/08/2001
> 04:31:29
> > PM
> >
> > Please respond to <somesh_gupta@silverbacksystems.com>
> >
> > To: John Hufferd/San Jose/IBM@IBMUS
> > cc: "Robert D. Russell" <rdr@mars.iol.unh.edu>, Julian
> > Satran/Haifa/IBM@IBMIL, <ips@ece.cmu.edu>
> > Subject: RE: iSCSI: Out of order commands
> >
> >
> >
> > John,
> >
> > You are correct if all the connections are on
> > a single adapter. In this case the buffer pool
> > can be shared among all the connections on the
> > adapter.
> >
> > However this is not true if the connections are
> > on different adapters (the point being discussed).
> > Think of there being a big buffer pool in the board
> > into which multiple adapters/chips are "plugged" in.
> > However, at any given point in time, these buffers
> > are allocated (handed over through command queues or
> > whatever) to each of the individual adapters. And this
> > is where the problem arises.
> >
> > The assumption that adapters can share a typical host
> > command buffer pool on their own without host intervention
> > is incorrect.
> >
> > Somesh
> >
> > > -----Original Message-----
> > > From: John Hufferd [mailto:hufferd@us.ibm.com]
> > > Sent: Thursday, November 08, 2001 4:20 PM
> > > To: somesh_gupta@silverbacksystems.com
> > > Cc: Robert D. Russell; Julian Satran; ips@ece.cmu.edu
> > > Subject: RE: iSCSI: Out of order commands
> > >
> > >
> > >
> > > Most folks I know have a buffer that applies to all the
> > > connections, not to
> > > just one buffer per connection. I fail to see the problem for most
> > > implimentations. The window should apply to the session.
> > >
> > > .
> > > .
> > > .
> > > John L. Hufferd
> > > Senior Technical Staff Member (STSM)
> > > IBM/SSG San Jose Ca
> > > Main Office (408) 256-0403, Tie: 276-0403, eFax: (408) 904-4688
> > > Home Office (408) 997-6136, Cell: (408) 499-9702
> > > Internet address: hufferd@us.ibm.com
> > >
> > >
> > > "Somesh Gupta" <somesh_gupta@silverbacksystems.com>@ece.cmu.edu on
> > > 11/08/2001 02:22:30 PM
> > >
> > > Please respond to <somesh_gupta@silverbacksystems.com>
> > >
> > > Sent by: owner-ips@ece.cmu.edu
> > >
> > >
> > > To: "Robert D. Russell" <rdr@mars.iol.unh.edu>
> > > cc: Julian Satran/Haifa/IBM@IBMIL, <ips@ece.cmu.edu>
> > > Subject: RE: iSCSI: Out of order commands
> > >
> > >
> > >
> > > Comments below
> > >
> > > > -----Original Message-----
> > > > From: Robert D. Russell [mailto:rdr@mars.iol.unh.edu]
> > > > Sent: Thursday, November 08, 2001 11:46 AM
> > > > To: Somesh Gupta
> > > > Cc: Julian Satran; ips@ece.cmu.edu
> > > > Subject: RE: iSCSI: Out of order commands
> > > >
> > > >
> > > >
> > > > Somesh:
> > > >
> > > > > > It seems to me that if a target can only handle x new commands,
> > > > > > then its queueing capacity is x, and in the SCSI Response PDU
it
> > > > > > should set MaxCmdSN = (ExpCmdSn + x - 1), in accordance with
the
> > > > > > formula in section 2.2.2.1. This in turn controls the number
of
> > > > > > commands the initiator can send, and thus prevents the incoming
> > > > > > commands from overfilling the target's queue.
> > > > >
> > > > > This is actually a weakness of the multiple connections over
> > > > > multiple adapters model (it is not related to ordering).
> > > > > The target advertises a command window on a session wide basis.
> > > > > At the same time, it has to provide the resource to the adapter
> > > > > to be able to DMA those commands to. Since there is no
> restriction
> > > > > on which connection the commands may be received, either the
> > > > > target has to allocate the max resources needed to each adapter
> > > > > (thus committing n times the resources actually required), or
> > > > > has to "lie" (it would not be a complete lie) which could
> > > > > result in running out of resources. One way to fix that would
be
> > > > > to have the credit on a per connection basis.
> > > >
> > > > If I understand you correctly, you are saying that deadlock can
> > > > occur even if we enforce ordered delivery by initiators and even
> > > > if the advertisements are correct and even if both parties obey
> > > > the advertisements.
> > >
> > > I would let Julian enlighten us on that, or whether it just
> > > leads to wholesale command drops and retries, or TASK SET FULL
> > > is returned (is TASK SET FULL a valid response in this case
> > > for a LINKED task when it is not the first command?)
> > >
> > > >
> > > > In other words, doesn't this mean that the standard can lead to a
> > > > trap in implementing targets and that, in fact, the advertisements
> > > > really should be on a per connection basis?
> > > > However, what would be the consequences for initiators if
> > > > the advertisements were on a per-connection basis?
> > >
> > > There is really no issue with adveritisement on a per
> > > connection basis. It leads to a protocol change. However, it
> > > also allows a much more performant flow of commands.
> > >
> > > >
> > > >
> > > > Thanks,
> > > >
> > > > Bob Russell
> > > > InterOperability Lab
> > > > University of New Hampshire
> > > > rdr@iol.unh.edu
> > > > 603-862-3774
> > > >
> > > >
> > > >
> > >
> > >
> > >
> > >
> >
> >
> >
> >
>
>
>
>
>
Home Last updated: Fri Nov 09 16:17:37 2001 7705 messages in chronological order |