#2555 closed enhancement (fixed)

Eliminate the Giant lock

Reported by: Sebastian Huber Owned by: Sebastian Huber
Priority: normal Milestone: 5.1
Component: score Version: 5
Severity: normal Keywords:
Cc: Blocked By:
Blocking:

Description

Background

The standard approach to turn a uni-processor operating system into an SMP-capable operating system is to encapsulate virtually the complete operating system state and protect it by one global recursive lock - the Giant lock. Thus, at most one processor can modify the operating system state at a time. Under Giant lock protection interrupt disable/enable critical sections still work. This approach is easy to realize and leads to something that runs on SMP with a minimal effort. Unfortunately, such an operating system does not scale with the processor count and offers very poor performance. It is quite useless for real applications.

The first steps to get rid of the Giant lock are tackled with the introduction of fine grained locking for the scheduler, watchdog handler, timestamps, thread queues, events, semaphores and message queues. The Giant lock is still used in a couple of places, e.g. all other objects using thread queues, thread life cycle changes (termination, restart) and scheduler changes. It is a straight forward task to eliminate it entirely, but it is also somewhat labour intensive since a lot of code must be changed.

Implementation

Eliminate all remaining code areas that use

  • _ISR_Disable(),
  • _ISR_Enable(), and
  • _ISR_Flash().

Direct users of these macros are

  • _Chain_Append(),
  • _Chain_Extract(),
  • _Chain_Get(),
  • _Chain_Insert(), and
  • _Chain_Prepend().

Each spot must be dealt with individually. Once this is done, delete these macros since they are now superfluous. Rename _ISR_Disable_without_giant() into _ISR_Locale_disable(). Rename _ISR_Enable_without_giant() into _ISR_Locale_enable().

Eliminate all remaining code areas that use

  • _Thread_Disable_dispatch() and
  • _Thread_Enable_dispatch().

A prominent user of this functions is _Objects_Get(). The following components are affected by these functions

  • Classic barrier handler,
  • Classic dual-ported memory handler,
  • Classic message queue handler,
  • Classic partition handler,
  • Classic rate-monotonic handler,
  • Classic region handler,
  • Classic semaphore handler,
  • Classic timer handler,
  • extension handler,
  • IO manager,
  • multi-processing management,
  • objects management,
  • POSIX barrier handler,
  • POSIX condition handler,
  • POSIX key handler,
  • POSIX message queue handler,
  • POSIX mutex handler,
  • POSIX rwlock handler,
  • POSIX semaphore handler,
  • POSIX spinlock handler,
  • POSIX timer handler,
  • signals,
  • thread cancellation,
  • thread life-cycle changes, and
  • thread scheduler changes.

Once this is done, delete _Thread_Disable_dispatch() and _Thread_Enable_dispatch(). As a side-effect the Giant lock will be removed.

Change History (79)

comment:1 Changed on Feb 4, 2016 at 11:59:58 AM by Sebastian Huber

Status: newaccepted

comment:3 Changed on Mar 4, 2016 at 2:16:29 PM by Sebastian Huber <sebastian.huber@…>

In 9f5754b5c226202d0a35eb729e68cdd3a26c65fc/rtems:

bsps: Avoid Giant lock in simulator clock driver

Update #2555.

comment:4 Changed on Mar 7, 2016 at 7:38:38 AM by Sebastian Huber

Depends on #2625, #2626, #2627, #2628. #2630 and #2631.

comment:5 Changed on Mar 14, 2016 at 8:31:00 AM by Sebastian Huber <sebastian.huber@…>

In 77e6eba7146ba2e2074b719eec01cc7c40bbe98b/rtems:

score: Add and use _Objects_Get_local()

This simplifies the handling with local-only objects.

Update #2555.

comment:6 Changed on Mar 15, 2016 at 7:13:12 AM by Sebastian Huber <sebastian.huber@…>

In 18ff88962458f9b0aa1150a4cfc89ac5bdd622e7/rtems:

score: Use ISR lock for IO driver registration

Create implementation header file.

Update #2555.

