[PATCH 09/12] fsdosfssync01: Stack size for bdbuf SMP workaround

Ralf Kirchner ralf.kirchner at embedded-brains.de
Tue May 27 14:47:51 UTC 2014


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 ) */
+
 #define CONFIGURE_INITIAL_EXTENSIONS RTEMS_TEST_INITIAL_EXTENSION
 
 #define CONFIGURE_RTEMS_INIT_TASKS_TABLE
-- 
1.7.10.4




More information about the devel mailing list