Re: [PATCH] fixes and cleanups for the new command allocation code

James Bottomley
2003-02-04T18:33:30Z

On Tue, 2003-02-04 at 11:19, Patrick Mansfield wrote:
> We really need to limit to what the scsi_device (thinks it) can handle
> (currently new_queue_depth). Otherwise we could have QUEUE_FULL storms,
> plus we really don't want that many scsi_cmnd's outstanding (i.e. limited
> by the amount of memory we can allocate) when we have many scsi_devices on
> the system. If we lowered the request queue limit that would hurt
> scsi_devices (and maybe adapters) with a low queue limits.

I agree with this. It is a guarantee the mid-layer makes to the LLD
(and there are some LLDs with static issue queues for which this is a
hard requirement). I think (once the dust has settled and we've agreed
which field holds the current queue depth) what's needed is a check in
the scsi_request_fn() to see if we're over the LLD's current depth for
the device and plug the queue and exit if we are. The next returning
command will unplug and send.

This way of doing things means that we're free to prep as many commands
as we can, but we guarantee only to have the correct number outstanding
to the LLD.

James