Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 3 Apr 2011 18:46:08 -0700 (PDT)
From:      Matthew Dillon <dillon@apollo.backplane.com>
To:        freebsd-stable@freebsd.org
Subject:   Re: Constant rebooting after power loss 
Message-ID:  <201104040146.p341k8Lp030400@apollo.backplane.com>
References:  <20110403232937.E14CA1CC0C@ptavv.es.net>

next in thread | previous in thread | raw e-mail | index | archive | help
:> Do you know if that's changed at all with NCQ on modern SATA drives? 
:> I've seen people commenting that using tags recovers most, if not all, 
:> of the performance lost by disabling the write cache.
:...

    I've never tried that combination.  Theoretically the 32 tags SATA
    supports would just barely be enough for sequential write service
    loads but I really doubt it would be enough for mixed service loads
    and you would be blowing up your read performance to achieve even
    that due to the length of time the tags stay busy with writes.

    With some driver massaging, such as partitioning the tag space
    and dedicating a specific number of tags for writing, read performance
    could probably be maintained but write performance (with caches off)
    would definitely still suffer.  It might not horrible, though.

    One advantage of turning off the drive's write cache is that it
    would be possible for the OS to control write interference vs read
    loads, which is impossible to do with caches turned on.  That is,
    with caches turned on your writes are instantly acknowledged until
    the drive's own caches exceed their dirty limits and by that time
    the drive is juggling so much dirty data that we (the OS/driver)
    have no control over read vs write performance.  This is why it is
    so blasted difficult to write I/O schedulers in OS's that actually
    work.

    With caches disabled the OS/driver would have a great deal more control
    over read vs write performance.  I/O scheduling would become viable.
    But to really make it work well I think we would need 64-128 tags
    (or more) to be able to cover multiple writing zones.  With only 32 tags
    the drive's zone cache will be defeated.

    It would be a very interesting test.  I can't immediately dismiss tagged
    I/O with write caches disabled.

						-Matt




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201104040146.p341k8Lp030400>