DirectFB "Fusion" module inclusion?

From: Niels Roest
Date: Wed Oct 07 2009 - 09:09:08 EST


Hi all.

This is to request some comments about our interest to have our "Fusion" kernel module included in the kernel.
I hope you will let me now if it is feasible, desirable, etcetera.

What is Fusion? Fusion is the low-level layer of DirectFB (www.directfb.org). DirectFB is basically a graphics library that offers hardware acceleration and multi-process cooperation on top of e.g. the frame buffer device.

What does Fusion offer? Fusion takes care of IPC by providing the following primitives: skirmishes (locks), calls (partially via a user-space library handling callback threads), properties and shared memory pools. The main two reasons for us to make a kernel module out of this is: crashing applications will not take down the "DirectFB" system, since resources are handled in the kernel; and debug information/deadlock status is shared via /proc/fusion.

Fusion documentation (fusion.pdf) can be found at http://git.directfb.org/?p=core/linux-fusion.git;a=tree;f=doc;
Fusion source files can be found at the same git location: http://git.directfb.org/?p=core/linux-fusion.git;a=tree

Fusion is implemented as a device driver with an ioctl interface. In our case, Fusion is used together with libfusion.so (LGPL), which abstracts the kernel ioctls away, among other things. DirectFB resides on top of libfusion.so.

We would probably rework Fusion significantly if needed - we want to have the benefit of having Fusion inside kernel mainline, and we hope that it is indeed interesting enough to consider, so let's hear it :)

Greets
Niels

--

.------------------------------------------.
| DirectFB - Hardware accelerated graphics |
| http://www.directfb.org/ |
"------------------------------------------"

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/