On 9/23/2021 3:34 PM, Thomas Gleixner wrote:
On Mon, Sep 13 2021 at 13:01, Sohil Mehta wrote:
Enable xstate supervisor support for User Interrupts by default.
What means enabled by default? It's enabled when available and not disabled on the command line.
I'll remove it.
The user interrupt state for a task consists of the MSR state and the User Interrupt Flag (UIF) value. XSAVES and XRSTORS handle saving and restoring both of these states.
<The supervisor XSTATE code might be reworked based on issues reported in the past. The Uintr context switching code would also need rework and additional testing in that regard.>
What? Which issues were reported and if they have been reported then how is the provided code correct?
I apologize for causing this confusion. This comment was added a few months back when the PKRU and FPU code was being reworked. This comment is no longer valid.
+/*
- State component 14 is supervisor state used for User Interrupts state.
- The size of this state is 48 bytes
- */
+struct uintr_state {
- u64 handler;
- u64 stack_adjust;
- u32 uitt_size;
- u8 uinv;
- u8 pad1;
- u8 pad2;
- u8 uif_pad3; /* bit 7 - UIF, bits 6:0 - reserved */
Please do not use tail comments. Also what kind of name is uif_pad3? Bitfields exist for a reason.
An internal version of this used bitfields. I was suggested that use of bitfields is not recommended for x86 code.
The name uif_pad3 is really ugly though. I'll change it to a bitfield next time.
Thanks,
Sohil