[PATCH 09/12] fsdosfssync01: Stack size for bdbuf SMP workaround
Chris Johns
chrisj at rtems.org
Wed May 28 07:56:14 UTC 2014
On 28/05/2014 4:47 pm, Ralf Kirchner wrote:
> -------- Original-Nachricht --------
> Betreff: Re: [PATCH 09/12] fsdosfssync01: Stack size for bdbuf SMP
> workaround
> Datum: Tue, 27 May 2014 17:11:32 +0200
> Von: Ralf Kirchner <ralf.kirchner at embedded-brains.de>
> Organisation: embedded-brains GmbH
> An: Gedare Bloom <gedare at rtems.org>
>
> Am 27.05.2014 17:04, schrieb Gedare Bloom:
>> On Tue, May 27, 2014 at 10:47 AM, Ralf Kirchner
>> <ralf.kirchner at embedded-brains.de> wrote:
>>> Increase the size of the init task stack for the SMP workaround within bdbuf.
>>> ---
>>> testsuites/fstests/fsdosfssync01/init.c | 12 ++++++++++++
>>> 1 Datei geändert, 12 Zeilen hinzugefügt(+)
>>>
>>> diff --git a/testsuites/fstests/fsdosfssync01/init.c b/testsuites/fstests/fsdosfssync01/init.c
>>> index b0022e9..022cd2b 100644
>>> --- a/testsuites/fstests/fsdosfssync01/init.c
>>> +++ b/testsuites/fstests/fsdosfssync01/init.c
>>> @@ -170,6 +170,18 @@ size_t rtems_ramdisk_configuration_size = 1;
>>>
>>> #define CONFIGURE_EXTRA_TASK_STACKS (8 * 1024)
>>>
>>> +
>>> +#if defined( RTEMS_SMP )
>>> + #if defined( RTEMS_POSIX_API )
>>> + /* The single core bdbuf implementation with enabling and disabling preemption
>>> + * will not work under SMP. Thus we need to use POSIX mutexes and POSIX
>>> + * condition variables as a workaround.
>>> + * These require additional stack size.
>>> + */
>>> + #define CONFIGURE_INIT_TASK_STACK_SIZE (2 * CPU_STACK_MINIMUM_SIZE)
>>> + #endif /* defined( RTEMS_POSIX_API ) */
>>> +#endif /* defined( RTEMS_SMP ) */
>>> +
>> This kind of hack in the application configuration is not very
>> user-friendly. You should adjust for the required resources in
>> confdefs.h instead, by configuring for the required mutexes/condvars
>> explicitly.
> Hi Gedare,
> That is beeing done. Memory for the mutexes and condition variables gets
> allocated in confdefs.h.
> Here I need more stack (likely because the nesting depth is higher for
> mutexes and condition variables than for the single core handling with
> semaphores).
> And I need this addition stack only for this single test. All other
> tests still had sufficient spare stack.
How many bsps and different architectures were tested ?
Chris
More information about the devel
mailing list