On Wed, 2005-06-15 at 10:05 -0700, Patrick Mansfield wrote: > First in scsi_alloc_queue, the flush/sync code is only used if we don't > have ordered tags, and if the adapter driver explicitly allows it > (shost->order_flush). > > Plus we clear order_flush in scsi_host_alloc if can_queue > 1. > > So ipr will never get those sync cache commands, correct? Actually, yes. I thought Jens turned it on globally, but apparently it's only set for the sata controllers. the can_queue check is a bit mysterious since non TCQ devices should have can_queue == 2 (so they have one command executing and one command ready to roll). > And we default to QUEUE_ORDERED_NONE (0) if ordered_tag and ordered_flush > are not set. > > But I can't find any where that we set ordered_tag at all, am I missing > something??? Let alone in ipr. I think that was also added by the barrier patch set. Although it's well known what the difficulties of using ordered tag queueing to implement barriers are: 1) Race in queuecommand() where barrier gets BUSY or QUEUE_FULL but next command is accepted before we see this. 2) Error handling is not robust to ordering. 3) Qerr bit of the control mode page needs to be set correctly. James - : send the line "unsubscribe linux-scsi" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html