From: "Jörg-Volker Peetz" <jvpeetz@web.de>
To: linux-kernel@vger.kernel.org
Cc: linux-kernel@vger.kernel.org,
KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>,
Andrew Morton <akpm@linux-foundation.org>,
Glauber Costa <glommer@parallels.com>,
Peter Zijlstra <a.p.zijlstra@chello.nl>,
Ingo Molnar <mingo@elte.hu>,
Russell King - ARM Linux <linux@arm.linux.org.uk>,
Paul Tuner <pjt@google.com>
Subject: Re: [PATCH v2] proc: speedup /proc/stat handling
Date: Mon, 30 Jan 2012 11:00:58 +0100 [thread overview]
Message-ID: <4F266A5A.6050207@web.de> (raw)
In-Reply-To: <1327915555.2288.18.camel@edumazet-HP-Compaq-6005-Pro-SFF-PC>
Eric Dumazet wrote, on 01/30/12 10:25:
> Le lundi 30 janvier 2012 à 09:06 +0100, Jörg-Volker Peetz a écrit :
>> Eric Dumazet wrote, on 01/25/12 01:26:
>>> Le mercredi 25 janvier 2012 à 09:18 +0900, KAMEZAWA Hiroyuki a écrit :
>>>
>>>> BTW, what is the reason of this change ?
>>>>
>>>>> - unsigned size = 4096 * (1 + num_possible_cpus() / 32);
>>>>> + unsigned size = 1024 + 128 * num_possible_cpus();
>>>>
>>>> I think size of buffer is affected by the number of online cpus.
>>>> (Maybe 128 is enough but please add comment why 128 ?)
>>>>
>>>
>>> There is no change, as 4096/32 is 128 bytes per cpu.
>>>
>>
>> Wrong math, only num_possible_cpus() is divided by 32. Thus,
>>
>> - unsigned size = 4096 * (1 + num_possible_cpus() / 32);
>> + unsigned size = 4096 + 128 * num_possible_cpus();
>>
>> <snip>
>
>
> It is good math, once you take the time to think a bit about it.
>
> The original question was about the 128 * num_possible_cpus()
>
> 4096/32 is 128 as I said.
>
> The 4096 -> 1024 is just taking into account fact that once you do the
> correct computations, you dont need initial 4096 value, and 1024 is more
> than enough.
Thanks for your explanation, that makes sense now. At first, I was mislead by
your comment "There is no change" which was apparently related to the second
term in the formula.
>
> Example on a dual core machine :
>
> # dmesg|grep nr_irq
> [ 0.000000] nr_irqs_gsi: 40
> [ 0.000000] NR_IRQS:2304 nr_irqs:712 16
>
> size = 1024 + 2*128 + 2*712 = 2704 bytes (rounded to 4096 by kmalloc())
>
> # wc -c /proc/stat
> 1767 /proc/stat
>
> Problem with original math was that for a machine with 16 cpus or a
> machine with 1 cpu, we ended with the same 4096 value. That was a real
> problem.
>
> If we instead use "unsigned size = 4096 + 128 * num_possible_cpus();" as
> you suggest, we would always allocate 2 pages of memory, this is not
> needed at all for typical 1/2/4 way machines.
>
--
Best regards,
Jörg-Volker.
prev parent reply other threads:[~2012-01-30 10:01 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
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 [this message]
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=4F266A5A.6050207@web.de \
--to=jvpeetz@web.de \
--cc=a.p.zijlstra@chello.nl \
--cc=akpm@linux-foundation.org \
--cc=glommer@parallels.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.