mbox series

[kvm-unit-tests,v5,0/5] riscv: sbi: Add support to test HSM extension

Message ID 20240921100824.151761-1-jamestiotio@gmail.com (mailing list archive)
Headers show
Series riscv: sbi: Add support to test HSM extension | expand

Message

James Raphael Tiovalen Sept. 21, 2024, 10:08 a.m. UTC
This patch series adds support for testing all 4 functions of the HSM
extension as defined in the RISC-V SBI specification. The first 4
patches add some helper routines to prepare for the HSM test, while
the last patch adds the actual test for the HSM extension.

v5:
- Addressed all of Andrew's comments.
- Added 2 new patches to clear on_cpu_info[cpu].func and to set the
  cpu_started mask, which are used to perform cleanup after running the
  HSM tests.
- Added some new tests to validate suspension on RV64 with the high
  bits set for suspend_type.
- Picked up the hartid_to_cpu rewrite patch from Andrew's branch.
- Moved the variables declared in riscv/sbi.c in patch 2 to group it
  together with the other HSM test variables declared in patch 5.

v4:
- Addressed all of Andrew's comments.
- Included the 2 patches from Andrew's branch that refactored some
  functions.
- Added timers to all of the waiting activities in the HSM tests.

v3:
- Addressed all of Andrew's comments.
- Split the report_prefix_pop patch into its own series.
- Added a new environment variable to specify the maximum number of
  CPUs supported by the SBI implementation.

v2:
- Addressed all of Andrew's comments.
- Added a new patch to add helper routines to clear multiple prefixes.
- Reworked the approach to test the HSM extension by using cpumask and
  on-cpus.

Andrew Jones (1):
  riscv: Rewrite hartid_to_cpu in assembly

James Raphael Tiovalen (4):
  riscv: sbi: Provide entry point for HSM tests
  lib/on-cpus: Add helper method to clear the function from on_cpu_info
  riscv: Add helper method to set cpu started mask
  riscv: sbi: Add tests for HSM extension

 riscv/Makefile          |   3 +-
 lib/riscv/asm/smp.h     |   2 +
 lib/on-cpus.h           |   1 +
 lib/on-cpus.c           |  11 +
 lib/riscv/asm-offsets.c |   5 +
 lib/riscv/setup.c       |  10 -
 lib/riscv/smp.c         |   8 +
 riscv/sbi-tests.h       |  10 +
 riscv/cstart.S          |  24 ++
 riscv/sbi-asm.S         |  71 +++++
 riscv/sbi.c             | 651 ++++++++++++++++++++++++++++++++++++++++
 11 files changed, 785 insertions(+), 11 deletions(-)
 create mode 100644 riscv/sbi-tests.h
 create mode 100644 riscv/sbi-asm.S

--
2.43.0

Comments

Andrew Jones Oct. 23, 2024, 2:23 p.m. UTC | #1
On Sat, Sep 21, 2024 at 06:08:18PM +0800, James Raphael Tiovalen wrote:
> This patch series adds support for testing all 4 functions of the HSM
> extension as defined in the RISC-V SBI specification. The first 4
> patches add some helper routines to prepare for the HSM test, while
> the last patch adds the actual test for the HSM extension.

Hi James,

Patch1 is now merged and I've applied patch2 to riscv/sbi[1]. I've also
applied [2] and [3] to riscv/sbi so patches 3 and 4 of this series
should no longer be necessary. Can you please rebase patch5 on
riscv/sbi and repost?

[1] https://gitlab.com/jones-drew/kvm-unit-tests/-/commits/riscv/sbi
[2] https://lore.kernel.org/all/20241023131718.117452-4-andrew.jones@linux.dev/
[3] https://lore.kernel.org/all/20241023132130.118073-6-andrew.jones@linux.dev/

Thanks,
drew

