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 F138FC6FD1F for ; Thu, 16 Mar 2023 22:07:47 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 79841900005; Thu, 16 Mar 2023 18:07:47 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 747F1900002; Thu, 16 Mar 2023 18:07:47 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 63645900005; Thu, 16 Mar 2023 18:07:47 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0013.hostedemail.com [216.40.44.13]) by kanga.kvack.org (Postfix) with ESMTP id 53887900002 for ; Thu, 16 Mar 2023 18:07:47 -0400 (EDT) Received: from smtpin12.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay01.hostedemail.com (Postfix) with ESMTP id 2492C1C6F5F for ; Thu, 16 Mar 2023 22:07:47 +0000 (UTC) X-FDA: 80576149374.12.8116D42 Received: from mail-ed1-f54.google.com (mail-ed1-f54.google.com [209.85.208.54]) by imf18.hostedemail.com (Postfix) with ESMTP id 404271C0013 for ; Thu, 16 Mar 2023 22:07:44 +0000 (UTC) Authentication-Results: imf18.hostedemail.com; dkim=pass header.d=gmail.com header.s=20210112 header.b=OX06J91y; spf=pass (imf18.hostedemail.com: domain of andrii.nakryiko@gmail.com designates 209.85.208.54 as permitted sender) smtp.mailfrom=andrii.nakryiko@gmail.com; dmarc=pass (policy=none) header.from=gmail.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1679004465; 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-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=dmkBwYxMQeUctzjrFldtVoaezANsLHjS7h90Bw7aOb8=; b=g7R/TtRrMPnrt2EfNoH/VGM0UNrj/I+nUYlHX7Ku3GnXY2yHmKpStsXHmAIKA8vsuJcuj4 GrLqgvwAAuwBbrmRC5wRPjE7yXhzuNpZhQdBVsE7mJg5iQ4MZ5woDLDT/ELQPhDWvoOgWK UyvP98yikaZLn615ovTfiBXga3htYhM= ARC-Authentication-Results: i=1; imf18.hostedemail.com; dkim=pass header.d=gmail.com header.s=20210112 header.b=OX06J91y; spf=pass (imf18.hostedemail.com: domain of andrii.nakryiko@gmail.com designates 209.85.208.54 as permitted sender) smtp.mailfrom=andrii.nakryiko@gmail.com; dmarc=pass (policy=none) header.from=gmail.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1679004465; a=rsa-sha256; cv=none; b=k4+RYNIxJV4uPaIo03p/Ki8R0cwMLVXtUO4+zyrzNiUrW6IRaL++hXy3vuYWsS+H4ENaLz vwGDGvfwlJ1AXBMsc/02lRz7azJLAcEFOg9f0xznklOdt14pOIH6TQzfgYU3iCo75ShV/s iv8zlH4OBAKElVlCxndaRxt3p3IGyww= Received: by mail-ed1-f54.google.com with SMTP id y4so13438023edo.2 for ; Thu, 16 Mar 2023 15:07:44 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; t=1679004463; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=dmkBwYxMQeUctzjrFldtVoaezANsLHjS7h90Bw7aOb8=; b=OX06J91y0AB0jF4YfP4k34mwZrJxn3FEjT8Bs/YRmhC74kY3uZLq9nXirZCLa0sgnk OMKjp9M0BjTPz5I07oYFKPjCj6i7DgmazoDeKkkPn6a3P4tr6NiyFEq2RHhWhOqnSZUf XE8hW5tZUtgGplONZ/EMug8Sd0Os6zkq4hqZYKDpnYZTXcHRrxgR7ede8UjXmk6fNf9w zE0bPmjHeVkfm5AUJlOJ6CIxmb6MKIZtXh4goJ3rWoBIwdPOKYz3Mc96+LF/KHQ9GMoS XuEzlkBtzI/kTsy4EVMFUFT/7ehTvh/ZmVLE5iXZCNKQ7PeWHQhJt3kFoBs3tMntB/R6 r2fA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; t=1679004463; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=dmkBwYxMQeUctzjrFldtVoaezANsLHjS7h90Bw7aOb8=; b=jQkuzl4NrGK/+RVs6n8TNwWRd0kY+UuQfH5dw5P2L6bb1ZiGsholOXRJoU7BAsBrcE O0yaVd6CulyV4mcGCh3ZF/Yb9JV4+MaB/rTFBX+qS0pcN+S9QHaoL72Yi/7vEw2v7o80 TGXeYd/qOJR3r0pQnR+h813n/iUYrCj86Zucj1LU70BUkc30uTXpVEVJyxlDgGm1GqEx /U60cT2nVDIOc2AsNaZ98WcID8Xjlrh2/fEIC4kvN9eL7ae4MOt903MrNW3yM2qkLePc A6GwJWlLvNQ9Gy5i4pMTxPmScXgkrKJXrJ993VcXw5M8E/haeEkrerOfjqzoUuKwg0qZ TVug== X-Gm-Message-State: AO0yUKWJw8NT2qqwyxRYwgUIm8e/mcxfdePNFxr468zugHZcyW4IN8Eh 6b6AzxuRsynAhf3e6er07RL51o/J+g80T4XUF0c= X-Google-Smtp-Source: AK7set9ozrlkiM47WoqWKw6CvAMXBMPI57v2AuYyZMo5AdmbLC12BcKAsk6mAq2CFYYmRW2g2Eyy3+GlPBwvyWk5klY= X-Received: by 2002:a17:906:8552:b0:8ab:b606:9728 with SMTP id h18-20020a170906855200b008abb6069728mr6158995ejy.5.1679004463514; Thu, 16 Mar 2023 15:07:43 -0700 (PDT) MIME-Version: 1.0 References: <20230316170149.4106586-1-jolsa@kernel.org> <20230316170149.4106586-4-jolsa@kernel.org> In-Reply-To: <20230316170149.4106586-4-jolsa@kernel.org> From: Andrii Nakryiko Date: Thu, 16 Mar 2023 15:07:31 -0700 Message-ID: Subject: Re: [PATCHv3 bpf-next 3/9] bpf: Use file object build id in stackmap To: Jiri Olsa Cc: Alexei Starovoitov , Andrii Nakryiko , Hao Luo , Andrew Morton , Alexander Viro , Peter Zijlstra , Ingo Molnar , Arnaldo Carvalho de Melo , Matthew Wilcox , 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 , Dave Chinner Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Stat-Signature: pdregumoa469kmawwaiactuu939tnk8d X-Rspam-User: X-Rspamd-Queue-Id: 404271C0013 X-Rspamd-Server: rspam06 X-HE-Tag: 1679004464-646888 X-HE-Meta: U2FsdGVkX1/p0nxXy7U3/6U/9u63eLQ5SaIkAE9X9GKcMw9eb9eFYOFNw8WwJ11oPC1dC8QL+6QPVWUp2nzz+iIqGfrZ4PuJcA4PWPQWRaPHxyqi4r4y2Usddu29yf+fkebk9aWdGA/d7Ti+ttExffiD7LFxBHmRpgTiny6PETI3f8RylygzOR1u2zSugQLMHhg5q4ZhzqVE2hGVcV36aCeST/OKHeobPkYdx1mC4WzKIJqWQ1vyR5dvs9pj4lgqrw5HoGzADBidqtskWmFS9Ryy1b37s34wpdf9oSPHqS6zBmhbd/2K1jrs6NwVd1/ZSLr+7Qf71FbKSJbCI3HJtEGwVwIsUTt8lAMemnkc7eB4Po9a9g7eF09brnv3n633iU93aBcCTH25aT76k7HLUEqnmaCZJpYWoKHNearyrF5vN+6M+D9qVyzwrPsul+iM4zjt4ToG2/marlnQQ75hacJo5cnjq4rBSX1hJrDHEjC8bf2unOV0+DC8A5z6P5E+CDW6TIbpqM3nxz0K6PY+gLz3BUFOeCvL3L47u9YqanzHXwTpiXqTnURskLULlb2JReM4zYiNIqq33Re/xvUQLD7pr1gVRJjdanXkEn0EsgjHUnQoDxJQ/x+Cz1cf33aA0Ju8sSnEO0cIWGk1AXLkesYjYMzXFCBG327uk1ZWbTkTtQFSlY4srZ4VGhq3Xw8Y7oZMJkM8hO5ayt/FLwEQnY3/yhoni+bF2SeMpyygURS8TEX28WLpywTrJjhetTesuLaWG+k9S8xZLxdB4setKWaj5qpOq+R41tBjrj28Fvy43XGVTfR/RQTXLY9rNLi9Zs3YnYRKJyvha1yMoAKT77P3dk0k45qY3bf3wB2Y/2nVO0oJ6a4qy3napC3pVx/vBPh0wh3ayFvdvK1+OdQcTKKR/ogIDs5rdbDE+vRGS2laZ6mHt67i4mXXfkr6WXfctOyaDro/U03dOpYPfj/ WrUMHCGy UvNcv2vCJHYetxIKGw7wTXlawAl41inc7zRincAwkC0Imixvu9kw9qM8FEPxep6MY585VRC6dQqTLSqycCrASjya2z2TjMr+pMjTuZeKSjizZxCY7vk42m3GtAQXlD9qSYLYQEI1Rt1+w1pNvjXsiDSuRswoN8wV6zj4Lq9Fh4sDN77H5yHYmxa00QaZ5pKmkoR1TvKDPx324Yf4BdBNgj+bKl2QpYU8+C4c/DyTNiQI1/eVaHCgWwZZ+lGKRVDlJ6M5FeNsn6GO4e87hytRElwcbSgfo5G+/Rf1wXBdpi81uvvW6W8+i7dSjWh664Kwu/scDrryEML1tm/Z+WpVXahay0ku0W7AwHecvG0Lqec4ZpZ7IBgzljaDpGLI9EbiPDyo6Ot/1QpQZI35w+8rCSrAG0O0wAwOJK5pHVHmxwQu/PhGcaCYbc0A3w138gGY9+BEL3X4wb+SteBxQXyGz2pvzTU4HGR1g0R+wV6qAzRSJ7MtdEqyLoFeicX788LsfrXm51mWXBlmvy/If/loifFwW4Q== 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: On Thu, Mar 16, 2023 at 10:02=E2=80=AFAM Jiri Olsa wrote= : > > Use build id from file object in stackmap if it's available. > > The file's f_build_id is available (for CONFIG_FILE_BUILD_ID option) > when the file is mmap-ed, so it will be available (if present) when > used by stackmap. > > Signed-off-by: Jiri Olsa > --- LGTM. Acked-by: Andrii Nakryiko > 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 0f1d8dced933..14d27bd83081 100644 > --- a/kernel/bpf/stackmap.c > +++ b/kernel/bpf/stackmap.c > @@ -124,6 +124,28 @@ static struct bpf_map *stack_map_alloc(union bpf_att= r *attr) > return ERR_PTR(err); > } > > +#ifdef CONFIG_FILE_BUILD_ID > +static int vma_get_build_id(struct vm_area_struct *vma, unsigned char *b= uild_id) > +{ > + struct build_id *bid; > + > + if (!vma->vm_file) > + return -EINVAL; > + bid =3D vma->vm_file->f_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 *b= uild_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 us= er) > { > @@ -156,7 +178,7 @@ static void stack_map_get_build_id_offset(struct bpf_= stack_build_id *id_offs, > goto build_id_valid; > } > vma =3D 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 =3D BPF_STACK_BUILD_ID_IP; > id_offs[i].ip =3D ips[i]; > -- > 2.39.2 >