"Matthew Wilcox, who led the discussion, started by noting that
Intel SSDs are able to handle a large number of operations in
parallel. The parallelism is so good, in fact, that there is really
little or no advantage in delaying operations. I/O requests should
be submitted immediately; the block I/O subsystem shouldn't even
attempt to merge adjacent requests. This message was diluted a bit
later on, but the core message is clear: the kernel should, when
driving an SSD, focus on getting out of the way and processing
operations as quickly as possible.
"It was asked: how do these drives work internally? This would
be nice to know; the better informed the kernel developers are, the
better they can do at driving the devices better. It seems, though,
that the firmware in these devices - the part that, for now, makes
Intel devices work better than most of the alternatives - is laden
with Valuable Intellectual Property, and not much information will
be forthcoming. Solid-state devices will be black boxes for the
foreseeable future.
"In any case, current-generation Intel SSDs are not the only
type of device that the kernel will have to work with. Drives will
differ greatly in the coming years. What the kernel really needs to
know is a few basic parameters: what kind of request alignment
works best, what request sizes are fastest, etc. It would be nice
if the drives could export this information to the operating
system. There is a mechanism by which this can be done, but current
drives are not making much information available."