From nobody Thu Oct 2 07:48:32 2025 Received: from mail-pg1-f201.google.com (mail-pg1-f201.google.com [209.85.215.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 9ACF4327798 for ; Fri, 19 Sep 2025 22:34:30 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.215.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1758321272; cv=none; b=g78iqyPVsmyLxfZ7SM6HpiwBOLMRYcmZJMF3xmYQkR64qyqN7ZBC26qvWwRITnriVsowm1jI+oDS8EinjuGCy/HAgA38OTyURHHBJ2dXG+2LnxsNPo/eFiDKWfFmF0J4faBwbLjKuNmQY3cidrPObUnNPkaE6PMBNQh/3X5hqk4= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1758321272; c=relaxed/simple; bh=dJruaGQ3F05Ma5fn/i7vIuVZEHwh1UZEyHwAWIgomQc=; h=Date:In-Reply-To:Mime-Version:References:Message-ID:Subject:From: To:Cc:Content-Type; b=qWZf6ltvNmO093N6RLmTslWxRQwq++4LU/qrI/pOaZcjVB55MT2+lETcWNZZ2FfKHq0SdzkEbSrff+04C+pVQBiY2MhNbilcpetbH/yKj/10PnduEw87CZj9DGfvqj59ToWI8XhXmhJmPkjtfv5FsapFjcw29KEwYTFpx6J94Us= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=google.com; spf=pass smtp.mailfrom=flex--seanjc.bounces.google.com; dkim=pass (2048-bit key) header.d=google.com header.i=@google.com header.b=Huc7i+D5; arc=none smtp.client-ip=209.85.215.201 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=google.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=flex--seanjc.bounces.google.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=google.com header.i=@google.com header.b="Huc7i+D5" Received: by mail-pg1-f201.google.com with SMTP id 41be03b00d2f7-b552f91033cso530061a12.1 for ; Fri, 19 Sep 2025 15:34:30 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1758321270; x=1758926070; darn=vger.kernel.org; h=cc:to:from:subject:message-id:references:mime-version:in-reply-to :date:reply-to:from:to:cc:subject:date:message-id:reply-to; bh=FM9v8UgMu6POlYV9dQiPZ5KwLlKlosNQEUVBs5xJtT8=; b=Huc7i+D5vwO61fIXimSomNh2i7DBgjBfd5D1i5mIWAMNLSPsvaQboL3D96kh78xTBe gCZWqo0NAGmq21sgKPsHwrVzH2ej/UeXroLua7R6mUw8BiTyoOMZpHtyCYs68zIvY9Ya wIKxftRNjYtDnn3K9aT6VpGl2KzZALDBVcGxC0m1i6zHD9yq1/D/pJnztecZRc6J40n0 Di0EG21CeMvutIMxmEkQz6AkRdMis0Zcelxbf6KFrNDy46WbWOzFXrI5LwiWCS2jKjbR CcrpeojfSsGTChSh0GQ+je83nxdcv4G//YH673zvgJOXkbPs1oBbFttKX8t7KOUzeaC/ dalg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1758321270; x=1758926070; h=cc:to:from:subject:message-id:references:mime-version:in-reply-to :date:reply-to:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=FM9v8UgMu6POlYV9dQiPZ5KwLlKlosNQEUVBs5xJtT8=; b=J4le6EYuCklzYu1Rr0J+69nT661RceLW8hd4SqZ+ApZkhANjJJLj6DRzcXI5KSTjwH KVRykjke7u1Rjn0IVmFYZGnn4l6/F4+rMJGVrS9XtiMZu6AiD4ZHwkcr7TO3F2nNclEX X/dJ/QoMkPmRKahDDzotvK161bJsapx8eD0oCzsVPcG/bd54PuAEywuL2bIeEt532rra 3ewncF32cvXKp/soP1L1HY1kCqMC/8Lqv1GOZ7V31Uq2X/9B0m1P5WdFyyR3BrZ1ZAgL WpQoz9KLDZM/hjxdmHe43AbT0SIWk0rPys10dejyOb9m2LwsUwJyJxJNhkYerNDgi6Xd Zx8Q== X-Forwarded-Encrypted: i=1; AJvYcCX1u60HsE5nKH0/qFMILB1LKB2Hsaxkmq1NOaPDM60+AmUOrlWHixYvc07f2ueHJBgWgPLfq2PPlhsgR2A=@vger.kernel.org X-Gm-Message-State: AOJu0Yyz52ZKkbLdDNmr8BhnrJLPwlcJrGj9D/thw9FCFjmYRHSUcnsf s4C5SlMoHgF4OpAaDDUDPSzf0L4a334/Sm3lVRS7RrGRzq6nhG+XFJ6J6gFttR9Lmubo/ircScs 35RFgsQ== X-Google-Smtp-Source: AGHT+IGz3iwZbuHnPd1skP5ZnQqIFSyE3922dFoUWfjAGRfr0Zq2zpTrmmvMDiu/w+L/FmceX1nx623YreY= X-Received: from pjh11.prod.google.com ([2002:a17:90b:3f8b:b0:32b:65c6:661a]) (user=seanjc job=prod-delivery.src-stubby-dispatcher) by 2002:a05:6a21:33a9:b0:261:ed47:c9cf with SMTP id adf61e73a8af0-2926d9d9bcbmr7790088637.34.1758321270192; Fri, 19 Sep 2025 15:34:30 -0700 (PDT) Reply-To: Sean Christopherson Date: Fri, 19 Sep 2025 15:32:55 -0700 In-Reply-To: <20250919223258.1604852-1-seanjc@google.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: Mime-Version: 1.0 References: <20250919223258.1604852-1-seanjc@google.com> X-Mailer: git-send-email 2.51.0.470.ga7dc726c21-goog Message-ID: <20250919223258.1604852-49-seanjc@google.com> Subject: [PATCH v16 48/51] KVM: selftests: Add KVM_{G,S}ET_ONE_REG coverage to MSRs test From: Sean Christopherson To: Paolo Bonzini , Sean Christopherson Cc: kvm@vger.kernel.org, linux-kernel@vger.kernel.org, Tom Lendacky , Mathias Krause , John Allen , Rick Edgecombe , Chao Gao , Binbin Wu , Xiaoyao Li , Maxim Levitsky , Zhang Yi Z , Xin Li Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" When KVM_{G,S}ET_ONE_REG are supported, verify that MSRs can be accessed via ONE_REG and through the dedicated MSR ioctls. For simplicity, run the test twice, e.g. instead of trying to get MSR values into the exact right state when switching write methods. Signed-off-by: Sean Christopherson Reviewed-by: Chao Gao --- tools/testing/selftests/kvm/x86/msrs_test.c | 22 ++++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) diff --git a/tools/testing/selftests/kvm/x86/msrs_test.c b/tools/testing/se= lftests/kvm/x86/msrs_test.c index f69091ebd270..2dc4017072c6 100644 --- a/tools/testing/selftests/kvm/x86/msrs_test.c +++ b/tools/testing/selftests/kvm/x86/msrs_test.c @@ -193,6 +193,9 @@ static void guest_main(void) } } =20 +static bool has_one_reg; +static bool use_one_reg; + static void host_test_msr(struct kvm_vcpu *vcpu, u64 guest_val) { u64 reset_val =3D msrs[idx].reset_val; @@ -206,11 +209,21 @@ static void host_test_msr(struct kvm_vcpu *vcpu, u64 = guest_val) TEST_ASSERT(val =3D=3D guest_val, "Wanted 0x%lx from get_msr(0x%x), got 0= x%lx", guest_val, msr, val); =20 - vcpu_set_msr(vcpu, msr, reset_val); + if (use_one_reg) + vcpu_set_reg(vcpu, KVM_X86_REG_MSR(msr), reset_val); + else + vcpu_set_msr(vcpu, msr, reset_val); =20 val =3D vcpu_get_msr(vcpu, msr); TEST_ASSERT(val =3D=3D reset_val, "Wanted 0x%lx from get_msr(0x%x), got 0= x%lx", reset_val, msr, val); + + if (!has_one_reg) + return; + + val =3D vcpu_get_reg(vcpu, KVM_X86_REG_MSR(msr)); + TEST_ASSERT(val =3D=3D reset_val, "Wanted 0x%lx from get_reg(0x%x), got 0= x%lx", + reset_val, msr, val); } =20 static void do_vcpu_run(struct kvm_vcpu *vcpu) @@ -350,5 +363,12 @@ static void test_msrs(void) =20 int main(void) { + has_one_reg =3D kvm_has_cap(KVM_CAP_ONE_REG); + test_msrs(); + + if (has_one_reg) { + use_one_reg =3D true; + test_msrs(); + } } --=20 2.51.0.470.ga7dc726c21-goog