All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jan Beulich <jbeulich@suse.com>
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: "Roger Pau Monné" <roger.pau@citrix.com>,
	Xen-devel <xen-devel@lists.xenproject.org>
Subject: Re: [PATCH 13/22] x86: FRED enumerations
Date: Fri, 15 Aug 2025 10:34:55 +0200	[thread overview]
Message-ID: <689c255e-ebea-4454-80e3-3731b4d12781@suse.com> (raw)
In-Reply-To: <79521edc-34d9-4364-922d-158e93fcbc04@citrix.com>

On 14.08.2025 20:45, Andrew Cooper wrote:
> On 14/08/2025 2:19 pm, Jan Beulich wrote:
>> On 14.08.2025 13:20, Jan Beulich wrote:
>>> On 08.08.2025 22:23, Andrew Cooper wrote:
>>>> --- a/xen/include/public/arch-x86/cpufeatureset.h
>>>> +++ b/xen/include/public/arch-x86/cpufeatureset.h
>>>> @@ -310,7 +310,10 @@ XEN_CPUFEATURE(ARCH_PERF_MON, 10*32+8) /*   Architectural Perfmon */
>>>>  XEN_CPUFEATURE(FZRM,         10*32+10) /*A  Fast Zero-length REP MOVSB */
>>>>  XEN_CPUFEATURE(FSRS,         10*32+11) /*A  Fast Short REP STOSB */
>>>>  XEN_CPUFEATURE(FSRCS,        10*32+12) /*A  Fast Short REP CMPSB/SCASB */
>>>> +XEN_CPUFEATURE(FRED,         10*32+17) /*   Fast Return and Event Delivery */
>>>> +XEN_CPUFEATURE(LKGS,         10*32+18) /*   Load Kernel GS instruction */
>>>>  XEN_CPUFEATURE(WRMSRNS,      10*32+19) /*S  WRMSR Non-Serialising */
>>>> +XEN_CPUFEATURE(NMI_SRC,      10*32+20) /*   NMI-Source Reporting */
>>>>  XEN_CPUFEATURE(AMX_FP16,     10*32+21) /*   AMX FP16 instruction */
>>>>  XEN_CPUFEATURE(AVX_IFMA,     10*32+23) /*A  AVX-IFMA Instructions */
>>>>  XEN_CPUFEATURE(LAM,          10*32+26) /*   Linear Address Masking */
>>> I'd like to note that we could long have had this if my long-pending emulator
>>> patch had gone in at some point.
>> Actually what I further have there, and what in the context of patch 15 I
>> notice you should have here is
>>
>> --- a/xen/tools/gen-cpuid.py
>> +++ b/xen/tools/gen-cpuid.py
>> @@ -278,7 +278,8 @@ def crunch_numbers(state):
>>          # superpages, PCID and PKU are only available in 4 level paging.
>>          # NO_LMSL indicates the absense of Long Mode Segment Limits, which
>>          # have been dropped in hardware.
>> -        LM: [CX16, PCID, LAHF_LM, PAGE1GB, PKU, NO_LMSL, AMX_TILE, CMPCCXADD],
>> +        LM: [CX16, PCID, LAHF_LM, PAGE1GB, PKU, NO_LMSL, AMX_TILE, CMPCCXADD,
>> +             LKGS],
>>  
>>          # AMD K6-2+ and K6-III processors shipped with 3DNow+, beyond the
>>          # standard 3DNow in the earlier K6 processors.
>> @@ -347,6 +348,9 @@ def crunch_numbers(state):
>>          # computational instructions.  All further AMX features are built on top
>>          # of AMX-TILE.
>>          AMX_TILE: [AMX_BF16, AMX_INT8, AMX_FP16, AMX_COMPLEX],
>> +
>> +        # FRED builds on the LKGS instruction.
>> +        LKGS: [FRED],
>>      }
>>  
>>      deep_features = tuple(sorted(deps.keys()))
> 
> Hmm.  Yes, but normally this is part of guest enablement.

Hence why I would have wanted the emulator patch to long have gone in.

> Having now done the Xen work and concluded that we don't actually need
> LKGS, I'm rethinking the linkage here.  It's probably the right thing to
> do in practice, but probably needs a bit more in the way of
> justification.  "built on" doesn't quite cut it IMO.

The comment can be adjusted (or dropped). Im "builds on" is quite adequate,
as without SWAPGS you won't really have a way to get things working in an
OS without having LKGS available. In Xen we're in a slightly different
position ...

Jan


  reply	other threads:[~2025-08-15  8:35 UTC|newest]

