From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 3B8DDC4167E for ; Sat, 19 Nov 2022 01:53:31 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S234617AbiKSBx3 (ORCPT ); Fri, 18 Nov 2022 20:53:29 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:51800 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S233639AbiKSBwm (ORCPT ); Fri, 18 Nov 2022 20:52:42 -0500 Received: from mail-pj1-x104a.google.com (mail-pj1-x104a.google.com [IPv6:2607:f8b0:4864:20::104a]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 11AF59209F for ; Fri, 18 Nov 2022 17:34:55 -0800 (PST) Received: by mail-pj1-x104a.google.com with SMTP id nl16-20020a17090b385000b002138288fd51so7642894pjb.6 for ; Fri, 18 Nov 2022 17:34:55 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20210112; 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=ainK2RDn+jZipfmA59p8DPXtbCjd5fvmnXnNzM45Lqs=; b=ElbaUsSFUGAHxw9FaGIh9WqW076YqYTniSp+9sLgIbyAZGXc9q18pS+d+PVOfEWLyg Kx/QdBqkeFSoCaN0e1TOjAh4OmvJCcZTfbRkoIs9Pa9Ier3h3eU6dfc5nhMeLRYb7If1 R8gMGaRsYzdOWxgY6umO5g2RAl06ZRzk4tCJFWsOlqsTdFgeOz+FKVhUFHG0gjETIWMB SJsXPpuWt8ijNGjeVGXQ26qTfp0uSqxFA3Tr0kPraQUGqTQxkgiCsPpjq4Ug8UUJokHo 3S2V7A4WGHkj82py+dbabm8Ds9t2svz5QsJ1xSBiuk9loWQwWH1Z8uCRnLa36e7zSQDg hRig== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; 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=ainK2RDn+jZipfmA59p8DPXtbCjd5fvmnXnNzM45Lqs=; b=Itn5cLw9Xcua4O+KCrdThSxZrzkGVQXwysevx/D+HZbPU1IJFW5t7wn0gGvbek9Z2f +cZ/aywCtLQgNmQunLT0R2boX1HfPfa/ljS8Qxbln4pesKDelNAUY6pn9xPTWr5IOkZf lyvjsFSYOU08QjGQRx5x44IiId4upZ98gcKMC9tVmo1QQJO2c+X0nwdx3jmRFiEKNTpI kVjMOotvbzkcBu6ulAsOyxehSLDjBKe7/7K1/lF21gEiMK2XZcRvMBqdStV8YALr/oBp iBuLYSqyKysVqUzZcZPT5chh51bQjOLUn4N6UEYQNA9bSNQn2JE97e2P0DbtQi10tm5p LEgw== X-Gm-Message-State: ANoB5pkfkAdKE3uKn0M6Rbu0xWEfmK1HiEm02ntkY/+vn0B1Lv1/OgIf zrPJVVWxWEPHSD/nC3GBE7xQdvISL04= X-Google-Smtp-Source: AA0mqf6tFBmKyZhX4sewzWE/FLSMviulSVp5ypejrlokkSGEnAY1MSlwDguv1kCBOyWnNtV82VmzeHcBdl4= X-Received: from zagreus.c.googlers.com ([fda3:e722:ac3:cc00:7f:e700:c0a8:5c37]) (user=seanjc job=sendgmr) by 2002:a17:902:ca14:b0:187:3fc8:986e with SMTP id w20-20020a170902ca1400b001873fc8986emr2206032pld.4.1668821695384; Fri, 18 Nov 2022 17:34:55 -0800 (PST) Reply-To: Sean Christopherson Date: Sat, 19 Nov 2022 01:34:42 +0000 In-Reply-To: <20221119013450.2643007-1-seanjc@google.com> Mime-Version: 1.0 References: <20221119013450.2643007-1-seanjc@google.com> X-Mailer: git-send-email 2.38.1.584.g0f3c55d4c2-goog Message-ID: <20221119013450.2643007-2-seanjc@google.com> Subject: [PATCH 1/9] KVM: selftests: Add rdmsr_from_l2() implementation in Hyper-V eVMCS test From: Sean Christopherson To: Yury Norov , Peter Zijlstra , Ingo Molnar , Arnaldo Carvalho de Melo , Marc Zyngier , Paolo Bonzini Cc: Andy Shevchenko , Rasmus Villemoes , Mark Rutland , Alexander Shishkin , Jiri Olsa , Namhyung Kim , James Morse , Alexandru Elisei , Suzuki K Poulose , Oliver Upton , linux-perf-users@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, kvmarm@lists.linux.dev, kvmarm@lists.cs.columbia.edu, kvm@vger.kernel.org, Sean Christopherson Content-Type: text/plain; charset="UTF-8" Precedence: bulk List-ID: X-Mailing-List: linux-perf-users@vger.kernel.org Add rdmsr_from_l2() in hyperv_evmcs.c, it got left unintentionally omitted when applying code review feeback on the fly. Intentionally duplicate the code that's in hyperv_svm_test.c, the helper really should not exist (L1 shouldn't clobber GPRs) and will hopefully be removed sooner than later. Until that happens, deter other tests from using the somewhat misleading helper (it doesn't actually read L2's MSR value). Link: https://lore.kernel.org/all/Y2FFNO3Bu9Z3LtCW@google.com Fixes: 860e80157068 ("KVM: selftests: Introduce rdmsr_from_l2() and use it for MSR-Bitmap tests") Signed-off-by: Sean Christopherson --- tools/testing/selftests/kvm/x86_64/hyperv_evmcs.c | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/tools/testing/selftests/kvm/x86_64/hyperv_evmcs.c b/tools/testing/selftests/kvm/x86_64/hyperv_evmcs.c index d418954590b1..ea58e5b436e8 100644 --- a/tools/testing/selftests/kvm/x86_64/hyperv_evmcs.c +++ b/tools/testing/selftests/kvm/x86_64/hyperv_evmcs.c @@ -31,6 +31,15 @@ static void guest_nmi_handler(struct ex_regs *regs) { } +/* Exit to L1 from L2 with RDMSR instruction */ +static inline void rdmsr_from_l2(uint32_t msr) +{ + /* Currently, L1 doesn't preserve GPRs during vmexits. */ + __asm__ __volatile__ ("rdmsr" : : "c"(msr) : + "rax", "rbx", "rdx", "rsi", "rdi", "r8", "r9", + "r10", "r11", "r12", "r13", "r14", "r15"); +} + void l2_guest_code(void) { u64 unused; -- 2.38.1.584.g0f3c55d4c2-goog