Received: by 2002:a05:7412:f589:b0:e2:908c:2ebd with SMTP id eh9csp667815rdb; Tue, 31 Oct 2023 20:57:49 -0700 (PDT) X-Google-Smtp-Source: AGHT+IFF8PfyFSmHT14rlgLkwRSOb9zM55p+00HNkCSLHuxZ6C8oRSaFQ4YyNare94kTDq6cKjJd X-Received: by 2002:a67:c21d:0:b0:45b:f938:26c5 with SMTP id i29-20020a67c21d000000b0045bf93826c5mr2651175vsj.12.1698811068906; Tue, 31 Oct 2023 20:57:48 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1698811068; cv=none; d=google.com; s=arc-20160816; b=O5ztnYzsqYMvIKR9i77cMPQlWltfg1w/w8jhAKd5X9BfiFgpkq0p+3p441uva2vCip 8m5CVxhqwrxCATvOme6VwEpE9+0eX8Fj88q/vVh1cmEWcK+Td1kmSyzcsQ8nczoa2FPa tL8TN0jZzKfRwR6jIcJdsLNt5HOX8c21v4sIuqdMlRGS79dDPM/QoUEGbt6O962iblJj AYPH/KOvcRsKeucjQQfc83yCZmn4ZRI8JNt8LLB+qS/lC8490cboET6rP0ZMj6d1hSG7 cvvVD89EB4KT+IKwsVCyzW2NktfLVwPtd5BeSLC6G51Xgd7qmVdaK3XQZr0kppQUi2qp A90A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:in-reply-to:from :references:cc:to:content-language:subject:user-agent:mime-version :date:message-id:dkim-signature; bh=+Lk6d82CwnbIG6LfdEVO9iyfoAnkkT6bGKXhJhGj+kw=; fh=T4dLVQgGqq3hwPjDUHcqG4PlHW4rJ5DVuUeEGHezjuE=; b=l2OMjqx4gRfTgE8H2yhbOxS2s5gkCNAmDSW0VccgSuBHK1dsx6r4A9ZCP4FkAKW6ZF ZZOajJBZs/W5BU8Qxmqu37AhXwPliGDlY4DwtlV2ivU6HPDGblMZMkQspWEOCzvAUvNF j5DDGg8SOF6b+qx1Q3prM3hfCj2h4RtHh2yqrHPehbTpvRlKNqZqTZ8+g7Ol/a7MEDUR TQs3so6qx3LFOf7dkUH/Ml8k897+2O8ssV82HHSQ2elfJzGx58QD4HgAiqlibiH6Xamz cD41G5GYjMGH14iH2LMTWXcXAxtIe481z1dPSnlaa1vSmzlcDqDwY9uHd31xJcjLNVsL inwA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@intel.com header.s=Intel header.b=NA3FrSDn; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:4 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=intel.com Return-Path: Received: from howler.vger.email (howler.vger.email. [2620:137:e000::3:4]) by mx.google.com with ESMTPS id k33-20020a634b61000000b0059f0cebd046si2102179pgl.729.2023.10.31.20.57.48 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 31 Oct 2023 20:57:48 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:4 as permitted sender) client-ip=2620:137:e000::3:4; Authentication-Results: mx.google.com; dkim=pass header.i=@intel.com header.s=Intel header.b=NA3FrSDn; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:4 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=intel.com Received: from out1.vger.email (depot.vger.email [IPv6:2620:137:e000::3:0]) by howler.vger.email (Postfix) with ESMTP id 129768023B8D; Tue, 31 Oct 2023 20:57:44 -0700 (PDT) X-Virus-Status: Clean X-Virus-Scanned: clamav-milter 0.103.10 at howler.vger.email Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S233535AbjKAD50 (ORCPT + 99 others); Tue, 31 Oct 2023 23:57:26 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:53570 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231434AbjKAD5Y (ORCPT ); Tue, 31 Oct 2023 23:57:24 -0400 Received: from mgamail.intel.com (mgamail.intel.com [134.134.136.31]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 07609A4; Tue, 31 Oct 2023 20:57:18 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1698811039; x=1730347039; h=message-id:date:mime-version:subject:to:cc:references: from:in-reply-to:content-transfer-encoding; bh=l7SaA6WrF/yfhZTXdnFu0cvBBoAB6oKdoOqzhveg098=; b=NA3FrSDn5sN0P/ucW1bqQ/w3Au7YBS0HKFMUglUwx+kUE5/mCYUT3Z42 jNmPt2+X+0s9ltJ7BlUX/ZK/pSo9yL3hbh6z5b+b6A4sqP2k2PGQByJXZ TcaPUSfCNt/pNl2ihbcFuNEBgAck90EfS7D+RIeqPYT68PkGV3TjRI06t mYbjeJSF264+hQ6l7bEBiGLPNHE+GRU+41JfrV4gu4Xp3TZrDCaUSakpJ UqHx+r3qpmeACh1Bsasc99sLiEMg/7+XbszSknbrdptqrnuVmCyRRNwbL S7ZTElWd6mwMJ1TVp1KyjhNUOLRO5MTo5Nqv6LFuYnJr/wwqsSX0Wm5T5 g==; X-IronPort-AV: E=McAfee;i="6600,9927,10880"; a="452716256" X-IronPort-AV: E=Sophos;i="6.03,267,1694761200"; d="scan'208";a="452716256" Received: from fmsmga005.fm.intel.com ([10.253.24.32]) by orsmga104.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 31 Oct 2023 20:57:18 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6600,9927,10880"; a="1092219060" X-IronPort-AV: E=Sophos;i="6.03,267,1694761200"; d="scan'208";a="1092219060" Received: from dapengmi-mobl1.ccr.corp.intel.com (HELO [10.93.12.33]) ([10.93.12.33]) by fmsmga005-auth.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 31 Oct 2023 20:57:15 -0700 Message-ID: Date: Wed, 1 Nov 2023 11:57:12 +0800 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [kvm-unit-tests Patch v2 4/5] x86: pmu: Support validation for Intel PMU fixed counter 3 Content-Language: en-US To: Jim Mattson Cc: Sean Christopherson , Paolo Bonzini , kvm@vger.kernel.org, linux-kernel@vger.kernel.org, Zhenyu Wang , Zhang Xiong , Mingwei Zhang , Like Xu , Dapeng Mi , Kan Liang References: <20231031092921.2885109-1-dapeng1.mi@linux.intel.com> <20231031092921.2885109-5-dapeng1.mi@linux.intel.com> <28796dd3-ac4e-4a38-b9e1-f79533b2a798@linux.intel.com> From: "Mi, Dapeng" In-Reply-To: Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit X-Spam-Status: No, score=-1.2 required=5.0 tests=DKIMWL_WL_HIGH,DKIM_SIGNED, DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI, SPF_HELO_NONE,SPF_PASS,T_SCC_BODY_TEXT_LINE,URIBL_BLOCKED autolearn=unavailable autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on howler.vger.email Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.6.4 (howler.vger.email [0.0.0.0]); Tue, 31 Oct 2023 20:57:44 -0700 (PDT) On 11/1/2023 11:24 AM, Jim Mattson wrote: > On Tue, Oct 31, 2023 at 8:16 PM Mi, Dapeng wrote: >> >> On 11/1/2023 10:47 AM, Jim Mattson wrote: >>> On Tue, Oct 31, 2023 at 7:33 PM Mi, Dapeng wrote: >>>> On 11/1/2023 2:47 AM, Jim Mattson wrote: >>>>> On Tue, Oct 31, 2023 at 2:22 AM Dapeng Mi wrote: >>>>>> Intel CPUs, like Sapphire Rapids, introduces a new fixed counter >>>>>> (fixed counter 3) to counter/sample topdown.slots event, but current >>>>>> code still doesn't cover this new fixed counter. >>>>>> >>>>>> So this patch adds code to validate this new fixed counter can count >>>>>> slots event correctly. >>>>> I'm not convinced that this actually validates anything. >>>>> >>>>> Suppose, for example, that KVM used fixed counter 1 when the guest >>>>> asked for fixed counter 3. Wouldn't this test still pass? >>>> Per my understanding, as long as the KVM returns a valid count in the >>>> reasonable count range, we can think KVM works correctly. We don't need >>>> to entangle on how KVM really uses the HW, it could be impossible and >>>> unnecessary. >>> Now, I see how the Pentium FDIV bug escaped notice. Hey, the numbers >>> are in a reasonable range. What's everyone upset about? >>> >>>> Yeah, currently the predefined valid count range may be some kind of >>>> loose since I want to cover as much as hardwares and avoid to cause >>>> regression. Especially after introducing the random jump and clflush >>>> instructions, the cycles and slots become much more hard to predict. >>>> Maybe we can have a comparable restricted count range in the initial >>>> change, and we can loosen the restriction then if we encounter a failure >>>> on some specific hardware. do you think it's better? Thanks. >>> I think the test is essentially useless, and should probably just be >>> deleted, so that it doesn't give a false sense of confidence. >> IMO, I can't say the tests are totally useless. Yes, passing the tests >> doesn't mean the KVM vPMU must work correctly, but we can say there is >> something probably wrong if it fails to pass these tests. Considering >> the hardware differences, it's impossible to set an exact value for >> these events in advance and it seems there is no better method to verify >> the PMC count as well. I still prefer to keep these tests until we have >> a better method to verify the accuracy of the PMC count. > If it's impossible to set an exact value for these events in advance, > how does Intel validate the hardware PMU? I have no much idea how HW team validates the PMU functionality. But per my gotten information, they could have some very tiny benchmarks with a fixed pattern and run them on a certain scenario, so they can expect an very accurate count value. But this is different with our case, a real program is executed on a real system (probably shared with other programs), the events count is impacted by too much hardware/software factors, such as cache contention, it's hard to predict a single accurate count in advance. Anyway, it's only my guess about the ways of hardware validation, still add Kan to get more information. Hi Kan, Do you have more information about how HW team to validate the PMC count accuracy? Thanks.