From patchwork Sat Jun 3 01:10:55 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sean Christopherson X-Patchwork-Id: 102732 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:994d:0:b0:3d9:f83d:47d9 with SMTP id k13csp1403685vqr; Fri, 2 Jun 2023 18:21:24 -0700 (PDT) X-Google-Smtp-Source: ACHHUZ4+VfZq3Y/m7vroOPc9zi8S3v/l2Jf21JQzDX5qiDGANkwMdUuckXZCj1/webDjD9x1yr4v X-Received: by 2002:a25:aac2:0:b0:bac:2ae:d3b8 with SMTP id t60-20020a25aac2000000b00bac02aed3b8mr5495485ybi.42.1685755284207; Fri, 02 Jun 2023 18:21:24 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1685755284; cv=none; d=google.com; s=arc-20160816; b=o1KNoL2CmgNnptoXdZGs+XQvGup0xZ3jCZ6MEh5QeNcsrCy+p1GrQ1JDJz4e/dRP4m AFIIx8lI7+h7+5BVAgYTNSvLPTjmx+K4yfykRQcjHpXNmGTyeNa7ceZj/97fgsbu4VAW ArG0TdWHx/M8TTlKBYrX/IvSOpTuYMfmLnI01aOk36r5ehXi8zsfu+MVAQ1ooFNZHoZk 4TrpTyXab+H7w1M2ps+ktERnJ8hgco4WJS1YqLbVx3LunZwLPJGjQyRxBThhHLNq3Kqq 5r/bY8ss+8p21dDp+uOhG9QNKvy10TV9j3a3vSFf1XJ0F9Wp//m+CYkZ1CWz3s8BN4mO s/Rw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:cc:to:from:subject:message-id:references :mime-version:in-reply-to:date:reply-to:dkim-signature; bh=srE51TmJQHtlw1biDESTiNR2nLQR2FcTNrE5RKigF3Q=; b=AE6cAG3FEUUtXxdLmze+elnrY/2zbm8WYEs1a0peUU0YPKwXMrhj/rVFHJEy6/n812 KTgt1vJfYxqV+JhOGp0r5ySkarRRtuaeOw5b1E2rJk/mol3KeoRvnGuhtevfgsLk1bfN yCqjSXh4kOyvv/gK3+koXDdnkW7mCbwQzr2Y3LogQipdmMwUOjA93L93t+3VjIp8Kgud tRkNP6wZ5/Y5s77b18J/WezdQ/iwpE+izWYLgVk0V8Gf9C0wKPEgU+InkVMERt2Sextg b0yvThuxRj9sVfKsJuiPrLRCqRdrm+3HFKLZ0vYpqpe9OkLGEzKuh1lfN/UTfw9r32/e FejA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@google.com header.s=20221208 header.b=iio8BhYA; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id 6-20020a170902c10600b001ab007aff67si1753660pli.32.2023.06.02.18.21.10; Fri, 02 Jun 2023 18:21:24 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@google.com header.s=20221208 header.b=iio8BhYA; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 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 S237170AbjFCBL4 (ORCPT + 99 others); Fri, 2 Jun 2023 21:11:56 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:43204 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S237164AbjFCBLa (ORCPT ); Fri, 2 Jun 2023 21:11:30 -0400 Received: from mail-pf1-x449.google.com (mail-pf1-x449.google.com [IPv6:2607:f8b0:4864:20::449]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id B503D10CE for ; Fri, 2 Jun 2023 18:11:19 -0700 (PDT) Received: by mail-pf1-x449.google.com with SMTP id d2e1a72fcca58-65297b2ccc6so1715082b3a.1 for ; Fri, 02 Jun 2023 18:11:19 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20221208; t=1685754678; x=1688346678; 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=srE51TmJQHtlw1biDESTiNR2nLQR2FcTNrE5RKigF3Q=; b=iio8BhYA5NHbSfjdHUMcPlrVK7oQLcO4eGZLyOfc9szChSEAewXzlRkxlo6w57iyet wu5ivizMYbpgkF0Z92y/70R+NB/lkt7sFiS6Omn7QaF5OnZ0vKcC2jcCEql+cR3vVQUq M1Mo1Uo/qFycQHiFv8ySrIUZ+3v4wnEbJidQGRZHsAEC8HvRMzjjXc6CN+OtlNnmvYF6 wtRDG8Y4fV09qD/3TBzaMflqxFtro8Y3fu55v1mMHFkI41qukIc3Hn++yI/cCoM0vTk9 N06XlVY3EgZdG0QpeQX9FO83+rK7sM5Y0YhYd0KZaNegp5H/PoF6tfh1rovjzArgRvr3 O6nQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1685754678; x=1688346678; 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=srE51TmJQHtlw1biDESTiNR2nLQR2FcTNrE5RKigF3Q=; b=UStFoSMvHmyNLp5pWc6yklyZQvPcEIoFd+6rqyuwipOzSBulF7P8tz8nKyczZ/8QXL PT6tWEIwZkZG6b67CEb7Iop64zxmP4Sn8tOWa0BWofeGtmbuPlmasxw6m9QbDK245Z/A MAsQAvh4VdB2UbBYkQZ1ziX9nbyv5QB2QVHOqnbfWmoGv6fsnEqFEt1pnSfTUPy2HyJ5 0vIuo4S/km0DG+bQPeHgQbs9au0YRaNXIlkYSSnxeqdzSe1bvEN/iJO5j1OFxaJ4W/Qs 0cX1HXyNvBSluwmozKMuRl3rv/RZY3S+lbtxHj9oViJ4yD55+VoFf7yuLBbVQSpA/Qqb 0PBA== X-Gm-Message-State: AC+VfDxkVjkLm0QnPaZcghfrU5tgQ22wgEKQ9zuyv095j96F+3j4wzMf gn6zsEGYYNT6phkOLQb/2T82EwJUL+o= X-Received: from zagreus.c.googlers.com ([fda3:e722:ac3:cc00:7f:e700:c0a8:5c37]) (user=seanjc job=sendgmr) by 2002:a05:6a00:9a3:b0:653:b76d:4d52 with SMTP id u35-20020a056a0009a300b00653b76d4d52mr729527pfg.2.1685754678499; Fri, 02 Jun 2023 18:11:18 -0700 (PDT) Reply-To: Sean Christopherson Date: Fri, 2 Jun 2023 18:10:55 -0700 In-Reply-To: <20230603011058.1038821-1-seanjc@google.com> Mime-Version: 1.0 References: <20230603011058.1038821-1-seanjc@google.com> X-Mailer: git-send-email 2.41.0.rc2.161.g9c6817b8e7-goog Message-ID: <20230603011058.1038821-10-seanjc@google.com> Subject: [PATCH v7 09/12] KVM: x86/pmu: Constrain the num of guest counters with kvm_pmu_cap From: Sean Christopherson To: Sean Christopherson , Paolo Bonzini Cc: kvm@vger.kernel.org, linux-kernel@vger.kernel.org, Like Xu , Like Xu , Jim Mattson , Sandipan Das X-Spam-Status: No, score=-9.6 required=5.0 tests=BAYES_00,DKIMWL_WL_MED, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_NONE, SPF_HELO_NONE,SPF_PASS,T_SCC_BODY_TEXT_LINE,USER_IN_DEF_DKIM_WL autolearn=unavailable autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1767642532753048849?= X-GMAIL-MSGID: =?utf-8?q?1767642532753048849?= From: Like Xu Cap the number of general purpose counters enumerated on AMD to what KVM actually supports, i.e. don't allow userspace to coerce KVM into thinking there are more counters than actually exist, e.g. by enumerating X86_FEATURE_PERFCTR_CORE in guest CPUID when its not supported. Suggested-by: Sean Christopherson Signed-off-by: Like Xu [sean: massage changelog] Signed-off-by: Sean Christopherson --- arch/x86/kvm/svm/pmu.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/arch/x86/kvm/svm/pmu.c b/arch/x86/kvm/svm/pmu.c index e5c69062a909..c03958063a76 100644 --- a/arch/x86/kvm/svm/pmu.c +++ b/arch/x86/kvm/svm/pmu.c @@ -170,6 +170,9 @@ static void amd_pmu_refresh(struct kvm_vcpu *vcpu) else pmu->nr_arch_gp_counters = AMD64_NUM_COUNTERS; + pmu->nr_arch_gp_counters = min_t(unsigned int, pmu->nr_arch_gp_counters, + kvm_pmu_cap.num_counters_gp); + pmu->counter_bitmask[KVM_PMC_GP] = ((u64)1 << 48) - 1; pmu->reserved_bits = 0xfffffff000280000ull; pmu->raw_event_mask = AMD64_RAW_EVENT_MASK;