public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: Florian Schmidt <mista.tapas@gmx.net>
To: Florian Schmidt <mista.tapas@gmx.net>
Cc: "Jack O'Quin" <joq@io.com>, Andrew Burgess <aab@cichlid.com>,
	linux-kernel@vger.kernel.org, jackit-devel@lists.sourceforge.net
Subject: Re: [Jackit-devel] Re: Real-Time Preemption, -RT-2.6.10-rc2-mm3-V0.7.31-19
Date: Thu, 2 Dec 2004 18:09:10 +0100	[thread overview]
Message-ID: <20041202180910.0d77cbbb@mango.fruits.de> (raw)
In-Reply-To: <20041202175756.0e50f101@mango.fruits.de>

On Thu, 2 Dec 2004 17:57:56 +0100
Florian Schmidt <mista.tapas@gmx.net> wrote:

> On 02 Dec 2004 10:26:55 -0600
> "Jack O'Quin" <joq@io.com> wrote:
> 
> > 
> > > On Thu, 2 Dec 2004 07:46:20 -0800
> > > Andrew Burgess <aab@cichlid.com> wrote:
> > > > On further thought, I suppose libjack could install a SIGUSR2 handler and
> > > > have that call abort for all the rt client threads. Still no client mods
> > > > needed, only an RT-aware libjack.
> > 
> > Florian Schmidt <mista.tapas@gmx.net> writes:
> > > right. Or instead of aborting jackd might print a debug output (like
> > > "client foo violated RT constraints"). 
> > 
> > Libjack cannot assume the client has no SIGUSR2 handler of its own.
> 
> i see..
> 
> > It would be wonderful to have a reliable mechanism for debugging them.
> 
> I suppose instead of catching the signal the user might just monitor the
> syslog. I'm not sure there's printk's triggered by thisalready , but i'm
> sure if not, ingo might add them. So a trivial patch for jackd would
> probably look like this:
> 
> --- libjack/client.c.orig       2004-12-02 17:55:04.000000000 +0100
> +++ libjack/client.c    2004-12-02 17:56:23.000000000 +0100
> @@ -1238,6 +1238,9 @@
>                         if (control->sync_cb)
>                                 jack_call_sync_client (client);
>  
> +                       // enable atomicity check for RP kernels
> +                       gettimeofday(1,1);
> +
>                         if (control->process) {
>                                 if (control->process (control->nframes,
>                                                       control->process_arg)
> @@ -1247,7 +1250,10 @@
>                         } else {
>                                 control->state = Finished;
>                         }
> -
> +
> +                       // disable atomicity check
> +                       gettimeofday(0,1);
> +
>                         if (control->timebase_cb)
>                                 jack_call_timebase_master (client);
>  

Well, i do get syslog output with this patch like this:

Dec  2 18:01:11 mango kernel: jack_test:22645 userspace BUG: scheduling in user-atomic context!
Dec  2 18:01:11 mango kernel:  [<c02a38b6>] schedule+0x76/0x130 (8)
Dec  2 18:01:11 mango kernel:  [<c02a44c5>] schedule_timeout+0x85/0xe0 (36)
Dec  2 18:01:11 mango kernel:  [<c016677f>] do_pollfd+0x4f/0x90 (48)
Dec  2 18:01:11 mango kernel:  [<c011ceb0>] process_timeout+0x0/0x10 (8)
Dec  2 18:01:11 mango kernel:  [<c016686a>] do_poll+0xaa/0xd0 (20)
Dec  2 18:01:11 mango kernel:  [<c01669e2>] sys_poll+0x152/0x230 (48)
Dec  2 18:01:11 mango kernel:  [<c0165db0>] __pollwait+0x0/0xd0 (36)
Dec  2 18:01:11 mango kernel:  [<c01025cb>] syscall_call+0x7/0xb (32)

even if the client's process callback is a noop (except for returning
0). Hmm, i must have missed something in jackd's source. i thought
control->process() directly calls the clients process callback..

hmm..

  parent reply	other threads:[~2004-12-02 17:06 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2004-12-02 15:46 Real-Time Preemption, -RT-2.6.10-rc2-mm3-V0.7.31-19 Andrew Burgess
2004-12-02 16:03 ` [Jackit-devel] " Florian Schmidt
2004-12-02 16:26   ` Jack O'Quin
2004-12-02 16:57     ` Florian Schmidt
2004-12-02 17:07       ` Jack O'Quin
2004-12-02 20:07         ` Lee Revell
2004-12-02 20:48           ` Jack O'Quin
2004-12-02 17:09       ` Florian Schmidt [this message]
2004-12-02 17:32         ` Jack O'Quin
2004-12-02 20:03           ` Florian Schmidt
2004-12-02 21:10             ` Florian Schmidt
2004-12-02 22:34 ` Bill Huey

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=20041202180910.0d77cbbb@mango.fruits.de \
    --to=mista.tapas@gmx.net \
    --cc=aab@cichlid.com \
    --cc=jackit-devel@lists.sourceforge.net \
    --cc=joq@io.com \
    --cc=linux-kernel@vger.kernel.org \
    /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