All of lore.kernel.org
 help / color / mirror / Atom feed
From: Sean Christopherson <seanjc@google.com>
To: Chao Gao <chao.gao@intel.com>
Cc: Paolo Bonzini <pbonzini@redhat.com>,
	kvm@vger.kernel.org, linux-kernel@vger.kernel.org,
	 Dongli Zhang <dongli.zhang@oracle.com>
Subject: Re: [PATCH v3 03/10] KVM: selftests: Add a test to verify APICv updates (while L2 is active)
Date: Fri, 12 Dec 2025 10:01:32 -0800	[thread overview]
Message-ID: <aTxYfJLKu6yC_5hj@google.com> (raw)
In-Reply-To: <aTuLC/gNucl9o+Y+@intel.com>

On Fri, Dec 12, 2025, Chao Gao wrote:
> On Fri, Dec 05, 2025 at 03:19:06PM -0800, Sean Christopherson wrote:
> >+static void bad_ipi_handler(struct ex_regs *regs)
> >+{
> >+	TEST_FAIL("Received \"bad\" IPI; ICR MMIO write should have been ignored");
> 
> is it ok to use TEST_FAIL() in guest code?

Doh.  Good point.  It'll definitely generate a failure, but not a very helpful one.

> >+static void l2_vmcall(void)
> >+{
> >+	/*
> >+	 * Exit to L1.  Assume all registers may be clobbered as selftests's
> >+	 * VM-Enter code doesn't preserve L2 GPRs.
> >+	 */
> >+	asm volatile("push %%rbp\n\t"
> >+		     "push %%r15\n\t"
> >+		     "push %%r14\n\t"
> >+		     "push %%r13\n\t"
> >+		     "push %%r12\n\t"
> >+		     "push %%rbx\n\t"
> >+		     "push %%rdx\n\t"
> >+		     "push %%rdi\n\t"
> >+		     "vmcall\n\t"
> >+		     "pop %%rdi\n\t"
> >+		     "pop %%rdx\n\t"
> >+		     "pop %%rbx\n\t"
> >+		     "pop %%r12\n\t"
> >+		     "pop %%r13\n\t"
> >+		     "pop %%r14\n\t"
> >+		     "pop %%r15\n\t"
> >+		     "pop %%rbp\n\t"
> >+		::: "rax", "rcx", "rdx", "rsi", "rdx", "r8", "r9", "r10", "r11", "memory");
> >+}
> 
> There's already a vmcall() helper in vmx.h. Why add a new one?

Oh, nice, I somehow missed that.

> >+int main(int argc, char *argv[])
> >+{
> >+	vm_vaddr_t vmx_pages_gva;
> >+	struct vmx_pages *vmx;
> >+	struct kvm_vcpu *vcpu;
> >+	struct kvm_vm *vm;
> >+	struct ucall uc;
> >+
> >+	TEST_REQUIRE(kvm_cpu_has(X86_FEATURE_VMX));
> >+
> >+	vm = vm_create_with_one_vcpu(&vcpu, l1_guest_code);
> >+
> >+	vmx = vcpu_alloc_vmx(vm, &vmx_pages_gva);
> >+	prepare_virtualize_apic_accesses(vmx, vm);
> >+	vcpu_args_set(vcpu, 2, vmx_pages_gva);
> 
> s/2/1
> 
> only one argument here.

Gah.  Thank you!

  reply	other threads:[~2025-12-12 18:01 UTC|newest]

Thread overview: 23+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-12-05 23:19 [PATCH v3 00/10] KVM: VMX: Fix APICv activation bugs Sean Christopherson
2025-12-05 23:19 ` [PATCH v3 01/10] KVM: VMX: Update SVI during runtime APICv activation Sean Christopherson
2025-12-05 23:19 ` [PATCH v3 02/10] KVM: nVMX: Immediately refresh APICv controls as needed on nested VM-Exit Sean Christopherson
2025-12-05 23:19 ` [PATCH v3 03/10] KVM: selftests: Add a test to verify APICv updates (while L2 is active) Sean Christopherson
2025-12-12  3:24   ` Chao Gao
2025-12-12 18:01     ` Sean Christopherson [this message]
2025-12-05 23:19 ` [PATCH v3 04/10] KVM: nVMX: Switch to vmcs01 to update PML controls on-demand if L2 is active Sean Christopherson
2025-12-24  7:53   ` Chao Gao
2025-12-05 23:19 ` [PATCH v3 05/10] KVM: nVMX: Switch to vmcs01 to update TPR threshold " Sean Christopherson
2025-12-25  6:38   ` Chao Gao
2025-12-05 23:19 ` [PATCH v3 06/10] KVM: nVMX: Switch to vmcs01 to update SVI " Sean Christopherson
2025-12-25  8:30   ` Chao Gao
2025-12-30 21:03     ` Sean Christopherson
2025-12-31  2:17       ` Chao Gao
2025-12-05 23:19 ` [PATCH v3 07/10] KVM: nVMX: Switch to vmcs01 to refresh APICv controls " Sean Christopherson
2025-12-26  1:45   ` Chao Gao
2025-12-05 23:19 ` [PATCH v3 08/10] KVM: nVMX: Switch to vmcs01 to update APIC page " Sean Christopherson
2025-12-26  2:01   ` Chao Gao
2025-12-05 23:19 ` [PATCH v3 09/10] KVM: nVMX: Switch to vmcs01 to set virtual APICv mode " Sean Christopherson
2025-12-26  5:16   ` Chao Gao
2025-12-05 23:19 ` [PATCH v3 10/10] KVM: x86: Update APICv ISR (a.k.a. SVI) as part of kvm_apic_update_apicv() Sean Christopherson
2025-12-26  5:16   ` Chao Gao
2025-12-10  0:25 ` [PATCH v3 00/10] KVM: VMX: Fix APICv activation bugs Sean Christopherson

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=aTxYfJLKu6yC_5hj@google.com \
    --to=seanjc@google.com \
    --cc=chao.gao@intel.com \
    --cc=dongli.zhang@oracle.com \
    --cc=kvm@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=pbonzini@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.