Re: questions about uas

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Tue, 9 Jun 2015, Tom Yan wrote:

> Hi all!
> 
> I have the following adapter:
> http://www.startech.com/HDD/Adapters/USB-3-SATA-adapter-cable-with-UASP~USB3S2SAT3CB
> 
> which I am using it for:
> http://ark.intel.com/products/56604/Intel-SSD-X25-M-Series-80GB-2_5in-SATA-3Gbs-50nm-MLC
> 
> and I can see in `lsusb`:
> Bus 002 Device 004: ID 174c:55aa ASMedia Technology Inc. ASM1051 SATA
> 3Gb/s bridge
> 
> When using the uas driver, I can see in fdisk:
> Disk /dev/sdb: 74.5 GiB, 80026361856 bytes, 156301488 sectors
> Units: sectors of 1 * 512 = 512 bytes
> Sector size (logical/physical): 512 bytes / 512 bytes
> I/O size (minimum/optimal): 512 bytes / 33553920 bytes
> 
> But if I disable uas support in the kernel so that it fallback to
> usb-storage, or if I connect it to sata directly, I can see:
> Disk /dev/sdb: 74.5 GiB, 80026361856 bytes, 156301488 sectors
> Units: sectors of 1 * 512 = 512 bytes
> Sector size (logical/physical): 512 bytes / 512 bytes
> I/O size (minimum/optimal): 512 bytes / 512 bytes
> 
> As you can see, there's a change in optimal i/o size.
> 
> So my question is, is this "33553920 bytes" some spec/requirement of
> USB Attached SCSI? or could it be some kind of bug in the driver?

Neither one.  It simply demonstrates that the device behaves
differently when it is using the UAS transport as opposed to using the
USB mass-storage transport or the SATA transport.  That number comes 
from the device itself, not from anything in the driver or the spec.

> Another question is, is it possible to disable uas (which is compiled
> as a module) without recompiling the kernel? If I blacklist uas, the
> device doesn't pop up in lsusb or lsblk;

I don't believe that.  The device certainly ought to show up in the 
output from lsusb (but not lsblk).

>  if I delete the module, it
> pop up in lsusb -t with empty "Driver=" but not lsblk.

There is no significant difference between blacklisting the module and
deleting it.  Either way, the module will not be loaded into the
running kernel.

Anyway, what you want is more than just to disable uas -- you also want 
to make the usb-storage driver bind to your device.  Normally it would 
not, because it would expect uas to bind instead.

The way to do this is to add a "quirks=174c:55aa:u" module parameter 
for the usb-storage module (the first two numbers are the vendor and 
product IDs for your device).  This will cause usb-storage to bind to 
the device instead of uas.

Alan Stern

--
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




[Index of Archives]     [Linux Media]     [Linux Input]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Old Linux USB Devel Archive]

  Powered by Linux