Re: [patch] preempt-timing-on-2.6.8-rc2-O2

Ingo Molnar
2004-08-02T10:39:11Z

* William Lee Irwin III <wli@holomorphy.com> wrote:

> On Mon, Aug 02, 2004 at 12:08:15PM +0200, Ingo Molnar wrote:
> > i've uploaded a new version of the patch, this solves a problem when
> > using a smaller than 1000 usecs threshold: idle time got accounted as
> > delay too which flooded the log. The new patch makes idle=poll the
> > default and that function calls touch_preempt_timing().
>
> Sorry about not updating things, but there's also another bug, which
> is that touch_preempt_timing() forgets to check if the threshold has
> been violated in the interim.

i've re-uploaded the -O2 patch with this fixed:

http://redhat.com/~mingo/voluntary-preempt/preempt-timing-on-2.6.8-rc2-O2

but i'm still seeing some latencies:

(kjournald/189): 997us non-preemptible critical section violated 100 us
preempt threshold starting at journal_commit_transaction+0x642/0x2b10
and ending at journal_commit_transaction+0x24ce/0x2b10

[<c0105d7e>] dump_stack+0x1e/0x30
[<c011ad0f>] dec_preempt_count+0x3f/0x50
[<c01dfd3e>] journal_commit_transaction+0x24ce/0x2b10
[<c01e3bf4>] kjournald+0x1a4/0x710
[<c0102765>] kernel_thread_helper+0x5/0x10

these should not happen with vp=3 and max_sectors=16. Could you
double-check the patch above, does it have any other timing thinko?

Ingo