Re: [patch 2.5] ips queue depths

James Bottomley
2002-10-16T01:04:52Z

andmike@us.ibm.com said:
> Ok it will not handle fairness, but it will trigger a starved and
> some_device_starved case when SHpnt->can_queue > 0 and SHpnt->
> host_busy >= SHpnt->can_queue. Which is the case we where discussing
> and is not a host blocked condition.

Yes, but this still only activates if the device trying to queue has no
currently outstanding commands. Usually under heavy load to multiple LUNs,
you probably won't run into this too often.

The way the mid-layer expects to operate under load is that a returning
command for a given device triggers the request queue for that device to queue
up the next waiting command.

> The reverse ordering of the request_fn call could cause a device to
> stayed starved if the device queue depth is near or equal to the host
> can_queue.

True, I suppose, but only in the limited case where there are no queued
commands for a particular device. The most likely case is that one device has
stolen a huge number of slots and everyone else gets a tiny number, which
won't activate this code at all.

James