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.
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?
+/*
- 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.
Aside of that please use tabs to seperate type and name.
- u64 upid_addr;
- u64 uirr;
- u64 uitt_addr;
+} __packed;
Thanks,
tglx