Received: by 2002:a05:6358:45e:b0:b5:b6eb:e1f9 with SMTP id 30csp3081967rwe; Mon, 29 Aug 2022 05:38:47 -0700 (PDT) X-Google-Smtp-Source: AA6agR7/NfCH1iXDSVLh6pmSktL5U4k+JBZkPHXmC79yxbwqUcT6IEMhRbLXaQdW/pEZQqBg6maF X-Received: by 2002:a05:6a00:a8f:b0:530:3c05:4644 with SMTP id b15-20020a056a000a8f00b005303c054644mr16591679pfl.79.1661776727659; Mon, 29 Aug 2022 05:38:47 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1661776727; cv=none; d=google.com; s=arc-20160816; b=EGY1Iyo8vek8GX0vUtfKx5PStX3K9SsIuSUv5dTyii2kwZbaLcnQA28Yzo6CL76ndu UEhORaY1JOmp6OTfE6j8CNNvv+a6vqaf1AvMVHpDvQ6aMSF2lNY6BYd7IQgVsLcdEEA8 4rnFYfo3iCbUXkF0ZA0SkgwhtUuwEX/snh/MLAMl01WR7k8hymaoGsDvH4yj0TX8t9Z/ 81NMzqc1avL/f8mjgl8l6Jv+2Msvv6TTpP6b/2RWN4/eXtQScjQg6/+286cZ0VuYUziY Nzc8IsB0++HgJOvh7aC1hYxyliRxnZEWGuGvZKChGiVUahzRQSz8EM8+5nz2Iq1LmPz8 8oug== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :user-agent:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=EFM6TdCDrbBExFEKwrjvTTFUyCKmthDkfOEc8N2izQ0=; b=RMKGLnq0HJN3BnmYCcbA1CGs8IJlUFmQsCI/ePz9rZiGItBb/h/Xt/oK/8JQkq9gH7 XsJTtbPGoutY6B94IMC0G5jzSWZuJYRL0ik+XbEqEH2HX2oq5Zwn6nlqgwlSbhrlwJId FU1QirtJxvfNi5tueJRxGBe6iyww5JeTzK3WeQEvWhA7WECgbGqIKD/DIbRnFgvyUoni XdGZB2yntEeq7dBfFGDXXhnwvuWfd1X591AAI0nECLoOGD/TMhOBiqTVsOYbe7lFy3vE 6fgQ43juPY4XtUd2dL+7ps6wThcgDp1auyamVhI7lmdl9VDxP7xXVTIU2/KSasJNo6fl zS2g== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linuxfoundation.org header.s=korg header.b=nnFD8i+N; 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=NONE sp=NONE dis=NONE) header.from=linuxfoundation.org Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id u1-20020a170902e5c100b0016d8b0dfd3fsi10094590plf.566.2022.08.29.05.38.35; Mon, 29 Aug 2022 05:38:47 -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=@linuxfoundation.org header.s=korg header.b=nnFD8i+N; 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=NONE sp=NONE dis=NONE) header.from=linuxfoundation.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232970AbiH2Ll5 (ORCPT + 99 others); Mon, 29 Aug 2022 07:41:57 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:55906 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232743AbiH2Ll1 (ORCPT ); Mon, 29 Aug 2022 07:41:27 -0400 Received: from ams.source.kernel.org (ams.source.kernel.org [IPv6:2604:1380:4601:e00::1]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 542326FA30; Mon, 29 Aug 2022 04:25:31 -0700 (PDT) Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ams.source.kernel.org (Postfix) with ESMTPS id 2BFE5B80F00; Mon, 29 Aug 2022 11:16:46 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 75306C433D7; Mon, 29 Aug 2022 11:16:44 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=linuxfoundation.org; s=korg; t=1661771804; bh=kCJJ0zEhqeKzejMCjY23kNjAuEHLY49pqrGAAhrL7AQ=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=nnFD8i+NN4HszMpToMICFTbbtsG3g8NazuP/1iB/qwOt8UzYHS1JK1U5O8vmKVQfx ZgJ3TtdCElh8xQAkJqv9WOwWdZ64ncBKgvAtW6rLUgOGNJDfosDDcQGdIbTx8EuSJf mAxB+rLdqbVxsF6yCAtvI3anoldEpjQpztvkVB/g= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Stephane Eranian , Kan Liang , "Peter Zijlstra (Intel)" Subject: [PATCH 5.19 103/158] perf/x86/lbr: Enable the branch type for the Arch LBR by default Date: Mon, 29 Aug 2022 12:59:13 +0200 Message-Id: <20220829105813.414117464@linuxfoundation.org> X-Mailer: git-send-email 2.37.2 In-Reply-To: <20220829105808.828227973@linuxfoundation.org> References: <20220829105808.828227973@linuxfoundation.org> User-Agent: quilt/0.67 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Spam-Status: No, score=-7.1 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_HI, SPF_HELO_NONE,SPF_PASS,T_SCC_BODY_TEXT_LINE autolearn=ham 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 From: Kan Liang commit 32ba156df1b1c8804a4e5be5339616945eafea22 upstream. On the platform with Arch LBR, the HW raw branch type encoding may leak to the perf tool when the SAVE_TYPE option is not set. In the intel_pmu_store_lbr(), the HW raw branch type is stored in lbr_entries[].type. If the SAVE_TYPE option is set, the lbr_entries[].type will be converted into the generic PERF_BR_* type in the intel_pmu_lbr_filter() and exposed to the user tools. But if the SAVE_TYPE option is NOT set by the user, the current perf kernel doesn't clear the field. The HW raw branch type leaks. There are two solutions to fix the issue for the Arch LBR. One is to clear the field if the SAVE_TYPE option is NOT set. The other solution is to unconditionally convert the branch type and expose the generic type to the user tools. The latter is implemented here, because - The branch type is valuable information. I don't see a case where you would not benefit from the branch type. (Stephane Eranian) - Not having the branch type DOES NOT save any space in the branch record (Stephane Eranian) - The Arch LBR HW can retrieve the common branch types from the LBR_INFO. It doesn't require the high overhead SW disassemble. Fixes: 47125db27e47 ("perf/x86/intel/lbr: Support Architectural LBR") Reported-by: Stephane Eranian Signed-off-by: Kan Liang Signed-off-by: Peter Zijlstra (Intel) Cc: stable@vger.kernel.org Link: https://lkml.kernel.org/r/20220816125612.2042397-1-kan.liang@linux.intel.com Signed-off-by: Greg Kroah-Hartman --- arch/x86/events/intel/lbr.c | 8 ++++++++ 1 file changed, 8 insertions(+) --- a/arch/x86/events/intel/lbr.c +++ b/arch/x86/events/intel/lbr.c @@ -1097,6 +1097,14 @@ static int intel_pmu_setup_hw_lbr_filter if (static_cpu_has(X86_FEATURE_ARCH_LBR)) { reg->config = mask; + + /* + * The Arch LBR HW can retrieve the common branch types + * from the LBR_INFO. It doesn't require the high overhead + * SW disassemble. + * Enable the branch type by default for the Arch LBR. + */ + reg->reg |= X86_BR_TYPE_SAVE; return 0; }