Commands sent by Port driver

hi all ,
I am wondering that how many number of commands can a port driver
send to miniport driver if Maximum number is not set by the miniport driver
and it asks the Port driver to send the next command just after queuing one
command.
Is there some limit that port driver will not send more than X commands if
nothing is specified and Miniport keeps on asking for next command as soon
as it get the first command.

Please advice,
thanks
ajitabh

I’m going to assume you’re talking about scsiport & scsi miniports.

in your scenario is the miniport asking for NextRequest each time, or
NextLuRequest each time? The behavior will be different for each one.

if you’re just asking for NextRequest then you will only have one
request outstanding on each lun at a time.

if you’re asking for NextLuRequest then the number gets gated depending
on what scsiport believes the maximum queue depth to be (it starts at
255 and works it way down as the device returns queue_full status) for
each LUN, the size of your SRB extension, and a few other factors.

the maximum number is around 250 per HBA. This is because scsiport
allocates queue tags such that they are unique across the HBA (rather
than being unique for a given LUN). That would be 255 but 0xff is a
reserved tag value (as is 0 I think) and scsiport allocates a few tags
for internal use as well. This works out to roughly 250.

however you haven’t set NumberOfRequests to the maximum value this gets
more complicated.

scsiport assumes a certain value for NumberOfRequests if one isn’t
provided. Currently in XP that value is 16 but that could change in the
future or past. The actual number will probably be higher than this
though. If there is extra space in the last page of the common buffer
scsiport allocates for SRB extensions it will increase NumberOfRequests
to use up the extra space up to the maximum of 254.

so let’s say your need a 2k uncached extension & your srb extension size
is 64 bytes. The default 16 SRB extensions would only use 1K of common
buffer. Combined with the uncached extension we’re at 3k out of a 4k
page. Scsiport will push NumberOfRequests up to 32 and allocate the
rest of that common buffer page as SRB extensions.

sorry there’s no exact answer, hopefully this will help you out though.

-p

-----Original Message-----
From: Saxena, Ajitabh Prakash [mailto:xxxxx@lsil.com]
Sent: Thursday, June 20, 2002 1:50 PM
To: NT Developers Interest List
Subject: [ntdev] Commands sent by Port driver

hi all ,
I am wondering that how many number of commands can a port
driver send to miniport driver if Maximum number is not set by the
miniport driver and it asks the Port driver to send the next command
just after queuing one command.
Is there some limit that port driver will not send more than X commands
if nothing is specified and Miniport keeps on asking for next command as
soon as it get the first command.

Please advice,
thanks
ajitabh


You are currently subscribed to ntdev as: xxxxx@microsoft.com To
unsubscribe send a blank email to %%email.unsub%%