On 2025/5/12 下午2:53, Huacai Chen wrote:
Hi, Bibo,

On Sun, Apr 27, 2025 at 2:45 PM Bibo Mao <maob...@loongson.cn> wrote:

This patchset adds KVM selftests for LoongArch system, currently only
some common test cases are supported and pass to run. These test cases
are listed as following:
     coalesced_io_test
     demand_paging_test
     dirty_log_perf_test
     dirty_log_test
     guest_print_test
     hardware_disable_test
     kvm_binary_stats_test
     kvm_create_max_vcpus
     kvm_page_table_test
     memslot_modification_stress_test
     memslot_perf_test
     set_memory_region_test
I have applied this series [1] but with some modifications (see
comments in other patches). You can test it to see if everything is
OK.

And if it's OK, it is better to fetch the patches from [1] and then send V12.
There is error reporting with checkpatch as followings:
ERROR: trailing statements should be on next line
#281: FILE: tools/testing/selftests/kvm/lib/loongarch/processor.c:192:
+       while (1) ;

This is already solved in V9, which patch does [1] come from?
+void route_exception(struct ex_regs *regs)
+{
+       unsigned long pc, estat, badv;
+
+       pc = regs->pc;
+       estat = regs->estat;
+       badv  = regs->badv;
+       ucall(UCALL_UNHANDLED, 3, pc, estat, badv);
+       while (1)
+               ;
+}

Regards
Bibo Mao

[1] https://github.com/chenhuacai/linux/commits/loongarch-next



Huacai


---
Changes in v11:
1. Fix a typo issue in notes of patch 2, it is kvm_util_arch.h rather than
    kvm_util_base.h

Changes in v10:
1. Add PS_64K and remove PS_8K in file include/loongarch/processor.h
2. Fix a typo issue in file lib/loongarch/processor.c
3. Update file MAINTAINERS about LoongArch KVM selftests

Changes in v9:
1. Add vm mode VM_MODE_P47V47_16K, LoongArch VM uses this mode by
    default, rather than VM_MODE_P36V47_16K.
2. Refresh some spelling issues in changelog.

Changes in v8:
1. Porting patch based on the latest version.
2. For macro PC_OFFSET_EXREGS, offsetof() method is used for C header file,
    still hardcoded definition for assemble language.

Changes in v7:
1. Refine code to add LoongArch support in test case
set_memory_region_test.

Changes in v6:
1. Refresh the patch based on latest kernel 6.8-rc1, add LoongArch
support about testcase set_memory_region_test.
2. Add hardware_disable_test test case.
3. Drop modification about macro DEFAULT_GUEST_TEST_MEM, it is problem
of LoongArch binutils, this issue is raised to LoongArch binutils owners.

Changes in v5:
1. In LoongArch kvm self tests, the DEFAULT_GUEST_TEST_MEM could be
0x130000000, it is different from the default value in memstress.h.
So we Move the definition of DEFAULT_GUEST_TEST_MEM into LoongArch
ucall.h, and add 'ifndef' condition for DEFAULT_GUEST_TEST_MEM
in memstress.h.

Changes in v4:
1. Remove the based-on flag, as the LoongArch KVM patch series
have been accepted by Linux kernel, so this can be applied directly
in kernel.

Changes in v3:
1. Improve implementation of LoongArch VM page walk.
2. Add exception handler for LoongArch.
3. Add dirty_log_test, dirty_log_perf_test, guest_print_test
test cases for LoongArch.
4. Add __ASSEMBLER__ macro to distinguish asm file and c file.
5. Move ucall_arch_do_ucall to the header file and make it as
static inline to avoid function calls.
6. Change the DEFAULT_GUEST_TEST_MEM base addr for LoongArch.

Changes in v2:
1. We should use ".balign 4096" to align the assemble code with 4K in
exception.S instead of "align 12".
2. LoongArch only supports 3 or 4 levels page tables, so we remove the
hanlders for 2-levels page table.
3. Remove the DEFAULT_LOONGARCH_GUEST_STACK_VADDR_MIN and use the common
DEFAULT_GUEST_STACK_VADDR_MIN to allocate stack memory in guest.
4. Reorganize the test cases supported by LoongArch.
5. Fix some code comments.
6. Add kvm_binary_stats_test test case into LoongArch KVM selftests.
---
Bibo Mao (5):
   KVM: selftests: Add VM_MODE_P47V47_16K VM mode
   KVM: selftests: Add KVM selftests header files for LoongArch
   KVM: selftests: Add core KVM selftests support for LoongArch
   KVM: selftests: Add ucall test support for LoongArch
   KVM: selftests: Add test cases for LoongArch

  MAINTAINERS                                   |   2 +
  tools/testing/selftests/kvm/Makefile          |   2 +-
  tools/testing/selftests/kvm/Makefile.kvm      |  18 +
  .../testing/selftests/kvm/include/kvm_util.h  |   6 +
  .../kvm/include/loongarch/kvm_util_arch.h     |   7 +
  .../kvm/include/loongarch/processor.h         | 141 ++++++++
  .../selftests/kvm/include/loongarch/ucall.h   |  20 +
  tools/testing/selftests/kvm/lib/kvm_util.c    |   3 +
  .../selftests/kvm/lib/loongarch/exception.S   |  59 +++
  .../selftests/kvm/lib/loongarch/processor.c   | 342 ++++++++++++++++++
  .../selftests/kvm/lib/loongarch/ucall.c       |  38 ++
  .../selftests/kvm/set_memory_region_test.c    |   2 +-
  12 files changed, 638 insertions(+), 2 deletions(-)
  create mode 100644 
tools/testing/selftests/kvm/include/loongarch/kvm_util_arch.h
  create mode 100644 tools/testing/selftests/kvm/include/loongarch/processor.h
  create mode 100644 tools/testing/selftests/kvm/include/loongarch/ucall.h
  create mode 100644 tools/testing/selftests/kvm/lib/loongarch/exception.S
  create mode 100644 tools/testing/selftests/kvm/lib/loongarch/processor.c
  create mode 100644 tools/testing/selftests/kvm/lib/loongarch/ucall.c


base-commit: 5bc1018675ec28a8a60d83b378d8c3991faa5a27
--
2.39.3



Reply via email to