From: Glauber Costa <glommer@parallels.com>
To: KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>
Cc: Eric Dumazet <eric.dumazet@gmail.com>,
Andrew Morton <akpm@linux-foundation.org>,
Peter Zijlstra <a.p.zijlstra@chello.nl>,
Ingo Molnar <mingo@elte.hu>, <linux-kernel@vger.kernel.org>,
Russell King - ARM Linux <linux@arm.linux.org.uk>,
Paul Tuner <pjt@google.com>
Subject: Re: [PATCH] proc: speedup /proc/stat handling
Date: Mon, 23 Jan 2012 14:33:54 +0400 [thread overview]
Message-ID: <4F1D3792.4090800@parallels.com> (raw)
In-Reply-To: <20120123191643.21ffba0c.kamezawa.hiroyu@jp.fujitsu.com>
On 01/23/2012 02:16 PM, KAMEZAWA Hiroyuki wrote:
> On Fri, 20 Jan 2012 16:59:24 +0100
> Eric Dumazet<eric.dumazet@gmail.com> wrote:
>
>> On a typical 16 cpus machine, "cat /proc/stat" gives more than 4096
>> bytes, and is slow :
>>
>> # strace -T -o /tmp/STRACE cat /proc/stat | wc -c
>> 5826
>> # grep "cpu " /tmp/STRACE
>> read(0, "cpu 1949310 19 2144714 12117253"..., 32768) = 5826<0.001504>
>>
>>
>> Thats partly because show_stat() must be called twice since initial
>> buffer size is too small (4096 bytes for less than 32 possible cpus)
>>
>> Fix this by :
>>
>> 1) Taking into account nr_irqs in the initial buffer sizing.
>>
>> 2) Using ksize() to allow better filling of initial buffer.
>>
>> 3) Reduce the bloat on "intr ..." line :
>> Dont output trailing " 0" values at the end of irq range.
>>
>> An alternative to 1) would be to remember the largest m->count reached
>> in show_stat()
>>
>
> nice catch. But how about using usual seq_file rather than single_open() ?
> I just don't like multi-page buffer for this small file...very much.
>
> A rough patch here, maybe optimization will not be enough. (IOW, this may be slow.)
>
I myself don't like it very much, at least at first sight.
Even with optimizations applied, I doubt we can make this approach
faster than what we currently do for /proc/stat.
Also, the code gets a lot harder to read and grasp. Problem is, unlike
most of the stuff using seq_file, /proc/stat shows a lot of different
kinds of information, not a single kind of easily indexable information.
next prev parent reply other threads:[~2012-01-23 10:34 UTC|newest]
Thread overview: 26+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-01-20 15:59 [PATCH] proc: speedup /proc/stat handling Eric Dumazet
2012-01-20 22:55 ` Andrew Morton
2012-01-23 10:16 ` KAMEZAWA Hiroyuki
2012-01-23 10:33 ` Glauber Costa [this message]
2012-01-24 1:25 ` KAMEZAWA Hiroyuki
2012-01-25 0:01 ` [PATCH v2] " Eric Dumazet
2012-01-25 0:12 ` Andrew Morton
2012-01-25 0:22 ` Eric Dumazet
2012-01-25 1:27 ` Andrew Morton
2012-01-25 5:29 ` Eric Dumazet
2012-01-26 1:04 ` Andrew Morton
2012-01-26 9:55 ` KAMEZAWA Hiroyuki
2012-01-27 0:43 ` Andrew Morton
2012-01-27 1:09 ` KAMEZAWA Hiroyuki
2012-01-27 1:18 ` Andrew Morton
2012-01-30 5:16 ` [PATCH] Add num_to_str() for speedup /proc/stat KAMEZAWA Hiroyuki
2012-01-30 23:20 ` Andrew Morton
2012-01-30 23:58 ` KAMEZAWA Hiroyuki
2012-02-01 14:43 ` Andrea Righi
2012-02-01 23:46 ` KAMEZAWA Hiroyuki
2012-01-27 7:09 ` [PATCH v2] proc: speedup /proc/stat handling Eric Dumazet
2012-01-25 0:18 ` KAMEZAWA Hiroyuki
2012-01-25 0:26 ` Eric Dumazet
2012-01-30 8:06 ` Jörg-Volker Peetz
2012-01-30 9:25 ` Eric Dumazet
2012-01-30 10:00 ` Jörg-Volker Peetz
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=4F1D3792.4090800@parallels.com \
--to=glommer@parallels.com \
--cc=a.p.zijlstra@chello.nl \
--cc=akpm@linux-foundation.org \
--cc=eric.dumazet@gmail.com \
--cc=kamezawa.hiroyu@jp.fujitsu.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux@arm.linux.org.uk \
--cc=mingo@elte.hu \
--cc=pjt@google.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.