comment:7 Changed on Mar 15, 2016 at 7:13:27 AM by Sebastian Huber <sebastian.huber@…>

In df91dd9f34686567042b055a623ee2db9dbe7ae6/rtems:

monitor: Use object allocator lock

Use object allocator lock instead of disabled thread dispatching.

Update #2555.

comment:8 Changed on Mar 16, 2016 at 6:17:33 AM by Sebastian Huber <sebastian.huber@…>

In 05ef28754ea2920133f24ce0d3c6e274408c3b75/rtems:

sapi: Do not disable thread dispatching

Do not disable thread dispatching to add a user extension. After
startup, the object allocator lock is enough.

Update #2555.

comment:9 Changed on Mar 16, 2016 at 6:20:19 AM by Sebastian Huber <sebastian.huber@…>

In 474b9beeaa5fd6153ffa8ffe10d09acdaa8609da/rtems:

score: Use allocator lock in _Objects_Get_next()

Use the object allocator lock in _Objects_Get_next() instead of disabled
thread dispatching since object creation and deletion is covered by this
lock.

Update #2555.

comment:10 Changed on Mar 17, 2016 at 8:03:25 AM by Sebastian Huber <sebastian.huber@…>

In 75aef54d16baab507134a5011e955151b990dcf6/rtems:

posix: Avoid Giant lock in sched_yield()

Update #2555.

comment:11 Changed on Mar 17, 2016 at 8:03:38 AM by Sebastian Huber <sebastian.huber@…>

In f5bb299190750189e89849a178173a21d1afd104/rtems:

rtems: Avoid Giant lock in rtems_task_mode()

Update #2555.

comment:12 Changed on Mar 17, 2016 at 8:03:50 AM by Sebastian Huber <sebastian.huber@…>

In 92dee4ab9cf806553d0cdaeb4968d25ced4a8b3a/rtems:

rtems: Avoid Giant lock in rtems_signal_catch()

Update #2555.

comment:13 Changed on Mar 21, 2016 at 6:45:36 AM by Sebastian Huber <sebastian.huber@…>

In be8897644043e4378db7add02c3c9e1ac7fde563/rtems:

mpci: Avoid Giant lock

The object creation/deletion is protected by the object allocator lock.

Update #2555.

comment:14 Changed on Mar 22, 2016 at 6:44:37 AM by Sebastian Huber <sebastian.huber@…>

In 30cac38f157f0b4bd10a9b310e3dd6fdfc1d242e/rtems:

rtems: Use object allocator lock

Object creation and destruction is protected by the object allocator
lock and not disabled thread dispatching.

Update #2555.

comment:15 Changed on Mar 22, 2016 at 7:05:48 AM by Sebastian Huber <sebastian.huber@…>

In 865f110b58d944db72a71296fe3f15a4b8de097a/rtems:

score: Fix for RTEMS_DEBUG

The rtems_extension_create() no longer uses the Giant lock. Ensure that
we call _User_extensions_Add_set() only in the right context.

Update #2555.

comment:16 Changed on Mar 29, 2016 at 11:43:38 AM by Sebastian Huber <sebastian.huber@…>

In 3feca902a2e2dac8e07637be6f5a68524a76f85a/rtems:

score: Fix _Objects_MP_Is_remote()

Bug introduced by be8897644043e4378db7add02c3c9e1ac7fde563.

Update #2555.

comment:17 Changed on Mar 31, 2016 at 11:57:24 AM by Sebastian Huber <sebastian.huber@…>

In c01401c48128218189c0d50743c47679bcad7e0c/rtems:

score: _User_extensions_Remove_set()

Use unprotected chain operation in _User_extensions_Remove_set() since
the caller must own the object allocator lock.

Update #2555.

comment:18 Changed on Apr 6, 2016 at 8:32:19 AM by Sebastian Huber <sebastian.huber@…>

In d995a263b5de31583cd269c71a5ef760e98e8f26/rtems:

score: Delete _Chain_Append()

This function is not used in the score.

Update #2555.

