[RFC PATCH 07/10] arm64/sve: Add vector length inheritance control
From: Yao Qi <hidden>
Date: 2017-01-16 12:27:55
Also in:
linux-arch
From: Yao Qi <hidden>
Date: 2017-01-16 12:27:55
Also in:
linux-arch
On 17-01-12 11:26:06, Dave Martin wrote:
Currently the vector length is inherited across both fork() and exec(). Inheritance across fork() is desirable both for creating a copy of a process (traditional fork) or creating a thread (where we want all threads to share the same VL by default). Inheritance across exec() is less desirable, because of the ABI impact of large vector lengths on the size of the signal frame -- when running a new binary, there is no guarantee that the new binary is compatible with these ABI changes. This flag makes the vector length non-inherited by default.
Can we make vector length inherited across fork but non-inherited across exec by default?
Instead, the vector length is reset to a system default value, unless the THREAD_VL_INHERIT flag has been set for the thread. THREAD_VL_INHERIT is currently sticky: i.e., if set, it gets inherited too. This behaviour may be refined in future if it is not flexible enough.
-- Yao (??)