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 0F493C27C53 for ; Wed, 19 Jun 2024 10:14:41 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 7B92E6B03AD; Wed, 19 Jun 2024 06:14:41 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 768706B03AE; Wed, 19 Jun 2024 06:14:41 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 609836B03AF; Wed, 19 Jun 2024 06:14:41 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0015.hostedemail.com [216.40.44.15]) by kanga.kvack.org (Postfix) with ESMTP id 408F96B03AD for ; Wed, 19 Jun 2024 06:14:41 -0400 (EDT) Received: from smtpin28.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay09.hostedemail.com (Postfix) with ESMTP id B33C980FBD for ; Wed, 19 Jun 2024 10:14:40 +0000 (UTC) X-FDA: 82247229120.28.845543B Received: from mail-wm1-f52.google.com (mail-wm1-f52.google.com [209.85.128.52]) by imf20.hostedemail.com (Postfix) with ESMTP id C4EA71C0013 for ; Wed, 19 Jun 2024 10:14:38 +0000 (UTC) Authentication-Results: imf20.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=SYilfcEf; spf=pass (imf20.hostedemail.com: domain of adobriyan@gmail.com designates 209.85.128.52 as permitted sender) smtp.mailfrom=adobriyan@gmail.com; dmarc=pass (policy=none) header.from=gmail.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1718792074; a=rsa-sha256; cv=none; b=OFi8tOnwQjp38KPmiZ9TyBn0LnRr+ls6OipUGpt88DvWf4nMHghTF3AJ2kTlswVssEjlzS CgrwjgEjpq44FLH7H0iqIT3x6BQLBkdkUN8c/tGxOy58oRmkxoKx+CYlChdv/geZIwVGc2 BltSM9I0MQV2e9x1Yo70bOFCqnAvJOk= ARC-Authentication-Results: i=1; imf20.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=SYilfcEf; spf=pass (imf20.hostedemail.com: domain of adobriyan@gmail.com designates 209.85.128.52 as permitted sender) smtp.mailfrom=adobriyan@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=1718792074; 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: in-reply-to:in-reply-to:references:references:dkim-signature; bh=OWj4qqqcVIxCNyRZ2DfdgkNb1wGK6bSkCctArSODDZg=; b=JRz3Z8d6asPe1AaISCNNHDNha0XEbyh+85s/wEFUGw2Zs9Jqhf0ArmTf+K8TXY7LNVljd0 wkDSJToXIWEcWiEuroLL758GDqWdBwpBDSePuwys0YNl5N+432o3ztr/81I8y/A4TxgxBn g/uEo1M8pH+ZvrI+yzyFeFsz9Zkcxqw= Received: by mail-wm1-f52.google.com with SMTP id 5b1f17b1804b1-421eab59723so46289255e9.3 for ; Wed, 19 Jun 2024 03:14:38 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1718792077; x=1719396877; darn=kvack.org; h=in-reply-to:content-disposition:mime-version:references:message-id :subject:cc:to:from:date:from:to:cc:subject:date:message-id:reply-to; bh=OWj4qqqcVIxCNyRZ2DfdgkNb1wGK6bSkCctArSODDZg=; b=SYilfcEfo99nwrRVyiwe5LXrjod7ZXPhzqk3NPeWUTmD2+4D5kAB3mtJ6Ez0QPLe/m //iaHVJHcuM2Y/nSXiWZDHFGyUnkJ6aX/YzktemLmvvgBiMGgdsRKbCz8sfM6z60TTUM uImQUsLaMx/3YJKiA05DaFbf6HH5e95MRp240eaCqs4TTzGTXbfQyDwNpR8dO/P92kN2 OzLHqDJGKHfqvKnpF3E7yrVMc8AC5lqIIZ1lLEyoTln6u3J7B6Gjf7MaRnggnkjYRVE8 morUsjmaY9UVugVAGfz4qJYUE7XtwyUebBtYdu4mWI6xPbcXyy6E8NVO/uaYF5ychtuJ DdVg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1718792077; x=1719396877; h=in-reply-to:content-disposition:mime-version:references:message-id :subject:cc:to:from:date:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=OWj4qqqcVIxCNyRZ2DfdgkNb1wGK6bSkCctArSODDZg=; b=kSKqS7rHn5bEeCiU/vIFtx3BMmUMSbvx8dfOlAQ+LeU+XAPLAyi/d822hfmqV6hB6g YyufKkhvI5dQ66Rj0uAF7Wipm2yea8tvTXQvbnV+Q6A/mcxgwxTuRu9wBq+9ePLeOdee eMDVwjBSEd2wxpwkI4AyV/VfD1zh04xTNGDbIXONxwvFJDPizpMeXmreUn1YcOqqyakd FEfLNq6yvbVkLSR8+3AIwB0sUUpHhpkcgeVguvMzwM8DO0IN6ysaEubWrI0KhKR+Lid7 XEU+MQei5yNGEtsgEOedKBZZtlSK73s8qeCOzLeuWTv9GJaGtXdlGsZ9C2cXfjRzyH3C P2VA== X-Forwarded-Encrypted: i=1; AJvYcCVHqYaD5tVsUUlLRITN2eBi8Hv0vFnI2YXOamffs7LCMTlMGMCxO3cV+DSAoxm7oRodVdlecPreADgsOcDoJH0pInU= X-Gm-Message-State: AOJu0Yz3G00Hk3ijOv7S5zenqMGTPrIQnpayyXYbx0gCPzxlsiWPkzan f7DCNu/xmDLc+zuxfRXOT02ftk5jmQZrVePr0p9o4B6ZMXp/XtI= X-Google-Smtp-Source: AGHT+IGUS7OckNuAZosynBKA8uInq63efrk9sBC2i2lWzzzmjRF94hBF+hTm9Du2LZrcQOQBPKM6Vw== X-Received: by 2002:a05:600c:4213:b0:421:aace:7a94 with SMTP id 5b1f17b1804b1-4247529c841mr11626615e9.40.1718792076991; Wed, 19 Jun 2024 03:14:36 -0700 (PDT) Received: from p183 ([46.53.254.81]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-3641788cf4fsm235849f8f.90.2024.06.19.03.14.36 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 19 Jun 2024 03:14:36 -0700 (PDT) Date: Wed, 19 Jun 2024 13:14:34 +0300 From: Alexey Dobriyan To: Andrii Nakryiko Cc: linux-fsdevel@vger.kernel.org, brauner@kernel.org, viro@zeniv.linux.org.uk, akpm@linux-foundation.org, linux-kernel@vger.kernel.org, bpf@vger.kernel.org, gregkh@linuxfoundation.org, linux-mm@kvack.org, liam.howlett@oracle.com, surenb@google.com, rppt@kernel.org Subject: Re: [PATCH v5 3/6] fs/procfs: add build ID fetching to PROCMAP_QUERY API Message-ID: <984d7898-d86a-4cea-9cdf-262b9ec4bc84@p183> References: <20240618224527.3685213-1-andrii@kernel.org> <20240618224527.3685213-4-andrii@kernel.org> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline In-Reply-To: <20240618224527.3685213-4-andrii@kernel.org> X-Stat-Signature: gtnofdj89iedujn1sqjgomkpftdediw1 X-Rspamd-Queue-Id: C4EA71C0013 X-Rspam-User: X-Rspamd-Server: rspam10 X-HE-Tag: 1718792078-871251 X-HE-Meta: U2FsdGVkX18u+mbeoFXQOu/mT2kXgzD9tCTr0QJOAn70GDwpywvPnNrUuJyUlYVuFg5ybxJbHlNL7XPrr9F/6aiha8yGyHlFDxthcvgP0/Z/6+/rpRtNAOyhuFM0JjiRPxoMh9Y86ghIDN1G5csgJHQBg+u28hyGPrQ7wWs8ipRMWW7js9NSzMYZ5heK7ChaNLM4W6tdVHZ+xowdXC9VIg3tm3P0k8uEifv7dF+M8dBcZQM1xluHc8SVwFZPcH3OT9Tpscb/+aP11qvhrdGC+laHgOmtLTwlkQjOLA8lnSsaVFai++IpatxM16//Eqn38pb8CLdRzadZ1FIzMNdiAdrub29xeSsu+oF7vClGbu1GRsNvqpx+Xz2qBXfZYP8a981eewGIA0kFLzJ5TS321vEH/nRgAVQGb/puD/6TIRktm7Vt1P8QKtJLRT0IQvg10m2JE1S6qNyQzZdz7bpKTFfHDP9XRUtZWL9AT+dbo1FINlnxhq6hkrjZfEmiinFShzGQR7F+uoNaXpNzeNul27KO74hDUbEyho+HiXG3B8lJ2oTumkAJL7zJaCYQedIcWrAb24lwF6q5s3B9/GcE840t2CiDiZonZdNGZ7vEo2pm6MXE7PxvDhLA4zBWPQz9D/Cq7PnQdU1Ela/EcxuGIIoezFSmMHW0pgyRkTTY6hN8dcAjjEYLMTBUJMHSvZtFK8p8sfhYr/HlY6gx8HKe8l4lGa3VTUi0KHuwEmy904RxXB5RrP5n7j0NDC+qoN/xRMMS1iMoBqNpINc/yLvK3tBbGjVkM5WIoqKu7mx3KafaDnzWIJtClATBN052zw8nGNxAvc7LHVbdJzdysYJmzvL4kDUVv7tjVyJgB1ie1rdanDgCo0dfHXpGMguzHDkkzTZzSrpA/6Avue4xxsPN1SKau+CTEPs7rJ/gA0jmaAn49eO9AYz34WBtiHk6bgLQu1U1HpBZbUVMlQ0uFyu MtBRziQw aVCm+lo3z9TOi4yUBt5NSOy9RylvOX4oanpHtP8nUcl5jzLLhlNbpiMUiBVwISQDy0MgPHUvGDh+upfP3LDvVGL42co27kUmkLZty+Nfsu1g/6mnl7DVf3c3EjhvPWneaLQOw39TJ+62a4E2EFiS80EzAuD4fQd8nWxwauRDpIcO+9bj3q4XBO4TpnYN0TB0iKO7ULXznDY/QI/H6WjL+bqEE6imfupKONTpO7cbT9uHwAzmkzYGIdX6h3kB1Wb6GlMbIxBySJV4X3UeBxCM9PS6ed3Qbb8vYK83ZhoQMaj5BOglK7iezSUSAOj3i6XjD7TPCaq5iYYzi/h9s9jAoS8EQBigSd2FL5AQEX1R/yZFWc3J3conrg58MRmfU/VkVjoCD6tst2KEDy6yFL/dmdhFNEgPeTgln/JqgX4GIahhmIL+B2e3hHcQBYntu4zYklBNsOZj6yP7wPdbKqt4O6xklWENPm1eV1ipi3quz7tlqjHexU28habJhObGrRSbsRskn0MFNPqG4vVoot+gUcHRZFg== X-Bogosity: Ham, tests=bogofilter, spamicity=0.000003, 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 Tue, Jun 18, 2024 at 03:45:22PM -0700, Andrii Nakryiko wrote: > The need to get ELF build ID reliably is an important aspect when > dealing with profiling and stack trace symbolization, and > /proc//maps textual representation doesn't help with this. > @@ -539,6 +543,21 @@ static int do_procmap_query(struct proc_maps_private *priv, void __user *uarg) > } > } > > + if (karg.build_id_size) { > + __u32 build_id_sz; > + > + err = build_id_parse(vma, build_id_buf, &build_id_sz); This is not your bug but build_id_parse() assumes program headers immediately follow ELF header which is not guaranteed. > + * If this field is set to non-zero value, build_id_addr should point > + * to valid user space memory buffer of at least build_id_size bytes. > + * If set to zero, build_id_addr should be set to zero as well > + */ > + __u32 build_id_size; /* in/out */ > /* > * User-supplied address of a buffer of at least vma_name_size bytes > * for kernel to fill with matched VMA's name (see vma_name_size field > @@ -519,6 +539,14 @@ struct procmap_query { > * Should be set to zero if VMA name should not be returned. > */ > __u64 vma_name_addr; /* in */ > + /* > + * User-supplied address of a buffer of at least build_id_size bytes > + * for kernel to fill with matched VMA's ELF build ID, if available > + * (see build_id_size field description above for details). > + * > + * Should be set to zero if build ID should not be returned. > + */ > + __u64 build_id_addr; /* in */ Can this be simplified to 512-bit buffer in ioctl structure? BUILD_ID_SIZE_MAX is 20 which is sha1.