> 
> v5:
> - Addressed all of Andrew's comments.
> - Added 2 new patches to clear on_cpu_info[cpu].func and to set the
>   cpu_started mask, which are used to perform cleanup after running the
>   HSM tests.
> - Added some new tests to validate suspension on RV64 with the high
>   bits set for suspend_type.
> - Picked up the hartid_to_cpu rewrite patch from Andrew's branch.
> - Moved the variables declared in riscv/sbi.c in patch 2 to group it
>   together with the other HSM test variables declared in patch 5.
> 
> v4:
> - Addressed all of Andrew's comments.
> - Included the 2 patches from Andrew's branch that refactored some
>   functions.
> - Added timers to all of the waiting activities in the HSM tests.
> 
> v3:
> - Addressed all of Andrew's comments.
> - Split the report_prefix_pop patch into its own series.
> - Added a new environment variable to specify the maximum number of
>   CPUs supported by the SBI implementation.
> 
> v2:
> - Addressed all of Andrew's comments.
> - Added a new patch to add helper routines to clear multiple prefixes.
> - Reworked the approach to test the HSM extension by using cpumask and
>   on-cpus.
> 
> Andrew Jones (1):
>   riscv: Rewrite hartid_to_cpu in assembly
> 
> James Raphael Tiovalen (4):
>   riscv: sbi: Provide entry point for HSM tests
>   lib/on-cpus: Add helper method to clear the function from on_cpu_info
>   riscv: Add helper method to set cpu started mask
>   riscv: sbi: Add tests for HSM extension
> 
>  riscv/Makefile          |   3 +-
>  lib/riscv/asm/smp.h     |   2 +
>  lib/on-cpus.h           |   1 +
>  lib/on-cpus.c           |  11 +
>  lib/riscv/asm-offsets.c |   5 +
>  lib/riscv/setup.c       |  10 -
>  lib/riscv/smp.c         |   8 +
>  riscv/sbi-tests.h       |  10 +
>  riscv/cstart.S          |  24 ++
>  riscv/sbi-asm.S         |  71 +++++
>  riscv/sbi.c             | 651 ++++++++++++++++++++++++++++++++++++++++
>  11 files changed, 785 insertions(+), 11 deletions(-)
>  create mode 100644 riscv/sbi-tests.h
>  create mode 100644 riscv/sbi-asm.S
> 
> --
> 2.43.0
> 
> 
> -- 
> kvm-riscv mailing list
> kvm-riscv@lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/kvm-riscv
James Raphael Tiovalen Oct. 23, 2024, 2:40 p.m. UTC | #2
On Wed, Oct 23, 2024 at 10:23 PM Andrew Jones <andrew.jones@linux.dev> wrote:
>
> On Sat, Sep 21, 2024 at 06:08:18PM +0800, James Raphael Tiovalen wrote:
> > This patch series adds support for testing all 4 functions of the HSM
> > extension as defined in the RISC-V SBI specification. The first 4
> > patches add some helper routines to prepare for the HSM test, while
> > the last patch adds the actual test for the HSM extension.
>
> Hi James,
>
> Patch1 is now merged and I've applied patch2 to riscv/sbi[1]. I've also
> applied [2] and [3] to riscv/sbi so patches 3 and 4 of this series
> should no longer be necessary. Can you please rebase patch5 on
> riscv/sbi and repost?
>

Hi Andrew,

Sure, I will rebase patch 5 on the riscv/sbi branch and repost it.

Best regards,
James Raphael Tiovalen

> [1] https://gitlab.com/jones-drew/kvm-unit-tests/-/commits/riscv/sbi
> [2] https://lore.kernel.org/all/20241023131718.117452-4-andrew.jones@linux.dev/
> [3] https://lore.kernel.org/all/20241023132130.118073-6-andrew.jones@linux.dev/
>
> Thanks,
> drew
>
> >
> > v5:
> > - Addressed all of Andrew's comments.
> > - Added 2 new patches to clear on_cpu_info[cpu].func and to set the
> >   cpu_started mask, which are used to perform cleanup after running the
> >   HSM tests.
> > - Added some new tests to validate suspension on RV64 with the high
> >   bits set for suspend_type.
> > - Picked up the hartid_to_cpu rewrite patch from Andrew's branch.
> > - Moved the variables declared in riscv/sbi.c in patch 2 to group it
> >   together with the other HSM test variables declared in patch 5.
> >
> > v4:
> > - Addressed all of Andrew's comments.
> > - Included the 2 patches from Andrew's branch that refactored some
> >   functions.
> > - Added timers to all of the waiting activities in the HSM tests.
> >
> > v3:
> > - Addressed all of Andrew's comments.
> > - Split the report_prefix_pop patch into its own series.
> > - Added a new environment variable to specify the maximum number of
> >   CPUs supported by the SBI implementation.
> >
> > v2:
> > - Addressed all of Andrew's comments.
> > - Added a new patch to add helper routines to clear multiple prefixes.
> > - Reworked the approach to test the HSM extension by using cpumask and
> >   on-cpus.
> >
> > Andrew Jones (1):
> >   riscv: Rewrite hartid_to_cpu in assembly
> >
> > James Raphael Tiovalen (4):
> >   riscv: sbi: Provide entry point for HSM tests
> >   lib/on-cpus: Add helper method to clear the function from on_cpu_info
> >   riscv: Add helper method to set cpu started mask
> >   riscv: sbi: Add tests for HSM extension
> >
> >  riscv/Makefile          |   3 +-
> >  lib/riscv/asm/smp.h     |   2 +
> >  lib/on-cpus.h           |   1 +
> >  lib/on-cpus.c           |  11 +
> >  lib/riscv/asm-offsets.c |   5 +
> >  lib/riscv/setup.c       |  10 -
> >  lib/riscv/smp.c         |   8 +
> >  riscv/sbi-tests.h       |  10 +
> >  riscv/cstart.S          |  24 ++
> >  riscv/sbi-asm.S         |  71 +++++
> >  riscv/sbi.c             | 651 ++++++++++++++++++++++++++++++++++++++++
> >  11 files changed, 785 insertions(+), 11 deletions(-)
> >  create mode 100644 riscv/sbi-tests.h
> >  create mode 100644 riscv/sbi-asm.S
> >
> > --
> > 2.43.0
> >
> >
> > --
> > kvm-riscv mailing list
> > kvm-riscv@lists.infradead.org
> > http://lists.infradead.org/mailman/listinfo/kvm-riscv
Andrew Jones Nov. 6, 2024, 8:44 a.m. UTC | #3
On Wed, Oct 23, 2024 at 04:23:10PM +0200, Andrew Jones wrote:
> On Sat, Sep 21, 2024 at 06:08:18PM +0800, James Raphael Tiovalen wrote:
> > This patch series adds support for testing all 4 functions of the HSM
> > extension as defined in the RISC-V SBI specification. The first 4
> > patches add some helper routines to prepare for the HSM test, while
> > the last patch adds the actual test for the HSM extension.
> 
> Hi James,
> 
> Patch1 is now merged and I've applied patch2 to riscv/sbi[1]. I've also