comment:19 Changed on Apr 19, 2016 at 5:23:00 AM by Sebastian Huber <sebastian.huber@…>

In 362722795abb917fb53d8903eae450c78ba43be4/rtems:

sapi: Avoid Giant lock for extensions

Extension create and delete is protected by the object allocator lock.

Update #2555.

comment:20 Changed on Apr 19, 2016 at 5:23:26 AM by Sebastian Huber <sebastian.huber@…>

In 709f38a97287ff1aa8e8c0668c2d066e711db87c/rtems:

score: Use chain iterator for user extensions

Add a lock and use a chain iterator for safe iteration during concurrent
user extension addition and removal.

Ensure that dynamically added thread delete and fatal extensions are
called in reverse order.

Update #2555.
Update #2692.

comment:21 Changed on Apr 21, 2016 at 5:34:38 AM by Sebastian Huber <sebastian.huber@…>

In 48b04fc388a60fc6621233ddbb7cd65d89bb63d8/rtems:

posix: Avoid Giant lock for mutexes

Delete _POSIX_Mutex_Get(). Use _POSIX_Mutex_Get_interrupt_disable()
instead.

Update #2555.

comment:22 Changed on Apr 21, 2016 at 5:34:49 AM by Sebastian Huber <sebastian.huber@…>

In adbedd10cfe5259018b1682d903ab40f6005b3f0/rtems:

score: Introduce _Thread_queue_Flush_critical()

Replace _Thread_queue_Flush() with _Thread_queue_Flush_critical() and
add a filter function for customization of the thread queue flush
operation.

Update #2555.

comment:23 Changed on Apr 27, 2016 at 6:51:34 AM by Sebastian Huber <sebastian.huber@…>

In 7f4ee2b4ae39928ab5f449048e562ef6b2c5d17d/rtems:

posix: Avoid Giant lock for condition variables

Update #2555.

comment:24 Changed on May 2, 2016 at 10:07:32 AM by Sebastian Huber <sebastian.huber@…>

In 7e66865e17d7a82add541056de13717793da002a/rtems:

score: Move message notification

Move message notification to end of critical section and delegate the
message queue release to the notification handler. It may do more
complex notification actions out of the critical section.

Update #2555.

comment:25 Changed on May 2, 2016 at 10:07:42 AM by Sebastian Huber <sebastian.huber@…>

In 6741d30a310695f4fe4c8acccb86ccf7389567bd/rtems:

rtems: Avoid Giant lock for message queues

Update #2555.

comment:26 Changed on May 2, 2016 at 10:07:53 AM by Sebastian Huber <sebastian.huber@…>

In c8982e5f6a4857444676165deab1e08dc91a6847/rtems:

posix: Simplify message queues

The mq_open() function returns a descriptor to a POSIX message queue
object identified by a name. This is similar to sem_open(). In
contrast to the POSIX semaphore the POSIX message queues use a separate
object for the descriptor. This extra object is superfluous, since the
object identifier can be used directly for this purpose, just like for
the semaphores.

Update #2702.
Update #2555.

comment:27 Changed on May 2, 2016 at 10:08:03 AM by Sebastian Huber <sebastian.huber@…>

In f009ed086d3da813a2c92b9834c3b2d618894883/rtems:

rtems: Avoid Giant lock for semaphores

Update #2555.

comment:28 Changed on May 2, 2016 at 10:08:13 AM by Sebastian Huber <sebastian.huber@…>

In f4d541ccfe6a6e64a06cbf89bc7b03e045f62281/rtems:

rtems: Avoid Giant lock in rtems_object_set_name()

Update #2555.

comment:29 Changed on May 2, 2016 at 10:08:22 AM by Sebastian Huber <sebastian.huber@…>

In 77726405fab31a04834e95968d1942fc81d0644d/rtems:

score: _Objects_Get_name_as_string()

Avoid Giant lock in _Objects_Get_name_as_string().

Update #2555.

comment:30 Changed on May 2, 2016 at 10:08:41 AM by Sebastian Huber <sebastian.huber@…>

