[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Solid-State Disk, --no-atime

From: Thomas Schwinge
Subject: Solid-State Disk, --no-atime
Date: Sat, 1 Dec 2012 12:53:30 +0100
User-agent: Notmuch/0.9-101-g81dad07 (http://notmuchmail.org) Emacs/23.3.1 (i486-pc-linux-gnu)


I have put a solid-state disk into my GNU Hurd system.  It's a KingSpec
KSD-PA25.6-064MS, <http://www.kingspec.com/en/product_xx56.html>.  This
vendor's series seems to be about the only one available that has not
SATA but PATA connectivity, and is reasonably priced (I paid 70 EUR).  I
then had some "fun" ;-) with GNU Mach (see my recent email), and had some
more (see below), and here is some real-world benchmarking with a GCC
bootstrap build:

Old 30 GB HDD: »make«: 14.5 h, »make install«: 45 min.

SSD for root and data filesystems: »make«: 14 h, »make install«: 35 min.

SSD with --no-atime for root and data filesystems: »make«: 13.25 h, »make
install«: 35 min.

(Unfortunately I don't have data with --no-atime using the old HDD, and
don't feel like again changing the hardware setup to get these numbers.)

So, switching to a SSD does give a small performance boost, but not the
big one we had hoped for.  Using --no-atime improves this further.
Perhaps we should follow suit with the Linux kernel, and implement and
make default a »relatime« mount option.

Here is the additional Linux kernel patch that I intend to apply (in a
suitable form) to GNU Mach, which I guess doesn't need further

commit 602da297e293eb2cbd28dcdbbe247593a46a853a
Author: David S. Miller <davem@davemloft.net>
Date:   Wed Dec 2 21:58:33 2009 -0800

    ide: Increase WAIT_DRQ to accomodate some CF cards and SSD drives.
    Based upon a patch by Philippe De Muyter, and feedback from Mark
    Lord and Robert Hancock.
    As noted by Mark Lord, the outdated ATA1 spec specifies a 20msec
    timeout for setting DRQ but lots of common devices overshoot this.
    Signed-off-by: David S. Miller <davem@davemloft.net>

diff --git include/linux/ide.h include/linux/ide.h
index e4135d6..0ec6129 100644
--- include/linux/ide.h
+++ include/linux/ide.h
@@ -125,8 +125,8 @@ struct ide_io_ports {
  * Timeouts for various operations:
 enum {
-       /* spec allows up to 20ms */
-       WAIT_DRQ        = HZ / 10,      /* 100ms */
+       /* spec allows up to 20ms, but CF cards and SSD drives need more */
+       WAIT_DRQ        = 1 * HZ,       /* 1s */
        /* some laptops are very slow */
        WAIT_READY      = 5 * HZ,       /* 5s */
        /* should be less than 3ms (?), if all ATAPI CD is closed at boot */

Without the patch I would eventually hit some timeout, followed by a few
retries (that apparently don't get handled/completed properly), followed
by a literally endless loop of »marginal timeout«s
(linux/src/drivers/block/ide.c), and system lock-up.  Which may of course
be a bug in its own right, but I have no longer seen that once I
increased WAIT_DRQ.


Attachment: pgp1nyDYnYCZM.pgp
Description: PGP signature

reply via email to

[Prev in Thread] Current Thread [Next in Thread]