* Results of actual compile printk format compression
@ 2003-06-06 22:52 Timothy Miller
2003-06-07 5:39 ` Felipe Alfaro Solana
0 siblings, 1 reply; 2+ messages in thread
From: Timothy Miller @ 2003-06-06 22:52 UTC (permalink / raw)
To: Linux Kernel Mailing List
Just a quick note...
Although my experiments with kernel printk format string compression
have reported estimated shrinkage, this is the first time I have been
able to compile a whole kernel with the compression filter.
These results come from doing an allyesconfig of 2.5.68 and then weeding
out anything that didn't build. One program extracts strings from
preprocessor output, a second program determines how the strings will be
encoded, and the third makes substitutions during a kernel compile.
The uncompressed compile resulted in a kernel image of 24011892 bytes.
The resulting image with format strings compressed is 23904708 bytes
which is a shrinkage of 107184 bytes. Subtracting out an estimate of 3K
for the dictionary and necessary modifications to printk, that results
in a reduction of something like 104112 which is 4% of the original
kernel size.
That may not seem like a lot, but if you consider only the printk
strings themselves, they are compressed to less than 50% of their
original size (counting the dictionary but not printk code mods).
So, I ask... is this a useful savings? Is there any chance anyone would
bother to increase their compile time by a factor of 5 in order to shave
off 4% or 100k bytes?
(Not to mention that allyesconfig is a very unrealistic scenario.)
^ permalink raw reply [flat|nested] 2+ messages in thread
* Re: Results of actual compile printk format compression
2003-06-06 22:52 Results of actual compile printk format compression Timothy Miller
@ 2003-06-07 5:39 ` Felipe Alfaro Solana
0 siblings, 0 replies; 2+ messages in thread
From: Felipe Alfaro Solana @ 2003-06-07 5:39 UTC (permalink / raw)
To: Timothy Miller; +Cc: Linux Kernel Mailing List
On Sat, 2003-06-07 at 00:52, Timothy Miller wrote:
> Just a quick note...
>
> Although my experiments with kernel printk format string compression
> have reported estimated shrinkage, this is the first time I have been
> able to compile a whole kernel with the compression filter.
>
> These results come from doing an allyesconfig of 2.5.68 and then weeding
> out anything that didn't build. One program extracts strings from
> preprocessor output, a second program determines how the strings will be
> encoded, and the third makes substitutions during a kernel compile.
>
> The uncompressed compile resulted in a kernel image of 24011892 bytes.
> The resulting image with format strings compressed is 23904708 bytes
> which is a shrinkage of 107184 bytes. Subtracting out an estimate of 3K
> for the dictionary and necessary modifications to printk, that results
> in a reduction of something like 104112 which is 4% of the original
> kernel size.
>
> That may not seem like a lot, but if you consider only the printk
> strings themselves, they are compressed to less than 50% of their
> original size (counting the dictionary but not printk code mods).
>
> So, I ask... is this a useful savings? Is there any chance anyone would
> bother to increase their compile time by a factor of 5 in order to shave
> off 4% or 100k bytes?
>
> (Not to mention that allyesconfig is a very unrealistic scenario.)
Sincerely, with machines ranging 512MB of memory, 100KB of memory saving
is just so little, that factoring kernel compilation by 5 is something
I'm not willing to take.
However, it could be useful to include that feature for memory
constrained systems, like embedded ones, and allow enabling it at
compile/configure time.
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2003-06-07 5:26 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2003-06-06 22:52 Results of actual compile printk format compression Timothy Miller
2003-06-07 5:39 ` Felipe Alfaro Solana
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.