Optimization issue in RISC-V BSP

Joel Sherrill joel at rtems.org
Fri Jul 28 14:18:57 UTC 2017


On Fri, Jul 28, 2017 at 8:19 AM, Sebastian Huber <
sebastian.huber at embedded-brains.de> wrote:

> On 28/07/17 15:15, Denis Obrezkov wrote:
>
> 2017-07-28 14:56 GMT+02:00 Joel Sherrill <joel at rtems.org <mailto:
>> joel at rtems.org>>:
>>
>>     There is a debug option near the bottom of confdefs.h which you
>>     can enable to generate a data structure filled in with various
>>     values computed by confdefs. You can look at that in gdb without
>>     loading it on the target.
>>
>>     It is probably worth it to look at that now and see what you spot.
>>
>> Okay, I'll try.
>>
>>
>>     And a random thought.. what's the interrupt stack size and how is
>>     it allocated? What are the port specific related macros set to?
>>
>> I don't completely understand what is the interrupt stack. Because, when
>> an interrupt occurs,
>> I save all registers and move the stack pointer, handle interrupt,
>>
>
> Now you handle the interrupt on the stack of the interrupted context
> (usually a thread). So, you must take this overhead into account for every
> thread. If you switch to an interrupt stack, then you only have to account
> for one interrupt frame per thread. If you support nested interrupts, you
> need even more space per thread without an interrupt stack.
>

There are at least these settings plus the default interrupt stack size
which can be
defined for each port:

/sparc64/rtems/score/cpu.h:#define CPU_HAS_SOFTWARE_INTERRUPT_STACK   TRUE
./sparc64/rtems/score/cpu.h:#define CPU_HAS_HARDWARE_INTERRUPT_STACK  FALSE
./sparc64/rtems/score/cpu.h:#define CPU_ALLOCATE_INTERRUPT_STACK      TRUE

Based on how you have the interrupt support configured, the last one trips
generic
code in score/src/isr.c to allocate memory for a dedicated interrupt stack.

But the confdefs.h debug trick should quickly give you some insight. Look
for
CONFIGURE_CONFDEFS_DEBUG in confdefs.h to see what it turns on
for helping you debug.

--joel

>
> restore registers and move stack
>> pointer back.
>> --
>> Regards, Denis Obrezkov
>>
>>
>> _______________________________________________
>> devel mailing list
>> devel at rtems.org
>> http://lists.rtems.org/mailman/listinfo/devel
>>
>
> --
> Sebastian Huber, embedded brains GmbH
>
> Address : Dornierstr. 4, D-82178 Puchheim, Germany
> Phone   : +49 89 189 47 41-16
> Fax     : +49 89 189 47 41-09
> E-Mail  : sebastian.huber at embedded-brains.de
> PGP     : Public key available on request.
>
> Diese Nachricht ist keine geschäftliche Mitteilung im Sinne des EHUG.
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.rtems.org/pipermail/devel/attachments/20170728/40c20ad3/attachment-0002.html>


More information about the devel mailing list