Re: preempt-timing-2.6.8-rc1

bert hubert
2004-07-13T15:00:57Z

On Tue, Jul 13, 2004 at 07:39:47AM -0700, William Lee Irwin III wrote:

> > 49ms non-preemptible critical section violated 1 ms preempt threshold
> > starting at snd_pcm_action_lock_irq+0x1b/0x1d0 [snd_pcm] and ending at
> > snd_pcm_action_lock_irq+0x65/0x1d0 [snd_pcm]

woa

> > 2) 49ms non-preemptible critical section violated 1 ms preempt threshold
> > starting at sys_ioctl+0x42/0x270 and ending at sys_ioctl+0xbd/0x270
> > 40-50 ms most of the time, 12 ms couple of times.
> > Let me now if you need those traces for some of these (I've built kernel
> > with 8K stacks).
>
> ioctl() is typically grossly inefficient and even involves the BKL.

Indeed - but 49ms is stunning and worthy of investigation. The interesting
thing is that sys_ioctl blankly locks the kernel, even if the systems below
it don't need it. Would be a big change to fix.

In this case, how about adding

printk(KERN_DEBUG "ioctl cmd=%d\n", cmd);

here in fs/ioctl.c:

unlock_kernel();
fput(filp);

out:
return error;
}

Or something else to instrument ioctl?

--
http://www.PowerDNS.com Open source, database driven DNS Software
http://lartc.org Linux Advanced Routing & Traffic Control HOWTO