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 172B1C25B4F for ; Mon, 6 May 2024 18:32:53 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 9E0986B007B; Mon, 6 May 2024 14:32:52 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 990A96B0082; Mon, 6 May 2024 14:32:52 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 859516B0083; Mon, 6 May 2024 14:32:52 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0011.hostedemail.com [216.40.44.11]) by kanga.kvack.org (Postfix) with ESMTP id 652446B007B for ; Mon, 6 May 2024 14:32:52 -0400 (EDT) Received: from smtpin26.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay04.hostedemail.com (Postfix) with ESMTP id F3BE61A08F2 for ; Mon, 6 May 2024 18:32:51 +0000 (UTC) X-FDA: 82088817342.26.5476EF0 Received: from mail-pf1-f169.google.com (mail-pf1-f169.google.com [209.85.210.169]) by imf16.hostedemail.com (Postfix) with ESMTP id A50FB18000B for ; Mon, 6 May 2024 18:32:48 +0000 (UTC) Authentication-Results: imf16.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=OONhlQ8v; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (imf16.hostedemail.com: domain of andrii.nakryiko@gmail.com designates 209.85.210.169 as permitted sender) smtp.mailfrom=andrii.nakryiko@gmail.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1715020368; 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=PCnGUjyDFMi8EW+NvbJBnt5l36BUMcYyNMVKvBRKCsU=; b=lR/9p58nfUCzMLpv1kejfjER+PGIAphJphTXqKWxyO3AF2kjLK8U2b+IN6GRwil90E6VaO jtD1rZM8y9tN5CEKv97o5NIP0N0E7ljlFcBEDQg1zuxmhzXbbRLphALV0StfQelufZsETc +W/oLeNIXZyjyz9fOAmR/QJbyJtlmXI= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1715020368; a=rsa-sha256; cv=none; b=m4XMcRV3lyflmUFWzQ8SJsuGT2uEpo9S3lbNkFEZtD9u30r6UWtW32I1yinVCW0Md8cUnf 3kdGNcjOlWQhQjayN4Mux76uD3cxO87fPLUgVFY62WOYyphkSk6y8YNhPWwcEfG6fJEAF+ nZxgvnKRrO3xCqYpD18d7+Bqo0iJ6ug= ARC-Authentication-Results: i=1; imf16.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=OONhlQ8v; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (imf16.hostedemail.com: domain of andrii.nakryiko@gmail.com designates 209.85.210.169 as permitted sender) smtp.mailfrom=andrii.nakryiko@gmail.com Received: by mail-pf1-f169.google.com with SMTP id d2e1a72fcca58-6f44ed6e82fso2126454b3a.3 for ; Mon, 06 May 2024 11:32:48 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1715020367; x=1715625167; 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=PCnGUjyDFMi8EW+NvbJBnt5l36BUMcYyNMVKvBRKCsU=; b=OONhlQ8vq+UKvu027PnF87pH4AiHEjMjdwOIXL4CuXxrOP5NoJLmtxRoDSPJxXAexR CBKGNfKV/METfF3s7KDZlLwAjODIomMxlkopNc/xLEv+0WxDCtTsKuVWi4WihAUDjcit Gn+J52luc1xNlcs//MapMebhCdK1P0bIXEolNd1amB/wO8qvvQhLuhL5mN9qz1Na0sYD +zzC9IQaOx94UZBg2DePpgjX2MUcu7LVRG8e9Xan1bJU2Drt0cKrCP5RsSOSm3DyiMca +reuN9bNsDDQwBP7s9dNGjgFM7eajBDgxZHqwmi1pmsryv/UFUVOVfN7vSUYIgzNFNaq 0kaw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1715020367; x=1715625167; 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=PCnGUjyDFMi8EW+NvbJBnt5l36BUMcYyNMVKvBRKCsU=; b=XeipZ1DVdgSNvl2I0p3lKGwTcpp9oUBf/HKraxyMFfdWPSzGH+RC3Y5/10p10BMf+3 DVPepKG8cjAZmbjWl2MsawPYYtJ6V36h/qSoN3JD7Jh+MXWWDqmAgjp4JiaVUWO7qy7o WuWMbyQUbxNRdjBJcxhkI3xmQf5smrVPXuQDXJKPwDPA/uJTheKSEZLFZlCWP/5pdR8t nOz7ZLqXSI17jh1jvNZRkpdAEwTg1UJs1GqGBRC3j4s2VHYo5kjgdZB9P2Qtrp/g6dDt Fg74FZ7qy+qc6EMPxcALylsRkRL9hMwJ14gDbeqekmg2E++xIs7LCzBN8u9XnUkQAujK XWuA== X-Forwarded-Encrypted: i=1; AJvYcCWLKY5NPer1iX9pUwzm0Rp3mcLo1b3xH0D3DQ3MWCum/+l4EhqhIMH+tk+s6gdoPcw85H8FfW+/x66stA/Rclm00eY= X-Gm-Message-State: AOJu0Yzdi3r1NuUuX0/7nmO3USz9BWD6MSkn1WixGhZuhXocv1y5RsNP 5+6/EDMEU2QYe0Tu0RifEFZDmW7fpnvsYP8VlEuKmBoUhsShmyzZyhrmz/y4Fr7jyHF2pwwjUk8 dS9yEEEARe815JDAVuaxR4mD+aTE= X-Google-Smtp-Source: AGHT+IG3j78+ZZWbY8RuPjt4sUUymX2YmHn1yU88bJqyP4vfirxgCWiddw4JNF/BoBb32TkkOsr9N5Jk9j0lstDSQ7I= X-Received: by 2002:a05:6a20:43ac:b0:1af:66aa:783f with SMTP id i44-20020a056a2043ac00b001af66aa783fmr14502635pzl.30.1715020367293; Mon, 06 May 2024 11:32:47 -0700 (PDT) MIME-Version: 1.0 References: <20240504003006.3303334-1-andrii@kernel.org> <20240504003006.3303334-6-andrii@kernel.org> <2024050404-rectify-romp-4fdb@gregkh> In-Reply-To: From: Andrii Nakryiko Date: Mon, 6 May 2024 11:32:35 -0700 Message-ID: Subject: Re: [PATCH 5/5] selftests/bpf: a simple benchmark tool for /proc//maps APIs To: Ian Rogers Cc: Greg KH , Andrii Nakryiko , 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, linux-mm@kvack.org, Arnaldo Carvalho de Melo , "linux-perf-use." Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Rspamd-Server: rspam08 X-Rspamd-Queue-Id: A50FB18000B X-Stat-Signature: hnoo6ghiyb8ttjf5n6sjts6chibofq8x X-Rspam-User: X-HE-Tag: 1715020368-808328 X-HE-Meta: U2FsdGVkX1+EwhceqGquvYZw0NhWGSb3cLb122LOvDyxNi7YppaciwIvyVH+ZbxSc5/r4tx7REIb3y3rJeg026YG0m0cNeXF2xGthiknGmplDfMxpdfggQGl4t6CKIq7LQkTAyIln9KDA6CZB91IBNNzNurfXTMTiXr0BPqHs5WWhpC0qVqmqDbb2aEsic8+mYJmarMN4IlL6KP+1l/PkYcS1BORJuqmg/JGZOetZDuu8KXKtv5pvnlqZIYgYQgZzK2y1wKJm942TxyOZfZc14vkSwlmrELqjeqi5T2/X9UHrU7ZynkGf/pic4AW/0RtKnDrkljCQztqMfwrp8bUfsp7Obisw4ZeGigB57AoZEoYEdfK3LbHW3WKtx8oBQ4mlbCZTDWxET4GXvL0MplRbiL3z7juHF63wpFWdey7dkeoKCRbTKAQvqH8R/MnSOVkJMhnoQA6yRuy+pa3TuD7M5b2rrofKsWUubt3sy0fjr+18waiWV0pXlnQy7oDS5KqAh5f97B/N5NbpljKSDWX6OccQJIBeRUCUNzVhZPTgIscVXcpnUgO+yer0OGFgCQYSyI6v/U5/UiNT4MlQ7KNCXHMjlXTUmTUpKdjKKkm382YofOuN35swb6XxOUHBAJff7Di13vWv5dB21UZ24OlCWRqtDyNFxTkPE70+Dg2ykKmzXLiD3Mb2A3eN9oACiA1QT8wo65pC7NFbWixIHgaXUyFsWgy77c4kIARvC94YgH7VkT4M9J3cS3FC3gLIrMtS8TGAQ855bFkuQ2HQdaWsZa9WDOuXiEHiB36YV+JTykC1IgqOzgCepRBuAx2YW+NejRH5dDfTRsrDwEqENul268MPVrr/+8APcvASZYpCs1oxlcrYc2PaWy25beDlpbnOJIxeXCdcAcwGWK6sEp3chKPbv0b1VRUjGorgYcLjS8+enBSxYAxl5U4RwxteKfL/IraUcxXKIRqgU/X40x Q/7mIYXy HIm3eB71wyr4eBAuGOfbyIwe3sBMCoMkaskLmkD84skP2jsGPLofaDF0rLSjkv6MLX5zGZQUHYI3K+9zGHKXKBmO00XHA4WZzXZb/H8sKL46Kckuh6fz/DGq17/VemLltzMraXcngn9a2aEYVuq5+o+io9A//Wd2Q47fBElRH6Uy4jzr3X9RWYK502FrBauLRbY7b1BFd3IkYS8anau+SaqlqFMAEHjW2H3vqQGRbUbYglwP16WOFfYN/bcd9w6cSs10xsWDosvctqQqEGzhT2qwq1HrLle2tyAgaheiyr0Lx/Dyp1C0scltnWrWD94EC53kQO5NBNISkz8g0MbDBSfgly/G0jCaAuOQq8X5dt6+QlvABkI1bf8zVEQCnD/pI5I76Hc4gvGMM3R1szRq39aUqXBsFfNL0AyGNRTp8LqRvx2dG5bSzdZSg0T8/Eb9EL2yrseERUFZWT2/Uis/GtAO/l1ahXx5SPUa2XnNQwgEwOHoKnpbZKwJuAfvzyYP/4Hs/ktd59wlL7ma3T5GvekzibXqIxGNDbbhgrJKfxVgpICvfftk5/0cQU44rBl3px1YZ X-Bogosity: Ham, tests=bogofilter, spamicity=0.000001, 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 Sat, May 4, 2024 at 10:09=E2=80=AFPM Ian Rogers wro= te: > > On Sat, May 4, 2024 at 2:57=E2=80=AFPM Andrii Nakryiko > wrote: > > > > On Sat, May 4, 2024 at 8:29=E2=80=AFAM Greg KH wrote: > > > > > > On Fri, May 03, 2024 at 05:30:06PM -0700, Andrii Nakryiko wrote: > > > > Implement a simple tool/benchmark for comparing address "resolution= " > > > > logic based on textual /proc//maps interface and new binary > > > > ioctl-based PROCFS_PROCMAP_QUERY command. > > > > > > Of course an artificial benchmark of "read a whole file" vs. "a tiny > > > ioctl" is going to be different, but step back and show how this is > > > going to be used in the real world overall. Pounding on this file is > > > not a normal operation, right? > > > > > > > It's not artificial at all. It's *exactly* what, say, blazesym library > > is doing (see [0], it's Rust and part of the overall library API, I > > think C code in this patch is way easier to follow for someone not > > familiar with implementation of blazesym, but both implementations are > > doing exactly the same sequence of steps). You can do it even less > > efficiently by parsing the whole file, building an in-memory lookup > > table, then looking up addresses one by one. But that's even slower > > and more memory-hungry. So I didn't even bother implementing that, it > > would put /proc//maps at even more disadvantage. > > > > Other applications that deal with stack traces (including perf) would > > be doing one of those two approaches, depending on circumstances and > > level of sophistication of code (and sensitivity to performance). > > The code in perf doing this is here: > https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/t= ools/perf/util/synthetic-events.c#n440 > The code is using the api/io.h code: > https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/t= ools/lib/api/io.h > Using perf to profile perf it was observed time was spent allocating > buffers and locale related activities when using stdio, so io is a > lighter weight alternative, albeit with more verbose code than fscanf. > You could add this as an alternate /proc//maps reader, we have a > similar benchmark in `perf bench internals synthesize`. > If I add a new implementation using this ioctl() into perf_event__synthesize_mmap_events(), will it be tested from this `perf bench internals synthesize`? I'm not too familiar with perf code organization, sorry if it's a stupid question. If not, where exactly is the code that would be triggered from benchmark? > Thanks, > Ian > > > [0] https://github.com/libbpf/blazesym/blob/ee9b48a80c0b4499118a1e8e5= d901cddb2b33ab1/src/normalize/user.rs#L193 > > > > > thanks, > > > > > > greg k-h > >