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 B8967C5321E for ; Sun, 25 Aug 2024 19:36:00 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id CA4BA8D002F; Sun, 25 Aug 2024 15:35:59 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id C53128D001C; Sun, 25 Aug 2024 15:35:59 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id B1BE08D002F; Sun, 25 Aug 2024 15:35:59 -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 94F918D001C for ; Sun, 25 Aug 2024 15:35:59 -0400 (EDT) Received: from smtpin07.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay10.hostedemail.com (Postfix) with ESMTP id EEAA0C081C for ; Sun, 25 Aug 2024 19:35:58 +0000 (UTC) X-FDA: 82491773196.07.A8D5AC9 Received: from mail-wm1-f47.google.com (mail-wm1-f47.google.com [209.85.128.47]) by imf19.hostedemail.com (Postfix) with ESMTP id 275731A0002 for ; Sun, 25 Aug 2024 19:35:56 +0000 (UTC) Authentication-Results: imf19.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=ANcyN5FV; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (imf19.hostedemail.com: domain of alexei.starovoitov@gmail.com designates 209.85.128.47 as permitted sender) smtp.mailfrom=alexei.starovoitov@gmail.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1724614462; 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=/4fYJT8DmjFd+6l6gWF+nGq3GZh2Sq1k6f9Xf+Fjxl4=; b=gu+QesDM4TjDc0097wEJlVzgfGU1GJXJHEavvGZN1uRyS1RuWHcsolpuwJ39bobSWqrsrP 3hdJ8MkdArsCqJNKmtpaJB+MVbByUL8lfVtz3iasuYIyBZLzk6sul3r1IkJRTrI+677VIK b2k6xfWNEXgSYoS8WHig0CquANuNnjg= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1724614462; a=rsa-sha256; cv=none; b=ubqB8iaOSrYRMB96ATUo2kbeIx50Kr45yqhgcXbj1XEx5RmikHLFm2YABSy6a4abdONXOX 8OFol5tINXO2bfLk9itJK463pTEkq14TumLvu1wkKoaFP8Iz15bYSH1kK6d/t7vg3rgBGf zzQJVdXsQNcnPrW5Gjex2EmsJPWX5QY= ARC-Authentication-Results: i=1; imf19.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=ANcyN5FV; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (imf19.hostedemail.com: domain of alexei.starovoitov@gmail.com designates 209.85.128.47 as permitted sender) smtp.mailfrom=alexei.starovoitov@gmail.com Received: by mail-wm1-f47.google.com with SMTP id 5b1f17b1804b1-4281faefea9so31152255e9.2 for ; Sun, 25 Aug 2024 12:35:56 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1724614555; x=1725219355; darn=kvack.org; 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=/4fYJT8DmjFd+6l6gWF+nGq3GZh2Sq1k6f9Xf+Fjxl4=; b=ANcyN5FVbfN5qx8iLxGyFFE2PyHTi7kHlqbqCU9EOFTAcvmll9uf1vzYnalvTuh9Wr sfHReLL8QH62Plig6S7zmskjUJQXaVS4ztnSoqBEHszgnW0zxvyEGgZL0J2HFOuQxweQ Joqn2jOZ5KWeQX82CPoVX5Q9YZ4JZjGPbsNvMZ2auD09Y9QeWf4d4Z2+VEo7xtFJcsxi AGvyKtTMyakt45X+Z79v+hD/Milp1RmoqGNHjx6tjrjAACSvyn7jQG8/akUZxmXRw8w0 DrbyHoRwMKYm8QaFe2hn6hTytSxhlutFkjNbB+OOeN7YqQi0fCN6wEhm6EAHj5kG6hXU su3A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1724614555; x=1725219355; 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=/4fYJT8DmjFd+6l6gWF+nGq3GZh2Sq1k6f9Xf+Fjxl4=; b=sOBXad/GIHqOWwO+r5NZT6CJ/BVS2i8mGfco2O0POP3J1br3lsj0FKYjNqKafARdYz WH+9vI7VIV3ZMIaqgl/D33qElLOhUZn8buZ5UBzA16mM/PzIc1isTz1o88Prk7lmS3mm AVHQ9ElZ97pB+zgd7LHZ+Xrj1bRlDvEOeDDlMz5hwq+3MiGEO4ukakQtvNEo3ovfwNY0 YcRohTJH7qdJItS/t/VwFJpJje0krKkLEVCNfuCLX61AiXCbFQrHSftEuq420z5N/fqQ 1cyjfMIF6TINsj9qsryU+lcF9KZMaKG4LGbi5yveoZd4z99EtNFVTAe+ETK4MsV1FIQY 0iGQ== X-Forwarded-Encrypted: i=1; AJvYcCUpbqa0U0LHETlhHKSce0IX2CqNH60tVKmzpYClIfpawX6GiW0PvWfL3IZfQdeEgdkytAiTLRCFTg==@kvack.org X-Gm-Message-State: AOJu0YyUBdjNogMhjjlFqbCuZGpkPEvZGmKbHPLloMu/58XSGT8b6lrF lJQTqIaJAsXrQ++ICEX3XSiahmhVpJARx54tDrdpLq8oUFAt+3dmlHfcHJa6cZaKzyl19J/kKie JluJXXjuSyVJC/9JmeyCMTeOHZRo= X-Google-Smtp-Source: AGHT+IHvzjxCZw2mTuuhYMtFZiC9e77Uqjlp5fVEBcyYyq1vEc7ciikKkVKG/oHglz001SGQ5S4BKiPRRyBuAtn0gRM= X-Received: by 2002:a05:600c:1992:b0:425:69b7:3361 with SMTP id 5b1f17b1804b1-42acc8e121fmr61732195e9.18.1724614555024; Sun, 25 Aug 2024 12:35:55 -0700 (PDT) MIME-Version: 1.0 References: <20240814185417.1171430-1-andrii@kernel.org> In-Reply-To: From: Alexei Starovoitov Date: Sun, 25 Aug 2024 12:35:43 -0700 Message-ID: Subject: Re: [PATCH v6 bpf-next 00/10] Harden and extend ELF build ID parsing logic To: Eduard Zingerman Cc: Andrii Nakryiko , bpf , linux-mm , Andrew Morton , Alexey Dobriyan , shakeel.butt@linux.dev, Johannes Weiner , Andi Kleen , Omar Sandoval , Song Liu , Jann Horn , Linux-Fsdevel , Matthew Wilcox Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Rspamd-Server: rspam07 X-Rspamd-Queue-Id: 275731A0002 X-Stat-Signature: aucdqtf1z41iuc9w1ur78nsen9h7pcix X-Rspam-User: X-HE-Tag: 1724614556-346747 X-HE-Meta: U2FsdGVkX1/tAVAifLoxt2xnXer1AZlAjyaBQxDUTTZmkIO3tyuMBDKIrR+C9aZR0vs3FjtKuq3p1Zety0edKJmhwu32iBH4c+Z2X4zXUpzFlAXL/Ge+N4uy3ezFYa8HmS/+cJoSogLB9Bi3BlpeW3gS/f8GLd5bTKZ1GAqHYpfCzRotr8S9s0T7rfU3uzyTN1XPrdBJg/vFGNmHg//TWpjQ9huKwm+UrcixZ7G8DSu49Bod/kn1QFbUsxXCOb9zVhPBuvn2JklgN1w+Kv/uzcFrpjOOzlP+vEsaIw9S6N7XyeVN5qXyky06D7VNvMMykcUzUCkcnm5DxWlMoxdeoEv9meeSKdyezi891Zt0fXs6jfFnLrsPqpIHYKWx+rT38VO8387rD8aknrTD07mlvoifMLHIbSj34goieyI+E2BQjuPWB2Z/PWmaslyTMLkwCS9v1D7Lcyfa7W5arIgXkUKlFUyCFc2yKuhKpdOwq70oyN5g2FuZxSi16y0mRk1/V7bbQAU6rpSiZDgTlGItK0UfVz5NYqoSlHhy7cbZ+xvpnPW3LrhuwC/OnwY6cAsyPThEZVLEhLb00oEp3cqMYbUEVHAS93i2tvqjpDT8vEa/4GRTalAvqDBuGiqZfSt8ASvlQMkp5OTefYocG9FGSaQ7BrLOdTy340q66oR4HirBhjaUCVAmDb9DWfEvF1odOkN8xYKSriyWe4lMm61TUqY5L4tx2Wc8DArrfJCR34q/2AZMLav6kuNTSpZu5+d5t96o0mg3EENKcbYLEPi7WHsz0SRnL0LlN6HsjwKnDxGk/A7pdrOU9pFWC+zxDqUvEDsN0afxWCsyODl6EMNHIP9P48DmuLMioTjyr1kpGyr8+W8D7CmTIAat9Lzw7+JHwHS2b6dVjCFyVWr/U3ajeqGQIR/ivT8vh1+eAlbLThbV8YiOrYip7e7RwHPvkgfgINZ9ohxIXccGLfcwy4Z ykF3rI17 CHM2pht6ARhnHU+y1y6Cm86mZkWlfATGaQpcrvFAiyII2f0MIT/AGQd92R3JCnvW6TXs/1YybfWAh8eTPHFGJNOaXJHXyqYCykPLEPidFh4CawPS1cKMkTc3NjMA98XqVRc8ENURJ+eGWUmogbibKxK1Qu/O3yNbtgnWuFaw/JiudAToJjE9doU7Ad8SXQncC2mM6khZ0aQ1b9rrFvp0bRUep78GR5bsk0stIESW77F45Cr7IqqVQMzUqciUMMVdecpFTlJ0d0Yer05v0WlcuQqLR/CsyyuA+JHi3S/9/mkHUVRXp9PNghUXoU9sKwjFFgupkkQlmi6MnUcb1Pi9aVrTQ9ptnt/BQhjd9 X-Bogosity: Ham, tests=bogofilter, spamicity=0.000209, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: List-Subscribe: List-Unsubscribe: On Fri, Aug 23, 2024 at 4:23=E2=80=AFPM Eduard Zingerman wrote: > > On Wed, 2024-08-14 at 11:54 -0700, Andrii Nakryiko wrote: > > [...] > > > Andrii Nakryiko (10): > > lib/buildid: harden build ID parsing logic > > lib/buildid: add single folio-based file reader abstraction > > lib/buildid: take into account e_phoff when fetching program headers > > lib/buildid: remove single-page limit for PHDR search > > lib/buildid: rename build_id_parse() into build_id_parse_nofault() > > lib/buildid: implement sleepable build_id_parse() API > > lib/buildid: don't limit .note.gnu.build-id to the first page in ELF > > Never worked with lib/buildid before, so not sure how valuable my input i= s. > Anyways: > - I compared the resulting parser with ELF specification and available > documentation for buildid, all seems correct. > (with a small caveat that ELF defines Elf{32,64}_Ehdr->e_ehsize field > to encode actual size of the elf header, and e_phentsize > to encode actual size of the program header. > Parser uses sizeof(Elf{32,64}_{Ehdr,Phdr}) instead, > and this is how it was before, so probably does not matter). > > - The `freader` abstraction nicely hides away difference between > sleepable and non-sleepable contexts. > (with a caveat, that freader_get_folio() uses read_cache_folio() > which is documented as expecting mapping->invalidate_lock to be held. > I assume that this is true for vma's passed to build_id_parse(), right= ?) > > For what it's worth, full patch-set looks good to me. > > Reviewed-by: Eduard Zingerman Thank you for the review. The patch set looks good to me as well, but I think it needs a bit more Acks to land it through bpf-next. Andrew, since lib/ is under your supervision, please review and hopefully ack. Matthew, since you commented on the previous version pls double check that patch 2 plus patch 6 make the right use of folio apis.