Messages in this thread |  | | Date | Mon, 26 Nov 2001 15:40:03 -0800 | From | Andrew Morton <> | Subject | Re: 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/
|  |