Re: [PATCH] Instrumenting high latency
From: Andrew Morton
Date: Mon Jul 12 2004 - 02:38:05 EST
Con Kolivas <kernel@xxxxxxxxxxx> wrote:
>
> He hacked
> together this simple patch which times periods according to the preempt
> count.
OK, small problem. We have code which does, effectively,
if (need_resched()) {
drop_the_lock();
schedule();
grab_the_lock();
}
so if need_resched() stays false then this will hold the lock for a long
time and bogus reports are generated:
46ms non-preemptible critical section violated 1 ms preempt threshold starting at exit_mmap+0x26/0x188 and ending at exit_mmap+0x154/0x188
To fix that you need to generate high scheduling pressure so that
need_resched() is frequently true. On all CPUs. Modify realfeel to pin
itself to each CPU, or something like that.
This rather decreases the patch's usefulness.
The way I normally do this stuff is with
http://www.zip.com.au/~akpm/linux/patches/stuff/rtc-debug.patch
and `amlat', from http://www.zip.com.au/~akpm/linux/amlat.tar.gz
It _might_ be sufficient to redefine need_resched() to just return 1 all
the time. If that causes the kernel to livelock then we need to fix that
up anyway.
-
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/