Received: by 2002:ab2:1149:0:b0:1f3:1f8c:d0c6 with SMTP id z9csp782119lqz; Sat, 30 Mar 2024 21:18:46 -0700 (PDT) X-Forwarded-Encrypted: i=3; AJvYcCXgtVgJeFfNryXgPKmIozKndNsdHeOAkWAbH0uN4emFFK8MuMOA/2PjYVAZFIP7XP/38rAL2Ayapb4bgvVd1sJXdyNRWVIS7Q8vIQcbWQ== X-Google-Smtp-Source: AGHT+IFNKnov+CDLv60T+Emg/ZYOFx6vnZdgvz61DMM7GHyAZBqXt7C+7+MRt9byWsFzq6p35NWW X-Received: by 2002:a05:620a:8426:b0:78b:c225:a6ea with SMTP id pc38-20020a05620a842600b0078bc225a6eamr6536784qkn.43.1711858725812; Sat, 30 Mar 2024 21:18:45 -0700 (PDT) ARC-Seal: i=2; a=rsa-sha256; t=1711858725; cv=pass; d=google.com; s=arc-20160816; b=iBUAgJDI79cl70yCwqI7JevUQwMww0gnECwrPNHly6bUJY1QBTn1rUIWQGbVrovj59 t4Ox5ZVPCedMlqR2qMvH8HqFYnU4k7FzkzRC7zeRGaay6UOHF9gKLrLkRFcOa7BGEQPO d/Xp0+WCRkJaEo4hNODur7/QB2kBmuCe750O6v/whcKGsZp2h6fDnZIZiIPGwd+JE/lI DCOjv1mQJAyBdYQVcisG2ug/YX6uk/yUJ6AEU5FimLpOnXNPisb2HT9m4GKchr55hYo1 tIUBYvWk1SmVjk4FdWcG7vUDfV6EmGbZ1UOSTD9J6/cCYAELHNgFAtsqHHP5eGnL5Y/y 0o2w== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=content-transfer-encoding:mime-version:list-unsubscribe :list-subscribe:list-id:precedence:message-id:date:subject:cc:to :from:dkim-signature; bh=0MPXG5DCCiiQMyIPbwtz4/2vIDP4fsfgby4jkAat1Bs=; fh=4AyU/x+val9l9ExwDmfmpeW7R8l/NbvEHNqFh2t6BLo=; b=SUoXvsh8F3xtuLJbeZc+A1Avagqx5DYG/Ef+YL9nxwfQRbAD3kVW5nLjXPA3XYoepP gQH475kqYPe/Qy2miXFzaaqiTRhldATaMyl5Vt/xXhAUC3otvaB2cBwDaQcQgIzT/ghm e9CFsMJqDzW844bovGcJM2sd7EMh6+mcavSFBMgx4q7huoV1JKqjgQQsBysP5g+/u4+R hpRHszF92hj/OCFTdHPv/R5H/hNcz0H5X8mgBM2aYS91tzvIJxuPZ+n/bGw+OYybHyAI Nu6q6qQ3UFyAJj9s/4gro8oAZrvtMxUGXlSmb8NR47yZSoCQmISM+lwYrTabCYAOR1zI Zi2A==; dara=google.com ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=bOznWRXf; arc=pass (i=1 dkim=pass dkdomain=kernel.org); spf=pass (google.com: domain of linux-kernel+bounces-125952-linux.lists.archive=gmail.com@vger.kernel.org designates 2604:1380:45d1:ec00::1 as permitted sender) smtp.mailfrom="linux-kernel+bounces-125952-linux.lists.archive=gmail.com@vger.kernel.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Return-Path: Received: from ny.mirrors.kernel.org (ny.mirrors.kernel.org. [2604:1380:45d1:ec00::1]) by mx.google.com with ESMTPS id h29-20020a05620a21dd00b00789fcdb2dc7si7058262qka.108.2024.03.30.21.18.45 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 30 Mar 2024 21:18:45 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel+bounces-125952-linux.lists.archive=gmail.com@vger.kernel.org designates 2604:1380:45d1:ec00::1 as permitted sender) client-ip=2604:1380:45d1:ec00::1; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=bOznWRXf; arc=pass (i=1 dkim=pass dkdomain=kernel.org); spf=pass (google.com: domain of linux-kernel+bounces-125952-linux.lists.archive=gmail.com@vger.kernel.org designates 2604:1380:45d1:ec00::1 as permitted sender) smtp.mailfrom="linux-kernel+bounces-125952-linux.lists.archive=gmail.com@vger.kernel.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: from smtp.subspace.kernel.org (wormhole.subspace.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ny.mirrors.kernel.org (Postfix) with ESMTPS id 89C241C20CE3 for ; Sun, 31 Mar 2024 04:18:45 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id C30563D6D; Sun, 31 Mar 2024 04:18:38 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="bOznWRXf" Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id E035D15BB; Sun, 31 Mar 2024 04:18:37 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711858718; cv=none; b=kSn00aGVH7NTCgqt6LZJaxZ08tzLPdpGvhNhWu3StnIbwy/t4DGXkATgCBBrmYo69EPeRPvguCwg22VGCfrR7Z7IQhwQmZmW7VtfDbPfusZGH2qlxT0FvVvstr4xIvnAOOW70yOGy3b3dpuOSZbaxqcc5mtpm9Br0nj3CWcN7d4= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711858718; c=relaxed/simple; bh=FjGGn7fcnwjC20CwjxDH4IySQbzGVEHimjsTW4PQZ7o=; h=From:To:Cc:Subject:Date:Message-ID:MIME-Version; b=CWW2C4SulO/wbraMRaRTjNHVXjVq3sBDvRVu84uzkwfqFOpRKo/QhIeHJUnMpfRE594JZZiVn6Crw1+t7l9aKu4oIPltHNWyGDRphRP1MLNg95PtKv/PoOLIomfxBAkacFEUOMW0QOOBapGQ9KRwTPPga74d1ppvNR++YBwBuKU= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=bOznWRXf; arc=none smtp.client-ip=10.30.226.201 Received: by smtp.kernel.org (Postfix) with ESMTPSA id 58C57C433F1; Sun, 31 Mar 2024 04:18:37 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711858717; bh=FjGGn7fcnwjC20CwjxDH4IySQbzGVEHimjsTW4PQZ7o=; h=From:To:Cc:Subject:Date:From; b=bOznWRXfn341RiBXpzDvVeyHj/MbBKzH1RQzy/xT4GnGnWTkPuFuvi/Nune6/QAUP dTa36Rlg8SsFeGpq439+BN1iD/qvlL8HH7QEEbMog+w2oiB/Tr3JE+9vYv+xck0vvk SBsdzQUN6/ahScm9YLzz6qzc7AC7pgezlHfFozDoihsC/YmIMyUpxZSpKOmLPwGMxz K+uB/lKwIBYNRh0MCuByvqBgyBVgOJrz3vITKN6fnonieXSKMYFIEl5DwwK+vgmy5i V6RpfM/m1tEdCno+B3wlH/1kbMAsc+DyJqe1ybqLnbGoODTK1Uy4wBmgNcpfIVwHwl 2ltDQW4g8TB7A== From: Andrii Nakryiko To: x86@kernel.org, peterz@infradead.org, mingo@redhat.com, tglx@linutronix.de Cc: bpf@vger.kernel.org, linux-kernel@vger.kernel.org, jolsa@kernel.org, song@kernel.org, kernel-team@meta.com, Andrii Nakryiko Subject: [PATCH v4 0/4] perf/x86/amd: add LBR capture support outside of hardware events Date: Sat, 30 Mar 2024 21:18:26 -0700 Message-ID: <20240331041830.2806741-1-andrii@kernel.org> X-Mailer: git-send-email 2.43.0 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Add AMD-specific implementation of perf_snapshot_branch_stack static call that allows LBR capture from arbitrary points in the kernel. This is utilized by BPF programs. See patch #3 for all the details. Patches #1 and #2 are preparatory steps to ensure LBR freezing is completely inlined and have no branches, to minimize LBR snapshot contamination. Patch #4 removes an artificial restriction on perf events with LBR enabled. Andrii Nakryiko (4): perf/x86/amd: ensure amd_pmu_core_disable_all() is always inlined perf/x86/amd: avoid taking branches before disabling LBR perf/x86/amd: support capturing LBR from software events perf/x86/amd: don't reject non-sampling events with configured LBR arch/x86/events/amd/core.c | 37 +++++++++++++++++++++++++++++++++++- arch/x86/events/amd/lbr.c | 11 +---------- arch/x86/events/perf_event.h | 11 +++++++++++ 3 files changed, 48 insertions(+), 11 deletions(-) -- 2.43.0