On Sun, Nov 19, 2006 at 06:36:03PM +0100, Dirk Behme wrote:
> playing with patch-2.6.19-rc6-rt3 on an embedded TI OMAP 
> based ARM926 system I encountered two issues.
> 
> First, I got the system booting and even playing MP3 via NFS 
> using madplay on ALSA works :)
> 
> But after madplay stops, I got an Oops:
> 
> kernel BUG at kernel/rtmutex.c:672!
> Unable to handle kernel NULL pointer dereference at virtual
> address 00000000
> pgd = c0004000
> [00000000] *pgd=00000000
> Internal error: Oops: 817 [#1]
> PC is at __bug+0x44/0x58
> LR is at rt_up+0x4c/0x6c
> ...
> 
> Any ideas what's wrong here? 

You snipped the stack trace here, which could offer some information
about the call path. Could you post it?

> Second, I tried to compile cyclictest 0.11. Seems that for 
> me it isn't so easy as described on [1] "Get the latest 
> source tarball, untar into a directory of your choice and 
> run make in the source directory.":
> 
> ~/cyclictest> make
> arm-linux-gcc -Wall -O2  -lpthread -lrt cyclictest.c -o 

Sidenote: these days it doesn't really make sense any more to have
something like an arm-linux-gcc, as you can decide between different
cores (v4, v4t, v5, ...), different floating/fixed point models (hard
fpa, hard vfp, soft vfp, maverick crunch, iwmmxt, ...) etc. 

> cyclictest
> cyclictest.c: In function 'timerthread':
> cyclictest.c:153: error: 'SIGEV_THREAD_ID' undeclared (first 
> use in this function)

Hmm, it looks like SIGEV_THREAD_ID is not defined in the POSIX standard.
Maybe tglx can comment on where this comes from. 

Nevertheless, for me it is defined in bits/siginfo.h, both on debian
unstable (x86) and in our self built gccs; checked with

        arm-v4t-linux-gnueabi/gcc-4.2-20061031-glibc-2.5
        arm-v4t-linux-gnueabi/gcc-4.1.1-glibc-2.5

The include file comes in correctly by including signals.h and is a
glibc header file.

> cyclictest.c:318: error: 'CLOCK_MONOTONIC' undeclared here 
> (not in a function)

The POSIX manpage for timer_create() says that you have to define
signal.h and time.h, the latter one pulls in bits/time.h, which contains
CLOCK_MONOTONIC. This is also a glibc header file.

Maybe your glibc is too old?

> Looking into kernel headers, SIGEV_THREAD_ID and 
> CLOCK_MONOTONIC are defined by kernels include files, but 
> seems that they are not included here correctly. Defining 
> them manually in cyclictest.c then results in
> 
> cyclictest.c:158: error: 'union <anonymous>' has no member 
> named '_tid'
> 
> And here, I stopped because my _sigev_un in 
> include/bits/siginfo.h really contains no _tid:
> 
>   struct
>         {
>           void (*_function) (sigval_t);       /* Function to start.  */
>           void *_attribute;                   /* Really pthread_attr_t.  */
>         } _sigev_thread;
>       } _sigev_un;

It contains _tid in later glibcs.

> I use a gcc 4.1.0 toolchain built with crosstool with glibc-2.3.2:

I assume glibc-2.3.2 is too old.

Robert 
-- 
 Dipl.-Ing. Robert Schwebel | http://www.pengutronix.de
 Pengutronix - Linux Solutions for Science and Industry
   Handelsregister:  Amtsgericht Hildesheim, HRA 2686
     Hannoversche Str. 2, 31134 Hildesheim, Germany
   Phone: +49-5121-206917-0 |  Fax: +49-5121-206917-9

-
To unsubscribe from this list: send the line "unsubscribe linux-rt-users" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to