mbox series

[v6,0/4] riscv, mm: detect svnapot cpu support at runtime

Message ID 20221005112926.3043280-1-panqinglin2020@iscas.ac.cn (mailing list archive)
Headers show
Series riscv, mm: detect svnapot cpu support at runtime | expand

Message

Qinglin Pan Oct. 5, 2022, 11:29 a.m. UTC
From: Qinglin Pan <panqinglin2020@iscas.ac.cn>

Svnapot is a RISC-V extension for marking contiguous 4K pages as a non-4K
page. This patch set is for using Svnapot in Linux Kernel's boot process
and hugetlb fs.

This patchset adds a Kconfig item for using Svnapot in
"Platform type"->"SVNAPOT extension support". Its default value is off,
and people can set it on if they allow kernel to detect Svnapot hardware
support and leverage it.

Tested on:
  - qemu rv64 with "Svnapot support" off and svnapot=true.
  - qemu rv64 with "Svnapot support" on and svnapot=true.
  - qemu rv64 with "Svnapot support" off and svnapot=false.
  - qemu rv64 with "Svnapot support" on and svnapot=false.


Changes in v2:
  - detect Svnapot hardware support at boot time.
Changes in v3:
  - do linear mapping again if has_svnapot
Changes in v4:
  - fix some errors/warns reported by checkpatch.pl, thanks @Conor
Changes in v5:
  - modify code according to @Conor and @Heiko
Changes in v6:
  - use static key insead of alternative errata


Qinglin Pan (4):
  riscv: mm: modify pte format for Svnapot
  riscv: mm: support Svnapot in physical page linear-mapping
  riscv: mm: support Svnapot in hugetlb page
  riscv: mm: support Svnapot in huge vmap

 arch/riscv/Kconfig                  |  17 +-
 arch/riscv/include/asm/hugetlb.h    |  37 +++-
 arch/riscv/include/asm/hwcap.h      |   4 +
 arch/riscv/include/asm/page.h       |   2 +-
 arch/riscv/include/asm/pgtable-64.h |  13 ++
 arch/riscv/include/asm/pgtable.h    |  69 +++++++-
 arch/riscv/include/asm/vmalloc.h    |  28 ++++
 arch/riscv/kernel/cpu.c             |   1 +
 arch/riscv/kernel/cpufeature.c      |   1 +
 arch/riscv/mm/hugetlbpage.c         | 250 +++++++++++++++++++++++++++-
 arch/riscv/mm/init.c                |  30 +++-
 11 files changed, 440 insertions(+), 12 deletions(-)

Comments

Andrew Jones Oct. 5, 2022, 1:29 p.m. UTC | #1
Hi Qinglin,

Please give more time between postings. v5 is barely 48 hours old and I
haven't even looked at half its patches yet.

Thanks,
drew


On Wed, Oct 05, 2022 at 07:29:22PM +0800, panqinglin2020@iscas.ac.cn wrote:
> From: Qinglin Pan <panqinglin2020@iscas.ac.cn>
> 
> Svnapot is a RISC-V extension for marking contiguous 4K pages as a non-4K
> page. This patch set is for using Svnapot in Linux Kernel's boot process
> and hugetlb fs.
> 
> This patchset adds a Kconfig item for using Svnapot in
> "Platform type"->"SVNAPOT extension support". Its default value is off,
> and people can set it on if they allow kernel to detect Svnapot hardware
> support and leverage it.
> 
> Tested on:
>   - qemu rv64 with "Svnapot support" off and svnapot=true.
>   - qemu rv64 with "Svnapot support" on and svnapot=true.
>   - qemu rv64 with "Svnapot support" off and svnapot=false.
>   - qemu rv64 with "Svnapot support" on and svnapot=false.
> 
> 
> Changes in v2:
>   - detect Svnapot hardware support at boot time.
> Changes in v3:
>   - do linear mapping again if has_svnapot
> Changes in v4:
>   - fix some errors/warns reported by checkpatch.pl, thanks @Conor
> Changes in v5:
>   - modify code according to @Conor and @Heiko
> Changes in v6:
>   - use static key insead of alternative errata
> 
> 
> Qinglin Pan (4):
>   riscv: mm: modify pte format for Svnapot
>   riscv: mm: support Svnapot in physical page linear-mapping
>   riscv: mm: support Svnapot in hugetlb page
>   riscv: mm: support Svnapot in huge vmap
> 
>  arch/riscv/Kconfig                  |  17 +-
>  arch/riscv/include/asm/hugetlb.h    |  37 +++-
>  arch/riscv/include/asm/hwcap.h      |   4 +
>  arch/riscv/include/asm/page.h       |   2 +-
>  arch/riscv/include/asm/pgtable-64.h |  13 ++
>  arch/riscv/include/asm/pgtable.h    |  69 +++++++-
>  arch/riscv/include/asm/vmalloc.h    |  28 ++++
>  arch/riscv/kernel/cpu.c             |   1 +
>  arch/riscv/kernel/cpufeature.c      |   1 +
>  arch/riscv/mm/hugetlbpage.c         | 250 +++++++++++++++++++++++++++-
>  arch/riscv/mm/init.c                |  30 +++-
>  11 files changed, 440 insertions(+), 12 deletions(-)
> 
> -- 
> 2.35.1
>
Conor Dooley Oct. 6, 2022, 7:37 p.m. UTC | #2
On Wed, Oct 05, 2022 at 03:29:30PM +0200, Andrew Jones wrote:
> Hi Qinglin,
> 
> Please give more time between postings. v5 is barely 48 hours old and I
> haven't even looked at half its patches yet.

