sp tests with MP enabled fails

Joel Sherrill joel.sherrill at oarcorp.com
Mon Sep 10 14:08:44 UTC 2007

Philippe Simons wrote:
> I'm working on two bsp for the gp2x (arm920t + arm940t).
> I'm already able to run two separate instances of rtems on both cpu.
> but when i enable multiprocessing, nothing is working.
> mp-tests hangs during shm init i guess(i'm using polled mode)
That behavior is correct.  The two nodes attempt to
synchronize.  Look at c/src/lib/libchip/shmdr/init.c

FWIW I would like to see the polling by the shmdr done
with a Classic API timer.  Once you get a bit further, if
you could make this change, it would be GREATLY
appreciated.  The current mechanism is a kludge which
predates the existence of the timer manager.

> but even sp-tests fails now.
> they data-abort somewhere in the begining of _Objects_MP_Close function.
> I'dont have JTAG cable to debug, but if you need more info should be
> able to printk.
I tried this on psim over the weekend and didn't get an error.
Which test is failing?

Is it possible your memory is dirty at system startup?  It isn't
wrong for it to be dirty but there might be something in the
MP objects path that is not getting initialized.  It turned out
that always zeroing the workspace and heap was a HUGE
consumer of cycles and unneeded on many BSPs since their
environment/loader guaranteed zeroing RAM anyway.  So
post 4.7, this cpu table "do_zero_of_workspace" field's default
value was changed from TRUE to FALSE.  You could set that
to TRUE in your bspstart.c and see if the problem goes away.
Then it is just a matter of figuring out what should have been
initialized during the _Objects_MP_Open.

> I'd like to sort out this data-abort issue first.
> Philippe

More information about the users mailing list