stable.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH V3 01/14] KVM: MIPS: Define KVM_ENTRYHI_ASID to cpu_asid_mask(&boot_cpu_data)
       [not found] <1588500367-1056-1-git-send-email-chenhc@lemote.com>
@ 2020-05-03 10:05 ` Huacai Chen
  2020-05-06 23:42   ` Sasha Levin
  2020-05-08 10:05   ` Aleksandar Markovic
  2020-05-03 10:05 ` [PATCH V3 02/14] KVM: MIPS: Fix VPN2_MASK definition for variable cpu_vmbits Huacai Chen
  1 sibling, 2 replies; 6+ messages in thread
From: Huacai Chen @ 2020-05-03 10:05 UTC (permalink / raw)
  To: Paolo Bonzini, Thomas Bogendoerfer
  Cc: kvm, qemu-devel, linux-mips, Philippe Mathieu-Daudé,
	Aleksandar Markovic, Fuxin Zhang, Huacai Chen, Jiaxun Yang,
	Xing Li, stable, Huacai Chen

From: Xing Li <lixing@loongson.cn>

The code in decode_config4() of arch/mips/kernel/cpu-probe.c

        asid_mask = MIPS_ENTRYHI_ASID;
        if (config4 & MIPS_CONF4_AE)
                asid_mask |= MIPS_ENTRYHI_ASIDX;
        set_cpu_asid_mask(c, asid_mask);

set asid_mask to cpuinfo->asid_mask.

So in order to support variable ASID_MASK, KVM_ENTRYHI_ASID should also
be changed to cpu_asid_mask(&boot_cpu_data).

Cc: stable@vger.kernel.org
Signed-off-by: Xing Li <lixing@loongson.cn>
[Huacai: Change current_cpu_data to boot_cpu_data for optimization]
Signed-off-by: Huacai Chen <chenhc@lemote.com>
---
 arch/mips/include/asm/kvm_host.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/arch/mips/include/asm/kvm_host.h b/arch/mips/include/asm/kvm_host.h
