From: Ingo Molnar <mingo@elte.hu>
To: Paul Davis <paul@linuxaudiosystems.com>
Cc: linux-kernel@vger.kernel.org, Lee Revell <rlrevell@joe-job.com>,
mark_h_johnson@raytheon.com, Bill Huey <bhuey@lnxw.com>,
Adam Heath <doogie@debian.org>,
Florian Schmidt <mista.tapas@gmx.net>,
Thomas Gleixner <tglx@linutronix.de>,
Michal Schmidt <xschmi00@stud.feec.vutbr.cz>,
Fernando Pablo Lopez-Lezcano <nando@ccrma.stanford.edu>,
Karsten Wiese <annabellesgarden@yahoo.de>,
jackit-devel <jackit-devel@lists.sourceforge.net>,
Rui Nuno Capela <rncbc@rncbc.org>
Subject: Re: [Fwd: Re: [patch] Real-Time Preemption, -RT-2.6.9-mm1-V0.4]
Date: Fri, 29 Oct 2004 10:59:43 +0200 [thread overview]
Message-ID: <20041029085943.GA1250@elte.hu> (raw)
In-Reply-To: <20041029080247.GC30400@elte.hu>
[-- Attachment #1: Type: text/plain, Size: 1618 bytes --]
* Ingo Molnar <mingo@elte.hu> wrote:
> Could the kernel help some more in debugging this? E.g. if the Jackd
> SCHED_FIFO thread (after it has started up) can never legitimately
> reschedule except via poll(), i could try to put in a syscall hack in
> where in the Jackd code you could call say gettimeofday(0,3) to turn
> on 'do not reschedule' mode, and call gettimeofday(0,4) to turn it
> off. If Jackd reschedules while in 'do not reschedule' mode then the
> scheduler code will detect this and will print out the offending
> user-space EIP and a stacktrace. [and will turn off 'do-not schedule'
> mode.]
i've implemented this feature and have put it into -RT-V0.5.5 which can
be downloaded from the usual place:
http://redhat.com/~mingo/realtime-preempt/
i've attached a simple testcase showing how to use it. When running the
testcode on a -V0.5.5 kernel it gives:
saturn:~> ./rt-atomic
testing atomic mode functionality.
ok, kernel supports atomic mode.
atomic mode is now off - doing sleep(), should succeed:
turning atomic mode on.
doing getppid() syscall - should succeed.
doing sleep() syscall - should abort!
User defined signal 1
the kernel sends SIGUSR1 when it detects illegal scheduling. (change the
SIGUSR1 in the patch if you want another signal.)
could someone with more Jackd experience than me add this to the Jackd
code and check whether and where it triggers? I'd suggest to do
something like around the poll() call:
atomic_off();
poll();
atomic_on();
and add an atomic_off() to the Jackd shutdown handler (or any codepath
that is legitimately allowed to schedule).
Ingo
[-- Attachment #2: rt-atomic.c --]
[-- Type: text/plain, Size: 746 bytes --]
#include <stdio.h>
#include <stdlib.h>
#include <sys/time.h>
#include <unistd.h>
#define atomic_on() \
do { \
if (gettimeofday((void *)1,(void *)1)) { \
printf("failed: wrong kernel?\n"); \
abort(); \
} \
} while (0)
#define atomic_off() gettimeofday((void *)1,(void *)0)
int main(void)
{
printf("testing atomic mode functionality.\n");
atomic_on();
atomic_off();
printf("ok, kernel supports atomic mode.\n");
printf("atomic mode is now off - doing sleep(), should succeed:\n");
sleep(1);
printf("turning atomic mode on.\n");
atomic_on();
printf("doing getppid() syscall - should succeed.\n");
getppid();
printf("doing sleep() syscall - should abort!\n");
sleep(1);
printf("huh? got back and no signal?\n");
return 0;
}
next prev parent reply other threads:[~2004-10-29 8:58 UTC|newest]
Thread overview: 152+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <1099008264.4199.4.camel@krustophenia.net>
2004-10-29 0:57 ` [Fwd: Re: [patch] Real-Time Preemption, -RT-2.6.9-mm1-V0.4] Paul Davis
2004-10-29 2:10 ` Lee Revell
2004-10-29 8:02 ` Ingo Molnar
2004-10-29 8:21 ` Thomas Gleixner
2004-10-29 9:09 ` Ingo Molnar
2004-10-29 11:01 ` Paul Davis
2004-10-29 11:14 ` Ingo Molnar
2004-10-29 11:26 ` Paul Davis
2004-10-29 11:36 ` Ingo Molnar
2004-10-29 13:35 ` Paul Davis
2004-10-29 13:55 ` Ingo Molnar
2004-10-29 14:03 ` Paul Davis
2004-10-29 14:15 ` Ingo Molnar
2004-10-29 16:14 ` Ingo Molnar
2004-10-29 16:21 ` Ingo Molnar
2004-10-29 16:32 ` Florian Schmidt
2004-10-29 16:23 ` Ingo Molnar
2004-10-29 16:31 ` Ingo Molnar
2004-10-29 16:37 ` Ingo Molnar
2004-10-29 16:53 ` Ingo Molnar
2004-10-29 17:16 ` Florian Schmidt
2004-10-29 17:02 ` Ingo Molnar
2004-10-29 17:09 ` Ingo Molnar
2004-10-29 17:16 ` Ingo Molnar
2004-10-29 17:33 ` Florian Schmidt
2004-10-29 17:21 ` Ingo Molnar
2004-10-29 17:22 ` Ingo Molnar
2004-10-29 18:36 ` Florian Schmidt
2004-10-29 20:33 ` Ingo Molnar
2004-10-29 20:51 ` Paul Davis
2004-10-29 21:11 ` Ingo Molnar
2004-10-30 1:06 ` Paul Davis
2004-10-30 11:34 ` Ingo Molnar
2004-11-26 17:16 ` [Jackit-devel] " Jack O'Quin
2004-10-29 20:42 ` Ingo Molnar
2004-10-29 21:31 ` Florian Schmidt
2004-10-29 21:25 ` Ingo Molnar
2004-10-29 21:42 ` Lee Revell
2004-10-29 21:46 ` Ingo Molnar
2004-10-29 21:53 ` Lee Revell
2004-10-29 23:12 ` Lee Revell
2004-10-30 11:58 ` Ingo Molnar
2004-10-30 17:49 ` Lee Revell
2004-10-30 19:17 ` Ingo Molnar
2004-10-30 19:43 ` Lee Revell
2004-10-30 19:47 ` Florian Schmidt
2004-10-30 19:37 ` Ingo Molnar
2004-10-30 19:57 ` Florian Schmidt
2004-10-30 19:52 ` Lee Revell
2004-10-30 20:15 ` Florian Schmidt
2004-10-30 20:26 ` Lee Revell
2004-10-30 21:13 ` Florian Schmidt
2004-10-30 21:26 ` Lee Revell
2004-10-30 21:38 ` Florian Schmidt
2004-10-30 23:12 ` Lee Revell
2004-10-31 12:07 ` Ingo Molnar
2004-10-31 12:48 ` Ingo Molnar
2004-10-31 12:54 ` Lee Revell
2004-10-31 13:13 ` Ingo Molnar
2004-10-31 13:40 ` Ingo Molnar
2004-10-31 15:20 ` Florian Schmidt
2004-10-31 15:59 ` Florian Schmidt
2004-10-31 19:06 ` Florian Schmidt
2004-11-01 13:42 ` Ingo Molnar
2004-11-01 13:53 ` Ingo Molnar
2004-11-01 14:06 ` Ingo Molnar
2004-11-01 15:47 ` Thomas Gleixner
2004-11-01 17:55 ` Lee Revell
2004-11-01 17:58 ` Thomas Gleixner
2004-11-01 18:43 ` Ingo Molnar
2004-11-01 18:46 ` Ingo Molnar
2004-11-01 22:30 ` Florian Schmidt
2004-11-01 22:40 ` Bill Huey
2004-11-01 22:51 ` Florian Schmidt
2004-11-01 22:59 ` Bill Huey
2004-11-02 8:02 ` Ingo Molnar
2004-11-02 8:07 ` Ingo Molnar
2004-11-02 15:06 ` [patch] Real-Time Preemption, -RT-2.6.9-mm1-V0.6.8 Ingo Molnar
2004-11-02 17:52 ` K.R. Foley
2004-11-02 19:37 ` Ingo Molnar
2004-11-02 19:40 ` K.R. Foley
2004-11-02 19:24 ` Norberto Bensa
2004-11-02 19:35 ` Ingo Molnar
2004-11-02 23:09 ` Karsten Wiese
2004-11-03 1:12 ` Ingo Molnar
2004-11-03 10:15 ` Karsten Wiese
2004-11-01 17:04 ` [Fwd: Re: [patch] Real-Time Preemption, -RT-2.6.9-mm1-V0.4] Rui Nuno Capela
2004-11-01 17:08 ` Thomas Gleixner
2004-11-01 20:00 ` Rui Nuno Capela
2004-11-01 17:24 ` K.R. Foley
2004-11-02 0:22 ` Michal Schmidt
2004-11-01 13:54 ` Paul Davis
2004-11-01 14:30 ` Ingo Molnar
2004-11-01 19:30 ` Paul Davis
2004-11-02 8:17 ` Ingo Molnar
2004-11-01 14:03 ` Florian Schmidt
2004-11-01 14:12 ` Ingo Molnar
2004-11-01 15:29 ` K.R. Foley
2004-11-02 23:41 ` [Fwd: Re: [patch] Real-Time Preemption, -RT-2.6.9-mm1-V0.6] Remi Colinet
2004-11-03 1:04 ` Remi Colinet
2004-11-01 11:55 ` [Fwd: Re: [patch] Real-Time Preemption, -RT-2.6.9-mm1-V0.4] Ingo Molnar
2004-11-01 12:37 ` Ingo Molnar
2004-11-01 12:35 ` Thomas Gleixner
2004-11-01 12:51 ` Ingo Molnar
2004-11-01 13:15 ` Ingo Molnar
2004-11-01 13:40 ` Florian Schmidt
2004-11-01 13:48 ` Ingo Molnar
2004-11-01 16:47 ` Rui Nuno Capela
2004-10-31 23:16 ` Michal Schmidt
2004-11-01 0:05 ` Magnus Määttä
2004-10-31 13:11 ` Ingo Molnar
2004-10-31 14:11 ` Florian Schmidt
2004-10-31 13:22 ` Ingo Molnar
2004-10-31 14:28 ` Florian Schmidt
2004-10-31 13:30 ` Ingo Molnar
2004-10-31 21:58 ` Rui Nuno Capela
2004-10-31 22:11 ` K.R. Foley
2004-10-31 2:20 ` Lee Revell
2004-10-31 10:00 ` Florian Schmidt
2004-10-31 12:09 ` Lee Revell
2004-10-31 12:19 ` Ingo Molnar
2004-10-31 12:35 ` Lee Revell
2004-10-31 12:39 ` Ingo Molnar
2004-10-30 20:05 ` Lee Revell
2004-10-30 20:29 ` Florian Schmidt
2004-10-30 0:15 ` Lee Revell
2004-10-29 22:31 ` Florian Schmidt
2004-10-29 22:50 ` Florian Schmidt
2004-10-30 13:15 ` Ingo Molnar
2004-10-30 17:53 ` Florian Schmidt
2004-10-30 3:36 ` Lee Revell
2004-10-30 3:48 ` Lee Revell
2004-10-30 11:16 ` Ingo Molnar
2004-10-30 17:44 ` Lee Revell
2004-10-30 11:28 ` Ingo Molnar
2004-10-30 11:33 ` Ingo Molnar
2004-10-30 13:16 ` Florian Schmidt
2004-10-30 1:10 ` Lee Revell
2004-10-30 1:15 ` Lee Revell
2004-10-29 8:59 ` Ingo Molnar [this message]
2004-10-29 9:29 ` Ingo Molnar
2004-10-29 13:48 ` Ingo Molnar
2004-10-29 14:19 ` Paul Davis
2004-10-29 14:27 ` Ingo Molnar
2004-10-29 14:31 ` Ingo Molnar
2004-10-29 14:38 ` Paul Davis
2004-10-29 19:33 ` Lee Revell
2004-10-29 19:35 ` Thomas Gleixner
2004-11-01 14:32 Mark_H_Johnson
2004-11-01 14:36 ` Ingo Molnar
-- strict thread matches above, loose matches on Subject: below --
2004-11-01 16:34 Mark_H_Johnson
2004-11-01 18:48 ` Ingo Molnar
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20041029085943.GA1250@elte.hu \
--to=mingo@elte.hu \
--cc=annabellesgarden@yahoo.de \
--cc=bhuey@lnxw.com \
--cc=doogie@debian.org \
--cc=jackit-devel@lists.sourceforge.net \
--cc=linux-kernel@vger.kernel.org \
--cc=mark_h_johnson@raytheon.com \
--cc=mista.tapas@gmx.net \
--cc=nando@ccrma.stanford.edu \
--cc=paul@linuxaudiosystems.com \
--cc=rlrevell@joe-job.com \
--cc=rncbc@rncbc.org \
--cc=tglx@linutronix.de \
--cc=xschmi00@stud.feec.vutbr.cz \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox