The Linux Kernel Mailing List
 help / color / mirror / Atom feed
From: "Chang S. Bae" <chang.seok.bae@intel.com>
To: Andrei Vagin <avagin@gmail.com>
Cc: Andrei Vagin <avagin@google.com>,
	Thomas Gleixner <tglx@kernel.org>,
	"Ingo Molnar" <mingo@redhat.com>, Borislav Petkov <bp@alien8.de>,
	<linux-kernel@vger.kernel.org>, <criu@lists.linux.dev>,
	Dave Hansen <dave.hansen@linux.intel.com>, <x86@kernel.org>,
	"H. Peter Anvin" <hpa@zytor.com>
Subject: Re: [PATCH 09/10] x86/fpu: Allow restoring signal frames with larger xstate_size
Date: Mon, 10 Aug 2026 23:06:20 -0700	[thread overview]
Message-ID: <c551319e-6c79-4659-a5fd-55561b1ae0eb@intel.com> (raw)
In-Reply-To: <CANaxB-wEO47Yhv-QBuzOohTWMjkofRg2O_iV-7sF3rcvpO9QEw@mail.gmail.com>

On 8/8/2026 11:50 AM, Andrei Vagin wrote:
> 
> If we decide not to enable dynamic features when restoring state from a
> signal frame:
> 
> diff --git a/arch/x86/kernel/fpu/signal.c b/arch/x86/kernel/fpu/signal.c
> index 083f03d2d002..e2eeb85cc0cd 100644
> --- a/arch/x86/kernel/fpu/signal.c
> +++ b/arch/x86/kernel/fpu/signal.c
> @@ -64,6 +64,9 @@ static inline bool check_xstate_in_sigframe(struct
> fxregs_state __user *buf_fx,
>          if (unlikely(magic2 != FP_XSTATE_MAGIC2))
>                  goto err_setfx;
> 
> +       if ((fx_sw->xfeatures & XFEATURE_MASK_USER_DYNAMIC) &
> ~fpstate->user_xfeatures)
> +               return false;
> +
>          if (fx_sw->xstate_size != fpstate->user_size ||
>              fx_sw->xfeatures != fpstate->user_xfeatures) {
>                  unsigned int xsize;
> 
> 
> Then when a process is restored, we need to re-enable all dynamic
> features that were enabled at the time of dump (restoring
> fpstate->user_xfeatures per thread).
> 
> However, ARCH_GET_XCOMP_PERM only gives us the mask of permitted
> features for the process, not what is actually enabled for each thread.
> We could blindly enable all permitted features on all threads, but that
> is not ideal.
Couldn't be staged for the review?

  (1) First, the above change with this patch
      * This can establish the semantic - reject from restoring a signal
        frame with dynamic state if not enabled (not first-touched).
      * A checkpoint program would need to make the required dynamic
        features available for every thread. While suboptimal, migration
        would be possible then.
  (2) Then, follow on with further optimizations, potentially including
      the new arch_prctl proposal

This would make the two approaches distinguishable and give a chance to 
compare the implementation complexity and costs.

Then, since these last two patches grow more, it could be an option to 
split the series: the patches before this could be relatively 
straightforward, while the more debatable changes could follow on later.

Thanks,
Chang

  reply	other threads:[~2026-08-11  6:06 UTC|newest]

Thread overview: 40+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-06-15 19:37 [PATCH v3 0/10] x86/fpu: Restore and reinforce signal frame portability Andrei Vagin
2026-06-15 19:37 ` [PATCH 01/10] x86/fpu: Document " Andrei Vagin
2026-06-26 13:51   ` Alexander Mikhalitsyn
2026-06-30 19:23   ` Chang S. Bae
2026-06-15 19:37 ` [PATCH 02/10] x86/fpu: Clean up and rename variables in signal frame handling Andrei Vagin
2026-06-26 17:05   ` Alexander Mikhalitsyn
2026-06-15 19:37 ` [PATCH 03/10] x86/fpu: Split __fpu_restore_sig to extract compat path Andrei Vagin
2026-06-26 17:20   ` Alexander Mikhalitsyn
2026-06-15 19:37 ` [PATCH 04/10] x86/fpu: Document reasoning of FX-only fallback Andrei Vagin
2026-06-26 14:22   ` Alexander Mikhalitsyn
2026-06-30 19:23   ` Chang S. Bae
2026-07-31 15:34     ` Andrei Vagin
2026-06-15 19:37 ` [PATCH 05/10] x86/fpu: Fix potential underflow in xstate_calculate_size() Andrei Vagin
2026-06-26 14:32   ` Alexander Mikhalitsyn
2026-06-30 19:23   ` Chang S. Bae
2026-06-15 19:37 ` [PATCH 06/10] selftests/x86: Add a test for signal frame FPU portability Andrei Vagin
2026-06-26 14:39   ` Alexander Mikhalitsyn
2026-06-15 19:37 ` [PATCH 07/10] x86/fpu: Pre-fault only required size of xstate buffer Andrei Vagin
2026-06-26 17:28   ` Alexander Mikhalitsyn
2026-06-15 19:37 ` [PATCH 08/10] selftests/x86: Add a sigframe insufficient xstate_size test Andrei Vagin
2026-06-26 15:02   ` Alexander Mikhalitsyn
2026-06-15 19:37 ` [PATCH 09/10] x86/fpu: Allow restoring signal frames with larger xstate_size Andrei Vagin
2026-06-26 17:32   ` Alexander Mikhalitsyn
2026-06-30 19:23   ` Chang S. Bae
2026-07-01  0:48     ` Andrei Vagin
2026-07-06 17:08       ` Chang S. Bae
2026-07-07 20:27         ` Andrei Vagin
2026-07-09 21:14           ` Chang S. Bae
2026-07-10 22:24             ` Chang S. Bae
2026-07-22  0:35             ` Andrei Vagin
2026-07-30 21:26               ` Andrei Vagin
2026-08-01  0:49                 ` Chang S. Bae
2026-08-04 20:30                   ` Andrei Vagin
2026-08-07 15:56                     ` Chang S. Bae
2026-08-07 23:12                       ` Andrei Vagin
2026-08-08  3:05                         ` Chang S. Bae
2026-08-08 18:50                           ` Andrei Vagin
2026-08-11  6:06                             ` Chang S. Bae [this message]
2026-06-15 19:37 ` [PATCH 10/10] selftests/x86: Check restoring FPU state " Andrei Vagin
2026-06-26 15:12   ` Alexander Mikhalitsyn

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=c551319e-6c79-4659-a5fd-55561b1ae0eb@intel.com \
    --to=chang.seok.bae@intel.com \
    --cc=avagin@gmail.com \
    --cc=avagin@google.com \
    --cc=bp@alien8.de \
    --cc=criu@lists.linux.dev \
    --cc=dave.hansen@linux.intel.com \
    --cc=hpa@zytor.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mingo@redhat.com \
    --cc=tglx@kernel.org \
    --cc=x86@kernel.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox