Re: [RFC PATCH 04/13] x86/fpu/xstate: Enumerate User Interrupts supervisor state
From: Thomas Gleixner <hidden>
Date: 2021-09-23 22:34:11
Also in:
linux-api, linux-kselftest, lkml
From: Thomas Gleixner <hidden>
Date: 2021-09-23 22:34:11
Also in:
linux-api, linux-kselftest, lkml
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