Skip to content

RISCV: Add KVM_GET_REG_LIST API

Haibo Xu kvm kvm-riscv kvmarm linux-arm-kernel linux-doc linux-kselftest linux-riscv lkml 6 versions – In review

Get series with b4
b4 am [email protected]

Versions newest first · linked by author and title

  1. v6 Latest13 patches 9 repliesIn review
  2. v513 patches 8 repliesSuperseded
  3. v412 patches 8 repliesSuperseded
Earlier versions · 3
VersionPostedPatchesRepliesStatus
v310 patches15 repliesSuperseded
v211 patches14 repliesSuperseded
v12 patches11 repliesSuperseded

Changes in v6 from the cover letter

* Rebase to v6.5-rc3
* Minor fix for Andrew's comments

Patches in v6 No applies recorded yet

#Subject and filesSizeRepliesApplied
1/13KVM: arm64: selftests: Replace str_with_index with strdup_printftools/testing/selftests/kvm/aarch64/get-reg-list.c tools/testing/selftests/kvm/include/test_util.h tools/testing/selftests/kvm/lib/test_util.c+22 -180 replies
2/13KVM: arm64: selftests: Drop SVE cap check in print_regtools/testing/selftests/kvm/aarch64/get-reg-list.c+1 -140 replies
3/13KVM: arm64: selftests: Remove print_reg's dependency on vcpu_configtools/testing/selftests/kvm/aarch64/get-reg-list.c+26 -260 replies
4/13KVM: arm64: selftests: Rename vcpu_config and add to kvm_util.htools/testing/selftests/kvm/aarch64/get-reg-list.c tools/testing/selftests/kvm/include/kvm_util_base.h+38 -380 replies
5/13KVM: arm64: selftests: Delete core_reg_fixuptools/testing/selftests/kvm/aarch64/get-reg-list.c+10 -730 replies
6/13KVM: arm64: selftests: Split get-reg-list test codetools/testing/selftests/kvm/Makefile tools/testing/selftests/kvm/aarch64/get-reg-list.c tools/testing/selftests/kvm/get-reg-list.c+398 -3583 replies
7/13KVM: arm64: selftests: Finish generalizing get-reg-listtools/testing/selftests/kvm/get-reg-list.c+21 -50 replies
8/13KVM: arm64: selftests: Move reject_set check logic to a functiontools/testing/selftests/kvm/aarch64/get-reg-list.c tools/testing/selftests/kvm/get-reg-list.c+11 -10 replies
9/13KVM: arm64: selftests: Move finalize_vcpu back to run_testtools/testing/selftests/kvm/aarch64/get-reg-list.c tools/testing/selftests/kvm/get-reg-list.c tools/testing/selftests/kvm/include/kvm_util_base.h+21 -170 replies
10/13KVM: selftests: Only do get/set tests on present blessed listtools/testing/selftests/kvm/get-reg-list.c+18 -110 replies
11/13KVM: selftests: Add skip_set facility to get_reg_list testtools/testing/selftests/kvm/get-reg-list.c tools/testing/selftests/kvm/include/kvm_util_base.h+16 -60 replies
12/13KVM: riscv: Add KVM_GET_REG_LIST API supportDocumentation/virt/kvm/api.rst arch/riscv/kvm/vcpu.c+376 -10 replies
13/13KVM: riscv: selftests: Add get-reg-list testtools/testing/selftests/kvm/Makefile tools/testing/selftests/kvm/include/riscv/processor.h tools/testing/selftests/kvm/riscv/get-reg-list.c+784 -00 replies

Reviews trailers per patch

6 of 13 patches have a Reviewed-by or Acked-by.

PatchAndrew Jones
1/13
2/13
3/13
4/13
5/13
6/13
7/13
8/13R-b
9/13R-b
10/13R-b
11/13R-b
12/13R-b
13/13R-b

Trailers given in replies are filled; those carried in the patches from earlier versions are outlined with dashes.

Read the v6 thread

Cover letter [PATCH v6 00/13] RISCV: Add KVM_GET_REG_LIST API

KVM_GET_REG_LIST will dump all register IDs that are available to KVM_GET/SET_ONE_REG and It's very useful to identify some platform regression issue during VM migration.

Patch 1-7 re-structured the get-reg-list test in aarch64 to make some of the code as common test framework that can be shared by riscv.

Patch 8 move reject_set check logic to a function so as to check for different errno for different registers.
Patch 9 move finalize_vcpu back to run_test so that riscv can implement its specific operation.
Patch 10 change to do the get/set operation only on present-blessed list. Patch 11 add the skip_set facilities so that riscv can skip set operation on some registers.
Patch 12 enabled the KVM_GET_REG_LIST API in riscv.
patch 13 added the corresponding kselftest for checking possible register regressions.

The get-reg-list kvm selftest was ported from aarch64 and tested with Linux v6.5-rc3 on a Qemu riscv64 virt machine.

---
Changed since v5:
* Rebase to v6.5-rc3
* Minor fix for Andrew's comments

Andrew Jones (7):
KVM: arm64: selftests: Replace str_with_index with strdup_printf
KVM: arm64: selftests: Drop SVE cap check in print_reg
KVM: arm64: selftests: Remove print_reg's dependency on vcpu_config
KVM: arm64: selftests: Rename vcpu_config and add to kvm_util.h
KVM: arm64: selftests: Delete core_reg_fixup
KVM: arm64: selftests: Split get-reg-list test code
KVM: arm64: selftests: Finish generalizing get-reg-list

Haibo Xu (6):
KVM: arm64: selftests: Move reject_set check logic to a function
KVM: arm64: selftests: Move finalize_vcpu back to run_test
KVM: selftests: Only do get/set tests on present blessed list
KVM: selftests: Add skip_set facility to get_reg_list test
KVM: riscv: Add KVM_GET_REG_LIST API support
KVM: riscv: selftests: Add get-reg-list test

 Documentation/virt/kvm/api.rst                |   2 +-
 arch/riscv/kvm/vcpu.c                         | 375 +++++++++
 tools/testing/selftests/kvm/Makefile          |  13 +-
 .../selftests/kvm/aarch64/get-reg-list.c      | 554 ++-----------
 tools/testing/selftests/kvm/get-reg-list.c    | 401 +++++++++
 .../selftests/kvm/include/kvm_util_base.h     |  21 +
 .../selftests/kvm/include/riscv/processor.h   |   3 +
 .../testing/selftests/kvm/include/test_util.h |   2 +
 tools/testing/selftests/kvm/lib/test_util.c   |  15 +
 .../selftests/kvm/riscv/get-reg-list.c        | 780 ++++++++++++++++++
 10 files changed, 1670 insertions(+), 496 deletions(-)
 create mode 100644 tools/testing/selftests/kvm/get-reg-list.c
 create mode 100644 tools/testing/selftests/kvm/riscv/get-reg-list.c
Signature · 1 line
2.34.1