# [solved] SSD slow in Thinkpad W700

## haarp

Hey,

I recently switched from my Thinkpad SL510 (GM45 chipset) to a Thinkpad W700 (pretty much identical PM45 chipset). Both laptops were made at around the same time and both support SATA 3Gbps.

I have an 180GB Intel SSD330, which is capable of SATA 6Gbps and 500MB/s reads. On my SL510, the SSD managed about 270MB/s because it was limited to SATA 3Gbps. After switching to the W700 however, I'm stuck at SATA 1.5GBps! SATA is set to AHCI mode in the BIOS.

```
# dmesg | grep -iE "piix|ahci|scsi0|scsi 0|sd 0|ata1|ncq"

[    1.658393] ahci 0000:00:1f.2: version 3.0

[    1.658442] ahci 0000:00:1f.2: irq 45 for MSI/MSI-X

[    1.658514] ahci 0000:00:1f.2: AHCI 0001.0200 32 slots 4 ports 1.5 Gbps 0x33 impl SATA mode

[    1.658567] ahci 0000:00:1f.2: flags: 64bit ncq sntf pm led clo pmp pio slum part ccc sxs

[    1.658622] ahci 0000:00:1f.2: setting latency timer to 64

[    1.660054] scsi0 : ahci

[    1.660300] scsi1 : ahci

[    1.660502] scsi2 : ahci

[    1.660735] scsi3 : ahci

[    1.660901] scsi4 : ahci

[    1.661011] scsi5 : ahci

[    1.661136] ata1: SATA max UDMA/133 abar m2048@0xfc226000 port 0xfc226100 irq 45

[    2.146747] ata1: SATA link up 1.5 Gbps (SStatus 113 SControl 320)

[    2.160868] ata1.00: ACPI cmd ef/02:00:00:00:00:a0 (SET FEATURES) succeeded

[    2.160871] ata1.00: ACPI cmd f5/00:00:00:00:00:a0 (SECURITY FREEZE LOCK) filtered out

[    2.162917] ata1.00: ACPI cmd ef/10:03:00:00:00:a0 (SET FEATURES) filtered out

[    2.167683] ata1.00: ATA-9: INTEL SSDSC2CT180A3, 300i, max UDMA/133

[    2.169700] ata1.00: 351651888 sectors, multi 16: LBA48 NCQ (depth 31/32), AA

[    2.177248] ata1.00: ACPI cmd ef/02:00:00:00:00:a0 (SET FEATURES) succeeded

[    2.177250] ata1.00: ACPI cmd f5/00:00:00:00:00:a0 (SECURITY FREEZE LOCK) filtered out

[    2.179316] ata1.00: ACPI cmd ef/10:03:00:00:00:a0 (SET FEATURES) filtered out

[    2.187685] ata1.00: configured for UDMA/133

[    2.189780] scsi 0:0:0:0: Direct-Access     ATA      INTEL SSDSC2CT18 300i PQ: 0 ANSI: 5

[    2.191973] sd 0:0:0:0: [sda] 351651888 512-byte logical blocks: (180 GB/167 GiB)

[    2.192035] sd 0:0:0:0: Attached scsi generic sg0 type 0

[    2.196119] sd 0:0:0:0: [sda] Write Protect is off

[    2.200260] sd 0:0:0:0: [sda] Mode Sense: 00 3a 00 00

[    2.200273] sd 0:0:0:0: [sda] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA

[    2.211272] sd 0:0:0:0: [sda] Attached SCSI disk

[   19.648194] ata1.00: configured for UDMA/133

[   19.648202] ata1: EH complete

# hdparm -t /dev/sda

/dev/sda:

 Timing buffered disk reads: 390 MB in  3.01 seconds = 129.66 MB/sec
```

Of note here is ata1: SATA link up 1.5 Gbps (SStatus 113 SControl 320). Pathetic. It always negotiates 1.5Gbps, even after setting "libata.force=3.0Gbps" on the kernel command line.

Now let's set SATA to compatibility mode in the BIOS:

