On Mon, 2011-12-19 at 11:12 -0500, Matthew Wilcox wrote: > On Fri, Dec 16, 2011 at 10:47:39PM +0100, James Bottomley wrote: > > Well, no, what you want to do is use a shared tag map at the block > > level. That will manage a joint tag space for N queues without your > > having to partition it arbitrarily. see scsi_host_find_tag() and > > scsi_init_shared_tag_map(). > > By the way, the same verbiage about tags being shared across LUNs is also > present in the SAS spec (and various other specs last time I looked, > which wasn't recently). I don't think so: The SAS spec still (as of 2.1) has the nexus being I_T_L_Q. That means a unique combination of initiator port, target port, lun and tag identify a nexus. To have the nexus be blind to the Lun (i.e. tags shared across LUNs) it would have to be identified by I_T_Q, which I haven't actually seen in any standard. I'm not even sure a transport would be allowed to override this; SAM is pretty clear (s 4.12 The Nexus Object) that a nexus is either I_T, I_T_L or I_T_L_Q. I_T_Q isn't listed as being allowable for a nexus. James > We should probably make this the default in > the SCSI core. > > I suspect it hasn't bitten us because there are so few multi-LUN devices > out there, and it's only a "May" check, not "Must" check. But Linux is > technically in violation of the SAS spec by sending two commands to the > same target with the same tag. > -- > 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 -- To unsubscribe from this list: send the line "unsubscribe linux-usb" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html