Received: by 2002:ad5:474a:0:0:0:0:0 with SMTP id i10csp37588imu; Wed, 7 Nov 2018 12:34:09 -0800 (PST) X-Google-Smtp-Source: AJdET5flmHaPnhZwuOaMWoBcqLQIwEY2MkYK5vXKczs5eu/LKFu+QXwFlXQ2b0iuAOpw3E+avzZm X-Received: by 2002:a17:902:8f8f:: with SMTP id z15-v6mr1748004plo.257.1541622849534; Wed, 07 Nov 2018 12:34:09 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1541622849; cv=none; d=google.com; s=arc-20160816; b=H/nqIQCu52VWJOfY637KQkevVzHWJcTYlV+JNZZPUkkyqXAkXVNHh/iUfRUEz/Lu3z emPFtxykvzFdHLxggedrmGmuEr4O/1OYU++wbp8KXkQb2hAULcSErWgENaKZrA9ECjvM KF0w+FDwgw3BVPKj2kHl+9Z48Y1biwFgiXGKz3HQNpTbO0ehq0yhl05rz0dhZnGVmFmh mAPM1JWofdoI6aXx/G7TY80wwXOOAGRh8BWG+th/sNfbPvXqW95w/hE74g7Wf+b13K6z 1LfYo3Qy2AUN7PRW66ce49gcB6QesgW5BXr9099UfOyHJaeeNIctHnYVUAktEIrtRaUs QFJQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:user-agent:in-reply-to :content-disposition:mime-version:references:message-id:subject:cc :to:from:date; bh=LMxzL5VWu9tF57K+0VYtlHKPB37OS/d/1S8gpXySGg4=; b=RiVwbbNXZxDIDJDDL6u/4XSONgOEemvfn8UkVs6UQFlZ68A8LpVwvVnxif7003XRHx +cnOm+dpa8HcuFs3k3kJjsLWa2WKIdJVMcE78gzUEnuzv9rNGxkWxqxWyId8OABa5cCa bbKI2qr8TPCd37wps3NdotGnu+1uyGF/jO1bKAUJDaqi1FeKnPeN5XhvBz875K5863E/ okqecfoTBnGpRrweKajwxMiIXk2BQJpzYFQFNBhbfqJRWtsWodAuKqOLnETSDBn7bEXW WIO5vGc4O352CsgStCOYakW26+2iTiM/4Yz87ebEK7KuVCry2jTGVh5tD7bl1dG5xIXB 0j9w== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id o3-v6si1569123plk.360.2018.11.07.12.33.37; Wed, 07 Nov 2018 12:34:09 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726847AbeKHGEk (ORCPT + 99 others); Thu, 8 Nov 2018 01:04:40 -0500 Received: from shells.gnugeneration.com ([66.240.222.126]:41928 "EHLO shells.gnugeneration.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725945AbeKHGEj (ORCPT ); Thu, 8 Nov 2018 01:04:39 -0500 Received: by shells.gnugeneration.com (Postfix, from userid 1000) id 431141A40326; Wed, 7 Nov 2018 12:32:39 -0800 (PST) Date: Wed, 7 Nov 2018 12:32:39 -0800 From: Vito Caputo To: Miklos Szeredi Cc: Andrew Morton , Daniel Colascione , Davidlohr Bueso , longman@redhat.com, linux-fsdevel@vger.kernel.org, linux-kernel , Davidlohr Bueso Subject: Re: [PATCH] fs/proc: introduce /proc/stat2 file Message-ID: <20181107203239.nsbccdyckeeprjzr@shells.gnugeneration.com> References: <20181029192521.23059-1-dave@stgolabs.net> <20181106154840.3b448356214afa63dc8cb28c@linux-foundation.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: NeoMutt/20170113 (1.7.2) Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Wed, Nov 07, 2018 at 11:03:06AM +0100, Miklos Szeredi wrote: > On Wed, Nov 7, 2018 at 12:48 AM, Andrew Morton > wrote: > > On Mon, 29 Oct 2018 23:04:45 +0000 Daniel Colascione wrote: > > > >> On Mon, Oct 29, 2018 at 7:25 PM, Davidlohr Bueso wrote: > >> > This patch introduces a new /proc/stat2 file that is identical to the > >> > regular 'stat' except that it zeroes all hard irq statistics. The new > >> > file is a drop in replacement to stat for users that need performance. > >> > >> For a while now, I've been thinking over ways to improve the > >> performance of collecting various bits of kernel information. I don't > >> think that a proliferation of special-purpose named bag-of-fields file > >> variants is the right answer, because even if you add a few info-file > >> variants, you're still left with a situation where a given file > >> provides a particular caller with too little or too much information. > >> I'd much rather move to a model in which userspace *explicitly* tells > >> the kernel which fields it wants, with the kernel replying with just > >> those particular fields, maybe in their raw binary representations. > >> The ASCII-text bag-of-everything files would remain available for > >> ad-hoc and non-performance critical use, but programs that cared about > >> performance would have an efficient bypass. One concrete approach is > >> to let users open up today's proc files and, instead of read(2)ing a > >> text blob, use an ioctl to retrieve specified and targeted information > >> of the sort that would normally be encoded in the text blob. Because > >> callers would open the same file when using either the text or binary > >> interfaces, little would have to change, and it'd be easy to implement > >> fallbacks when a particular system doesn't support a particular > >> fast-path ioctl. > > Please. Sysfs, with the one value per file rule, was created exactly > for the purpose of eliminating these sort of problems with procfs. So > instead of inventing special purpose interfaces for proc, just make > the info available in sysfs, if not already available. > I like the sysfs approach to organizing the data, and have wanted fd-batching IO syscalls in other circumstances anyways, so I think there's a good possibility of something along those lines getting added eventually. At a past employer I had written some backup software which had to reassemble versioned files from chains of reverse differentials (think rdiff-backup). I had all the information needed to quickly construct a multi-fd iovec to supply to a single batched readv syscall when servicing versioned reads from a FUSE mount that involved a potentially long chain of diffs, but no such syscall exists. The more differentials, the more fragmented the operation tended to be, requiring increasing numbers of smaller reads across more files to reconstruct the buffer. The same thing would be useful for making reads from large numbers of sysfs files less costly. I presume proposing such a generally applicable VFS API addition would meet less resistance than specialized proc interfaces, perhaps naively :). Regards, Vito Caputo