```
# dmesg | grep -iE "piix|ahci|scsi0|scsi 0|sd 0|ata1|ncq"

[    1.658787] ata_piix 0000:00:1f.2: version 2.13

[    1.658834] ata_piix 0000:00:1f.2: MAP [

[    1.659010] ata_piix 0000:00:1f.2: setting latency timer to 64

[    1.659359] scsi0 : ata_piix

[    1.659502] scsi1 : ata_piix

[    1.659769] ata1: SATA max UDMA/133 cmd 0x1f0 ctl 0x3f6 bmdma 0x1c20 irq 14

[    1.659971] ata_piix 0000:00:1f.5: MAP [

[    1.660182] ata_piix 0000:00:1f.5: setting latency timer to 64

[    1.660492] scsi2 : ata_piix

[    1.660697] scsi3 : ata_piix

[    2.133387] ata1: SATA link up 3.0 Gbps (SStatus 123 SControl 320)

[    2.141806] ata1.00: ATA-9: INTEL SSDSC2CT180A3, 300i, max UDMA/133

[    2.141850] ata1.00: 351651888 sectors, multi 16: LBA48 NCQ (depth 0/32)

[    2.170519] ata1.00: configured for UDMA/133

[    2.172634] scsi 0:0:0:0: Direct-Access     ATA      INTEL SSDSC2CT18 300i PQ: 0 ANSI: 5

[    2.174856] sd 0:0:0:0: [sda] 351651888 512-byte logical blocks: (180 GB/167 GiB)

[    2.174913] sd 0:0:0:0: Attached scsi generic sg0 type 0

[    2.179033] sd 0:0:0:0: [sda] Write Protect is off

[    2.181101] sd 0:0:0:0: [sda] Mode Sense: 00 3a 00 00

[    2.181113] sd 0:0:0:0: [sda] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA

[    2.187943] sd 0:0:0:0: [sda] Attached SCSI disk

[   21.643868] ata1.00: configured for UDMA/133

[   21.643875] ata1: EH complete

# hdparm -t /dev/sda

/dev/sda:

 Timing buffered disk reads: 560 MB in  3.00 seconds = 186.44 MB/sec
```

Note ata1: SATA link up 3.0 Gbps (SStatus 123 SControl 320). I can get 3Gbps! Of course I lose all AHCI features, and as you can see, it does not improve the speed much (it's still a lot less than SATA 3Gbps should manage, i.e. 270MB/s).

I'm using kernel 3.8.13-gentoo. My previous cheapo Thinkpad SL510 had mucher better speeds than the (ex) flagship Thinkpad! Clearly something is wrong here.

Any ideas?Last edited by haarp on Tue May 21, 2013 6:49 am; edited 1 time in total

----------

## eccerr0r

Curious, which ICH comes with the GM45 on your laptop?  Did the old mechanical HDD negotiate a 3Gbps link in AHCI?

Perhaps it's one of the buggy ICHs with not-so-good SATA support?

Try upgrading BIOS?

Weird.

(I don't have an SSD to try on my G965 board/ICH8... but it does report 3.0Gbps in AHCI mode and negotiates a 3Gbps link with my mechanical HDD.  Sure there's no BIOS setting for fallback to 1.5Gbps?)

----------

## haarp

 *eccerr0r wrote:*   

> Curious, which ICH comes with the GM45 on your laptop?  Did the old mechanical HDD negotiate a 3Gbps link in AHCI?
> 
> Perhaps it's one of the buggy ICHs with not-so-good SATA support?
> 
> Try upgrading BIOS?
> ...

 

It's an ICH9M-E, which should support 3Gbps on all ports. I tested a mechanical HDD in the second slot, and it also got limited to 1.5G. The BIOS is already the latest and there are no further options than setting SATA mode between compatibility, AHCI and RAID, all of which I've tried. Only compatibility negotiates as 3Gbps, but still only manages 180MB/s.

EDIT: Damn, I was certain I had the newest BIOS already. An update solved it. Oh well.

----------

