SIS MP success

Sebastian Huber sebastian.huber at embedded-brains.de
Wed Dec 12 09:26:33 UTC 2018


----- Am 12. Dez 2018 um 10:01 schrieb Jiri Gaisler jiri at gaisler.se:

> After implementing the interrupt broadcast function, and stop telling
> the software that there are 5 cores in the system when there really only
> are 4, all tests run fine ..:-)

This sounds great.

> I can run all SMP tests with a time slot
> of 50 clocks except smpclock01.exe, which fails with:
> 
> *** BEGIN OF TEST SMPCLOCK 1 ***
> *** TEST VERSION: 5.0.0.b7a1f9efadd928cda0f56123a1b6245b30b076fc-modified
> *** TEST STATE: EXPECTED-PASS
> *** TEST BUILD: RTEMS_NETWORKING RTEMS_POSIX_API RTEMS_SMP
> *** TEST TOOLS: 7.4.0 20181206 (RTEMS 5, RSB
> b4e80fb8e29c47fa970b5cdb815c26f1af4fd173, Newlib
> 2ab57ad59bc35dafffa69cd4da5e228971de069f)
> ../../../../../../rtems/c/src/../../testsuites/smptests/smpclock01/init.c:
> 117 cpu_self->Watchdog.ticks == ticks + 1
> IU in error mode (128)
> 12095340  40012200  91d02000  ta  0
> sis> q

There could be an issue with the interrupt delivery after an interrupt enable. In the test source we have:

  // At this point the clock interrupt is pending
  rtems_interrupt_local_enable(level);

  // Here the clock interrupt should be already processed, incrementing the tick
  rtems_test_assert(cpu_self->Watchdog.ticks == ticks + 1);

> 
> Lowering the time slot to 15 clocks fixes this error and the test passes.
> 
> I will clean up my sources, and work a bit on improving breakpoint
> handling and tracing. The MP function broke erc32 and leon2 support, so
> I will fix that too. After that I can post a patch if anyone is
> interested. Threaded simulation could come after that ...

Nice, do you plan to submit this to the upstream GDB? Sounds like a lot of work to do this.


More information about the devel mailing list