diff mbox series

[v9,06/10] riscv: fpu: drop SR_SD bit checking

Message ID 20231229143627.22898-7-andy.chiu@sifive.com (mailing list archive)
State Superseded
Headers show
Series riscv: support kernel-mode Vector | expand

Checks

Context Check Description
conchuod/vmtest-for-next-PR fail PR summary
conchuod/patch-6-test-1 success .github/scripts/patches/tests/build_rv32_defconfig.sh
conchuod/patch-6-test-2 success .github/scripts/patches/tests/build_rv64_clang_allmodconfig.sh
conchuod/patch-6-test-3 success .github/scripts/patches/tests/build_rv64_gcc_allmodconfig.sh
conchuod/patch-6-test-4 success .github/scripts/patches/tests/build_rv64_nommu_k210_defconfig.sh
conchuod/patch-6-test-5 success .github/scripts/patches/tests/build_rv64_nommu_virt_defconfig.sh
conchuod/patch-6-test-6 success .github/scripts/patches/tests/checkpatch.sh
conchuod/patch-6-test-7 success .github/scripts/patches/tests/dtb_warn_rv64.sh
conchuod/patch-6-test-8 success .github/scripts/patches/tests/header_inline.sh
conchuod/patch-6-test-9 success .github/scripts/patches/tests/kdoc.sh
conchuod/patch-6-test-10 success .github/scripts/patches/tests/module_param.sh
conchuod/patch-6-test-11 success .github/scripts/patches/tests/verify_fixes.sh
conchuod/patch-6-test-12 success .github/scripts/patches/tests/verify_signedoff.sh

Commit Message

Andy Chiu Dec. 29, 2023, 2:36 p.m. UTC
SR_SD summarizes the dirty status of FS/VS/XS. However, the current code
structure does not fully utilize it because each extension specific code
is divided into an individual segment. So remove the SR_SD check for
now.

Signed-off-by: Andy Chiu <andy.chiu@sifive.com>
---
 arch/riscv/include/asm/switch_to.h | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

Comments

Song Shuai Jan. 4, 2024, 9 a.m. UTC | #1
在 2023/12/29 22:36, Andy Chiu 写道:
> SR_SD summarizes the dirty status of FS/VS/XS. However, the current code
> structure does not fully utilize it because each extension specific code
> is divided into an individual segment. So remove the SR_SD check for
> now.
> 
Should here add "Link" and "Fixes" tags?
> Signed-off-by: Andy Chiu <andy.chiu@sifive.com>
> ---
>   arch/riscv/include/asm/switch_to.h | 3 +--
>   1 file changed, 1 insertion(+), 2 deletions(-)
> 
> diff --git a/arch/riscv/include/asm/switch_to.h b/arch/riscv/include/asm/switch_to.h
> index f90d8e42f3c7..7efdb0584d47 100644
> --- a/arch/riscv/include/asm/switch_to.h
> +++ b/arch/riscv/include/asm/switch_to.h
> @@ -53,8 +53,7 @@ static inline void __switch_to_fpu(struct task_struct *prev,
>   	struct pt_regs *regs;
>   
>   	regs = task_pt_regs(prev);
> -	if (unlikely(regs->status & SR_SD))
> -		fstate_save(prev, regs);
> +	fstate_save(prev, regs);
>   	fstate_restore(next, task_pt_regs(next));
>   }
>   
Reviewed-by: Song Shuai <songshuaishuai@tinylab.org>
Guo Ren Jan. 4, 2024, 12:34 p.m. UTC | #2
On Fri, Dec 29, 2023 at 10:37 PM Andy Chiu <andy.chiu@sifive.com> wrote:
>
> SR_SD summarizes the dirty status of FS/VS/XS. However, the current code
> structure does not fully utilize it because each extension specific code
> is divided into an individual segment. So remove the SR_SD check for
> now.
It seems SR_SD is useless in the specs because of its duplicate. FS/VS
contexts are separate.

>
> Signed-off-by: Andy Chiu <andy.chiu@sifive.com>
> ---
>  arch/riscv/include/asm/switch_to.h | 3 +--
>  1 file changed, 1 insertion(+), 2 deletions(-)
>
> diff --git a/arch/riscv/include/asm/switch_to.h b/arch/riscv/include/asm/switch_to.h
> index f90d8e42f3c7..7efdb0584d47 100644
> --- a/arch/riscv/include/asm/switch_to.h
> +++ b/arch/riscv/include/asm/switch_to.h
> @@ -53,8 +53,7 @@ static inline void __switch_to_fpu(struct task_struct *prev,
>         struct pt_regs *regs;
>
>         regs = task_pt_regs(prev);
> -       if (unlikely(regs->status & SR_SD))
> -               fstate_save(prev, regs);
> +       fstate_save(prev, regs);
>         fstate_restore(next, task_pt_regs(next));
>  }
>
> --
> 2.17.1
>
Reviewed-by: Guo Ren <guoren@kernel.org>
diff mbox series

Patch

diff --git a/arch/riscv/include/asm/switch_to.h b/arch/riscv/include/asm/switch_to.h
index f90d8e42f3c7..7efdb0584d47 100644
--- a/arch/riscv/include/asm/switch_to.h
+++ b/arch/riscv/include/asm/switch_to.h
@@ -53,8 +53,7 @@  static inline void __switch_to_fpu(struct task_struct *prev,
 	struct pt_regs *regs;
 
 	regs = task_pt_regs(prev);
-	if (unlikely(regs->status & SR_SD))
-		fstate_save(prev, regs);
+	fstate_save(prev, regs);
 	fstate_restore(next, task_pt_regs(next));
 }