Re: preempt timing violations

From: Ingo Molnar
Date: Mon Jul 26 2004 - 03:51:08 EST



* Lee Revell <rlrevell@xxxxxxxxxxx> wrote:

> Latency with 2.6.8-rc2 + voluntary-preempt-I4 is the best so far.
> After extended testing there only seem to be a few hot spots. In
> several minutes I saw an 11ms violation, a 14ms violation, and several
> 2ms violations.
>
> get_user_pages() is much better in 2.6.8-rc1-mm1 than 2.6.8-rc2. Is
> there any chance of getting the fix into mainline?

in -J3 i've added a cond_resched to the latency-generating point of
get_user_pages(). (The biggest latencies happen via
make_pages_present(), which gets triggered by mlockall()/MAP_LOCKED.)

> 2ms non-preemptible critical section violated 1 ms preempt threshold
> starting at unmap_vmas+0x1ff/0x210 and ending at
> unmap_vmas+0x1f5/0x210

this is the normal sys_exit()->exit_mmap()->unmap_vmas() path. It's
weird that it generated a 2ms latency. What are the values of
voluntary_preemption and kernel_preemption on your current kernel? With
a 2:0 setting we ought to have a reschedule point every 32 pages. Do
you know which application triggers this latency and is it easy to
reproduce?

> 14ms non-preemptible critical section violated 1 ms preempt threshold
> starting at tty_write+0x1b6/0x290 and ending at schedule+0x2fd/0x5b0

does this one trigger when you are using the VGA console? (or fbcon)?

it's not immediately obvious to me precisely where this latency comes
from, it would be nice to know how to reproduce it.

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