In 1ef8e4a8e93a848e2a68f37e029039300f1c936b/rtems:

score: Avoid Giant lock for set time of day

Update #2555.
Update #2630.

comment:31 Changed on May 2, 2016 at 10:09:10 AM by Sebastian Huber <sebastian.huber@…>

In 259d885168b548b5ebea5067f112a0d8b94d167f/rtems:

posix: Remove superfluous thread dispatch disable

The _Thread_queue_Enqueue_critical() already deals with thread
dispatching.

Update #2555.

comment:32 Changed on May 2, 2016 at 10:09:20 AM by Sebastian Huber <sebastian.huber@…>

In 66374dfc0c42066fac5f9a62475029711baac735/rtems:

posix: Avoid Giant lock in _POSIX_signals_Send()

Update #2555.
Update #2690.

comment:34 Changed on May 4, 2016 at 5:55:38 AM by Sebastian Huber <sebastian.huber@…>

In b30ab250f0967920d6c08eae776fb82e717da182/rtems:

mpci: Avoid Giant lock in _MPCI_Process_response()

Update #2555.
Update #2703.

comment:35 Changed on May 6, 2016 at 6:18:14 AM by Sebastian Huber <sebastian.huber@…>

In bb2ad039a7246eecde65592a5116c86d3dede34b/rtems:

rtems: Avoid Giant lock for signals

Update #2555.

comment:36 Changed on May 6, 2016 at 6:18:27 AM by Sebastian Huber <sebastian.huber@…>

In 64051ec80b55c3945ace509fa275c21ab8c89ab1/rtems:

posix: Avoid Giant lock in pthread_equal()

Update #2555.

comment:37 Changed on May 6, 2016 at 6:18:40 AM by Sebastian Huber <sebastian.huber@…>

In f65f803a269784f6f05658054dd1709497ca5049/rtems:

score: Avoid Giant lock for CBS scheduler

Update #2555.

comment:38 Changed on May 12, 2016 at 11:34:25 AM by Sebastian Huber <sebastian.huber@…>

In 4d76300ae524f798bf665f6c28dca420fd23a59c/rtems:

rtems: Avoid Giant lock for some task operations

Avoid Giant lock for rtems_task_set_priority(), rtems_task_suspend() and
rtems_task_resume().

Update #2555.

comment:39 Changed on May 12, 2016 at 11:34:34 AM by Sebastian Huber <sebastian.huber@…>

In 11c66437e750e6f8c464a96476c5f5221c1808a6/rtems:

rtems: Avoid Giant lock rtems_task_is_suspended()

Update #2555.

comment:40 Changed on May 12, 2016 at 11:34:44 AM by Sebastian Huber <sebastian.huber@…>

In bd12dda405e1bab16c522f7ef0dd2b455230d269/rtems:

score: Use thread state lock for current state

In addition protect scheduler of thread by thread state lock. Enables
use of scheduler per-instance locks.

Update #2555.

comment:41 Changed on May 12, 2016 at 11:34:54 AM by Sebastian Huber <sebastian.huber@…>

In e135271b933c896068a343b161773ce3b685be43/rtems:

score: Avoid Giant lock _Scheduler_Set_affinity()

Update #2555.

comment:42 Changed on May 12, 2016 at 11:35:04 AM by Sebastian Huber <sebastian.huber@…>

In d99529999451043166c6dbf3ef22be42463e16f3/rtems:

score: Avoid Giant lock _Scheduler_Get_affinity()

Update #2555.

comment:43 Changed on May 12, 2016 at 11:35:13 AM by Sebastian Huber <sebastian.huber@…>

In 8bc6bf28aa098a03c25763e3c59274874bfbe3da/rtems:

posix: Avoid Giant lock for some pthread functions

Avoid Giant lock for pthread_getattr_np(), pthread_setschedparam() and
pthread_getschedparam(). Replace POSIX threads scheduler lock with
thread state lock.

Update #2555.

comment:44 Changed on May 12, 2016 at 11:35:23 AM by Sebastian Huber <sebastian.huber@…>