I've had some second thoughts on patch2, as pointed out in the review of
v6. I need some bits of that patch, though, for other tests. I'll post a
patch with just those bits, retaining your authorship.

Thanks,
drew

> applied [2] and [3] to riscv/sbi so patches 3 and 4 of this series
> should no longer be necessary. Can you please rebase patch5 on
> riscv/sbi and repost?
> 
> [1] https://gitlab.com/jones-drew/kvm-unit-tests/-/commits/riscv/sbi
> [2] https://lore.kernel.org/all/20241023131718.117452-4-andrew.jones@linux.dev/
> [3] https://lore.kernel.org/all/20241023132130.118073-6-andrew.jones@linux.dev/
> 
> Thanks,
> drew
> 
> > 
> > v5:
> > - Addressed all of Andrew's comments.
> > - Added 2 new patches to clear on_cpu_info[cpu].func and to set the
> >   cpu_started mask, which are used to perform cleanup after running the
> >   HSM tests.
> > - Added some new tests to validate suspension on RV64 with the high
> >   bits set for suspend_type.
> > - Picked up the hartid_to_cpu rewrite patch from Andrew's branch.
> > - Moved the variables declared in riscv/sbi.c in patch 2 to group it
> >   together with the other HSM test variables declared in patch 5.
> > 
> > v4:
> > - Addressed all of Andrew's comments.
> > - Included the 2 patches from Andrew's branch that refactored some
> >   functions.
> > - Added timers to all of the waiting activities in the HSM tests.
> > 
> > v3:
> > - Addressed all of Andrew's comments.
> > - Split the report_prefix_pop patch into its own series.
> > - Added a new environment variable to specify the maximum number of
> >   CPUs supported by the SBI implementation.
> > 
> > v2:
> > - Addressed all of Andrew's comments.
> > - Added a new patch to add helper routines to clear multiple prefixes.
> > - Reworked the approach to test the HSM extension by using cpumask and
> >   on-cpus.
> > 
> > Andrew Jones (1):
> >   riscv: Rewrite hartid_to_cpu in assembly
> > 
> > James Raphael Tiovalen (4):
> >   riscv: sbi: Provide entry point for HSM tests
> >   lib/on-cpus: Add helper method to clear the function from on_cpu_info
> >   riscv: Add helper method to set cpu started mask
> >   riscv: sbi: Add tests for HSM extension
> > 
> >  riscv/Makefile          |   3 +-
> >  lib/riscv/asm/smp.h     |   2 +
> >  lib/on-cpus.h           |   1 +
> >  lib/on-cpus.c           |  11 +
> >  lib/riscv/asm-offsets.c |   5 +
> >  lib/riscv/setup.c       |  10 -
> >  lib/riscv/smp.c         |   8 +
> >  riscv/sbi-tests.h       |  10 +
> >  riscv/cstart.S          |  24 ++
> >  riscv/sbi-asm.S         |  71 +++++
> >  riscv/sbi.c             | 651 ++++++++++++++++++++++++++++++++++++++++
> >  11 files changed, 785 insertions(+), 11 deletions(-)
> >  create mode 100644 riscv/sbi-tests.h
> >  create mode 100644 riscv/sbi-asm.S
> > 
> > --
> > 2.43.0
> > 
> > 
> > -- 
> > kvm-riscv mailing list
> > kvm-riscv@lists.infradead.org
> > http://lists.infradead.org/mailman/listinfo/kvm-riscv
> 
> -- 
> kvm-riscv mailing list
> kvm-riscv@lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/kvm-riscv