Thread overview: 120+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-08-08 20:22 [PATCH 00/22] x86: FRED support, part 1 (stacks and exceptions) Andrew Cooper
2025-08-08 20:22 ` [PATCH 01/22] x86/msr: Rename MSR_INTERRUPT_SSP_TABLE to MSR_ISST Andrew Cooper
2025-08-12  8:06   ` Jan Beulich
2025-08-13  9:02     ` Andrew Cooper
2025-08-08 20:22 ` [PATCH 02/22] x86/msr: Rename wrmsr_ns() to wrmsrns(), and take 64bit value Andrew Cooper
2025-08-11  6:36   ` Andrew Cooper
2025-08-12  8:08     ` Jan Beulich
2025-08-08 20:22 ` [PATCH 03/22] x86/traps: Drop incorrect BUILD_BUG_ON() and comment in load_system_tables() Andrew Cooper
2025-08-12  8:11   ` Jan Beulich
2025-08-13  9:40     ` Andrew Cooper
2025-08-14  8:50       ` Jan Beulich
2025-08-08 20:22 ` [PATCH 04/22] x86/idt: Minor improvements to _update_gate_addr_lower() Andrew Cooper
2025-08-12  8:16   ` Jan Beulich
2025-08-13  9:48     ` Andrew Cooper
2025-08-08 20:22 ` [PATCH 05/22] x86/traps: Rename early_traps_init() to bsp_early_traps_init() Andrew Cooper
2025-08-12  8:17   ` Jan Beulich
2025-08-08 20:22 ` [PATCH 06/22] x86/traps: Introduce bsp_traps_reinit() Andrew Cooper
2025-08-12  8:19   ` Jan Beulich
2025-08-13  9:51     ` Andrew Cooper
2025-08-08 20:22 ` [PATCH 07/22] x86/spec-ctrl: Rework init_shadow_spec_ctrl_state() to take an info pointer Andrew Cooper
2025-08-12  8:27   ` Jan Beulich
2025-08-13 10:35     ` Andrew Cooper
2025-08-08 20:23 ` [PATCH 08/22] x86/traps: Introduce ap_early_traps_init() and set up exception handling earlier Andrew Cooper
2025-08-12  8:41   ` Jan Beulich
2025-08-13 11:13     ` Andrew Cooper
2025-08-14  8:53       ` Jan Beulich
2025-08-14 18:07   ` [PATCH v1.1 08/22] x86/traps: Introduce percpu_early_traps_init() " Andrew Cooper
2025-08-15  9:24     ` Jan Beulich
2025-08-08 20:23 ` [PATCH 09/22] x86/traps: Move load_system_tables() into traps-setup.c Andrew Cooper
2025-08-12  9:19   ` Jan Beulich
2025-08-13 11:25     ` Andrew Cooper
2025-08-14  8:55       ` Jan Beulich
2025-08-14 18:09         ` Andrew Cooper
2025-08-15  8:22           ` Jan Beulich
2025-08-15  8:28             ` Andrew Cooper
2025-08-15  8:32               ` Jan Beulich
2025-08-12  9:43   ` Nicola Vetrini
2025-08-13 11:36     ` Andrew Cooper
2025-08-14  7:26       ` Jan Beulich
2025-08-14 18:20         ` Andrew Cooper
2025-08-15  8:30           ` Jan Beulich
2025-08-15  8:40             ` Nicola Vetrini
2025-08-15  8:49               ` Jan Beulich
2025-08-08 20:23 ` [PATCH 10/22] x86/traps: Move subarch_percpu_traps_init() " Andrew Cooper
2025-08-11  8:17   ` Andrew Cooper
2025-08-12  9:52     ` Jan Beulich
2025-08-13 11:53       ` Andrew Cooper
2025-08-14  8:58         ` Jan Beulich
2025-08-14 10:17           ` Andrew Cooper
2025-08-14 10:52             ` Jan Beulich
2025-08-14 11:02               ` Andrew Cooper
2025-08-08 20:23 ` [PATCH 11/22] x86/traps: Fold x86_64/traps.c into traps.c Andrew Cooper
2025-08-12  9:53   ` Jan Beulich
2025-08-08 20:23 ` [PATCH 12/22] x86/traps: Unexport show_code() and show_stack_overflow() Andrew Cooper
2025-08-12  9:54   ` Jan Beulich
2025-08-08 20:23 ` [PATCH 13/22] x86: FRED enumerations Andrew Cooper
2025-08-13 12:28   ` Andrew Cooper
2025-08-14  7:30     ` Jan Beulich
2025-08-14 11:20   ` Jan Beulich
2025-08-14 11:42     ` Andrew Cooper
2025-08-14 11:44       ` Jan Beulich
2025-08-14 11:47         ` Andrew Cooper
2025-08-14 19:37           ` Nicola Vetrini
2025-08-14 19:44             ` Andrew Cooper
2025-08-14 21:27               ` Nicola Vetrini
2025-08-14 20:18             ` Nicola Vetrini
2025-08-14 13:19     ` Jan Beulich
2025-08-14 18:45       ` Andrew Cooper
2025-08-15  8:34         ` Jan Beulich [this message]
2025-08-21 21:23     ` Andrew Cooper
2025-08-18  9:02   ` Jan Beulich
2025-08-08 20:23 ` [PATCH 14/22] x86/traps: Extend struct cpu_user_regs/cpu_info with FRED fields Andrew Cooper
2025-08-14 13:12   ` Jan Beulich
2025-08-14 15:07     ` Andrew Cooper
2025-08-08 20:23 ` [PATCH 15/22] x86/traps: Introduce opt_fred Andrew Cooper
2025-08-14 13:30   ` Jan Beulich
2025-08-14 19:16     ` Andrew Cooper
2025-08-15  8:37       ` Jan Beulich
2025-08-21 21:52         ` Andrew Cooper
2025-08-25  9:08           ` Jan Beulich
2025-08-08 20:23 ` [PATCH 16/22] x86/boot: Adjust CR4 handling around ap_early_traps_init() Andrew Cooper
2025-08-14 14:47   ` Jan Beulich
2025-08-14 14:54     ` Andrew Cooper
2025-08-14 14:56       ` Jan Beulich
2025-08-14 19:22         ` Andrew Cooper
2025-08-08 20:23 ` [PATCH 17/22] x86/S3: Switch to using RSTORSSP to recover SSP on resume Andrew Cooper
2025-08-14 14:54   ` Jan Beulich
2025-08-08 20:23 ` [PATCH 18/22] x86/traps: Set MSR_PL0_SSP in load_system_tables() Andrew Cooper
2025-08-14 15:00   ` Jan Beulich
2025-08-14 19:37     ` Andrew Cooper
2025-08-15  8:52       ` Jan Beulich
2025-08-15 13:49         ` Andrew Cooper
2025-08-08 20:23 ` [PATCH 19/22] x86/boot: Use RSTORSSP to establish SSP Andrew Cooper
2025-08-14 15:11   ` Jan Beulich
2025-08-14 20:09     ` Andrew Cooper
2025-08-15  9:03       ` Jan Beulich
2025-08-21 22:09         ` Andrew Cooper
2025-08-25  9:12           ` Jan Beulich
2025-08-08 20:23 ` [PATCH 20/22] x86/traps: Alter switch_stack_and_jump() for FRED mode Andrew Cooper
2025-08-14 15:35   ` Jan Beulich
2025-08-14 20:55     ` Andrew Cooper
2025-08-15  9:10       ` Jan Beulich
2025-08-21 22:56         ` Andrew Cooper
2025-08-25  9:19           ` Jan Beulich
2025-08-08 20:23 ` [PATCH 21/22] x86/traps: Introduce FRED entrypoints Andrew Cooper
2025-08-11 11:38   ` Andrew Cooper
2025-08-14 15:57   ` Jan Beulich
2025-08-14 20:40     ` Andrew Cooper
2025-08-15  9:22       ` Jan Beulich
2025-08-18  8:59       ` Jan Beulich
2025-08-18 10:03   ` Jan Beulich
2025-08-18 10:09     ` Andrew Cooper
2025-08-08 20:23 ` [PATCH 22/22] x86/traps: Enable FRED when requested Andrew Cooper
2025-08-18  9:35   ` Jan Beulich
2025-08-18  9:47     ` Andrew Cooper
2025-08-18  9:53       ` Jan Beulich
2025-08-08 23:49 ` [PATCH 23/22] x86/vmx: Adjust NMI handling for FRED Andrew Cooper
2025-08-18 10:02   ` Jan Beulich
2025-08-18 17:18     ` Andrew Cooper
2025-08-19  6:31       ` Jan Beulich

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=689c255e-ebea-4454-80e3-3731b4d12781@suse.com \
    --to=jbeulich@suse.com \
    --cc=andrew.cooper3@citrix.com \
    --cc=roger.pau@citrix.com \
    --cc=xen-devel@lists.xenproject.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.