]> git.ipfire.org Git - thirdparty/gcc.git/commit
ada: Tweak CPU affinity handling
authorRonan Desplanques <desplanques@adacore.com>
Fri, 11 Oct 2024 12:54:15 +0000 (14:54 +0200)
committerMarc Poulhiès <dkm@gcc.gnu.org>
Mon, 4 Nov 2024 15:57:57 +0000 (16:57 +0100)
commit0c8bdc2411b3b123820f5b93d9ae7d8d12e06739
treeffa3b1ae90ce1b548126ed3f004dcf630794be4a
parent047d6d9808bbde26d161ac736067c4b5d2bb77af
ada: Tweak CPU affinity handling

The primary motivation for this change is making the taskset command
line tool work as expected for tasking programs that don't use features
from section D.16 of the Ada reference manual. A couple of components
are added to the ATCB record to make it possible to tell values that
come from explicit aspects and subprogram calls from values that are
inherited from activating tasks.

gcc/ada/ChangeLog:

* libgnarl/s-mudido__affinity.adb (Unchecked_Set_Affinity): Set new
ATCB component.
* libgnarl/s-taprop__linux.adb (Create_Task): Only set CPU affinity
when required.
(Requires_Affinity_Change): New subprogram.
(Set_Task_Affinity): Likewise.
* libgnarl/s-tarest.adb (Create_Restricted_Task): Adapt to
Initialize_ATCB change.
* libgnarl/s-taskin.adb (Initialize_ATCB): Update parameter list.
Record whether aspects were explicitly specified.
* libgnarl/s-taskin.ads (Common_ATCB): Add component.
* libgnarl/s-tassta.adb (Create_Task): Update call to Initialize_ATCB.
* libgnarl/s-tporft.adb (Register_Foreign_Thread): Likewise.
gcc/ada/libgnarl/s-mudido__affinity.adb
gcc/ada/libgnarl/s-taprop__linux.adb
gcc/ada/libgnarl/s-tarest.adb
gcc/ada/libgnarl/s-taskin.adb
gcc/ada/libgnarl/s-taskin.ads
gcc/ada/libgnarl/s-tassta.adb
gcc/ada/libgnarl/s-tporft.adb