Messages in this thread Patch in this message | | | Date | Fri, 29 Oct 2004 22:42:20 +0200 | From | Ingo Molnar <> | Subject | Re: [Fwd: Re: [patch] Real-Time Preemption, -RT-2.6.9-mm1-V0.4] |
| |
* Florian Schmidt <mista.tapas@gmx.net> wrote:
> > > fs.h chunk went missing ... uploading -V0.5.14 in a minute. > > > > done. > > compiles and boots fine. no observable change in xrun behaviour > though.
do you compile jackd from sources? If yes then could you try the patch below? With this added, the kernel will produce a stackdump whenever jackd does an 'illegal' sleep.
Also, could you do a small modification to kernel/sched.c and remove this line:
send_sig(SIGUSR1, current, 1);
just to make it easier to get Jack up and running. (by default an atomicity violation triggers a signal to make it easier to debug it in userspace, but i suspect there will be alot of such violations so jackd would stop all the time.)
Ingo
--- jack-audio-connection-kit-0.99.0/drivers/alsa/alsa_driver.c.orig +++ jack-audio-connection-kit-0.99.0/drivers/alsa/alsa_driver.c @@ -1161,6 +1161,7 @@ alsa_driver_wait (alsa_driver_t *driver, unsigned int p_timed_out, c_timed_out; unsigned int ci = 0; unsigned int nfds; + int ret; nfds = 0; @@ -1194,7 +1195,11 @@ alsa_driver_wait (alsa_driver_t *driver, poll_enter = jack_get_microseconds (); - if (poll (driver->pfd, nfds, driver->poll_timeout) < 0) { + gettimeofday((void *)1,(void *)0); // atomic off + ret = poll (driver->pfd, nfds, driver->poll_timeout); + gettimeofday((void *)1,(void *)1); // atomic on + + if (ret < 0) { if (errno == EINTR) { printf ("poll interrupt\n"); - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |