[relug] C++ in the Linux Kernel

  • From: Alberto Basso <info@xxxxxxxxxxxx>
  • To: Lista RELug <relug@xxxxxxxxxxxxx>
  • Date: Thu, 28 Oct 2004 02:31:02 +0200

"We have implemented a complete kernel level run-time support for C++ in
the Linux kernel. In particular our run-time support enables the full
use of C++ exceptions in the Linux kernel, but notably also includes
support for global constructors and destructors, and dynamic type
checking. Our kernel level support is based on open source commodity
components, specifically the GNU gcc/g++ compiler and its exception
implementation, the C++ ABI version independent standard interface."

...

"The implementation of the C++ ABI is based on the implementation
provided with the source of the GNU g++ compiler. We modified it to run
in kernel space, and performed optimizations that reduces the cost of
exceptions and dynamic cast considerably. Our paper contains thorough
explanations of these optimizations. The cost of throwing an exception
one level on a 990 MHz Intel Pentium is around 12-13 micro seconds in
the plain GNU g++ implementation, which we reduced to 2.1 micro seconds
by modifying the runtime library, including unwinding the stack in one
phase, and caching information on exception paths. In contrast the cost
of a trivial printk operation -- printk("Error\n") -- is 18 micro
seconds."

Sara' il caso di provare?

http://netlab.ru.is/exception/LinuxCXX.shtml

bye,
Alb.


Other related posts:

  • » [relug] C++ in the Linux Kernel