2024-03-08 01:56:58

by Stephen Rothwell

[permalink] [raw]
Subject: linux-next: manual merge of the kvm-arm tree with the arm64 tree

Hi all,

Today's linux-next merge of the kvm-arm tree got a conflict in:

arch/arm64/kernel/cpufeature.c

between commits:

203f2b95a882 ("arm64/fpsimd: Support FEAT_FPMR")
9cce9c6c2c3b ("arm64: mm: Handle LVA support as a CPU feature")
352b0395b505 ("arm64: Enable 52-bit virtual addressing for 4k and 16k granule configs")
2aea7b77aabc ("arm64: Use Signed/Unsigned enums for TGRAN{4,16,64} and VARange")

from the arm64 tree and commit:

da9af5071b25 ("arm64: cpufeature: Detect HCR_EL2.NV1 being RES0")

from the kvm-arm tree.

I fixed it up (see below) and can carry the fix as necessary. This
is now fixed as far as linux-next is concerned, but any non trivial
conflicts should be mentioned to your upstream maintainer when your tree
is submitted for merging. You may also want to consider cooperating
with the maintainer of the conflicting tree to minimise any particularly
complex conflicts.

--
Cheers,
Stephen Rothwell

diff --cc arch/arm64/kernel/cpufeature.c
index d6679d8b737e,f309fd542c20..000000000000
--- a/arch/arm64/kernel/cpufeature.c
+++ b/arch/arm64/kernel/cpufeature.c
@@@ -754,16 -752,14 +789,17 @@@ static const struct __ftr_reg_entry
&id_aa64isar1_override),
ARM64_FTR_REG_OVERRIDE(SYS_ID_AA64ISAR2_EL1, ftr_id_aa64isar2,
&id_aa64isar2_override),
+ ARM64_FTR_REG(SYS_ID_AA64ISAR3_EL1, ftr_id_aa64isar3),

/* Op1 = 0, CRn = 0, CRm = 7 */
- ARM64_FTR_REG(SYS_ID_AA64MMFR0_EL1, ftr_id_aa64mmfr0),
+ ARM64_FTR_REG_OVERRIDE(SYS_ID_AA64MMFR0_EL1, ftr_id_aa64mmfr0,
+ &id_aa64mmfr0_override),
ARM64_FTR_REG_OVERRIDE(SYS_ID_AA64MMFR1_EL1, ftr_id_aa64mmfr1,
&id_aa64mmfr1_override),
- ARM64_FTR_REG(SYS_ID_AA64MMFR2_EL1, ftr_id_aa64mmfr2),
+ ARM64_FTR_REG_OVERRIDE(SYS_ID_AA64MMFR2_EL1, ftr_id_aa64mmfr2,
+ &id_aa64mmfr2_override),
ARM64_FTR_REG(SYS_ID_AA64MMFR3_EL1, ftr_id_aa64mmfr3),
+ ARM64_FTR_REG(SYS_ID_AA64MMFR4_EL1, ftr_id_aa64mmfr4),

/* Op1 = 1, CRn = 0, CRm = 0 */
ARM64_FTR_REG(SYS_GMID_EL1, ftr_gmid),
@@@ -1088,12 -1084,11 +1125,13 @@@ void __init init_cpu_features(struct cp
init_cpu_ftr_reg(SYS_ID_AA64MMFR1_EL1, info->reg_id_aa64mmfr1);
init_cpu_ftr_reg(SYS_ID_AA64MMFR2_EL1, info->reg_id_aa64mmfr2);
init_cpu_ftr_reg(SYS_ID_AA64MMFR3_EL1, info->reg_id_aa64mmfr3);
+ init_cpu_ftr_reg(SYS_ID_AA64MMFR4_EL1, info->reg_id_aa64mmfr4);
init_cpu_ftr_reg(SYS_ID_AA64PFR0_EL1, info->reg_id_aa64pfr0);
init_cpu_ftr_reg(SYS_ID_AA64PFR1_EL1, info->reg_id_aa64pfr1);
+ init_cpu_ftr_reg(SYS_ID_AA64PFR2_EL1, info->reg_id_aa64pfr2);
init_cpu_ftr_reg(SYS_ID_AA64ZFR0_EL1, info->reg_id_aa64zfr0);
init_cpu_ftr_reg(SYS_ID_AA64SMFR0_EL1, info->reg_id_aa64smfr0);
+ init_cpu_ftr_reg(SYS_ID_AA64FPFR0_EL1, info->reg_id_aa64fpfr0);

if (id_aa64pfr0_32bit_el0(info->reg_id_aa64pfr0))
init_32bit_cpu_features(&info->aarch32);
@@@ -2750,32 -2817,13 +2828,39 @@@ static const struct arm64_cpu_capabilit
.type = ARM64_CPUCAP_SYSTEM_FEATURE,
.matches = has_lpa2,
},
+ {
+ .desc = "FPMR",
+ .type = ARM64_CPUCAP_SYSTEM_FEATURE,
+ .capability = ARM64_HAS_FPMR,
+ .matches = has_cpuid_feature,
+ .cpu_enable = cpu_enable_fpmr,
+ ARM64_CPUID_FIELDS(ID_AA64PFR2_EL1, FPMR, IMP)
+ },
+#ifdef CONFIG_ARM64_VA_BITS_52
+ {
+ .capability = ARM64_HAS_VA52,
+ .type = ARM64_CPUCAP_BOOT_CPU_FEATURE,
+ .matches = has_cpuid_feature,
+#ifdef CONFIG_ARM64_64K_PAGES
+ .desc = "52-bit Virtual Addressing (LVA)",
+ ARM64_CPUID_FIELDS(ID_AA64MMFR2_EL1, VARange, 52)
+#else
+ .desc = "52-bit Virtual Addressing (LPA2)",
+#ifdef CONFIG_ARM64_4K_PAGES
+ ARM64_CPUID_FIELDS(ID_AA64MMFR0_EL1, TGRAN4, 52_BIT)
+#else
+ ARM64_CPUID_FIELDS(ID_AA64MMFR0_EL1, TGRAN16, 52_BIT)
+#endif
+#endif
+ },
+#endif
+ {
+ .desc = "NV1",
+ .capability = ARM64_HAS_HCR_NV1,
+ .type = ARM64_CPUCAP_SYSTEM_FEATURE,
+ .matches = has_nv1,
+ ARM64_CPUID_FIELDS_NEG(ID_AA64MMFR4_EL1, E2H0, NI_NV1)
+ },
{},
};


