Multi{pointer,touch} & Userspace

Jim Gettys jg at
Wed Oct 29 13:26:00 PDT 2008

On Wed, 2008-10-29 at 21:11 +0100, Florian Echtler wrote:
> Hello Jim,
> > I worry about the use of UDP, at least for networked input devices.
> > Losing some of the event stream (e.g. up events) can be very confusing
> > to applications (not to mention device drivers). Wireless is unreliable;
> > UDP does not guarantee reliability.  Latency with TCP is just as low
> > (and bandwidth comparable) in the face of no packet loss (if TCP_NODELAY
> > is set on the socket).
> You are quite correct there. I simply chose UDP at first because in the
> testing environment, everything runs on a single machine and UDP is the
> fastest and easiest-to-implement cross-language message passing system.
> In fact, all four daemons just expect classes derived from C++ iostream,
> so in the single-machine scenario, you could just put all of them into
> one multithreaded application and have them communicate internally.

Heh.  I don't think we'd ever accept a C++ library dependency for the X

> > I've also been wondering about the relative merit its of an ad-hoc wire
> > format (such as you've defined) for events versus something like XML,
> > where parsers and extensibility is known.  But it's time for me to
> > perform some experiments to understand the performance trade-offs,
> > rather than hand-waving; your existing code trumps my unproven
> > hypothesis, so I better write some code.
> I tried to keep the library core as simple and portable as possible,
> which is why I decided against XML.. not for performance reasons in the
> first place, but rather to keep the dependencies down.

After some quick investigation, I note that libxml2 is even more bloated
than libxml1 was, weighing in at nearly 1.2 megabytes.  expat is much
lighter weighing in at 130K or so.  We'll see....
                            - Jim

Jim Gettys <jg at>
One Laptop Per Child

More information about the xorg mailing list