index 2c343c3..a01cee9 100644
--- a/arch/mips/include/asm/kvm_host.h
+++ b/arch/mips/include/asm/kvm_host.h
@@ -275,7 +275,7 @@ enum emulation_result {
 #define MIPS3_PG_FRAME		0x3fffffc0
 
 #define VPN2_MASK		0xffffe000
-#define KVM_ENTRYHI_ASID	MIPS_ENTRYHI_ASID
+#define KVM_ENTRYHI_ASID	cpu_asid_mask(&boot_cpu_data)
 #define TLB_IS_GLOBAL(x)	((x).tlb_lo[0] & (x).tlb_lo[1] & ENTRYLO_G)
 #define TLB_VPN2(x)		((x).tlb_hi & VPN2_MASK)
 #define TLB_ASID(x)		((x).tlb_hi & KVM_ENTRYHI_ASID)
-- 
2.7.0


^ permalink raw reply related	[flat|nested] 6+ messages in thread

* [PATCH V3 02/14] KVM: MIPS: Fix VPN2_MASK definition for variable cpu_vmbits
       [not found] <1588500367-1056-1-git-send-email-chenhc@lemote.com>
  2020-05-03 10:05 ` [PATCH V3 01/14] KVM: MIPS: Define KVM_ENTRYHI_ASID to cpu_asid_mask(&boot_cpu_data) Huacai Chen
@ 2020-05-03 10:05 ` Huacai Chen
  2020-05-08 10:14   ` Aleksandar Markovic
  1 sibling, 1 reply; 6+ messages in thread
From: Huacai Chen @ 2020-05-03 10:05 UTC (permalink / raw)
  To: Paolo Bonzini, Thomas Bogendoerfer
  Cc: kvm, qemu-devel, linux-mips, Philippe Mathieu-Daudé,
	Aleksandar Markovic, Fuxin Zhang, Huacai Chen, Jiaxun Yang,
	Xing Li, stable, Huacai Chen

From: Xing Li <lixing@loongson.cn>

If a CPU support more than 32bit vmbits (which is true for 64bit CPUs),
VPN2_MASK set to fixed 0xffffe000 will lead to a wrong EntryHi in some
functions such as _kvm_mips_host_tlb_inv().

The cpu_vmbits definition of 32bit CPU in cpu-features.h is 31, so we
still use the old definition.

Cc: stable@vger.kernel.org
Signed-off-by: Xing Li <lixing@loongson.cn>
[Huacai: Improve commit messages]
Signed-off-by: Huacai Chen <chenhc@lemote.com>
---
 arch/mips/include/asm/kvm_host.h | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/arch/mips/include/asm/kvm_host.h b/arch/mips/include/asm/kvm_host.h
index a01cee9..caa2b936 100644
--- a/arch/mips/include/asm/kvm_host.h
+++ b/arch/mips/include/asm/kvm_host.h
@@ -274,7 +274,11 @@ enum emulation_result {
 #define MIPS3_PG_SHIFT		6
 #define MIPS3_PG_FRAME		0x3fffffc0
 
+#if defined(CONFIG_64BIT)
+#define VPN2_MASK		GENMASK(cpu_vmbits - 1, 13)
+#else
 #define VPN2_MASK		0xffffe000
+#endif
 #define KVM_ENTRYHI_ASID	cpu_asid_mask(&boot_cpu_data)
 #define TLB_IS_GLOBAL(x)	((x).tlb_lo[0] & (x).tlb_lo[1] & ENTRYLO_G)
 #define TLB_VPN2(x)		((x).tlb_hi & VPN2_MASK)
-- 
2.7.0


^ permalink raw reply related	[flat|nested] 6+ messages in thread

* Re: [PATCH V3 01/14] KVM: MIPS: Define KVM_ENTRYHI_ASID to cpu_asid_mask(&boot_cpu_data)
  2020-05-03 10:05 ` [PATCH V3 01/14] KVM: MIPS: Define KVM_ENTRYHI_ASID to cpu_asid_mask(&boot_cpu_data) Huacai Chen
@ 2020-05-06 23:42   ` Sasha Levin
  2020-05-07 12:10     ` Aleksandar Markovic
  2020-05-08 10:05   ` Aleksandar Markovic
  1 sibling, 1 reply; 6+ messages in thread
From: Sasha Levin @ 2020-05-06 23:42 UTC (permalink / raw)
  To: Sasha Levin, Huacai Chen, Xing Li, Paolo Bonzini
  Cc: kvm, qemu-devel, stable, stable

Hi

[This is an automated email]

This commit has been processed because it contains a -stable tag.
The stable tag indicates that it's relevant for the following trees: all

The bot has tested the following trees: v5.6.10, v5.4.38, v4.19.120, v4.14.178, v4.9.221, v4.4.221.

v5.6.10: Build OK!
v5.4.38: Build OK!
v4.19.120: Build OK!
v4.14.178: Build OK!
v4.9.221: Build OK!
v4.4.221: Failed to apply! Possible dependencies:
    029499b47738 ("KVM: x86: MMU: Make mmu_set_spte() return emulate value")
    19d194c62b25 ("MIPS: KVM: Simplify TLB_* macros")
    403015b323a2 ("MIPS: KVM: Move non-TLB handling code out of tlb.c")
    7ee0e5b29d27 ("KVM: x86: MMU: Remove unused parameter of __direct_map()")
    9fbfb06a4065 ("MIPS: KVM: Arrayify struct kvm_mips_tlb::tlb_lo*")
    ba049e93aef7 ("kvm: rename pfn_t to kvm_pfn_t")
    bdb7ed8608f8 ("MIPS: KVM: Convert headers to kernel sized types")
    ca64c2beecd4 ("MIPS: KVM: Abstract guest ASID mask")
    caa1faa7aba6 ("MIPS: KVM: Trivial whitespace and style fixes")
    e6207bbea16c ("MIPS: KVM: Use MIPS_ENTRYLO_* defs from mipsregs.h")


NOTE: The patch will not be queued to stable trees until it is upstream.

How should we proceed with this patch?

-- 
Thanks
Sasha

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH V3 01/14] KVM: MIPS: Define KVM_ENTRYHI_ASID to cpu_asid_mask(&boot_cpu_data)
  2020-05-06 23:42   ` Sasha Levin
@ 2020-05-07 12:10     ` Aleksandar Markovic
  0 siblings, 0 replies; 6+ messages in thread
From: Aleksandar Markovic @ 2020-05-07 12:10 UTC (permalink / raw)
  To: Sasha Levin
  Cc: Huacai Chen, Xing Li, Paolo Bonzini, stable, QEMU Developers, kvm

чет, 7. мај 2020. у 01:43 Sasha Levin <sashal@kernel.org> је написао/ла:
>
> Hi
>
> [This is an automated email]
>
> This commit has been processed because it contains a -stable tag.
> The stable tag indicates that it's relevant for the following trees: all
>
> The bot has tested the following trees: v5.6.10, v5.4.38, v4.19.120, v4.14.178, v4.9.221, v4.4.221.
>
> v5.6.10: Build OK!
> v5.4.38: Build OK!
> v4.19.120: Build OK!
> v4.14.178: Build OK!
> v4.9.221: Build OK!
> v4.4.221: Failed to apply! Possible dependencies:
>     029499b47738 ("KVM: x86: MMU: Make mmu_set_spte() return emulate value")
>     19d194c62b25 ("MIPS: KVM: Simplify TLB_* macros")
>     403015b323a2 ("MIPS: KVM: Move non-TLB handling code out of tlb.c")
>     7ee0e5b29d27 ("KVM: x86: MMU: Remove unused parameter of __direct_map()")
>     9fbfb06a4065 ("MIPS: KVM: Arrayify struct kvm_mips_tlb::tlb_lo*")
>     ba049e93aef7 ("kvm: rename pfn_t to kvm_pfn_t")
>     bdb7ed8608f8 ("MIPS: KVM: Convert headers to kernel sized types")
>     ca64c2beecd4 ("MIPS: KVM: Abstract guest ASID mask")
>     caa1faa7aba6 ("MIPS: KVM: Trivial whitespace and style fixes")
>     e6207bbea16c ("MIPS: KVM: Use MIPS_ENTRYLO_* defs from mipsregs.h")
>
>
> NOTE: The patch will not be queued to stable trees until it is upstream.
>
> How should we proceed with this patch?
>

Hi, Sasha.

Please wait for the the review of the whole series. It might also be
the case that this patch will be upstreamed before the whole series,
but please do not rush or skip regular review process.

Thanks for you involvement and efforts!

Aleksandar

> --
> Thanks
> Sasha
>

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH V3 01/14] KVM: MIPS: Define KVM_ENTRYHI_ASID to cpu_asid_mask(&boot_cpu_data)
  2020-05-03 10:05 ` [PATCH V3 01/14] KVM: MIPS: Define KVM_ENTRYHI_ASID to cpu_asid_mask(&boot_cpu_data) Huacai Chen
  2020-05-06 23:42   ` Sasha Levin
@ 2020-05-08 10:05   ` Aleksandar Markovic
  1 sibling, 0 replies; 6+ messages in thread
From: Aleksandar Markovic @ 2020-05-08 10:05 UTC (permalink / raw)
  To: Huacai Chen
  Cc: Paolo Bonzini, Thomas Bogendoerfer, kvm, QEMU Developers,
	linux-mips, Philippe Mathieu-Daudé,
	Fuxin Zhang, Huacai Chen, Jiaxun Yang, Xing Li, stable

нед, 3. мај 2020. у 12:06 Huacai Chen <chenhc@lemote.com> је написао/ла:
>
> From: Xing Li <lixing@loongson.cn>
>
> The code in decode_config4() of arch/mips/kernel/cpu-probe.c
>
>         asid_mask = MIPS_ENTRYHI_ASID;
>         if (config4 & MIPS_CONF4_AE)
>                 asid_mask |= MIPS_ENTRYHI_ASIDX;
>         set_cpu_asid_mask(c, asid_mask);
>
> set asid_mask to cpuinfo->asid_mask.
>
> So in order to support variable ASID_MASK, KVM_ENTRYHI_ASID should also
> be changed to cpu_asid_mask(&boot_cpu_data).
>
> Cc: stable@vger.kernel.org
> Signed-off-by: Xing Li <lixing@loongson.cn>
> [Huacai: Change current_cpu_data to boot_cpu_data for optimization]
> Signed-off-by: Huacai Chen <chenhc@lemote.com>
> ---
>  arch/mips/include/asm/kvm_host.h | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
>

For what is worth:

Reviewed-by: Aleksandar Markovic <aleksandar.qemu.devel@gmail.com>

> diff --git a/arch/mips/include/asm/kvm_host.h b/arch/mips/include/asm/kvm_host.h
> index 2c343c3..a01cee9 100644
> --- a/arch/mips/include/asm/kvm_host.h
> +++ b/arch/mips/include/asm/kvm_host.h
> @@ -275,7 +275,7 @@ enum emulation_result {
>  #define MIPS3_PG_FRAME         0x3fffffc0
>
>  #define VPN2_MASK              0xffffe000
> -#define KVM_ENTRYHI_ASID       MIPS_ENTRYHI_ASID
> +#define KVM_ENTRYHI_ASID       cpu_asid_mask(&boot_cpu_data)
>  #define TLB_IS_GLOBAL(x)       ((x).tlb_lo[0] & (x).tlb_lo[1] & ENTRYLO_G)
>  #define TLB_VPN2(x)            ((x).tlb_hi & VPN2_MASK)
>  #define TLB_ASID(x)            ((x).tlb_hi & KVM_ENTRYHI_ASID)
> --
> 2.7.0
>

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH V3 02/14] KVM: MIPS: Fix VPN2_MASK definition for variable cpu_vmbits
  2020-05-03 10:05 ` [PATCH V3 02/14] KVM: MIPS: Fix VPN2_MASK definition for variable cpu_vmbits Huacai Chen
@ 2020-05-08 10:14   ` Aleksandar Markovic
  0 siblings, 0 replies; 6+ messages in thread
From: Aleksandar Markovic @ 2020-05-08 10:14 UTC (permalink / raw)
  To: Huacai Chen
  Cc: Paolo Bonzini, Thomas Bogendoerfer, kvm, QEMU Developers,
	linux-mips, Philippe Mathieu-Daudé,
	Fuxin Zhang, Huacai Chen, Jiaxun Yang, Xing Li, stable

нед, 3. мај 2020. у 12:07 Huacai Chen <chenhc@lemote.com> је написао/ла:
>
> From: Xing Li <lixing@loongson.cn>
>
> If a CPU support more than 32bit vmbits (which is true for 64bit CPUs),
> VPN2_MASK set to fixed 0xffffe000 will lead to a wrong EntryHi in some
> functions such as _kvm_mips_host_tlb_inv().
>
> The cpu_vmbits definition of 32bit CPU in cpu-features.h is 31, so we
> still use the old definition.
>
> Cc: stable@vger.kernel.org
> Signed-off-by: Xing Li <lixing@loongson.cn>
> [Huacai: Improve commit messages]
> Signed-off-by: Huacai Chen <chenhc@lemote.com>
> ---
>  arch/mips/include/asm/kvm_host.h | 4 ++++
>  1 file changed, 4 insertions(+)
>
> diff --git a/arch/mips/include/asm/kvm_host.h b/arch/mips/include/asm/kvm_host.h
> index a01cee9..caa2b936 100644
> --- a/arch/mips/include/asm/kvm_host.h
> +++ b/arch/mips/include/asm/kvm_host.h
> @@ -274,7 +274,11 @@ enum emulation_result {
>  #define MIPS3_PG_SHIFT         6
>  #define MIPS3_PG_FRAME         0x3fffffc0
>
> +#if defined(CONFIG_64BIT)
> +#define VPN2_MASK              GENMASK(cpu_vmbits - 1, 13)
> +#else
>  #define VPN2_MASK              0xffffe000
> +#endif
>  #define KVM_ENTRYHI_ASID       cpu_asid_mask(&boot_cpu_data)
>  #define TLB_IS_GLOBAL(x)       ((x).tlb_lo[0] & (x).tlb_lo[1] & ENTRYLO_G)
>  #define TLB_VPN2(x)            ((x).tlb_hi & VPN2_MASK)
> --
> 2.7.0
>

Reviewed-by: Aleksandar Markovic <aleksandar.qemu.devel@gmail.com>

^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2020-05-08 10:15 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
     [not found] <1588500367-1056-1-git-send-email-chenhc@lemote.com>
2020-05-03 10:05 ` [PATCH V3 01/14] KVM: MIPS: Define KVM_ENTRYHI_ASID to cpu_asid_mask(&boot_cpu_data) Huacai Chen
2020-05-06 23:42   ` Sasha Levin
2020-05-07 12:10     ` Aleksandar Markovic
2020-05-08 10:05   ` Aleksandar Markovic
2020-05-03 10:05 ` [PATCH V3 02/14] KVM: MIPS: Fix VPN2_MASK definition for variable cpu_vmbits Huacai Chen
2020-05-08 10:14   ` Aleksandar Markovic

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).