[RTEMS Project] #2273: One Step Towards Fine Grained Locking

RTEMS trac trac at rtems.org
Fri May 15 09:47:18 UTC 2015


#2273: One Step Towards Fine Grained Locking
-----------------------------+------------------------------
 Reporter:  sebastian.huber  |       Owner:  sebastian.huber
     Type:  enhancement      |      Status:  accepted
 Priority:  normal           |   Milestone:  4.11.1
Component:  SMP              |     Version:  4.11
 Severity:  normal           |  Resolution:
 Keywords:                   |
-----------------------------+------------------------------

Comment (by sebastian.huber):

 The following test data is gathered on a 4 processor ESA/Gaisler NGMP
 platform running at 50MHz.  Three test cases of the tmtests/tmfine01 test
 program are presented using RTEMS version
 [dc5e5f44485b8f9709da767f79595d2fa8aff74d/rtems] with the patch
 [7d6e94b12ab94f13d3e769702d50f91be7d5884b/rtems] reverted (= old) and a
 RTEMS version with a fine grained locking implementation for events,
 semaphores and message queues (= new).  The data for the old version is
 presented before the data for the new version. There is one task per
 processor.

 The first test case sends events to self.

 [[Image(ticket:2273:ngmp-events-old.png, 66%)]]
 [[Image(ticket:2273:ngmp-events-new.png, 66%)]]

 The second test case obtains and releases a mutex private to the task.

 [[Image(ticket:2273:ngmp-mutex-old.png, 66%)]]
 [[Image(ticket:2273:ngmp-mutex-new.png, 66%)]]

 The third test case sends and receives a message to self.

 [[Image(ticket:2273:ngmp-msg-old.png, 66%)]]
 [[Image(ticket:2273:ngmp-msg-new.png, 66%)]]

 The new implementation gets rid of the Giant lock bottleneck and scales
 well with the processor count. In addition it yields more operations per
 second on one processor.

 ||        ||= Operations on one Processor (Old) =||= Operations on one
 Processor (New) =||= Change =||
 ||= Events to Self =||  44262|| 82150|| 86%||
 ||= One Mutex per Task =||  67998|| 42520|| 60%||
 ||= Message to Self =|| 58596|| 32591|| 80%||

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


More information about the bugs mailing list