On 19/03/2021 14:36, jan.som...@dlr.de wrote:

How would I temporarily disable preemption for the current thread on its 
specific core only?

You can raise its priority to zero. This is also more effective in uniprocessor systems due to this bug:

http://devel.rtems.org/ticket/2365

For example, a thread sends several events to a set of other threads and this 
sending should not be interrupted in case the first event wakes up a sleeping 
thread of higher priority on the same CPU.
If there are no other resource dependencies, would a simple 
rtems_interrupt_local_disable be the right thing to do?

You can use barriers, condition variables, or a message broadcast for this. Never call an operating system service in task context with interrupts disabled.

Disabled interrupts can be used with per-processor resources. We have some high performance infrastructure available in libbsd which use this. For example, the UMA and the epoch based reclamation support.

--
embedded brains GmbH
Herr Sebastian HUBER
Dornierstr. 4
82178 Puchheim
Germany
email: sebastian.hu...@embedded-brains.de
phone: +49-89-18 94 741 - 16
fax:   +49-89-18 94 741 - 08

Registergericht: Amtsgericht München
Registernummer: HRB 157899
Vertretungsberechtigte Geschäftsführer: Peter Rasmussen, Thomas Dörfler
Unsere Datenschutzerklärung finden Sie hier:
https://embedded-brains.de/datenschutzerklaerung/

_______________________________________________
devel mailing list
devel@rtems.org
http://lists.rtems.org/mailman/listinfo/devel

Reply via email to