[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <4F6FBFEA.3070204@jp.fujitsu.com>
Date: Mon, 26 Mar 2012 10:01:30 +0900
From: KAMEZAWA Hiroyuki <kamezawa.hiroyu@...fujitsu.com>
To: Ulrich Drepper <drepper@...il.com>
CC: Linux Kernel Mailing List <linux-kernel@...r.kernel.org>
Subject: Re: seq_put_decimal_* optimization
(2012/03/24 21:52), Ulrich Drepper wrote:
> If we want to squeeze out the last drop of slack from the /proc text
> generation, shouldn't we then avoid code like
>
> + seq_put_decimal_ull(m, ' ', 0);
>
> which is worse than what was there before? I realize that the code
> actually becomes more readable like this. So how about automatically
> optimizing the code by adding something like the following to
> seq_file.h:
>
> #define seq_put_decimal_ull(m, delimiter, num) \
> (__builtin_constant_p(num) && \
> __builtin_constant_p(delimiter) && (delimiter) == ' ' \
> ? seq_write(m, " " #num, sizeof(" " #num) - 1) \
> : seq_put_decimal_ull(m, delimiter, num))
>
> Completely untested and it is a minimal change. It could be written
> using an inline function and probably made more general that way
> (e.g., handle more delimiters). But this code should handle the case
> that exist today and lead to a (very small) improvement without any
> real costs to maintenance.
>
Could you wait a while ?
I'm now considering to add a binary interface /proc/stat.bin and
I would like to use seq_put_decimal_ull() as..
==
int seq_put_decimal_ull(struct seq_file *m, int delimiter, unsigned long long num)
{
if (m->binstream_format)
return seq_binstream_attend(num, sizeof(num));
.....
}
==
Then, we can maintain /proc/stat and /proc/stat.bin in one function
fs/proc/stat.c::show_stat().
Maybe good for applications like top and sa..
Thanks,
-Kame
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists