#3508 closed enhancement (fixed)

Add support for thread to processor pinning

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

Description

FreeBSD started to use lock-free data structures (Concurrency Kit) with epoch based reclamation (EBR) in May 2018. The goal of this synchronization approach is to avoid atomic read-modify-write operations in the fast path. The algorithms need highly efficient access to per-processor data. This gives raise to add a new feature to RTEMS: thread to processor pinning. Thread pinning is orthogonal to thread processor affinity and overrules the processor affinity settings of a thread. It is intended for temporary use in short critical sections which allow preemption.

Change History (3)

comment:1 Changed on Sep 10, 2018 at 9:37:18 AM by Sebastian Huber <sebastian.huber@…>

In d8bc0730/rtems:

score: Modify _Scheduler_Unblock()

In SMP configurations, obtain the scheduler node for the block and
unblock operations through the same way via
Thread_Control::Scheduler::Scheduler_node. This symmetry is important
in a follow up patch which introduces thread pinning.

Update #3508.

comment:2 Changed on Sep 10, 2018 at 9:37:29 AM by Sebastian Huber <sebastian.huber@…>

In 7097962/rtems:

score: Add thread pin/unpin support

Add support to temporarily pin a thread to its current processor. This
may be used to access per-processor data structures in critical sections
with enabled thread dispatching, e.g. a pinned thread is allowed to
block.

Update #3508.

comment:3 Changed on Sep 10, 2018 at 9:38:15 AM by Sebastian Huber <sebastian.huber@…>

Resolution: fixed
Status: assignedclosed

In 7c58036/rtems-docs:

c-user: Mention thread pinning

Close #3508.

Note: See TracTickets for help on using tickets.