lkml.org 
[lkml]   [2012]   [Mar]   [25]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: 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


















\
 
 \ /
  Last update: 2012-03-26 03:05    [W:0.054 / U:0.040 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site