On Thu, 2011-03-10 at 08:35 -0800, va stg2010 wrote: > Hi > My initiator HBA has 4 ports. Right now I call scsi_add_host() only once. > Currently I have single queue for all 4 ports where pending scsi > commands wait till interrupt handler posts response. I am trying to > add more queue (one per port) to reduce some locking contention. Why do you have a single issue queue? If the contention is in that, then you can easily fix that without altering the host structure. > Can I expect higher concurrency if I call scsi_add_host 4 times , one > for each port. ? > Is it going to work if I call scsi_add_host 4 times and will > allocate queue (for pending scsi commands) for each scsi host I > registered? Um, so this makes me think you don't understand the SCSI queuing. The block queue is per registered sdev (which is usually a LUN) not per host. However, pending commands aren't kept on the block queue: we dequeue them in the request queue. > What performance benefits can I expect, if any? SCSI counts things per host, Like maximum number of commands. It doesn't really impact concurrency, since that's done per queue (which is per LUN) but it does mean there's a per-host lock in the submit path which can show up in profiling (particularly for high iop devices). James -- To unsubscribe from this list: 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