Aye, please wait until at least after the merge window to send another
version with Drew's comments addressed. Hard to tell if this v6 has
resolved his comments on v5 or not. I assume it hasn't given the
changelog in the cover only has a single comment?

> 
> Thanks,
> drew
> 
> 
> On Wed, Oct 05, 2022 at 07:29:22PM +0800, panqinglin2020@iscas.ac.cn wrote:
> > From: Qinglin Pan <panqinglin2020@iscas.ac.cn>
> > 
> > Svnapot is a RISC-V extension for marking contiguous 4K pages as a non-4K
> > page. This patch set is for using Svnapot in Linux Kernel's boot process
> > and hugetlb fs.
> > 
> > This patchset adds a Kconfig item for using Svnapot in
> > "Platform type"->"SVNAPOT extension support". Its default value is off,
> > and people can set it on if they allow kernel to detect Svnapot hardware
> > support and leverage it.
> > 
> > Tested on:
> >   - qemu rv64 with "Svnapot support" off and svnapot=true.
> >   - qemu rv64 with "Svnapot support" on and svnapot=true.
> >   - qemu rv64 with "Svnapot support" off and svnapot=false.
> >   - qemu rv64 with "Svnapot support" on and svnapot=false.
> > 
> > 
> > Changes in v2:
> >   - detect Svnapot hardware support at boot time.
> > Changes in v3:
> >   - do linear mapping again if has_svnapot
> > Changes in v4:
> >   - fix some errors/warns reported by checkpatch.pl, thanks @Conor
> > Changes in v5:
> >   - modify code according to @Conor and @Heiko
> > Changes in v6:
> >   - use static key insead of alternative errata
> > 
> > 
> > Qinglin Pan (4):
> >   riscv: mm: modify pte format for Svnapot
> >   riscv: mm: support Svnapot in physical page linear-mapping
> >   riscv: mm: support Svnapot in hugetlb page
> >   riscv: mm: support Svnapot in huge vmap
> > 
> >  arch/riscv/Kconfig                  |  17 +-
> >  arch/riscv/include/asm/hugetlb.h    |  37 +++-
> >  arch/riscv/include/asm/hwcap.h      |   4 +
> >  arch/riscv/include/asm/page.h       |   2 +-
> >  arch/riscv/include/asm/pgtable-64.h |  13 ++
> >  arch/riscv/include/asm/pgtable.h    |  69 +++++++-
> >  arch/riscv/include/asm/vmalloc.h    |  28 ++++
> >  arch/riscv/kernel/cpu.c             |   1 +
> >  arch/riscv/kernel/cpufeature.c      |   1 +
> >  arch/riscv/mm/hugetlbpage.c         | 250 +++++++++++++++++++++++++++-
> >  arch/riscv/mm/init.c                |  30 +++-
> >  11 files changed, 440 insertions(+), 12 deletions(-)
> > 
> > -- 
> > 2.35.1
> > 
> 
> _______________________________________________
> linux-riscv mailing list
> linux-riscv@lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/linux-riscv