Repository navigation
Arm64-SVE: Add scheme for scalable SVE state in the CONTEXT record - #133152
Conversation
Replaces the fixed-length SVE state from the CONTEXT record with dynamically allocated space, similar to XSTATE, for saving and restoring vector/predicate register state, and the first-faulting register. This reduces the size of the CONTEXT structure, as the SVE state is now optional. Subsystems that want to consume SVE state should set XSTATE_MASK_ARM64_SVE in CONTEXT::XStateFeaturesMask and allocate sufficient storage space for the trailer.
|
Azure Pipelines: Successfully started running 3 pipeline(s). 13 pipeline(s) were filtered out due to trigger conditions. There may be pipelines that require an authorized user to comment /azp run to run. |
|
@dotnet/arm64-contrib I originally planned this work thinking that it was necessary to ensure SVE vector state is preserved across suspension, though I have learned that it's not while writing this patch, as the OS suspension context will do that already. IIUC x64 saves its vector state in I have tried to keep this data structure as simple as possible so it's easy to port to |
|
@janvorli would you be an appropriate person to take a look here? pal/CONTEXT changes |
|
cc: @dotnet/arm64-contrib |
|
Hi @janvorli, could you take a look at this PR please? |
* Add documentation on native_context SVE space guarantees * Clear up bit tests in context2.S
|
Test failure is a timeout in |
|
/ba-g known test failure |
Replaces the fixed-length SVE state from the
CONTEXTrecord with dynamically allocated space, similar to XSTATE, for saving and restoring vector/predicate register state, and the first-faulting register.This reduces the size of the CONTEXT structure, as the SVE state is now optional. Subsystems that want to consume SVE state should set
XSTATE_MASK_ARM64_SVEinCONTEXT::XStateFeaturesMaskand allocate sufficient storage space for the trailer.