In ef6f8a8377964a2d94eb7215724d11b499ec078b/rtems:

score: Avoid Giant lock for scheduler set/get

Update #2555.

comment:45 Changed on May 20, 2016 at 5:56:47 AM by Sebastian Huber <sebastian.huber@…>

In e75374870375099eb097f189905be709008fb3c0/rtems:

score: Delete redundant thread life enums

This makes it easier to add more states in the future.

Update #2555.
Update #2626.

comment:46 Changed on May 20, 2016 at 5:56:57 AM by Sebastian Huber <sebastian.huber@…>

In b7f5e391c0c0e94e5958a294e5d38b1dda7332cc/rtems:

score: Add _Thread_Exit()

The goal is to make _Thread_Exit() a no-return function in follow up
patches.

Update #2555.
Update #2626.

comment:47 Changed on May 20, 2016 at 5:57:07 AM by Sebastian Huber <sebastian.huber@…>

In 270394eef82ae584477cb9c443d4a5c8e67978eb/rtems:

score: Avoid superfluous life protection

Disable thread dispatching is enough to prevent deletion of the
executing thread. There is no need for an additional life protection.

Update #2555.
Update #2626.

comment:48 Changed on May 20, 2016 at 5:57:17 AM by Sebastian Huber <sebastian.huber@…>

In 69c722f3f6ac84eca42e68eda0e1ed63fd3702e7/rtems:

score: Delete unused variable

Update #2555.
Update #2626.

comment:49 Changed on May 20, 2016 at 5:57:27 AM by Sebastian Huber <sebastian.huber@…>

In 9949d8a7d042da7ba53516300db5c34c8b9c8a31/rtems:

score: Add Thread_Change_life()

Add _Thread_Change_life_locked() as a general function to alter the
thread life state. Use it to implement _Thread_Set_life_protection() as
a first step.

Update #2555.
Update #2626.

comment:50 Changed on May 20, 2016 at 5:57:37 AM by Sebastian Huber <sebastian.huber@…>

In 7023d82ca6bdfe7e0fa1d1c10481671dd744d894/rtems:

score: Add _Thread_Raise_real_priority()

Update #2555.
Update #2626.

comment:51 Changed on May 20, 2016 at 5:57:47 AM by Sebastian Huber <sebastian.huber@…>

In c99eb50b9f66e76cdd6aa0833321550c9b9e655c/rtems:

score: Rework _Thread_Exit()

Rework _Thread_Exit() to use _Thread_Change_life_locked().

Update #2555.
Update #2626.

comment:52 Changed on May 20, 2016 at 5:57:57 AM by Sebastian Huber <sebastian.huber@…>

In 232147ddc12d45ff7872f72a790077c26fe5ca0a/rtems:

score: Add _Thread_Join() and _Thread_Cancel()

Split _Thread_Close() into _Thread_Join() and _Thread_Cancel() to
prepare for a re-use in pthread_join() and pthread_cancel().

Update #2555.
Update #2626.

comment:53 Changed on May 20, 2016 at 5:58:07 AM by Sebastian Huber <sebastian.huber@…>

In 9a99ce15d0878d847b4c7e054eb2996a9f5fbc34/rtems:

score: Add _Thread_Set_state_locked()

This makes it possible to do thread state and thread life changes
together under protection of the thread state lock.

Update #2555.
Update #2626.

comment:54 Changed on May 20, 2016 at 5:58:17 AM by Sebastian Huber <sebastian.huber@…>

In f410ea82a4b9d5609ce170d2aa09027b5a7c4c50/rtems:

score: Add _Thread_Clear_state_locked()

This makes it possible to do thread state and thread life changes
together under protection of the thread state lock.

Update #2555.
Update #2626.

comment:55 Changed on May 20, 2016 at 5:58:27 AM by Sebastian Huber <sebastian.huber@…>

In 0475cca9a015a7b43209270ca6e40aebf177639a/rtems:

score: Add _Thread_Dispatch_disable_with_CPU()

Update #2555.
Update #2626.

