All of lore.kernel.org
 help / color / mirror / Atom feed
From: Vipin Sharma <vipinsh@google.com>
To: seanjc@google.com, pbonzini@redhat.com, vkuznets@redhat.com,
	dmatlack@google.com
Cc: kvm@vger.kernel.org, linux-kernel@vger.kernel.org,
	Vipin Sharma <vipinsh@google.com>
Subject: [Patch v3 00/13] Add Hyper-v extended hypercall support in KVM
Date: Mon,  5 Dec 2022 11:14:17 -0800	[thread overview]
Message-ID: <20221205191430.2455108-1-vipinsh@google.com> (raw)

Hi,

There are two patch series combined in this one because I have rebased
my patch series (patches 8 to 13) on top of Vitaly's "Hyper-V invariant TSC control
feature" (patches 1 to 7).
https://lore.kernel.org/kvm/87o7szouyr.fsf@ovpn-194-185.brq.redhat.com/

Vitaly's series had some small merge conflicts on the KVM queue branch I
have fixed them in this series, no code changes.

My patches (8 to 13) add Hyper-V extended hypercall support and selftests.

v3:
- Rebased on top of Vitaly's "Hyper-V invariant TSC control feature"
  series.
- Removed enabling KVM_CAP_HYPERV_ENFORCE_CPUID in
  hyperv_extended_hypercalls test.


v2: https://lore.kernel.org/lkml/20221121234026.3037083-1-vipinsh@google.com/
- Intorduced ASSERT_EXIT_REASON macro and replaced all occurences of
  TEST_ASSERT for vcpu exit reason.
- Skip hyperv_extended_hypercalls test if extended hypercalls are not
  supported by the kernel.
- Rebased with latest KVM queue.
- Addressed all of the comments in patch 6 of v1.

v1: https://lore.kernel.org/lkml/20221105045704.2315186-1-vipinsh@google.com/

RFC: https://lore.kernel.org/lkml/20221021185916.1494314-1-vipinsh@google.com/

Vipin Sharma (6):
  KVM: x86: hyper-v: Use common code for hypercall userspace exit
  KVM: x86: hyper-v: Add extended hypercall support in Hyper-v
  KVM: selftests: Test Hyper-V extended hypercall enablement
  KVM: selftests: Replace hardcoded Linux OS id with HYPERV_LINUX_OS_ID
  KVM: selftests: Make vCPU exit reason test assertion common.
  KVM: selftests: Test Hyper-V extended hypercall exit to userspace

Vitaly Kuznetsov (7):
  x86/hyperv: Add HV_EXPOSE_INVARIANT_TSC define
  KVM: x86: Add a KVM-only leaf for CPUID_8000_0007_EDX
  KVM: x86: Hyper-V invariant TSC control
  KVM: selftests: Rename 'msr->available' to 'msr->fault_exepected' in
    hyperv_features test
  KVM: selftests: Convert hyperv_features test to using
    KVM_X86_CPU_FEATURE()
  KVM: selftests: Test that values written to Hyper-V MSRs are preserved
  KVM: selftests: Test Hyper-V invariant TSC control

 arch/x86/include/asm/hyperv-tlfs.h            |   3 +
 arch/x86/include/asm/kvm_host.h               |   1 +
 arch/x86/kernel/cpu/mshyperv.c                |   2 +-
 arch/x86/kvm/cpuid.c                          |  11 +-
 arch/x86/kvm/hyperv.c                         |  74 +++-
 arch/x86/kvm/hyperv.h                         |  27 ++
 arch/x86/kvm/reverse_cpuid.h                  |   7 +
 arch/x86/kvm/x86.c                            |   4 +-
 tools/testing/selftests/kvm/.gitignore        |   1 +
 tools/testing/selftests/kvm/Makefile          |   1 +
 .../testing/selftests/kvm/aarch64/psci_test.c |   4 +-
 .../testing/selftests/kvm/include/test_util.h |  10 +
 .../selftests/kvm/include/x86_64/hyperv.h     | 149 +++++---
 .../selftests/kvm/include/x86_64/processor.h  |   1 +
 .../kvm/lib/s390x/diag318_test_handler.c      |   3 +-
 .../selftests/kvm/s390x/sync_regs_test.c      |  15 +-
 .../selftests/kvm/set_memory_region_test.c    |   6 +-
 tools/testing/selftests/kvm/x86_64/amx_test.c |   8 +-
 .../kvm/x86_64/cr4_cpuid_sync_test.c          |   8 +-
 .../testing/selftests/kvm/x86_64/debug_regs.c |   2 +-
 .../selftests/kvm/x86_64/flds_emulation.h     |   5 +-
 .../selftests/kvm/x86_64/hyperv_clock.c       |   9 +-
 .../selftests/kvm/x86_64/hyperv_evmcs.c       |   8 +-
 .../kvm/x86_64/hyperv_extended_hypercalls.c   |  93 +++++
 .../selftests/kvm/x86_64/hyperv_features.c    | 353 +++++++++++-------
 .../testing/selftests/kvm/x86_64/hyperv_ipi.c |   6 +-
 .../selftests/kvm/x86_64/hyperv_svm_test.c    |   7 +-
 .../selftests/kvm/x86_64/hyperv_tlb_flush.c   |  14 +-
 .../selftests/kvm/x86_64/kvm_clock_test.c     |   5 +-
 .../selftests/kvm/x86_64/kvm_pv_test.c        |   5 +-
 .../selftests/kvm/x86_64/monitor_mwait_test.c |   9 +-
 .../kvm/x86_64/nested_exceptions_test.c       |   5 +-
 .../selftests/kvm/x86_64/platform_info_test.c |  14 +-
 .../kvm/x86_64/pmu_event_filter_test.c        |   6 +-
 tools/testing/selftests/kvm/x86_64/smm_test.c |   9 +-
 .../testing/selftests/kvm/x86_64/state_test.c |   8 +-
 .../selftests/kvm/x86_64/svm_int_ctl_test.c   |   8 +-
 .../kvm/x86_64/svm_nested_shutdown_test.c     |   7 +-
 .../kvm/x86_64/svm_nested_soft_inject_test.c  |   6 +-
 .../selftests/kvm/x86_64/svm_vmcall_test.c    |   6 +-
 .../selftests/kvm/x86_64/sync_regs_test.c     |  25 +-
 .../kvm/x86_64/triple_fault_event_test.c      |   9 +-
 .../selftests/kvm/x86_64/tsc_scaling_sync.c   |   6 +-
 .../kvm/x86_64/ucna_injection_test.c          |  22 +-
 .../selftests/kvm/x86_64/userspace_io_test.c  |   6 +-
 .../kvm/x86_64/userspace_msr_exit_test.c      |  22 +-
 .../kvm/x86_64/vmx_apic_access_test.c         |  11 +-
 .../kvm/x86_64/vmx_close_while_nested_test.c  |   5 +-
 .../selftests/kvm/x86_64/vmx_dirty_log_test.c |   7 +-
 .../vmx_exception_with_invalid_guest_state.c  |   4 +-
 .../x86_64/vmx_invalid_nested_guest_state.c   |   4 +-
 .../kvm/x86_64/vmx_nested_tsc_scaling_test.c  |   6 +-
 .../kvm/x86_64/vmx_preemption_timer_test.c    |   8 +-
 .../kvm/x86_64/vmx_tsc_adjust_test.c          |   6 +-
 .../selftests/kvm/x86_64/xapic_ipi_test.c     |   6 +-
 .../selftests/kvm/x86_64/xen_shinfo_test.c    |   7 +-
 .../selftests/kvm/x86_64/xen_vmcall_test.c    |   5 +-
 57 files changed, 586 insertions(+), 493 deletions(-)
 create mode 100644 tools/testing/selftests/kvm/x86_64/hyperv_extended_hypercalls.c

