[rfc] Jaunty experience and SSDs...

Colin Watson cjwatson at ubuntu.com
Fri Jan 23 13:56:12 UTC 2009

On Fri, Jan 23, 2009 at 12:04:33AM +0000, Daniel J Blueman wrote:
> In order to maximise user experience thus performance, we need to
> ensure the disk partitions created on SSDs/USB flash drives/RAID
> arrays are 4KB (perhaps up to 128KB) aligned. There are considerable
> benefits with the flash/RAID controller opening half as many
> pages/stripes on small reads. This pays better with slower SSDs in eg
> netbooks.
> Patches have entered the upstream kernel to detect when drives are
> solid-state [1], though the dust hasn't settled on the interface.
> How acceptable would getting the userspace partitioner changes into
> Jaunty if proven to be stable and robust?

This seems like something that could be added as a libparted constraint
without *too* much pain. If and only if the corresponding kernel changes
go into the Ubuntu kernel (work with kernel-team at lists.ubuntu.com, I
think), I agree that we should change the partitioner too, and pass the
changes to parted upstream, although I would add that the changes need
to be reasonably simple and elegant as well as stable and robust; I only
like partitioner code that I can understand. :-)

The simplest way to do this appears to be:

  * change libparted/arch/linux.c to detect physical sector size based
    on information exposed by the kernel (physical sector size is a
    slightly odd term here, but it seems to produce the alignment
    results you're asking for)
  * ensure that this actually works properly in parted, noting that this
    feature is currently marked as experimental (see the
    ped_device_get_constraint function)
  * change parted_server in partman-base to use device constraints,
    since it doesn't currently
  * possibly change other libparted clients such as gparted and qtparted
    to use device constraints if they don't already (I haven't checked)

Do you know whether the kernel is likely to tell us the desired
alignment? It seems a little strange to infer an alignment simply from
the fact that the disk is non-rotational, and in your post you yourself
don't seem entirely sure of the desired size. I imagine it will vary
from device to device.

Are you willing to do this work? If you'd like to work with me or other
installer developers on IRC, #ubuntu-installer is open.


Colin Watson                                       [cjwatson at ubuntu.com]

More information about the Ubuntu-devel-discuss mailing list