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 5679BC4345F for ; Sat, 4 May 2024 21:57:33 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id D57AB6B008A; Sat, 4 May 2024 17:57:32 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id D07966B008C; Sat, 4 May 2024 17:57:32 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id BD0106B0092; Sat, 4 May 2024 17:57:32 -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 9A5D06B008A for ; Sat, 4 May 2024 17:57:32 -0400 (EDT) Received: from smtpin04.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay01.hostedemail.com (Postfix) with ESMTP id 041D31C1334 for ; Sat, 4 May 2024 21:57:31 +0000 (UTC) X-FDA: 82082075544.04.D6F5659 Received: from mail-pg1-f169.google.com (mail-pg1-f169.google.com [209.85.215.169]) by imf11.hostedemail.com (Postfix) with ESMTP id 3E3D740003 for ; Sat, 4 May 2024 21:57:30 +0000 (UTC) Authentication-Results: imf11.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=RQGbkbaI; spf=pass (imf11.hostedemail.com: domain of andrii.nakryiko@gmail.com designates 209.85.215.169 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=1714859850; a=rsa-sha256; cv=none; b=tMLV/WClQ6phDBwbkJqNgJF4yQ3rkdCJLhKrq7wv5tCqBYgehtRi8EPrH81zMyIK64Jdq1 P23kigGWbv7z6lZQpjd1lI4xuPw72ONALLuJh2REN7RuaPks/UF9TzjiRqwoJllihmwhH6 2EzqYNLuaNp5yvtAI0VEKXL5dy35WbI= ARC-Authentication-Results: i=1; imf11.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=RQGbkbaI; spf=pass (imf11.hostedemail.com: domain of andrii.nakryiko@gmail.com designates 209.85.215.169 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=1714859850; 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=Vr0WzAgqZQ7xcLK1USPbgE8wMONw4Q1nntWbGT+4brc=; b=uPFsHAoSDC4cMBV3KbcK9E+QZxWTGRWBfUMPkJeHSdJR4M+hZdNoFTAOiDBwU1k9KQtXwj hrd83yeiuq06bl8kqbSqzy3+gxUDj34nvE+BWwGiDxPG5aE+rvzlcCX9fYsH6nLI9fdwYj qe10TevDaRvSUKQvUdAtRmTDLDrOKwY= Received: by mail-pg1-f169.google.com with SMTP id 41be03b00d2f7-53fbf2c42bfso624998a12.3 for ; Sat, 04 May 2024 14:57:30 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1714859849; x=1715464649; 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=Vr0WzAgqZQ7xcLK1USPbgE8wMONw4Q1nntWbGT+4brc=; b=RQGbkbaIN4tguc4MNYExxH2LhvWszCLNfE77CZAFZZZ6zQ73j/AeyGR0UiORZTxhI7 0YIAWlm751ycrcdooFHt2vYP2JjedLH9kvDbajyTSigUVlrxPIWoRMqWJPMOOP9mL15A sv8sFrEzJA7Y59aQM6YcOek0leaulVWWEWGKdKaClKdQA2vQPR8ZTCD/gVGJ7NUrbcou GD86DYYmfEepxEJpWxL5ad1Ve7fS3kEt5M9y0Dw9Oj0KqlPrU1LnclIbNqkJrnPhx60s HqFX9pHVAeja1+aWRRB5ZzaU0BHo3ks66L0cG9nwM3KwScCgsjcdShQs9+f5Kk27th22 XDbw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1714859849; x=1715464649; 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=Vr0WzAgqZQ7xcLK1USPbgE8wMONw4Q1nntWbGT+4brc=; b=MXVvooYrl56KeTm6Yj+x2NZOAv5egEwoNVNehh+mKlTB6rjrU6G/pDn+LotHMhY8O+ 07WCqp/mY+hgg9YVx1GsDWHhfb+9fci8cgZ0sKJHXIDgzckc/85ijQn7pF22g6WD5sA0 WKhBwIHHw/Q/w59YHmeuZ6glGHsiyEKPVq3UwOXDiNE/lx0Fp+j0omC0S8DSJNlGlqHY 4cHqQL999wE3tcu+RXpgyh55L1fn97+DpAqq68Ifvs0jjxGXCEordsDtaI1mWxXI+bXx /Zi7zbn0Kn5GyOHgGXK3JxfSncyLT011DWweHnHyj8ieiWTaIjq+drUybPewodENTy/7 Gqig== X-Forwarded-Encrypted: i=1; AJvYcCVLmWzkxy9v8MlZLDgIoXx4x8bqI5+HdB7GD0SNs7LMlNqh1RoPueK0LSC+Epxed1jQJ7NPwRxDySGAc39P0WMQ+F4= X-Gm-Message-State: AOJu0Yz/74f/bajrpO+tc6KA1tkG1+1BJWrLeFaGKeDwEeBBKapvkGes zZwZlt9JV5UXtRKJ+4Ni6U07KfsvXdnfn6Yeg8Iu9ffU70iZXyZNmw0E6Ye00W5/b1Pkil6/bhL zRiFWAw3DUEh0nVTuki2kPgYvamMD3lFP X-Google-Smtp-Source: AGHT+IFMx/po3MCuNgrp19VrE6Egvrp/t8LN5+yMt2RDi+MxC38dpPZiE3MXHhcWc5dPeAVfnEvpPaDHz/ahAu3kBsc= X-Received: by 2002:a05:6a20:d80b:b0:1ad:6c5:4ea1 with SMTP id iv11-20020a056a20d80b00b001ad06c54ea1mr8771367pzb.41.1714859849188; Sat, 04 May 2024 14:57:29 -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: <2024050404-rectify-romp-4fdb@gregkh> From: Andrii Nakryiko Date: Sat, 4 May 2024 14:57:17 -0700 Message-ID: Subject: Re: [PATCH 5/5] selftests/bpf: a simple benchmark tool for /proc//maps APIs To: Greg KH Cc: 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-Stat-Signature: 6jzqhfebfthb6ufg74e8qep3j7tiwrw4 X-Rspam-User: X-Rspamd-Server: rspam02 X-Rspamd-Queue-Id: 3E3D740003 X-HE-Tag: 1714859850-129263 X-HE-Meta: U2FsdGVkX1+ugy+fVCvRaFaDsxpPyfvzmRDGCId6tOuyFv8DGTL6ck5yelf5p3ZFs6NLXQZyt2Kz7M1BUjACei6NmG6X9Y6uNiuhnfYXOcgAG1lj4YHGw2unZ3VhP00bGzGylvoIDckqQpDuKixkv5I0FDGth1NijeazdgOIypzuLyJsftww1lFmr16VbNNAFqJFMES/yAvB93oNdr2PTWclSTNnqhi04+LUOGCeQMo8i3zoMVVUCZvO1DhAgJifE/saEzVIGYLDnZTdwBWJCFBlhXtFB5Wzmvntn7iUNDdxt3CUYit5z+TrVNzXA8gJUI1VbdbqDydt5C86snNs1WGWl5Cd1jjnpbN9tRS28a+ItiQOyVW8bObJhG0zV96UAf46AdF4SE6tZpMcuhls3Mz2LQc46CHoNvLi32EIaeCA3pRxvhwJ6ybifcUG9Im1/v322KclqKEd8mZ5CrGfYwvyRI2wAIjxtfg9v6we8IgByMHxYjvRxOZMrTfKfS+z14iS5a5lT55SFM4tYWEREkis4CKkM/S5/djfjBlvyKqkwsm2+3iXD2o2tbLroLXN/tQ32A5Xb5+Gu0LqT7AWDaXKq/n+Uf0W37gHi9i47UnoMBCaM63Yks7fCahn5ZbUgf2N+pXmUvhxkRnbhsZ3jajB8bICgCDAKcK88M9I2snhHaqvC9etE9zTxF3NSQPPPz+J0oivDOZkVEHHDUV4OUvb+miSFJ1QmmH5SLoaPqckEuvvN1N1jKTcd6nhZJk4tRIM9EQgc7/iLhwCnHuxlO13NxWoAiz/0+etA9SAle6+XQgP7IcuaLkWA8sHbCUMxQEWlq+lvsNfd5iJZzgyAlO3vOT2lrKix5NCFZV3D8UtPKGGUzjUQqTJ3s/I9tr3ViCtmCSdNUqieoYj9gZ/UPWI7jA0BKe1K7d1fCHdGE+/5KhZgPUA6BrZ8VaY8yrueQf9ttotjwPTMxwcwYV PbIrSV0T JIMObLzBONmo94bSSigwg6jxxyG+j8CjRUGJb31D54IQIzDclflhZJnQUhOfPtF2lS1cK/BU/qVafAhlapBjNHOaZTpkuzYPkojcMz4wy8zoC1EEf4WPsT1kelA7l9VPBh/cM7OsQKzSLjRQDKSwqOzOrsMJ8sVn5NXA1jNGu/7SXKuydZ33AMZo6zxlTXrFGyK/kHfWp+MDqR5dZ29fGbMLLjnowxkJCfIzyhVEMHobBjo269HBPrUQEb47bborFtaynnXoTvy7Z0U3OfG9rIivPs4ctfk4K7P9tNKEgk5GPfYP9abWhgxJSBU4kr11JuwJBDTB5l30iL3/hAxRJ0Sf8Na7fYftkhYkyWzfhiMg+oop/XvcymXvnydfoWC7ckMhhsAPmcEaDV2UTA+z/O/JgJ03KEdanxt47WIaUTvphvlWvYvIAunLhDj7iwKj2MFpRgCpImq00KRT7HXpiON0Afw== 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 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). [0] https://github.com/libbpf/blazesym/blob/ee9b48a80c0b4499118a1e8e5d901= cddb2b33ab1/src/normalize/user.rs#L193 > thanks, > > greg k-h