kernel-packages team mailing list archive
-
kernel-packages team
-
Mailing list archive
-
Message #127509
[Bug 1336541] Re: No TRIM via USB
It seems that if the device is handled by the usb-storage driver, TRIM
is as of this writing unsupported and likely to remain so.
usb/storage/scsiglue.c sets skip_vpd_pages to true,
source/drivers/scsi/sd.c will not query for the necessary block limits to support discard if skip_vpd_pages is true.
The bug poster should note per comment #1 in their dmesg excerpt that
their device is using the usb-storage driver
However, my Intel 530 SSD in the ASMT 2115 enclosure is acquired by the
uas driver rather than usb-storage. TRIM is not supported there,
possibly because of a failing in the bridge controller's translation of
the SCSI unmap method to ATA TRIM.
hdparm (and presumably blkdiscard, which I haven't tried) succeed
because they use ATA commands directly without going through a SCSI
translation layer either in usb-storage (disabled) or in the enclosure
firmware (possibly broken?).
--
You received this bug notification because you are a member of Kernel
Packages, which is subscribed to linux in Ubuntu.
https://bugs.launchpad.net/bugs/1336541
Title:
No TRIM via USB
Status in linux package in Ubuntu:
Confirmed
Bug description:
Hi,
As USB attached SSDs are becoming quite big and affordable, along comes the idea of installing systems on these.
But with current USB drivers, some functionality seems to be missing from USB subsystem.
The system does not recognize it is an SSD, but it is corrected manually:
# cat /etc/udev/rules.d/10-forcessd.rules
SUBSYSTEM=="block", ATTRS{vendor}=="SanDisk", ATTRS{model}=="Extreme", KERNEL=="sd?", ATTR{queue/rotational}="0"
# cat /sys/block/sdb/queue/rotational
0
Checked hdparm, it is saying I have TRIM on the device:
# hdparm -I /dev/sdb
/dev/sdb:
ATA device, with non-removable media
Model Number: SanDisk pSSD
(...)
Commands/features:
Enabled Supported:
(...)
* Data Set Management TRIM supported (limit 8 blocks)
* Deterministic read ZEROs after TRIM
(...)
Here is appropriate dmesg:
[ 3.815604] usb 2-8: Manufacturer: SunplusIT INC.
[ 4.122002] usb 3-3: new SuperSpeed USB device number 2 using xhci_hcd
[ 4.138402] usb 3-3: New USB device found, idVendor=0781, idProduct=5580
[ 4.138404] usb 3-3: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[ 4.138405] usb 3-3: Product: Extreme
[ 4.138406] usb 3-3: Manufacturer: SanDisk
[ 4.138407] usb 3-3: SerialNumber: AA011109131654094942
[ 4.141393] usb-storage 3-3:1.0: USB Mass Storage device detected
[ 4.141431] scsi0 : usb-storage 3-3:1.0
[ 4.141703] usbcore: registered new interface driver usb-storage
And:
[ 5.331311] sd 0:0:0:0: [sdb] 122544516 512-byte logical blocks: (62.7 GB/58.4 GiB)
[ 5.331608] sd 0:0:0:0: [sdb] Write Protect is off
[ 5.331611] sd 0:0:0:0: [sdb] Mode Sense: 33 00 00 08
[ 5.331855] sd 0:0:0:0: [sdb] Write cache: disabled, read cache: enabled, doesn't support DPO or FUA
[ 5.339849] sdb: sdb1 sdb2 sdb3 < sdb5 >
[ 5.340783] sd 0:0:0:0: [sdb] Attached SCSI disk
From here I'll be using /boot formatted to ext4 to eliminate luks,lvm
and btrfs from the equasion:
# mount |grep sdb2
/dev/sdb2 on /boot type ext4 (rw,noexec,discard)
# fstrim -v /boot/
fstrim: /boot/: FITRIM ioctl failed: Operation not supported
# strace fstrim -v /boot/
(...)
open("/boot/", O_RDONLY) = 3
ioctl(3, FITRIM, 0x7fffdded85c0) = -1 EOPNOTSUPP (Operation not supported)
(...)
During debugging, I've tried compiling a kernel with UAS module to
check, it booted, system was g changed with the trim - as it wouldn't
been used at all.
Any ideas why TRIM is not working on USB?
Any timeframes for possible fix?
Any workarounds maybe?
---
ApportVersion: 2.14.1-0ubuntu3.2
Architecture: amd64
AudioDevicesInUse:
USER PID ACCESS COMMAND
/dev/snd/controlC1: dome 2460 F.... pulseaudio
/dev/snd/pcmC1D0p: dome 2460 F...m pulseaudio
/dev/snd/controlC0: dome 2460 F.... pulseaudio
DistroRelease: Ubuntu 14.04
HibernationDevice: RESUME=UUID=bafebd1d-6988-438f-afd4-b41bb8608616
InstallationDate: Installed on 2014-06-12 (56 days ago)
InstallationMedia: Ubuntu 14.04 LTS "Trusty Tahr" - Release amd64 (20140417)
MachineType: LENOVO 20AR001AUK
Package: linux (not installed)
ProcEnviron:
LANGUAGE=en_US
TERM=xterm
PATH=(custom, no user)
LANG=en_US.UTF-8
SHELL=/bin/bash
ProcFB: 0 inteldrmfb
ProcKernelCmdLine: BOOT_IMAGE=/vmlinuz-3.13.0-24-generic root=/dev/mapper/system-root ro rootflags=subvol=@ cryptopts=target=crypter,source=/dev/disk/by-uuid/dc149cdf-62f9-4e29-a048-dd0403f51d56,lvm=system,discard quiet splash crashkernel=384M-:128M vt.handoff=7
ProcVersionSignature: Ubuntu 3.13.0-24.47-generic 3.13.9
PulseList:
Error: command ['pacmd', 'list'] failed with exit code 1: Home directory not accessible: Permission denied
No PulseAudio daemon running, or not running as session daemon.
RelatedPackageVersions:
linux-restricted-modules-3.13.0-24-generic N/A
linux-backports-modules-3.13.0-24-generic N/A
linux-firmware 1.127.5
Tags: trusty
Uname: Linux 3.13.0-24-generic x86_64
UpgradeStatus: No upgrade log present (probably fresh install)
UserGroups:
_MarkForUpload: True
dmi.bios.date: 03/28/2014
dmi.bios.vendor: LENOVO
dmi.bios.version: GJET75WW (2.25 )
dmi.board.asset.tag: Not Available
dmi.board.name: 20AR001AUK
dmi.board.vendor: LENOVO
dmi.board.version: 0B98401 PRO
dmi.chassis.asset.tag: No Asset Information
dmi.chassis.type: 10
dmi.chassis.vendor: LENOVO
dmi.chassis.version: Not Available
dmi.modalias: dmi:bvnLENOVO:bvrGJET75WW(2.25):bd03/28/2014:svnLENOVO:pn20AR001AUK:pvrThinkPadT440s:rvnLENOVO:rn20AR001AUK:rvr0B98401PRO:cvnLENOVO:ct10:cvrNotAvailable:
dmi.product.name: 20AR001AUK
dmi.product.version: ThinkPad T440s
dmi.sys.vendor: LENOVO
To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1336541/+subscriptions