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/