lkml.org 
[lkml]   [2001]   [Nov]   [26]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: ext3: kjournald and spun-down disks
    Daniel Kobras wrote:
    >
    > On Fri, Nov 23, 2001 at 05:25:46PM -0800, Andrew Morton wrote:
    > > Also, if we had appropriate hooks into the request layer, we could detect
    > > when the disk was being spun up for a read, and opporunistically flush
    > > out any pending writes.
    >
    > Actually you can't. SCSI spinup code isn't very useful anyway, and IDE disks
    > mostly handle spinup themselves. The kernel has too issue a reset to get a
    > disk back alive from sleep mode, but revival from standby doesn't involve
    > the kernel at all. When using the disk's internal timer, it isn't involved in
    > spindown either. Teaching the request layer about disk state might therefore
    > turn out to become rather messy, I suspect.

    Much simpler approach:

    if (we're about to read from the disk) {
    if (we have dirty data which is > 10 seconds old) {
    write_it_now();
    }
    }


    > > Tell me if this is joyful:
    > [...]
    > > - transaction->t_expires = jiffies + journal->j_commit_interval;
    > > + transaction->t_expires = jiffies + dirty_buffer_flush_interval();
    >
    > This change doesn't take care of kupdated's most interesting feature, i.e.
    > that you can entirely stop it (with a flush interval of zero and/or a
    > SIGSTOP).

    yup.

    > Now, if kjournald honoured SIGSTOP/SIGCONT, I could teach noflushd
    > to handle the spindown issue in userland. Uh, at least for one small detail:
    > Is there a way to tell which kjournald process is associated to which
    > partition? A fake cmdline, or an fd to the partition's device node that
    > shows up in /proc/<pid>/fd would indeed be quite helpful.

    Andreas has a patch which puts the device major/minor into kjournald's
    process name.

    Simply setting the journal timer to infinity happens to work out OK.
    Commits are triggered by kupdate.

    This is because kupdate's superblock writeout runs a commit. Because
    ext3 is unable to distinguish it from a sys_sync(). Sigh.

    -
    -
    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to majordomo@vger.kernel.org
    More majordomo info at http://vger.kernel.org/majordomo-info.html
    Please read the FAQ at http://www.tux.org/lkml/

    \
     
     \ /
      Last update: 2005-03-22 13:13    [W:7.530 / U:0.164 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site