comment:56 Changed on May 20, 2016 at 5:58:37 AM by Sebastian Huber <sebastian.huber@…>

In 938839077741d2eac82d9d86705c16e0b9de8379/rtems:

score: Split _Thread_Restart()

Split _Thread_Restart() into _Thread_Restart_self() and
_Thread_Restart_other(). Move content of existing
_Thread_Restart_self() into new _Thread_Restart_self(). Avoid Giant
lock for thread restart. _Thread_Restart_self() is a no-return function
and used by _Thread_Global_construction().

Update #2555.
Update #2626.

comment:57 Changed on May 20, 2016 at 5:58:47 AM by Sebastian Huber <sebastian.huber@…>

In 862a0eeb1197539c0e69381cb5aaccb9e1c64c0f/rtems:

score: Rework _Thread_Restart_other()

Rework _Thread_Restart_other() to use _Thread_Change_life_locked().
Cope with concurrent change requests by means of a pending request
counter.

Update #2555.
Update #2626.

comment:58 Changed on May 20, 2016 at 5:58:58 AM by Sebastian Huber <sebastian.huber@…>

In ef09017ebb6ac9c1309df4e827b240c14e6dbaa9/rtems:

score: Rework _Thread_Cancel()

Rework _Thread_Cancel() to use _Thread_Change_life_locked().

Update #2555.
Update #2626.

comment:59 Changed on May 20, 2016 at 5:59:08 AM by Sebastian Huber <sebastian.huber@…>

In 29e1ecab875c3121357f27e0676913d9ca96183f/rtems:

score: Simplify _Thread_Life_action_handler()

Use _Thread_Change_life_locked() to avoid duplicated code. Avoid Giant
lock in _Thread_Life_action_handler().

Update #2555.
Update #2626.

comment:60 Changed on May 20, 2016 at 5:59:18 AM by Sebastian Huber <sebastian.huber@…>

In 54550e048d3a49435912797d2024f80671e93267/rtems:

posix: Rework pthread_join()

Rework pthread_join() to use _Thread_Join().

Close #2402.
Update #2555.
Update #2626.
Close #2714.

comment:61 Changed on May 20, 2016 at 5:59:29 AM by Sebastian Huber <sebastian.huber@…>

In 33829ce155069462ba410d396da431386369ed08/rtems:

score: Avoid Giant lock for _Thread_Start()

Update #2555.

comment:62 Changed on May 20, 2016 at 5:59:39 AM by Sebastian Huber <sebastian.huber@…>

In da82656065d09f7b6aa411ba361287afdd787204/rtems:

posix: Rework thread cancellation

Add Thread_Life_state::THREAD_LIFE_CHANGE_DEFERRED and rework the POSIX
thread cancellation to use the thread life states.

Update #2555.
Update #2626.

comment:63 Changed on May 20, 2016 at 5:59:49 AM by Sebastian Huber <sebastian.huber@…>

In 64fe16636b45d7a3d64654707234b885f7ccbaf6/rtems:

posix: Avoid Giant lock for pthread_kill()

Update #2555.

comment:64 Changed on May 20, 2016 at 6:00:00 AM by Sebastian Huber <sebastian.huber@…>

In f36ada320dc075503a2c878bc4f9f7ff9d761d41/rtems:

rtems: Avoid Giant lock for rtems_task_delete()

Update #2555.

comment:65 Changed on May 20, 2016 at 6:00:09 AM by Sebastian Huber <sebastian.huber@…>

In 92f6883073126f96973252cd57a5c7e24d88d412/rtems:

sptests/spintrcritical22: Avoid _Objects_Get()

Use _Semaphore_Get_interrupt_disable() instead.

Update #2555.

comment:66 Changed on May 20, 2016 at 6:00:19 AM by Sebastian Huber <sebastian.huber@…>

In 5eac967651866b0501593dcfea458452ef9e9128/rtems:

testsuites: Replace _Thread_Get()

Replace _Thread_Get() with _Thread_Get_interrupt_disable() to avoid the
Giant lock.

Update #2555.

