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 7D01AD3C526 for ; Thu, 17 Oct 2024 18:23:28 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 15A786B0085; Thu, 17 Oct 2024 14:23:28 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 10A5B6B0088; Thu, 17 Oct 2024 14:23:28 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id F3BAA6B0089; Thu, 17 Oct 2024 14:23:27 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0016.hostedemail.com [216.40.44.16]) by kanga.kvack.org (Postfix) with ESMTP id D4EC26B0085 for ; Thu, 17 Oct 2024 14:23:27 -0400 (EDT) Received: from smtpin01.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay08.hostedemail.com (Postfix) with ESMTP id E1F8E14169C for ; Thu, 17 Oct 2024 18:23:15 +0000 (UTC) X-FDA: 82683916392.01.42DAC5A Received: from mail-pg1-f171.google.com (mail-pg1-f171.google.com [209.85.215.171]) by imf05.hostedemail.com (Postfix) with ESMTP id 76054100012 for ; Thu, 17 Oct 2024 18:23:06 +0000 (UTC) Authentication-Results: imf05.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=F11j8krk; spf=pass (imf05.hostedemail.com: domain of andrii.nakryiko@gmail.com designates 209.85.215.171 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=1729189259; 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=AOLEZHZduSKOnLcE2CedxVx0uFaoQesmwlY7QEN4e9I=; b=q1i1D5YTFQLD1YO+txhGWhWFpjhM2taa1kLkroMXB+b7xr0K2XKzObWs2dh5QAmoXvTBHL NUvCUFqo4S5x2kvbiew0z+Gn42uWs9H3aOsff2lwCM4A0Csxq6iq8obKlpyML7Xcs6uS17 X0m5J7s1rSdBTfliYpM7elBYoILNmqQ= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1729189259; a=rsa-sha256; cv=none; b=F6vPDun3wELn9r8C9XBwvElqgpwAk6jVq7eD0CTpawEAjqDpVIMQ7m2wUwyaHn4JrntVgd 6MwGJ86AKcTQQF2jw1KCaHcJBmU+UzpcGwRaFPh9mazKU3kKFK9HsTn+3SnZvYlFd8oyVW MhL/1Sgspr8BK1ZtYtRWADY7Kfy1XPg= ARC-Authentication-Results: i=1; imf05.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=F11j8krk; spf=pass (imf05.hostedemail.com: domain of andrii.nakryiko@gmail.com designates 209.85.215.171 as permitted sender) smtp.mailfrom=andrii.nakryiko@gmail.com; dmarc=pass (policy=none) header.from=gmail.com Received: by mail-pg1-f171.google.com with SMTP id 41be03b00d2f7-7c3e1081804so857844a12.3 for ; Thu, 17 Oct 2024 11:23:25 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1729189404; x=1729794204; 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=AOLEZHZduSKOnLcE2CedxVx0uFaoQesmwlY7QEN4e9I=; b=F11j8krkJvOGxElO9DDD/e/Z5Uh4uXIG4mIKYOmkwIv80OsSBifwDffsTmwo0lY7Fx S4TF++vCB0v4PM9h5myFNRgjBqzdZ1pvz5UaKwjWNNBN9ZXb84afdR2vQLzNgL0kM3fk h4DSnGO0xTymbkidBwj8ECihrsUsi82y1onYOqFQUTdx/L8fOjNVEzghLr2I0ZNMgoXp jtUt2VbBdxQ627Oq0IruGGRlmrX7aWwsn5vysPceWt7H6OGuBswUIAB7jHtjJ2C/XHth b3j0ibd50dNJSSiq7u3W9RTCJc046t1F1DkMZDI1816zpStknxZB7xvXWup/EJaZy65G vZeg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1729189404; x=1729794204; 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=AOLEZHZduSKOnLcE2CedxVx0uFaoQesmwlY7QEN4e9I=; b=cZf70OnvO/9PMkQxSQ4OhGWSuGe0cpMoPvlpGfI6tnEOnfdWtBcMfzc6RZkbJhMquW ohVWJvuPJlsML1c9JYzYTDEHKbAkIig5NWKsVpTfuqqyV7CTlaz14LjXS3Wu/QiJOzgz z+F5AHcJ7J7RY8q4GL7vD7NDv69HHwJe655IFob0UjTO4ujdLf09Pi8kAcfgTajh9rQH jC17ZBtVHVjFeXu/seFbvJprngRSbkIafDsZ9gqf1WbAVVyxaDCgPVFEwFMUBExULGs0 ZJ82qiVCJydEB7HPgkUzOV+nYcEaq/5KysjXn0wq7ABq7CEJDvzvkYpGHaRcL/CfKTWz v4YQ== X-Forwarded-Encrypted: i=1; AJvYcCUDL9jh9p1zDWbRZ4Ik55oLglRdL4HY6xOrZLx4NKhE5O1eBu682jW+6oDITbjZMKtc1Fr2w1aPMQ==@kvack.org X-Gm-Message-State: AOJu0YwPPe+6IgaypZHnk+7VIxPrinpA7+4tSdc5WQyiG7/U6RfUM6Yl AgF8KIj+Z4mwzRteW0Qg2vZm7ae/9aNoViVIg5wCUNoXcFDiLEPKhdVZIAEarJBHyWnUJG4d7jo c1QfLcIhowTAutYva9Ne+mR+X6bY= X-Google-Smtp-Source: AGHT+IH9EGbXN7YrhF+S7KBlnxL2vv1fwsesbBtazSwdMNdt5xBU/sgel2PbdCKNRRSQsZWpaNjUqdWfOZc+ovBGWaM= X-Received: by 2002:a05:6a21:e8a:b0:1d9:181f:e6d8 with SMTP id adf61e73a8af0-1d9181fe778mr5813230637.31.1729189404306; Thu, 17 Oct 2024 11:23:24 -0700 (PDT) MIME-Version: 1.0 References: <20241016221629.1043883-1-andrii@kernel.org> <20241017175431.6183-A-hca@linux.ibm.com> In-Reply-To: <20241017175431.6183-A-hca@linux.ibm.com> From: Andrii Nakryiko Date: Thu, 17 Oct 2024 11:23:11 -0700 Message-ID: Subject: Re: [PATCH v2 bpf] lib/buildid: handle memfd_secret() files in build_id_parse() To: Heiko Carstens Cc: Shakeel Butt , David Hildenbrand , g@linux.dev, Andrii Nakryiko , bpf@vger.kernel.org, ast@kernel.org, daniel@iogearbox.net, martin.lau@kernel.org, linux-mm@kvack.org, linux-perf-users@vger.kernel.org, linux-fsdevel@vger.kernel.org, rppt@kernel.org, yosryahmed@google.com, Yi Lai , Alexander Gordeev , Vasily Gorbik , Ilya Leoshkevich Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Stat-Signature: tkn14s55bk8m6qxcxao44xg9awwqie87 X-Rspamd-Queue-Id: 76054100012 X-Rspam-User: X-Rspamd-Server: rspam08 X-HE-Tag: 1729189386-133501 X-HE-Meta: U2FsdGVkX191WvYtKJGv5ZsC5wOmcY3IWmIBL1oB8L7OgBIFCZa995n+FbyESAfdLbPb4PDOiHmb4iDCGZvrgeTjF1r4QjT/ikPCIjY0NMkHpzMZ/5LoatTg26hNXYNAsq59f3mA+KWv79vEJBBYUYtEspRTvOSBtvmBgNEayRDnIU1ly35nrZafETEUCokkcL0vvzDECm/Xyc0pADOrfrFtPdIjFKFU/tt9nj+MScLJnGvpHfb8oeitFSP4aeWI4nU/geoJdTJNRUYMlzgPLhedTiRhWd5XvBAf79IeLJtNI/UMKN7prG9Ly5roWQKdx/R+YoVg7WMB3ZthJWUm3ooxrpFmVjygg4KPwaHc7HFp3eCLCIXmLgEGiBkM0RlwSmMKOWeEe/6Qh9V5IV5r3bKna4O8/fts2WEHNmclFjPTlNBp43JPtIc4jtLNJfgXapz45fhYUp9AvQ/5ZVU8xHUIhQViD7UobPJJw5Szi8eOEkQy1T7cxztLMe4kBKObWcN/2haX4EBXGkWgv/azy1512Zpe3EzDEiRJ12CmkLcWVLMb03zcc8lfn17oZDJz9LhGmr6zmeWhSAwtt+PDeTRKKJ9nACW/1xqQY6xFRHGCc0exdQ96WmJyUOQIpZhtF0tAFjHsFdMAADtraP3XsBCITWg6LaKR1t4WtXJolqHNUWOILVUocSaBMms2gsilFCDOpob8LXnx7EXQ9C/yCobxRgzWBTaxslXMTeI0ynk8Vj3ZNMCiCIHuxUBf9fLTYvaGOiYQRKu9dWPZBAJ8kXSo3YT8Hj8zq9+cFwHIn08+Ouwc68jrbF9IOeCh05+Kt8PTY9vQvTU4AF4TpIeAt2O8JuUWNkJyPr5Ha0x07o7uZlyhvA62HmwmnClLlpDcrbCiJWyMLivVQGtWIM5HB/x8/Vd4xFVBcXWu8b6CQMckDzHh+4NB6/muny0yJZ376ox64szi0c7VhslKSCC WHA7CKo7 vM56un3hElOf3DwPNG4RWzckgBKYJrLOww/8RYdtTN/jUcdxWu+NEGETkuPWxuwUxnOXBM7OlYfnHQqefSsZWFtBRtSkcMkGYg8dZA33dBBWzO8G3h1pfvIiNGLb5y7Vx05kbbZ8+WcYLGBpKG/KgEEBb2ViSe8+vjsWs6oHVzfoQSJPXGlBV6BbofxI8aRulPxEEMxeTM+IpB5RkJjytSs2b/WpqKXvIKazOI6cY//+DA6A28zpXg/mkoiG+P8CFoxgpCs/0mm9UJFYl4/vM8LjZTtXOkQxw/LH2HD/FP/vQZQi9GKdQGHd19acAjzSRfAQpk+ZFhx8tZWDrRH2pjWMA13/5ZmvgJSrYdjAXbW821MyWHp0raI2fk/Gc74u7cI5I5Clt9P+EcxTfc8l0EXgAm9FYTyzEZV084fD8He/gAsZka2rx/F42pKZ0r0V2XcZdLptMxkHM3EPuIlYt+zGUb6s7hbHlV93w6yHZ9c/9oq2VkYTbP0PmLQ== 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: List-Subscribe: List-Unsubscribe: On Thu, Oct 17, 2024 at 10:54=E2=80=AFAM Heiko Carstens = wrote: > > On Thu, Oct 17, 2024 at 10:35:27AM -0700, Andrii Nakryiko wrote: > > On Thu, Oct 17, 2024 at 9:35=E2=80=AFAM Shakeel Butt wrote: > > > On Thu, Oct 17, 2024 at 11:18:34AM GMT, David Hildenbrand wrote: > > > > As replied elsewhere, can't we take a look at the mapping? > > > > > > > > We do the same thing in gup_fast_folio_allowed() where we check > > > > secretmem_mapping(). > > > > > > Responded on the v1 but I think we can go with v1 of this work as > > > whoever will be working on unmapping folios from direct map will need= to > > > fix gup_fast_folio_allowed(), they can fix this code as well. Also it > > > seems like some arch don't have kernel_page_present() and builds are > > > failing. > > > > > > > Yeah, we are lucky that BPF CI tested s390x and caught this issue. > > > > > Andrii, let's move forward with the v1 patch. > > > > Let me post v3 based on v1 (checking for secretmem_mapping()), but > > I'll change return code to -EFAULT, so in the future this can be > > rolled into generic error handling code path with no change in error > > code. > > Ok, I've seen that you don't need kernel_page_present() anymore, just > after I implemented it for s390. I guess I'll send the patch below > (with a different commit message) upstream anyway, just in case > somebody else comes up with a similar use case. Please do send a patch, yes. It's good to have complete implementation of this API regardless. We can then switch to either kernel_page_present() or an alternative approach mentioned in [0] by David Hildenbrand, in the next release cycle, for instance. Thanks. [0] https://lore.kernel.org/all/c87a4ba0-b9c4-4044-b0c3-c1112601494f@redh= at.com/ > > From b625edc35de64293b728b030c62f7aaa65c8627e Mon Sep 17 00:00:00 2001 > From: Heiko Carstens > Date: Thu, 17 Oct 2024 19:41:07 +0200 > Subject: [PATCH] s390/pageattr: Implement missing kernel_page_present() > > kernel_page_present() was intentionally not implemented when adding > ARCH_HAS_SET_DIRECT_MAP support, since it was only used for suspend/resum= e > which is not supported anymore on s390. > > However a new bpf use case now leads to a compile error specific to > s390. Implement kernel_page_present() to fix this. > > Reported-by: Daniel Borkmann > Closes: https://lore.kernel.org/all/045de961-ac69-40cc-b141-ab70ec9377ec@= iogearbox.net > Fixes: 0490d6d7ba0a ("s390/mm: enable ARCH_HAS_SET_DIRECT_MAP") > Signed-off-by: Heiko Carstens > --- > arch/s390/include/asm/set_memory.h | 1 + > arch/s390/mm/pageattr.c | 15 +++++++++++++++ > 2 files changed, 16 insertions(+) > > diff --git a/arch/s390/include/asm/set_memory.h b/arch/s390/include/asm/s= et_memory.h > index 06fbabe2f66c..cb4cc0f59012 100644 > --- a/arch/s390/include/asm/set_memory.h > +++ b/arch/s390/include/asm/set_memory.h > @@ -62,5 +62,6 @@ __SET_MEMORY_FUNC(set_memory_4k, SET_MEMORY_4K) > > int set_direct_map_invalid_noflush(struct page *page); > int set_direct_map_default_noflush(struct page *page); > +bool kernel_page_present(struct page *page); > > #endif > diff --git a/arch/s390/mm/pageattr.c b/arch/s390/mm/pageattr.c > index 5f805ad42d4c..aec9eb16b6f7 100644 > --- a/arch/s390/mm/pageattr.c > +++ b/arch/s390/mm/pageattr.c > @@ -406,6 +406,21 @@ int set_direct_map_default_noflush(struct page *page= ) > return __set_memory((unsigned long)page_to_virt(page), 1, SET_MEM= ORY_DEF); > } > > +bool kernel_page_present(struct page *page) > +{ > + unsigned long addr; > + unsigned int cc; > + > + addr =3D (unsigned long)page_address(page); > + asm volatile( > + " lra %[addr],0(%[addr])\n" > + " ipm %[cc]\n" > + : [cc] "=3Dd" (cc), [addr] "+a" (addr) > + : > + : "cc"); > + return (cc >> 28) =3D=3D 0; > +} > + > #if defined(CONFIG_DEBUG_PAGEALLOC) || defined(CONFIG_KFENCE) > > static void ipte_range(pte_t *pte, unsigned long address, int nr) > -- > 2.45.2 >