On 10/27/2025 7:18 PM, Zhao Liu wrote:
On Mon, Oct 27, 2025 at 06:19:40PM +0800, Zhao Liu wrote:
Date: Mon, 27 Oct 2025 18:19:40 +0800
From: Zhao Liu <[email protected]>
Subject: Re: [PATCH v3 10/20] i386/cpu: Add missing migratable xsave
  features

Though the feature expansion in x86_cpu_expand_features() under

        if (xcc->max_features) {
                ...
        }

only enables migratable features when cpu->migratable is true,
x86_cpu_enable_xsave_components() overwrite the value later.

I have not changed the related logic, and this was intentional...too,
which is planed to be cleaned up after CET.

There's only 1 use case of migratable_flags, so I would try to drop
it directly.

The xsave-managed/enabled feature is not suitable as the configurable
feature. Therefore, it is best to keep it non-configurable as it is
currently.

At least with this fix, the support for the new xsave feature —
including APX next — will not be broken,

can you elaborate what will be broken without the patch?

As I see, we can drop the .migratable_flags directly.

migrable_flags is only used in x86_cpu_get_migratable_flags(), which is only called by x86_cpu_get_supported_feature_word() when passed @cpu is not null and cpu->migratable is true. So it only affects the case of

  x86_cpu_expand_features()
    -> x86_cpu_get_supported_feature_word()

And only FEAT_XSAVE_XCR0_LO defines .migratable_flags

As I commented earlier, though the .migrable_flags determines the return value of x86_cpu_get_supported_feature_word() for features[FEAT_XSAVE_XCR0_LO] in x86_cpu_expand_features(), eventually the x86_cpu_enable_xsave_components() overwrites features[FEAT_XSAVE_XCR0_LO]. So even we set the migratable_flags to 0 for FEAT_XSAVE_XCR0_LO, it doesn't have any issue.

So I think we can remove migratable_flags totally.

and the migratable flag
refactoring will become a separate RFC.

Regards,
Zhao



Reply via email to