[ltp] SSDs and AHCI?

Theodore Tso linux-thinkpad@linux-thinkpad.org
Tue, 23 Jun 2009 11:59:43 -0400


On Tue, Jun 23, 2009 at 03:09:45PM +0100, Richard Neill wrote:
> Dear All,
>
> I'm trying to decide whether to run my SSD (an OCZ core 2) with the SATA  
> chip set to AHCI or Compatibility mode.
>
> OCZ recommend using compatibility mode (they point out that AHCI and  
> native command queuing is irrelevant for a solid state disk, and it can  
> make the performance worse.)

That's very dependent on the SSD.  The Intel X25-M and X25-E SSD's can
write upto ten flash chips in parallel, so it can use NCQ to great
advantage.  This is a problem on the current Lenovo X-series Ultrabay
slots, which does not support NCQ --- and you can see a significant
difference in performance depending on whether the Intel SSD is in the
Ultrabay or in the primary SATA driver slot.  (Funny story, I was at
Usenix ATC last week, and there were some researchers who were
wondering why they had such crap performance out of their SSD during
one of the breaks; I turned around and said "Intel SSD?  Lenovo
Ultrabay slot?  Well, *there*'s your problem".  :-)

As far as OCZ Core 2 is concerned, it's using two JMicron controller,
but because the previous generation of JMicron-based SSD's had a
average latency of 532ms and a maximum latency of 2042ms (that's
right, two *seconds) when writing to random 4k sectors, the OCZ Core 2
and other dual JMicron-based SSD's are doing RAID inside SSD to try to
bring the latency down --- so the OCZ Core 2 has a average latency
366ms and a max latency of 1168 ms for the same IOmeter random 4k
write benchmark.  So the OCZ Core 2 has two controllers, but they are
put to work in parallel to avoid some truly loathsome random write
latencies, and are able to achieve merely horrid write latencies
instead.  But as a result, the two flash controllers on the OCZ Core 2
can only work on a single request a time (and sometimes the poor
darlings still take a full second to write a 4k block).  So for the
OCZ Core 2, sure, NCQ isn't going to make a difference at all.

My recommendation would be (assuming you are cost constrained) to sell
the OCZ Core 2 on ebay and buy one of the OCZ Vertex SSD.  OCZ still
seems to have trouble with AHCI; there are reports that with the OCZ
Vertex, depending on the chipset, AHCI being enable can cause problems
with the Vertex being recognized or being flashed to update its
firmware.  It seems that if it works, though, AHCI won't degrade the
performance of the Vertex (as it apparently can do with the OCZ Core
SSD's.  However, the OCZ Vertex has much better random write latencies
compared to the OCZ Core.  It's still not as good as the Intel SSD's,
but it's a lot cheaper; so for people who are cost constrained the OCZ
Vertex seems to be a good choice.

Regards,

					- Ted