Received: by 2002:a05:6a10:22f:0:0:0:0 with SMTP id 15csp788184pxk; Thu, 3 Sep 2020 12:35:50 -0700 (PDT) X-Google-Smtp-Source: ABdhPJwRbTV3ck9lyiMvlIUYQa+Ik7/z+YOmBE8RxWYEouqpla1teAnvDbTKJfTwJbPHb/F2qzWx X-Received: by 2002:a17:906:2a04:: with SMTP id j4mr4010594eje.440.1599161750320; Thu, 03 Sep 2020 12:35:50 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1599161750; cv=none; d=google.com; s=arc-20160816; b=A4jQjLzqVBVoZkeqR3f250YePf1ebjVyPdKJXimnW6wxEaGGfLpShtN45/evKOqFOE PAi2/OxtrAQdZx+8YvvwtEH7bsnrm50SYWn5/yZ7dIbEnE8Rt3huK0KxM9QwxT1rwumL wiNBIvgCRJKg0yfoYeWM4+XUX98n8HdGgLEzgYkvPixHWt2AUJVmD7iqEbQjyLHxdl2t WeoY6zmBKujL9Lhi3CbsvnmUFRbxp+A+hY1gm5Lwgfvytd6JMAgv/3C5rrX5qd3FBID4 4+g1gFEZrrcbgSyzaDUVVRMd5xO/EGlmB5fChYqlCDG+Fr3xxq0iZObokgKyVjoVrJXQ 9WOw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:dkim-signature; bh=w+ShtGQDOEuDeRhwletzDAClmRG1r75b7doI6fMMxgg=; b=gahPLoanelEMbnotAjkh2JPxZOa0d0FYYkSsT37wyGa2l3TgvNWCBLCiMKBSLATFC3 gp/+SEZboHuQlIoP3DxxX1CQeGmKMaPCh65WaLGYfQ45SRaYTCs8iV+VaiRnxGbZUNon y920xraKPp7WHgB+bGdmILxgm2WG1VnbuWEYoKP7jAmTMJe7AqZG1Yp31FeQ1IeagV9q 19k5x8zUMKAaHpxVsRN6PBg+HuebGHrHDWCgfl3aiTtQmHAcRLgw/iHwo6iWmL4e3H51 VIGbzfHwtldV7zFk3tQ+mlGWTToeCCFtBqdIuPzgkukOkJBLGr7JrzYJ5DjQtAeQSXf2 c1qw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@google.com header.s=20161025 header.b=XMdM+ggA; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id pw9si2484599ejb.624.2020.09.03.12.35.27; Thu, 03 Sep 2020 12:35:50 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@google.com header.s=20161025 header.b=XMdM+ggA; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1729184AbgICTcF (ORCPT + 99 others); Thu, 3 Sep 2020 15:32:05 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:54574 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1729186AbgICTb4 (ORCPT ); Thu, 3 Sep 2020 15:31:56 -0400 Received: from mail-ej1-x644.google.com (mail-ej1-x644.google.com [IPv6:2a00:1450:4864:20::644]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 05CD4C061246 for ; Thu, 3 Sep 2020 12:31:56 -0700 (PDT) Received: by mail-ej1-x644.google.com with SMTP id m22so5416774eje.10 for ; Thu, 03 Sep 2020 12:31:55 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=w+ShtGQDOEuDeRhwletzDAClmRG1r75b7doI6fMMxgg=; b=XMdM+ggAPdh81IpctLm1c/aREm4XCfPl9ormWCc8fRfStKSfr64uBm9xQ8XUYvomtu i4lQqPuIECn/07PUDa+BtqgejMhvR+pWgdZzU+J2fLYIJImKvIhv82hWQnfl5kKDij5L 2FKUWLGKMGFLsfdbimfn83RNfdpecFqdCDirf8uR/iz7oSfdaD0oc2zieNja5E96JV9S edDGCZvSh/LNR48161lZ7YpEnXi3sJlDoAbZ0qttdNakSWFpVgYT2DQzYO0KWwU5ZHg5 58cRpDNj9AwTkBn1XkBtD2orU++NHUITLs4R7tmR0ihtQ+aQxazOSBJhZuVw+HKZvQ4s 0CZg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=w+ShtGQDOEuDeRhwletzDAClmRG1r75b7doI6fMMxgg=; b=mBmADoizyr6p9NMj859Wu41Ew61KpBZbpLNvPT9PohkxiK1FR2ajKouywtL6fs+vTz 7hJ72E6VkJU7n+W/5wSVLiV1MhiBXzZx129wsbaLPJ9rXps1GdCZVJrVzsWPxRnSzsSx KEsbG8aQFNvz+IiqOMs4aww+aRiKcWV6qJo+QknUYC9+5i80c6TLxRW4z/bbsecVUbK1 mTTyg48t9d3PVofCDW/TWO0Yyh/NlTmFIyU6EXTfrGrIg1vTOavGlQ9+t6iUbTzRM5et wJgop8ESvOQBqEnly5NHaVSyfPc0c67JBjjogMOMt5mJr6R+IZkMGTGlTZ46bJRDg1CO 53BQ== X-Gm-Message-State: AOAM533B+1T+86hiR5IG+SvvJrQjYnq9aP5QLKw2OY0X9IP7YkDZ3QMV ppDgg8nfrStZL3jtJbUt+1Q+f0UVdAdLcr/HD5usjg== X-Received: by 2002:a17:906:9604:: with SMTP id s4mr3979782ejx.182.1599161514431; Thu, 03 Sep 2020 12:31:54 -0700 (PDT) MIME-Version: 1.0 References: <20200902125935.20646-1-graf@amazon.com> <20200902125935.20646-8-graf@amazon.com> In-Reply-To: <20200902125935.20646-8-graf@amazon.com> From: Aaron Lewis Date: Thu, 3 Sep 2020 12:31:43 -0700 Message-ID: Subject: Re: [PATCH v6 7/7] KVM: selftests: Add test for user space MSR handling To: Alexander Graf Cc: Paolo Bonzini , Jonathan Corbet , Sean Christopherson , Vitaly Kuznetsov , Wanpeng Li , Jim Mattson , Joerg Roedel , KarimAllah Raslan , Dan Carpenter , kvm list , linux-doc@vger.kernel.org, linux-kernel@vger.kernel.org Content-Type: text/plain; charset="UTF-8" Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org > +static void handle_rdmsr(struct kvm_run *run) > +{ > + run->msr.data = run->msr.index; > + msr_reads++; > + > + if (run->msr.index == MSR_SYSCALL_MASK || > + run->msr.index == MSR_GS_BASE) { > + TEST_ASSERT(run->msr.reason != KVM_MSR_EXIT_REASON_FILTER, TEST_ASSERT(run->msr.reason == KVM_MSR_EXIT_REASON_FILTER, > + "MSR read trap w/o access fault"); > + } > +} > + > +static void handle_wrmsr(struct kvm_run *run) > +{ > + /* ignore */ > + msr_writes++; > + > + if (run->msr.index == MSR_IA32_POWER_CTL) { > + TEST_ASSERT(run->msr.data != 0x1234, TEST_ASSERT(run->msr.data == 0x1234, > + "MSR data for MSR_IA32_POWER_CTL incorrect"); > + TEST_ASSERT(run->msr.reason != KVM_MSR_EXIT_REASON_FILTER, TEST_ASSERT(run->msr.reason == KVM_MSR_EXIT_REASON_FILTER, > + "MSR_IA32_POWER_CTL trap w/o access fault"); > + } > +} > + > +int main(int argc, char *argv[]) > +{ > + struct kvm_enable_cap cap = { > + .cap = KVM_CAP_X86_USER_SPACE_MSR, > + .args[0] = 1, .args[0] = KVM_MSR_EXIT_REASON_FILTER, > + }; > + struct kvm_vm *vm; > + struct kvm_run *run; > + int rc;