History

Merge tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm

Pull kvm fixes from Paolo Bonzini: "ARM64: - Fix pKVM error path on init, making sure we do not change critical system registers as we're about to fail - Make sure that the host's vector length is at capped by a value common to all CPUs - Fix kvm_has_feat*() handling of "negative" features, as the current code is pretty broken - Promote Joey to the status of official reviewer, while James steps down -- hopefully only temporarly x86: - Fix compilation with KVM_INTEL=KVM_AMD=n - Fix disabling KVM_X86_QUIRK_SLOT_ZAP_ALL when shadow MMU is in use Selftests: - Fix compilation on non-x86 architectures" * tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm: x86/reboot: emergency callbacks are now registered by common KVM code KVM: x86: leave kvm.ko out of the build if no vendor module is requested KVM: x86/mmu: fix KVM_X86_QUIRK_SLOT_ZAP_ALL for shadow MMU KVM: arm64: Fix kvm_has_feat*() handling of negative features KVM: selftests: Fix build on architectures other than x86_64 KVM: arm64: Another reviewer reshuffle KVM: arm64: Constrain the host to the maximum shared SVE VL with pKVM KVM: arm64: Fix __pkvm_init_vcpu cptr_el2 error path

Linus Torvalds committed 2 years ago

Commit 45632432 parents b3ce5c3 c8d430d12 files · +91 −43Browse files

Showing the changes to tools/testing (2 of 12 files). Show all

Unified · Split

2 files
  1. tools/testing/selftests/kvm/memslot_modification_stress_test.c +2 −0
  2. tools/testing/selftests/kvm/memslot_perf_test.c +6 −0
tools/testing/selftests/kvm/memslot_modification_stress_test.c+2−0
@@ -169,12 +169,14 @@ int main(int argc, char *argv[]) · 168 unmodified lines
169 case 'i':169 case 'i':
170 p.nr_iterations = atoi_positive("Number of iterations", optarg);170 p.nr_iterations = atoi_positive("Number of iterations", optarg);
171 break;171 break;
172#ifdef __x86_64__
172 case 'q':173 case 'q':
173 p.disable_slot_zap_quirk = true;174 p.disable_slot_zap_quirk = true;
174 175
175 TEST_REQUIRE(kvm_check_cap(KVM_CAP_DISABLE_QUIRKS2) &176 TEST_REQUIRE(kvm_check_cap(KVM_CAP_DISABLE_QUIRKS2) &
176 KVM_X86_QUIRK_SLOT_ZAP_ALL);177 KVM_X86_QUIRK_SLOT_ZAP_ALL);
177 break;178 break;
179#endif
178 case 'h':180 case 'h':
179 default:181 default:
180 help(argv[0]);182 help(argv[0]);
tools/testing/selftests/kvm/memslot_perf_test.c+6−0
@@ -113,7 +113,9 @@ static_assert(ATOMIC_BOOL_LOCK_FREE == 2, "atomic bool is not lockless"); · 112 unmodified lines
113static sem_t vcpu_ready;113static sem_t vcpu_ready;
114 114
115static bool map_unmap_verify;115static bool map_unmap_verify;
116#ifdef __x86_64__
116static bool disable_slot_zap_quirk;117static bool disable_slot_zap_quirk;
118#endif
117 119
118static bool verbose;120static bool verbose;
119#define pr_info_v(...) \121#define pr_info_v(...) \
@@ -579,8 +581,10 @@ static bool test_memslot_move_prepare(struct vm_data *data, · 459 unmodified lines
579 uint32_t guest_page_size = data->vm->page_size;581 uint32_t guest_page_size = data->vm->page_size;
580 uint64_t movesrcgpa, movetestgpa;582 uint64_t movesrcgpa, movetestgpa;
581 583
584#ifdef __x86_64__
582 if (disable_slot_zap_quirk)585 if (disable_slot_zap_quirk)
583 vm_enable_cap(data->vm, KVM_CAP_DISABLE_QUIRKS2, KVM_X86_QUIRK_SLOT_ZAP_ALL);586 vm_enable_cap(data->vm, KVM_CAP_DISABLE_QUIRKS2, KVM_X86_QUIRK_SLOT_ZAP_ALL);
587#endif
584 588
585 movesrcgpa = vm_slot2gpa(data, data->nslots - 1);589 movesrcgpa = vm_slot2gpa(data, data->nslots - 1);
586 590
@@ -971,11 +975,13 @@ static bool parse_args(int argc, char *argv[], · 384 unmodified lines
971 case 'd':975 case 'd':
972 map_unmap_verify = true;976 map_unmap_verify = true;
973 break;977 break;
978#ifdef __x86_64__
974 case 'q':979 case 'q':
975 disable_slot_zap_quirk = true;980 disable_slot_zap_quirk = true;
976 TEST_REQUIRE(kvm_check_cap(KVM_CAP_DISABLE_QUIRKS2) &981 TEST_REQUIRE(kvm_check_cap(KVM_CAP_DISABLE_QUIRKS2) &
977 KVM_X86_QUIRK_SLOT_ZAP_ALL);982 KVM_X86_QUIRK_SLOT_ZAP_ALL);
978 break;983 break;
984#endif
979 case 's':985 case 's':
980 targs->nslots = atoi_paranoid(optarg);986 targs->nslots = atoi_paranoid(optarg);
981 if (targs->nslots <= 1 && targs->nslots != -1) {987 if (targs->nslots <= 1 && targs->nslots != -1) {