linuxppc-dev.lists.ozlabs.org archive mirror
 help / color / mirror / Atom feed
From: Ben Weintraub <benwei@veriwave.com>
To: linuxppc-embedded@ozlabs.org
Subject: Realtime preemption patch on PPC
Date: Thu, 10 Aug 2006 16:04:32 -0700	[thread overview]
Message-ID: <1155251072.5950.80.camel@localhost> (raw)

Howdy,

I'm wondering if anyone has had success getting Ingo Molnar's realtime
preemption patch (the one here:
http://people.redhat.com/mingo/realtime-preempt/ ) working on the ppc
arch.  

I'm working with patch-2.6.17-rt8 (the latest) and linux-2.6.17.  The
realtime-preempt patch seems to include the generic timeofday patch, but
with no support for the ppc arch, only powerpc, so I've hacked in
support for ppc by basically replicating the powerpc arch-specific stuff
found here:
http://sr71.net/~jstultz/tod/archive/linux-2.6.17-rc3_timekeeping_C2/broken-out/linux-2.6.17-rc3_timeofday-arch-ppc_C2.patch

I can attach my patch if anyone would like, but for all I know it could
be wildly inaccurate.  

Anyhow, when I boot on an MPC8555 with my hack, I get an endless stream
of:

BUG: sleeping function called from invalid context init(1) at
arch/powerpc/math-emu/math.c:226
in_atomic():0 [00000000], irqs_disabled():1
Call Trace:
[A0BB3E90] [A000934C] show_stack+0x48/0x194 (unreliable)
[A0BB3EC0] [A001B7DC] __might_sleep+0xe8/0xf4
[A0BB3EE0] [A00136C0] do_mathemu+0x30/0x8c8
[A0BB3F00] [A00036AC] program_check_exception+0x1ac/0x514
[A0BB3F40] [A0002A08] ret_from_except_full+0x0/0x4c

Line 226 in arch/powerpc/math-emu/math.c is part of the do_mathemu()
function, and contains a call to get_user(), which calls
__might_sleep(), causing this problem.  

I did find this message in the LKML archives describing a very similar
problem:
http://lkml.org/lkml/2006/2/23/312

And so tried putting a call to local_irq_enable() before the call to
do_mathemu() in program_check_excpetion(), but this causes a hard lockup
with no messages printed when I try to bring up my network interface.  I
assume this means I've done something Very Bad with interrupts by adding
in local_irq_enable() at the wrong spot.  I also tried adding it at the
exact same spot as the patch given by Paul in his reply, but in this
case I still get the endless stream of BUG messages.

Can anyone offer some guidance or advice?

Thanks so much,
Ben 

             reply	other threads:[~2006-08-10 23:34 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2006-08-10 23:04 Ben Weintraub [this message]
2006-08-11  1:38 ` Realtime preemption patch on PPC Lee Revell
2006-08-11 14:38 ` Brent Cook
2006-08-11 15:54   ` Kim Phillips
2006-08-11 22:29   ` Roger Larsson
  -- strict thread matches above, loose matches on Subject: below --
2006-08-11  0:55 Ben Weintraub
2005-01-04 21:26 realtime " Tim Bird

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=1155251072.5950.80.camel@localhost \
    --to=benwei@veriwave.com \
    --cc=linuxppc-embedded@ozlabs.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;
as well as URLs for NNTP newsgroup(s).