comment:67 Changed on May 20, 2016 at 6:00:29 AM by Sebastian Huber <sebastian.huber@…>

In 23294fd2255031eefe708075064f58bf54d43279/rtems:

score: Delete unused _Thread_Get()

Update #2555.

comment:68 Changed on May 20, 2016 at 6:00:39 AM by Sebastian Huber <sebastian.huber@…>

In ee710ef483b76ebbd54cdc8fac05a228d9ef30ff/rtems:

score: Delete unused _Objects_Get()

Update #2555.

comment:69 Changed on May 20, 2016 at 6:00:48 AM by Sebastian Huber <sebastian.huber@…>

In b80156cf15a9e080e8608a30e3e2795211c03f3e/rtems:

score: Avoid Giant _Objects_Extend_information()

Avoid Giant lock for _Objects_Extend_information().

Update #2280.
Update #2555.

comment:70 Changed on May 20, 2016 at 6:00:59 AM by Sebastian Huber <sebastian.huber@…>

In dab902d5b2688fe958118299f7d44d1adbf13878/rtems:

testsuites: Avoid Giant lock

Replace _Thread_Disable_dispatch() with _Thread_Dispatch_disable().
Replace _Thread_Enable_dispatch() with _Thread_Dispatch_enable().

This is a preparation to remove the Giant lock.

Update #2555.

comment:71 Changed on May 20, 2016 at 6:01:09 AM by Sebastian Huber <sebastian.huber@…>

In d2bacb6c38c2bc0e47524b943200e16ad3c26bd8/rtems:

score: _Thread_Dispatch_increment_disable_level()

Avoid _Thread_Dispatch_increment_disable_level() and
_Thread_Dispatch_decrement_disable_level() and thus the Giant
lock.

This is a preparation to remove the Giant lock.

Update #2555.

comment:72 Changed on May 20, 2016 at 6:01:19 AM by Sebastian Huber <sebastian.huber@…>

In 4b04cb61552dbaa1a42a64e2f7b823708127e488/rtems:

score: Rename _ISR_Disable_without_giant()

Rename _ISR_Disable_without_giant() into _ISR_Local_disable(). Rename
_ISR_Enable_without_giant() into _ISR_Local_enable().

This is a preparation to remove the Giant lock.

Update #2555.

comment:73 Changed on May 20, 2016 at 6:01:29 AM by Sebastian Huber <sebastian.huber@…>

In 247131632173158cb2668d4e5c7464951b668067/rtems:

score: Rename _ISR_Disable() and _ISR_Enable()

Rename _ISR_Disable() into _ISR_Local_disable(). Rename _ISR_Enable()
into _ISR_Local_enable(). Remove _Debug_Is_owner_of_giant().

This is a preparation to remove the Giant lock.

Update #2555.

comment:74 Changed on May 20, 2016 at 6:01:39 AM by Sebastian Huber <sebastian.huber@…>

In c2f301b580ebb4a46d657651a814bc9348103546/rtems:

score: Rename _ISR_Flash() into _ISR_Local_flash()

This is a preparation to remove the Giant lock.

Update #2555.

comment:75 Changed on May 20, 2016 at 6:01:48 AM by Sebastian Huber <sebastian.huber@…>

In ceb0f6597c36fabbfcbdf0807fd87dd03a45cc5e/rtems:

score: Remove the Giant lock

Update #2555.

comment:76 Changed on Dec 19, 2016 at 1:47:29 PM by Sebastian Huber

Resolution: fixed
Status: acceptedclosed

comment:77 Changed on May 11, 2017 at 7:31:02 AM by Sebastian Huber

Milestone: 4.124.12.0

comment:78 Changed on Nov 9, 2017 at 6:27:14 AM by Sebastian Huber

Milestone: 4.12.05.1

Milestone renamed

comment:79 Changed on Dec 15, 2017 at 6:24:12 AM by Sebastian Huber <sebastian.huber@…>

In e1563f37/rtems:

posix: Remove unused global variable

Update #2702.
Update #2555.

Note: See TracTickets for help on using tickets.