[rtems commit] score: Avoid Giant _Objects_Extend_information()

Sebastian Huber sebh at rtems.org
Fri May 20 06:00:43 UTC 2016


Module:    rtems
Branch:    master
Commit:    b80156cf15a9e080e8608a30e3e2795211c03f3e
Changeset: http://git.rtems.org/rtems/commit/?id=b80156cf15a9e080e8608a30e3e2795211c03f3e

Author:    Sebastian Huber <sebastian.huber at embedded-brains.de>
Date:      Tue May 17 15:15:17 2016 +0200

score: Avoid Giant _Objects_Extend_information()

Avoid Giant lock for _Objects_Extend_information().

Update #2280.
Update #2555.

---

 cpukit/score/src/objectextendinformation.c | 9 ++++-----
 1 file changed, 4 insertions(+), 5 deletions(-)

diff --git a/cpukit/score/src/objectextendinformation.c b/cpukit/score/src/objectextendinformation.c
index b1fcec7..2a76114 100644
--- a/cpukit/score/src/objectextendinformation.c
+++ b/cpukit/score/src/objectextendinformation.c
@@ -113,7 +113,7 @@ void _Objects_Extend_information(
    *  Do we need to grow the tables?
    */
   if ( do_extend ) {
-    ISR_Level         level;
+    ISR_lock_Context  lock_context;
     void            **object_blocks;
     uint32_t         *inactive_per_block;
     Objects_Control **local_table;
@@ -225,8 +225,8 @@ void _Objects_Extend_information(
       local_table[ index ] = NULL;
     }
 
-    _Thread_Disable_dispatch();
-    _ISR_Disable( level );
+    /* FIXME: https://devel.rtems.org/ticket/2280 */
+    _ISR_lock_ISR_disable( &lock_context );
 
     old_tables = information->object_blocks;
 
@@ -241,8 +241,7 @@ void _Objects_Extend_information(
         information->maximum
       );
 
-    _ISR_Enable( level );
-    _Thread_Enable_dispatch();
+    _ISR_lock_ISR_enable( &lock_context );
 
     _Workspace_Free( old_tables );
 




More information about the vc mailing list