Attachments:
(No filename) (499.00 B)
OpenPGP digital signature

2024-03-08 06:25:44

by Oliver Upton

[permalink] [raw]
Subject: Re: linux-next: manual merge of the kvm-arm tree with the arm64 tree

On Fri, Mar 08, 2024 at 12:54:33PM +1100, Stephen Rothwell wrote:
> Hi all,
>
> Today's linux-next merge of the kvm-arm tree got a conflict in:
>
> arch/arm64/kernel/cpufeature.c
>
> between commits:
>
> 203f2b95a882 ("arm64/fpsimd: Support FEAT_FPMR")
> 9cce9c6c2c3b ("arm64: mm: Handle LVA support as a CPU feature")
> 352b0395b505 ("arm64: Enable 52-bit virtual addressing for 4k and 16k granule configs")
> 2aea7b77aabc ("arm64: Use Signed/Unsigned enums for TGRAN{4,16,64} and VARange")
>
> from the arm64 tree and commit:
>
> da9af5071b25 ("arm64: cpufeature: Detect HCR_EL2.NV1 being RES0")
>
> from the kvm-arm tree.
>
> I fixed it up (see below) and can carry the fix as necessary.

Thanks for reporting these Stephen. Fix looks good to me.

Catalin -- I think the conflicts are pretty simple here, but if we
wanted to do something it'd probably be easiest if you pulled my
kvm-arm64/feat_e2h0 branch. Looks like changes are coming from multiple
topic branches in your tree.

No strong opinions either way, but I plan on sending the kvmarm PR
tomorrow.

[*] https://git.kernel.org/pub/scm/linux/kernel/git/oupton/linux.git/log/?h=kvm-arm64/feat_e2h0

--
Thanks,
Oliver

2024-03-08 12:31:07

by Catalin Marinas

[permalink] [raw]
Subject: Re: linux-next: manual merge of the kvm-arm tree with the arm64 tree

On Fri, Mar 08, 2024 at 06:25:26AM +0000, Oliver Upton wrote:
> On Fri, Mar 08, 2024 at 12:54:33PM +1100, Stephen Rothwell wrote:
> > Today's linux-next merge of the kvm-arm tree got a conflict in:
> >
> > arch/arm64/kernel/cpufeature.c
> >
> > between commits:
> >
> > 203f2b95a882 ("arm64/fpsimd: Support FEAT_FPMR")
> > 9cce9c6c2c3b ("arm64: mm: Handle LVA support as a CPU feature")
> > 352b0395b505 ("arm64: Enable 52-bit virtual addressing for 4k and 16k granule configs")
> > 2aea7b77aabc ("arm64: Use Signed/Unsigned enums for TGRAN{4,16,64} and VARange")
> >
> > from the arm64 tree and commit:
> >
> > da9af5071b25 ("arm64: cpufeature: Detect HCR_EL2.NV1 being RES0")
> >
> > from the kvm-arm tree.
> >
> > I fixed it up (see below) and can carry the fix as necessary.
>
> Thanks for reporting these Stephen. Fix looks good to me.
>
> Catalin -- I think the conflicts are pretty simple here, but if we
> wanted to do something it'd probably be easiest if you pulled my
> kvm-arm64/feat_e2h0 branch. Looks like changes are coming from multiple
> topic branches in your tree.
>
> No strong opinions either way, but I plan on sending the kvmarm PR
> tomorrow.

I'm happy to live with the conflicts really, Linus normally fixes those
at merge time.

--
Catalin