[PATCH 2/4] xserver: limit the kernel subsystems we look for devices in

Peter Hutterer peter.hutterer at who-t.net
Wed Jul 20 16:40:55 PDT 2011


On Wed, Jul 20, 2011 at 05:52:16AM -0700, Dan Nicholson wrote:
> On Mon, Jul 18, 2011 at 12:17 PM, Lennart Poettering
> <lennart at poettering.net> wrote:
> > Don't enumerate/monitor all devices of the system (since that can be
> > quite a few), but limit our search to devices from the "input"
> > subsystem, as well as the "tty" subsystem (to cover Wacom tablets).
> >
> > This should make X start up a bit faster and reduce the number of
> > unnecessary wake-ups of the X server.
> > ---
> >  config/udev.c |    7 +++++++
> >  1 files changed, 7 insertions(+), 0 deletions(-)
> >
> > diff --git a/config/udev.c b/config/udev.c
> > index 5ac52a1..0763cc9 100644
> > --- a/config/udev.c
> > +++ b/config/udev.c
> > @@ -281,6 +281,9 @@ config_udev_init(void)
> >     if (!udev_monitor)
> >         return 0;
> >
> > +    udev_monitor_filter_add_match_subsystem_devtype(udev_monitor, "input", NULL);
> > +    udev_monitor_filter_add_match_subsystem_devtype(udev_monitor, "tty", NULL); /* For Wacom serial devices */
> > +
> >     if (udev_monitor_enable_receiving(udev_monitor)) {
> >         ErrorF("config/udev: failed to bind the udev monitor\n");
> >         return 0;
> > @@ -289,6 +292,10 @@ config_udev_init(void)
> >     enumerate = udev_enumerate_new(udev);
> >     if (!enumerate)
> >         return 0;
> > +
> > +    udev_enumerate_add_match_subsystem(enumerate, "input");
> > +    udev_enumerate_add_match_subsystem(enumerate, "tty");
> > +
> >     udev_enumerate_scan_devices(enumerate);
> >     devices = udev_enumerate_get_list_entry(enumerate);
> >     udev_list_entry_foreach(device, devices) {
> 
> Last time this came up, we were a little uneasy about limiting the
> subsystems. I guess this should work for devices we care about, and
> any future input devices should fall under the input subsystem (I
> hope). One thing we could use help on in upstream udev is marking the
> appropriate serial devices with ID_INPUT* in
> 60-persistent-input.rules. I'm cc'ing Thomas since he was the one who
> originally requested that we not just filter to input.

At this point, all input devices that I've seen* are either supported by the
kernel or are legacy serial devices that don't have a kernel driver (yet).
I think we'll be fine filtering for those two only.

Cheers,
  Peter

* ignoring proprietary drivers that do who-knows-what


More information about the xorg-devel mailing list