From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id 5E159C64EC7 for ; Tue, 28 Feb 2023 09:32:43 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id EE9A56B0073; Tue, 28 Feb 2023 04:32:42 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id E9C3A6B0075; Tue, 28 Feb 2023 04:32:42 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id D61876B0078; Tue, 28 Feb 2023 04:32:42 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0014.hostedemail.com [216.40.44.14]) by kanga.kvack.org (Postfix) with ESMTP id C70906B0073 for ; Tue, 28 Feb 2023 04:32:42 -0500 (EST) Received: from smtpin30.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay02.hostedemail.com (Postfix) with ESMTP id A201B12140B for ; Tue, 28 Feb 2023 09:32:42 +0000 (UTC) X-FDA: 80516185764.30.B97A275 Received: from dfw.source.kernel.org (dfw.source.kernel.org [139.178.84.217]) by imf24.hostedemail.com (Postfix) with ESMTP id E62B0180019 for ; Tue, 28 Feb 2023 09:32:40 +0000 (UTC) Authentication-Results: imf24.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b=HBaS3gT2; spf=pass (imf24.hostedemail.com: domain of jolsa@kernel.org designates 139.178.84.217 as permitted sender) smtp.mailfrom=jolsa@kernel.org; dmarc=pass (policy=none) header.from=kernel.org ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1677576761; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=jRiMVL8UMxdDmYRWnPBpaiDnrL4C3JcclWXafbd0+ks=; b=I0IYg+62gNsBVjfPjark1Y5CIFiuGSQD44DTi9LJtWDXncO8tOQyi2J8gwr/Xw+jeSh9wE MR43v+ZU2V+ukMgatF26mqbNb4UAKm/4Cr4huem6fmn8w3BZvqxumdYg9YM27zYjSVbe5j WpOHJe0G/d8r8MMBGdTYwdABpL1xNNI= ARC-Authentication-Results: i=1; imf24.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b=HBaS3gT2; spf=pass (imf24.hostedemail.com: domain of jolsa@kernel.org designates 139.178.84.217 as permitted sender) smtp.mailfrom=jolsa@kernel.org; dmarc=pass (policy=none) header.from=kernel.org ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1677576761; a=rsa-sha256; cv=none; b=ZtGM+KZjFKMiYEG81Sabtj1FNjFcqf6qV7UUgPd15fiCEP+lYMjbel/AdAv/tjB29uhebq +MVend8H8xuWf8fH/Lm9eyUjZHK6SrPJt91t0UUAiDe+/oNsimaIi24DFWrs+FjGtc6/Qt HHW76I8/CkItitji5fOAJYp3YFE/sqI= 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 029576103C; Tue, 28 Feb 2023 09:32:40 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 532EFC4339C; Tue, 28 Feb 2023 09:32:34 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1677576759; bh=KVeSwjr1MM70r3HIU41SsfKM/mZY7sGzW/FlWf73V/s=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=HBaS3gT21KO0nsyCT8FwE/BIVPSrUUAxD9WbcMeJSMhx+MPsx2OXhehXjktvVQ9SF kgJTVUP2drmveFEQk744dTA34D7L/FR0tCswjY48qD3gZLezBwpxEZdaAKZUfEV9E8 puKhKdldF5sCccw/H2cmBkC1DcvkyZ0EPz3U9fIMjXlUn7pqlNJ4oKgcBkNiYoOlta cVp0OrKcyhSKGCigtDHHEBTfcJIn3NdplKyAHXX+250Ogh4BZ5UuwAz7T0/68WfyFW ib8w3H4K5cOCX3dNnQvhTkO039M+djRYVP/majEBXvugWcRXiA6lq1snRVqbeG+RoZ mhHeZuGdkPo5w== From: Jiri Olsa To: Alexei Starovoitov , Andrii Nakryiko , Hao Luo , Andrew Morton , Alexander Viro , Peter Zijlstra , Ingo Molnar , Arnaldo Carvalho de Melo , Matthew Wilcox Cc: bpf@vger.kernel.org, linux-mm@kvack.org, linux-kernel@vger.kernel.org, linux-fsdevel@vger.kernel.org, linux-perf-users@vger.kernel.org, Martin KaFai Lau , Song Liu , Yonghong Song , John Fastabend , KP Singh , Stanislav Fomichev , Daniel Borkmann , Namhyung Kim Subject: [PATCH RFC v2 bpf-next 2/9] bpf: Use file's inode object build id in stackmap Date: Tue, 28 Feb 2023 10:31:59 +0100 Message-Id: <20230228093206.821563-3-jolsa@kernel.org> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230228093206.821563-1-jolsa@kernel.org> References: <20230228093206.821563-1-jolsa@kernel.org> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Stat-Signature: 7k318bynoiqpkdug8t4cyd1ikhkppaxu X-Rspam-User: X-Rspamd-Queue-Id: E62B0180019 X-Rspamd-Server: rspam06 X-HE-Tag: 1677576760-256832 X-HE-Meta: U2FsdGVkX1+9Cp6G8t3Hl0S1Umr8VExp+bMmt9BjBkdoy77+T0dW4v/HVONe/YxmnZ5cQp40u1I7/G0GKG9baI5eh7a3vqzBpuIkSIj9g403W/Ms32r8M4qIX1Eo/Djr+karUn0uqCDJRjzuRNw/ozJAWuajUDgPLTYXEQ8dPboDtUTzxPFFfrSFh8fDIAxvefUfb6WFLS9+4eQspMaZUViyJ5MC4UHWpJr9B02bb2IBwoDKJ/ON8n+3or4SyCOvIGCuJkyywfxEFkiAeHOFXLmlaPfr9eUGkp3L2bPqBgWCNpw3b1kY8f8FwLaBkyZdXNNN/mTxGS0G9Qbj86iXLf1Xl2ST6U79SWdY43nz8EyQk42Zua84T0zzb9TYICAGQahtIRohqSue7jJyjHcLjHsv4OF7ktfZNP9KQykpRIWWmdMt/cfzY+vfynO5nzZ5oCa/R8sE5FhpF+nWZeng9t+Af9kBJ06JMZUl66Ri12Pi8t3l5oP11sisbs2WUg/0T/qRLJuk1ui2GuxMCWkJHAmeyRCO+FBI+FMs+wj3cEXaTCra56+UTEqdtGU8qnOmt7xterCL3km0AKC5+AUKo7xMkTtxONMTNM0J7tVA/cXvV0BjjfufYk4W1Tsjw5n08FLrRfv0QYKr6IEu5Ie5OdvjmXwmpVJRYKTHE0FeDPOZbydzXbwaGWBsfoK6AtHs3u/LHlr5izOmUStx5VLXsZd3n/5AEoWkTd9YEDlAeS5YEp9IB+G3FgUbR3g/KaFv9/9KimUVMngQxOemD7kJ6TiyE+4nSCZo84pOv8YKItfEvRy07by9o1pnJPbWBjRVc4tDK6/EmHqvaiLipq8khvHR2SfOhElwRJXdYX3yz7SISZI8bbyhMSMNPNTnBhfNuHP90GbQLeng2JiOXyAYv3Lfv5iWeHldvMZShk0k/UYg3wSpV2TAe/ss4wf1U0OFQ2WWJ2x4U9scnYtbzz5 rCtNA6NT tegVd5UGGqzTElnyb23mOjIUKnGd93zIUqap276kzmrIzwtk+jf53i0GZ65McAcKQwEasNd6OT0BjvwxH1uo0fVioKSnLkbtyAXRvtXxIKm1omKpgkwZ17HQmkZshHfCJqqN946LTSZ1TNoTsEIBzBhzY/up5SC9u7Egb3LqMKrPNbufK8+YXKXbaMo5ZQ0l89uURyzBLF0HCHrbCzXzGs1RPnoRiXeTnYfPuEfPcOgidXVCW7rnodlXqDbeHSbrrbuUGrBWxUoGltVdFnK1uXISJ62CYQQ1oX9qx59h3SoarYjVqxIo6mZmXvAmoQLjEDyzfYyYJF3EBeVDOcPAYNOcHE5A/666PdPpEjqFBm2k7xrbiT6Wg1yVAnbuzZoAQGoQP6rKIW9zFfVHre1thpQ3xofGehBbRq6maDVMj88Xrvdk= X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: Use build id from file's inode object in stackmap if it's available. Signed-off-by: Jiri Olsa --- kernel/bpf/stackmap.c | 24 +++++++++++++++++++++++- 1 file changed, 23 insertions(+), 1 deletion(-) diff --git a/kernel/bpf/stackmap.c b/kernel/bpf/stackmap.c index aecea7451b61..9b9578e0cada 100644 --- a/kernel/bpf/stackmap.c +++ b/kernel/bpf/stackmap.c @@ -124,6 +124,28 @@ static struct bpf_map *stack_map_alloc(union bpf_attr *attr) return ERR_PTR(err); } +#ifdef CONFIG_INODE_BUILD_ID +static int vma_get_build_id(struct vm_area_struct *vma, unsigned char *build_id) +{ + struct build_id *bid; + + if (!vma->vm_file) + return -EINVAL; + bid = file_inode(vma->vm_file)->i_build_id; + if (IS_ERR_OR_NULL(bid)) + return bid ? PTR_ERR(bid) : -ENOENT; + if (bid->sz > BUILD_ID_SIZE_MAX) + return -EINVAL; + memcpy(build_id, bid->data, bid->sz); + return 0; +} +#else +static int vma_get_build_id(struct vm_area_struct *vma, unsigned char *build_id) +{ + return build_id_parse(vma, build_id, NULL); +} +#endif + static void stack_map_get_build_id_offset(struct bpf_stack_build_id *id_offs, u64 *ips, u32 trace_nr, bool user) { @@ -156,7 +178,7 @@ static void stack_map_get_build_id_offset(struct bpf_stack_build_id *id_offs, goto build_id_valid; } vma = find_vma(current->mm, ips[i]); - if (!vma || build_id_parse(vma, id_offs[i].build_id, NULL)) { + if (!vma || vma_get_build_id(vma, id_offs[i].build_id)) { /* per entry fall back to ips */ id_offs[i].status = BPF_STACK_BUILD_ID_IP; id_offs[i].ip = ips[i]; -- 2.39.2