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 C77BBC25B10 for ; Sat, 4 May 2024 21:50:54 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id EDC146B0082; Sat, 4 May 2024 17:50:52 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id E8C106B0085; Sat, 4 May 2024 17:50:52 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id D2CB16B0087; Sat, 4 May 2024 17:50:52 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0010.hostedemail.com [216.40.44.10]) by kanga.kvack.org (Postfix) with ESMTP id B996F6B0082 for ; Sat, 4 May 2024 17:50:52 -0400 (EDT) Received: from smtpin16.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay08.hostedemail.com (Postfix) with ESMTP id 4C3B3140287 for ; Sat, 4 May 2024 21:50:52 +0000 (UTC) X-FDA: 82082058744.16.A991CBC Received: from mail-oa1-f41.google.com (mail-oa1-f41.google.com [209.85.160.41]) by imf08.hostedemail.com (Postfix) with ESMTP id 86C66160007 for ; Sat, 4 May 2024 21:50:50 +0000 (UTC) Authentication-Results: imf08.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b="BmUmibL/"; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (imf08.hostedemail.com: domain of andrii.nakryiko@gmail.com designates 209.85.160.41 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=1714859450; 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=VpJQPM7rd1rBkvd50aikN/qFqNg/enyy5dkWT9AuB3o=; b=FKoRXTfImChCd5YLCx2Gr5HowecfDn1UUfR/dE97zXnvtUgXn+Y1Tdcpunn6ekFBe7rnLB +9fy5alFB9ZuBGMhrzqCBayCm3izWLoLb2koXYOgbYS6JhD134kLdiZukvDUx7pgHFm4dl WrnTf1oyPtXhiEX/tak8Ug3gKyTy+Fo= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1714859450; a=rsa-sha256; cv=none; b=tMYeuVhCOxP3k9pHZMEon8S6brTukW+QA5egWcC5u7tEDBxsqHNlKCCzzyyJM+MLlsJjUZ H2LShixQbn+z0mFOHzuU7pVU+fzwaQ+1PJa0mA5+KNe9d2yTHEcIOeN3iPpaas83FqYD8k uG/uTeFhzjlpaDDKmxA9Sqxx0yJdPQQ= ARC-Authentication-Results: i=1; imf08.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b="BmUmibL/"; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (imf08.hostedemail.com: domain of andrii.nakryiko@gmail.com designates 209.85.160.41 as permitted sender) smtp.mailfrom=andrii.nakryiko@gmail.com Received: by mail-oa1-f41.google.com with SMTP id 586e51a60fabf-23ee34c33ceso526150fac.3 for ; Sat, 04 May 2024 14:50:50 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1714859449; x=1715464249; 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=VpJQPM7rd1rBkvd50aikN/qFqNg/enyy5dkWT9AuB3o=; b=BmUmibL/Y2MebR+p3OPMTUpUBglVHhRC9sdWem+UAZO1Vnj9GjbeUMeBJH5A5UzDJV xb4L+rUh1UScVevhCwgwZL3HBuJg6w1wZa5llFzKUAhZ5OOBlj8ei5AJTCoQ2k+FZzGD Lj2c3xVp0YUJEylUwlJ48h+ZJ7lVPavGrCcjAXNl3rB0l38G6isaA3Ubl2VjpxJ2tuQu rsR9uchD9YE7nD7Mqw9B1MPE1GKh8z3bH/wRgZKH8wLSb2Pw2P3dt9qqeZ2/Z1EEltLK aNGpONsRIkODEFZD8mSZ4HNzQ3N9POEZpmyDxd3MvZHRlyTV8z4B4lFfayx9nHJ00ivy KGCw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1714859449; x=1715464249; 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=VpJQPM7rd1rBkvd50aikN/qFqNg/enyy5dkWT9AuB3o=; b=a48pMtt91iOxNE2+hKNI6oBMjENtYA18MZ2SWZz/JlrnfRrHAIyOB7ryqZVx8QqtSz 12Mlj7UahhuqX0fnuMEdN751pIfO7KVrTT0rqpzfgrXq4oT6Y2o9N7r2FCfzEhXXETMQ c8f1eCq0dkksfyniGNDHR7+h2M6yA2jCqobdD1SNDBJD4fO049DDfbdbxf0SvBCXJY93 5Za6y65wk+G3entAjxZWzzUBetqH8eaNkfKLzLBMh4EPYjZgGgQz8hYIL6WW6CrJfT0c dyKDh3T5sq6Bq2V8qvgYW8iEaPj7QhHZrb/pKhmu++yo7QEt6MKJEN0YJO3qyBgE30sk soBA== X-Forwarded-Encrypted: i=1; AJvYcCW9Zxrj2VQqboDal65e1ceI0EJs5lDcF9/+FN8anfeFPpWIuxSw4Ewt9mm9L8Bqx0o5g0laW4ZrkKmrVtJGu2eQHfo= X-Gm-Message-State: AOJu0Yy5pgUMCkMK3dckrgq+so+upSRA4P8u0VqSM/ZNNQF3rDfkQVZg v3kLqB9TKB7sZx1opd84FOtMNAXqZoGsFscuH79lB2oDAvbFJiJatkuGWEjtyIrwZgMMDV2hiH1 bRWufrrY38iTtFsxnJLorqsXR/Ww= X-Google-Smtp-Source: AGHT+IEfIDc1Dp3d+rYVTN+vUKk+O6oshDN1/zbT1wKKFvG31uW6hZIU+LiMrjmBLrq5Ki956c3IYm/QQbLl0W7TSQU= X-Received: by 2002:a05:6871:826:b0:23e:4c7e:d018 with SMTP id q38-20020a056871082600b0023e4c7ed018mr7074428oap.41.1714859449483; Sat, 04 May 2024 14:50:49 -0700 (PDT) MIME-Version: 1.0 References: <20240504003006.3303334-1-andrii@kernel.org> <20240504-rasch-gekrochen-3d577084beda@brauner> <2024050424-drift-evil-27de@gregkh> In-Reply-To: <2024050424-drift-evil-27de@gregkh> From: Andrii Nakryiko Date: Sat, 4 May 2024 14:50:36 -0700 Message-ID: Subject: Re: [PATCH 0/5] ioctl()-based API to query VMAs from /proc//maps To: Greg KH Cc: Christian Brauner , Andrii Nakryiko , linux-fsdevel@vger.kernel.org, viro@zeniv.linux.org.uk, akpm@linux-foundation.org, linux-kernel@vger.kernel.org, bpf@vger.kernel.org, linux-mm@kvack.org Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Rspamd-Server: rspam08 X-Rspamd-Queue-Id: 86C66160007 X-Stat-Signature: qw64txxzteoizkikc7azepisd8bjzu3k X-Rspam-User: X-HE-Tag: 1714859450-680234 X-HE-Meta: U2FsdGVkX18I2BkIV0ytJHhQNS+pPk4SFElXlNj7RVAZsPd0+1+dx7cKGArx8MbjT97xbyiXi8e2Ksc7Wl6RiT/fIz3g1wQgtAQqkBiFWNAalysBMqb9PN0PYUXOxIaR8tkZqRfQLLuDFkc8+3x0YO+Em8pDa/TO1Qwt8U/ttqinN6kQKipYamG6DXO0FLSmMQFSh0XiYPn4a1e64eD6Z3I0zkpAx5F5oJ31BJS5MNPB8nGZgTv5FYlu2j9OpiHH4rqmEaYOt3MC2vpqn2hfwFnHu2esXuoBvqJBLkK29Q9XqhZwV3BYKB4dz9MSVAcmCQdwJ+5tuTesL1SqEV0+ZoiI9rExF7pPT7AcihatO+du+HeoV2UKP/MelpH4XTCEJhaszji1p8CWCNRAa/+YP9QjGuvdauw612jM7JnjDvMmV4wXXDlbVk5AB8a1JKPkrrGvR6Wism7AsTjNVUhVFqWcAsyc7YFS2Tx3486BaZmcBNPK6iAR9PRpIbqXExKF663vADdDAZswd+aUroe6K8xJCyNhJRssRZuHBUKGoSnTNooFNCUUAbYqe5Ev56jm68cw3J/b7eubXShNXwH+zkA3+sEmiEOIaNKxd4hfeNkoglJeeMo/a9Yl1Oj6a5ksSbZ5swAnHpxJ9GMa7UxAWTCMLQ9LIbctiegPE38fnryIWrzHTj7CRVeNEgzITY+L0+aXcK22RRLkixyuJ/rX0my4uD5fzxv6EySxsTGDZzw6N1EQB9r7LnTNvHISOHHzeaAQVs++e2dMhtU5fIloVHaoWydF0kl9PwLX4V8NU6GOhXXSxgzgZmQdBoOq51TOaf8OiWrMOwlfL+AuQIZz7DIIvNMFoPNLL3zalXAfNFcu+JUdj+Vfz0XNlnEirdLPtnCyTx0eT+xb45+FwNTIgOa7/dW/ZRhmDLvVVXckr0aT5WW4TVoPpWm8DyVTpCxPHkaJpJQ5oZhTSYeTpsJ QrUA0OGn zFtlCSPhr/49WnMa4Jin2W1nbJiBr6OhEba9MvMe0LSdM0j0bUDDz9IoGSZ+7k02xzF92Xp+DZRvf+GqIBazylp976IPPfCH+yV3WPKn0WOnq6IUXmDpSjIwtE/UOTFprTKgHtzQRv4PJq+blGY6Y22cXDZHLkleLJCavdiq7BaLzqrPDaG4MDb79C52Qsix8AkytSkNc9DNKyLPNS8R4RfhNSLyG/PYYFl/oYjV2sy7U2WpjdJFa7u71WvtJSeJ6mUK0w405lyUV60YGbMonvbJgy9S5YYa1Gq9AZknwJPavtjKrQHL58vClZyFZjdemn0SBlrF/iE3XwDJxk3RV2pYmn0byJd+d1+V1Rr+kE9XzYn4fqFpuUg4/aeEf5WvrBxmOX/rtnjk3RS4ZFQ+i/uI3og== 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:34=E2=80=AFAM Greg KH = wrote: > > On Sat, May 04, 2024 at 01:24:23PM +0200, Christian Brauner wrote: > > On Fri, May 03, 2024 at 05:30:01PM -0700, Andrii Nakryiko wrote: > > > Implement binary ioctl()-based interface to /proc//maps file to = allow > > > applications to query VMA information more efficiently than through t= extual > > > processing of /proc//maps contents. See patch #2 for the context= , > > > justification, and nuances of the API design. > > > > > > Patch #1 is a refactoring to keep VMA name logic determination in one= place. > > > Patch #2 is the meat of kernel-side API. > > > Patch #3 just syncs UAPI header (linux/fs.h) into tools/include. > > > Patch #4 adjusts BPF selftests logic that currently parses /proc//maps to > > > optionally use this new ioctl()-based API, if supported. > > > Patch #5 implements a simple C tool to demonstrate intended efficient= use (for > > > both textual and binary interfaces) and allows benchmarking them. Pat= ch itself > > > also has performance numbers of a test based on one of the medium-siz= ed > > > internal applications taken from production. > > > > I don't have anything against adding a binary interface for this. But > > it's somewhat odd to do ioctls based on /proc files. I wonder if there > > isn't a more suitable place for this. prctl()? New vmstat() system call > > using a pidfd/pid as reference? ioctl() on fs/pidfs.c? > > See my objection to the ioctl api in the patch review itself. Will address them there. > > Also, as this is a new user/kernel api, it needs loads of documentation > (there was none), and probably also cc: linux-api, right? Will cc linux-api. And yes, I didn't want to invest too much time in documentation upfront, as I knew that API itself will be tweaked and tuned, moved to some other place (see Christian's pidfd suggestion). But I'm happy to write it, I'd appreciate the pointers where exactly this should live. Thanks! > > thanks, > > greg k-h