-- 
2.39.0.rc0.267.gcb52ba06e7-goog


             reply	other threads:[~2022-12-05 19:15 UTC|newest]

Thread overview: 20+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-12-05 19:14 Vipin Sharma [this message]
2022-12-05 19:14 ` [Patch v3 01/13] x86/hyperv: Add HV_EXPOSE_INVARIANT_TSC define Vipin Sharma
2022-12-05 19:14 ` [Patch v3 02/13] KVM: x86: Add a KVM-only leaf for CPUID_8000_0007_EDX Vipin Sharma
2022-12-05 19:14 ` [Patch v3 03/13] KVM: x86: Hyper-V invariant TSC control Vipin Sharma
2022-12-05 19:14 ` [Patch v3 04/13] KVM: selftests: Rename 'msr->available' to 'msr->fault_exepected' in hyperv_features test Vipin Sharma
2022-12-05 19:14 ` [Patch v3 05/13] KVM: selftests: Convert hyperv_features test to using KVM_X86_CPU_FEATURE() Vipin Sharma
2022-12-05 19:14 ` [Patch v3 06/13] KVM: selftests: Test that values written to Hyper-V MSRs are preserved Vipin Sharma
2022-12-05 19:14 ` [Patch v3 07/13] KVM: selftests: Test Hyper-V invariant TSC control Vipin Sharma
2022-12-05 19:14 ` [Patch v3 08/13] KVM: x86: hyper-v: Use common code for hypercall userspace exit Vipin Sharma
2022-12-05 19:14 ` [Patch v3 09/13] KVM: x86: hyper-v: Add extended hypercall support in Hyper-v Vipin Sharma
2022-12-05 19:14 ` [Patch v3 10/13] KVM: selftests: Test Hyper-V extended hypercall enablement Vipin Sharma
2022-12-05 19:14 ` [Patch v3 11/13] KVM: selftests: Replace hardcoded Linux OS id with HYPERV_LINUX_OS_ID Vipin Sharma
2022-12-05 19:14 ` [Patch v3 12/13] KVM: selftests: Make vCPU exit reason test assertion common Vipin Sharma
2022-12-09 21:50   ` David Matlack
2022-12-10  1:48     ` Sean Christopherson
2022-12-12 16:00       ` Vipin Sharma
2022-12-05 19:14 ` [Patch v3 13/13] KVM: selftests: Test Hyper-V extended hypercall exit to userspace Vipin Sharma
2022-12-09 22:05   ` David Matlack
2022-12-10  1:39     ` Sean Christopherson
2022-12-10 16:57       ` David Matlack

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20221205191430.2455108-1-vipinsh@google.com \
    --to=vipinsh@google.com \
    --cc=dmatlack@google.com \
    --cc=kvm@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=pbonzini@redhat.com \
    --cc=seanjc@google.com \
    --cc=vkuznets@redhat.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.