Re: [PATCH] Time sliced CFQ #3

Ed Tomlinson
2004-12-06T23:31:21Z

Jens,

This works here. Hope you keep patching against mainline. I`ve
decided to track it till 2.6.10 comes out...

Thanks,

Ed

On Monday 06 December 2004 08:27, Jens Axboe wrote:
> On Mon, Dec 06 2004, Prakash K. Cheemplavam wrote:
> > Jens Axboe schrieb:
> > >On Mon, Dec 06 2004, Prakash K. Cheemplavam wrote:
> > >
> > >>Hi,
> > >>
> > >>this one crapped out on me, while having heavy disk activity. (updating
> > >>gentoo portage tree - rebuilding metadata of it). Unfortunately I
> > >>couldn't save the oops, as I had no hd access anymore and X would freeze
> > >>a little later...(and I don't want to risk my data a second time...)
> > >
> > >
> > >Did you save anything at all? Just the function of the EIP would be
> > >better than nothing.
> >
> > Nope, sorry. I hoped it would be in the logs, but it seems as new cfq
> > went havoc, hd access went dead. And I was a bit too nervous about my
> > data so that I didn't write it down by hand...
>
> It is really rare for the io scheduler to cause serious data screwups,
> thankfully. Often what will happen is that it will crash, but with
> everything written fine up to that point. So it's similar to a power
> loss, but the drive should get it's cache out on its own.
>
> > >Well hard to say anything qualified without an oops :/
> > >
> > >I'll try with PREEMPT here.
> >
> > If you are not able to reproduce, I will try it again on a spare
> > partition... Should access to zip drive stil be possible if hd's
> > io-scheduler is dead?
>
> Depends on where it died, really. But the chances are probably slim.
>
> If you feel like giving it another go, I've uploaded a new patch here:
>
> http://www.kernel.org/pub/linux/kernel/people/axboe/patches/v2.6/2.6.10-rc3/cfq-time-slices-6.gz
>
> Changes:
>
> - Increase async_rq slice significantly (from 8 to 128)
>
> - Fix accounting bug that prevented non-fs requests from working
> correctly. Things like cdrecord and cdda rippers would hang.
>
> - Add logic to check whether a given process is potentially runnable or
> not. We don't arm the slice idle timer if the process has exited or is
> not either running or about to be running.
>
> - TCQ fix: don't idle drive until last request comes in.
>
> - Fix a stall with exiting task holding the active queue. This should
> fix Helges problems, I hope.
>
> - Restore ->nr_requests on io scheduler switch
>
> - Kill ->pid from io_context, this seems to have been added with 'as'
> but never used by anyone.
>
>