Compressed printk messages

Jump to: navigation, search
Compressed printk messages
Tim Bird - Sony Mobile Communications
Selected to be sponsored by the CE Workgroup


Attempts have been made in the past to compress printk messages to save kernel runtime footprint. There is an option to disable all printks, but many embedded developers do not use it, even when they find the space savings attractive, because they still would like to see kernel debug messages.

This project would consist of researching mechanisms that could be used to automatically (at compile-time) compress the kernel's printk messages, and transparently expand them at runtime.

The goal would be to have no user-visible change in behaviour for the kernel, as well as no required developer-visible changes in the source code. Probably, a new kernel option would be used to control this feature.

The work would involve parsing the kernel source code, extracting the messages (and possibly replacing them in source, during the compilation), compressing them, and replacing the original strings with references to the compressed messages (in a way that the messages can be uncompressed transparently at runtime.)

Miscelaneous issues

There may be an issue with finding all kernel messages, due to the number of macros (probably in the hundreds) that are used to wrap printks. This feature might still be useful, even if not all kernel messages could be converted, as long as significant size savings were made available by using the feature. Significant size savings would be on the order of 50K to 100K.

There might also be some benefit from message consolidation. (I don't know if the compiler already coalesces identical strings, but this system should be able to.)

Related work


Unknown - 4 to 8 weeks?

Contractor Candidates

None yet.


This project was proposed in 2012, but not sponsored that year.

Jean-Christophe PLAGNIOL-VILLARD says feature could be useful for barebox as well.