1
0
mirror of https://github.com/systemd/systemd.git synced 2024-11-05 23:51:28 +03:00
systemd/udev/lib
Alan Jenkins f503f6b22f udevd: implement a more efficient queue file format
Directory lookups show up in profiling. The queue files are responsible
for a large proportion of file-related system calls in udev coldplug.

Instead of creating a file for each event, append their details to a
log file.  The file is periodically rebuilt (garbage-collected) to
prevent it from growing indefinitely.

This single queue file replaces both the queue directory and the
uevent_seqnum file. On desktop systems the file tends not to grow
beyond one page. So it should also save a small amount of memory in
tmpfs.

Tests on a running EeePC indicate average savings of 5% *udevd* cpu time
as measured by oprofile. __link_path_walk is reduced from 1.5% to
1.3%. It is not completely clear where the rest of the gains come from.

In tests running ~400 events, the queue file is rebuilt about 5 times.

Signed-off-by: Alan Jenkins <alan-jenkins@tuffmail.co.uk>
2009-05-21 22:22:37 +02:00
..
.gitignore libudev: add library to access udev information 2008-08-27 17:11:58 +02:00
exported_symbols udevd: implement a more efficient queue file format 2009-05-21 22:22:37 +02:00
libudev-ctrl.c use more efficient string copying 2009-05-20 17:57:52 +02:00
libudev-device-db-write.c fix location of database files 2009-05-21 01:44:45 +02:00
libudev-device.c fix location of database files 2009-05-21 01:44:45 +02:00
libudev-enumerate.c use more efficient string copying 2009-05-20 17:57:52 +02:00
libudev-list.c drop "extern" keyword from non-static function 2009-04-26 13:59:39 +02:00
libudev-monitor.c use more efficient string copying 2009-05-20 17:57:52 +02:00
libudev-private.h udevd: implement a more efficient queue file format 2009-05-21 22:22:37 +02:00
libudev-queue-export.c udevd: implement a more efficient queue file format 2009-05-21 22:22:37 +02:00
libudev-queue.c udevd: implement a more efficient queue file format 2009-05-21 22:22:37 +02:00
libudev-util.c require key names in uppercase 2009-05-20 23:45:32 +02:00
libudev.c require key names in uppercase 2009-05-20 23:45:32 +02:00
libudev.h udevd: implement a more efficient queue file format 2009-05-21 22:22:37 +02:00
libudev.pc.in libudev: libudev.pc remove selinux 2008-10-06 12:18:55 +02:00
Makefile.am libudev: do not include ctrl in libudev.so 2008-10-15 16:54:06 +02:00
test-libudev.c libudev: monitor - switch to filter_add_match_subsystem_devtype() 2009-04-23 03:24:38 +02:00