Is there any performance difference between udev and evdev in xorg?

Alexey Dokuchaev danfe at freebsd.org
Wed Sep 16 07:37:31 UTC 2020


On Wed, Sep 16, 2020 at 08:41:28AM +0200, Niclas Zeising wrote:
> On 2020-09-16 06:01, Alexey Dokuchaev wrote:
> > On Tue, Sep 15, 2020 at 10:55:31PM -0400, Aryeh Friedman wrote:
> >> What if any is the performance difference between udev and evdev when
> >> configuring xorg?  Also do I need to use one or the other consistently
> >> or can I intermix them?
> > 
> > If you don't need them (e.g. because this is desktop system without
> > fancy input devices), you'd better off with disabling both of them
> > altogether and use good old traditional way, that is, simply install
> > xf86-input-{keyboard,mouse} and let X.org handle those peripherals.
> > 
> > Yes, you would still be able to plug and unplug your USB mice and
> > they will be detected and working as expected.
> > 
> > TL;DR: DEVD/UDEV support is overrated and usually not needed at all.
> 
> This is bad advice.

OK, let's see why is it bad. :-)

> The DEVD support in xorg-server might go away, since it is a FreeBSD
> only solution and the udev/evdev is similar to what is used on Linux.

Does this imply that DEVD support in X.org is technically inferior to
udev/evdev, or it might get deprecated just because they prefer Linux
way, regardless of the actual design and implementation quality?  Kind
of tangentially related question, but this might help to foresee what
to expect from future X.org development.

> If you are using Wayland, it is also the only way to use input devices.

Wayland is overrated and unneeded as well.  Plus, we're discussing X11
here and X.org server in particular, how's that even relevant?

> If you are using the default configuration of xorg on FreeBSD 12.1 or
> later, using udev is the default.  This means using xf86-input-libinput
> as the input device driver in X, and not xf86-input-{keyboard,mouse}.
> This gives much better support for things like synaptics touchpads and
> similar devices.

Like I've said initially, these might come handy, but for "desktop system
without fancy input devices", what's the point of bringing another layer
of abstraction (xf86-input-libinput) rather then let X.org talk to device
drivers drivers directly and not having to deal with evdev/libinput bugs,
tinker with sysctls (kern.evdev.rcpt_mask), etc.?

> You can configure such devices either by adding X configuration snippets
> to /usr/local/etc/X11/xorg.conf.d/ or by using xinput on the command line

Right, and with the old way, device configuration snippets are not needed.
Just that simple.  So, the advice does not look that bad after all. :-)

TL;DR: if there's a simpler solution/approach which is sufficient for one's
needs, e.g. for simple three-button mouse and pc104 keyboard, just dump the
extra xf86-input-libinput bloat and stick to old, well-tested, solid code
which just works(tm).

./danfe


More information about the freebsd-x11 mailing list