Received: by 2002:a05:6a10:af89:0:0:0:0 with SMTP id iu9csp3608014pxb; Mon, 24 Jan 2022 13:24:53 -0800 (PST) X-Google-Smtp-Source: ABdhPJxoUo0okYaTny22TP5Uid2mhWlJ9EexDEVBlnT1r2seEOKRK7Ov7GO0ZhrC4oE8XJRdq+C1 X-Received: by 2002:a63:d243:: with SMTP id t3mr12958177pgi.437.1643059493188; Mon, 24 Jan 2022 13:24:53 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1643059493; cv=none; d=google.com; s=arc-20160816; b=o9kGO3DNOK9wxkTgulR3w0F0egq2fufUGbO6AnDhaz9xxBNoAbwMw4PLCwiFMLjnpL Ge6/sCLcvwf6WBz/tpLnJd8Kwu/rPvEGkfozplwA/D6UcST3sCT9OP5i3yMxPUu5MCZh AsZyMo5t2a9mNmneHu9VBMYgSGnge7OzJpRDRaZkPLxXhnJ+82XNMtK9qnLZSaQiex+U 9Kj48hFVWvnxa6AQOUGu6NpmlbOKaoY8UTRcqIvgl4M8WupGxS/fKYC9sVPnYCrIz+0u LLLbY//n/CHwQzlSY34d9hm/S0glzFgEpPAjFCobgk5D6j1zW87PICnoHH0kGp3v5HdF 3UJw== 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=9WucEK8hKdNuOEydLLfrImZ7lVqAVX7unfclOBhkpFU=; b=YLN73XK2DzSq5lT1cia0TXjJJeN3mxF4apwX6stZOzGbTNcRfRhdIKCmZAPcoNO2AH Vujsmvl+iUJcU1MokwZbHbOWQkBpR5VkH57FV69qCv66QK0La9NBlvCdVVMgvzsc2F92 5lMvlA7RRssI5WShRDSfyhFSd2b9ngDHx/gVPuFLYvU3De7Psztsrlh+v1sfTyawS2pg cRfwhE1FEgAFsT4HXug8gacR2SfrzKSIgJkqqQOPFeR631wWWhNM4/PxyqRegVZKnExo cqZ8XA42mASUNmPMu4QjU2us0s52nba5glbH3b0svAi62Z4jCga+INhKDg9UVTnQyZoz k2OQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linuxfoundation.org header.s=korg header.b=uFbLQqYV; 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=NONE sp=NONE dis=NONE) header.from=linuxfoundation.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id z8si15623336pfe.9.2022.01.24.13.24.41; Mon, 24 Jan 2022 13:24:53 -0800 (PST) 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=@linuxfoundation.org header.s=korg header.b=uFbLQqYV; 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=NONE sp=NONE dis=NONE) header.from=linuxfoundation.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1443348AbiAXU4n (ORCPT + 99 others); Mon, 24 Jan 2022 15:56:43 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:39400 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1384954AbiAXUeT (ORCPT ); Mon, 24 Jan 2022 15:34:19 -0500 Received: from dfw.source.kernel.org (dfw.source.kernel.org [IPv6:2604:1380:4641:c500::1]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 074F1C07E2B7; Mon, 24 Jan 2022 11:47:52 -0800 (PST) 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 dfw.source.kernel.org (Postfix) with ESMTPS id A203B61031; Mon, 24 Jan 2022 19:47:50 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 77A19C340E5; Mon, 24 Jan 2022 19:47:49 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=linuxfoundation.org; s=korg; t=1643053670; bh=H0Nf65V8r/RvVEwCt8j9T0Es3uLNGZIIW5tsXERlElY=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=uFbLQqYVtTq0HCRZxhcyWur1rEeVYSBSTA+aXuejyY6QTORT4/2JdiM06gTgTi5dm BjC6OdNVXYvpJBb75NhY5bXNttV1hVAJozAJcdRWswcRTf3CHog0YE5PmHu8Vdro0H RTU53KGEb3O5iR8GYX9kucUMGtyEuxwNnLJdYqpQ= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Peter Zijlstra , Kajol Jain , Daniel Borkmann , Sasha Levin Subject: [PATCH 5.10 138/563] bpf: Remove config check to enable bpf support for branch records Date: Mon, 24 Jan 2022 19:38:23 +0100 Message-Id: <20220124184029.173197383@linuxfoundation.org> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20220124184024.407936072@linuxfoundation.org> References: <20220124184024.407936072@linuxfoundation.org> User-Agent: quilt/0.66 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Kajol Jain [ Upstream commit db52f57211b4e45f0ebb274e2c877b211dc18591 ] Branch data available to BPF programs can be very useful to get stack traces out of userspace application. Commit fff7b64355ea ("bpf: Add bpf_read_branch_records() helper") added BPF support to capture branch records in x86. Enable this feature also for other architectures as well by removing checks specific to x86. If an architecture doesn't support branch records, bpf_read_branch_records() still has appropriate checks and it will return an -EINVAL in that scenario. Based on UAPI helper doc in include/uapi/linux/bpf.h, unsupported architectures should return -ENOENT in such case. Hence, update the appropriate check to return -ENOENT instead. Selftest 'perf_branches' result on power9 machine which has the branch stacks support: - Before this patch: [command]# ./test_progs -t perf_branches #88/1 perf_branches/perf_branches_hw:FAIL #88/2 perf_branches/perf_branches_no_hw:OK #88 perf_branches:FAIL Summary: 0/1 PASSED, 0 SKIPPED, 1 FAILED - After this patch: [command]# ./test_progs -t perf_branches #88/1 perf_branches/perf_branches_hw:OK #88/2 perf_branches/perf_branches_no_hw:OK #88 perf_branches:OK Summary: 1/2 PASSED, 0 SKIPPED, 0 FAILED Selftest 'perf_branches' result on power9 machine which doesn't have branch stack report: - After this patch: [command]# ./test_progs -t perf_branches #88/1 perf_branches/perf_branches_hw:SKIP #88/2 perf_branches/perf_branches_no_hw:OK #88 perf_branches:OK Summary: 1/1 PASSED, 1 SKIPPED, 0 FAILED Fixes: fff7b64355eac ("bpf: Add bpf_read_branch_records() helper") Suggested-by: Peter Zijlstra Signed-off-by: Kajol Jain Signed-off-by: Daniel Borkmann Link: https://lore.kernel.org/bpf/20211206073315.77432-1-kjain@linux.ibm.com Signed-off-by: Sasha Levin --- kernel/trace/bpf_trace.c | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/kernel/trace/bpf_trace.c b/kernel/trace/bpf_trace.c index ba644760f5076..a9e074769881f 100644 --- a/kernel/trace/bpf_trace.c +++ b/kernel/trace/bpf_trace.c @@ -1517,9 +1517,6 @@ static const struct bpf_func_proto bpf_perf_prog_read_value_proto = { BPF_CALL_4(bpf_read_branch_records, struct bpf_perf_event_data_kern *, ctx, void *, buf, u32, size, u64, flags) { -#ifndef CONFIG_X86 - return -ENOENT; -#else static const u32 br_entry_size = sizeof(struct perf_branch_entry); struct perf_branch_stack *br_stack = ctx->data->br_stack; u32 to_copy; @@ -1528,7 +1525,7 @@ BPF_CALL_4(bpf_read_branch_records, struct bpf_perf_event_data_kern *, ctx, return -EINVAL; if (unlikely(!br_stack)) - return -EINVAL; + return -ENOENT; if (flags & BPF_F_GET_BRANCH_RECORDS_SIZE) return br_stack->nr * br_entry_size; @@ -1540,7 +1537,6 @@ BPF_CALL_4(bpf_read_branch_records, struct bpf_perf_event_data_kern *, ctx, memcpy(buf, br_stack->entries, to_copy); return to_copy; -#endif } static const struct bpf_func_proto bpf_read_branch_records_proto = { -- 2.34.1