[RTEMS Project] #2674: CORE spinlock implementation is next to be useless

RTEMS trac trac at rtems.org
Wed Nov 23 11:55:03 UTC 2016


#2674: CORE spinlock implementation is next to be useless
-----------------------------+-------------------
 Reporter:  sebastian.huber  |       Owner:
     Type:  defect           |      Status:  new
 Priority:  normal           |   Milestone:  4.12
Component:  cpukit           |     Version:  4.10
 Severity:  normal           |  Resolution:
 Keywords:                   |
-----------------------------+-------------------

Comment (by Sebastian Huber <sebastian.huber@…>):

 In [changeset:"c42be504c92d76d2e06d0fc8ebd05fc913376d2d/rtems"]:
 {{{
 #!CommitTicketReference repository="rtems"
 revision="c42be504c92d76d2e06d0fc8ebd05fc913376d2d"
 posix: Add self-contained pthread spinlock

 Turn pthread_spinlock_t into a self-contained object.  On uni-processor
 configurations, interrupts are disabled in the lock/trylock operations
 and the previous interrupt status is restored in the corresponding
 unlock operations.  On SMP configurations, a ticket lock is a acquired
 and released in addition.

 The self-contained pthread_spinlock_t object is defined by Newlib in
 <sys/_pthreadtypes.h>.

 typedef struct {
   struct _Ticket_lock_Control _lock;
   __uint32_t                  _interrupt_state;
 } pthread_spinlock_t;

 This implementation is simple and efficient.  However, this test case of
 the Linux Test Project would fail due to call of printf() and sleep()
 during spin lock ownership:

 https://github.com/linux-test-
 project/ltp/blob/master/testcases/open_posix_testsuite/conformance/interfaces/pthread_spin_lock/1-2.c

 There is only limited support for profiling on SMP configurations.

 Delete CORE spinlock implementation.

 Update #2674.
 }}}

--
Ticket URL: <http://devel.rtems.org/ticket/2674#comment:1>
RTEMS Project <http://www.rtems.org/>
RTEMS Project


More information about the bugs mailing list