summaryrefslogtreecommitdiff
path: root/udev/lib
AgeCommit message (Collapse)Author
2009-06-08libudev: add comments to libudev.hKay Sievers
2009-06-08udevd: print error if worker dies unexpectedlyKay Sievers
2009-06-07libudev: enumerate - allow multiple keys with the same nameKay Sievers
2009-06-06fix signed/unsigned warningKay Sievers
2009-06-05udevd: use enum instead of char in struct declarationKay Sievers
2009-06-04udevd: convert to event worker processesKay Sievers
Event processes now get re-used after they handled an event. This reduces pressure on the CPU significantly because cloned event processes no longer cause page faults in the main daemon. After the events have settled, the no longer needed worker processes get killed.
2009-06-01str[sp]cpyl: add __attribute__ ((sentinel))Kay Sievers
2009-05-28udevd: queue-export - fix crashAlan Jenkins
The math in skip_to() was the wrong way round and allocated a variable size array on the stack with a massively negative size. Signed-off-by: Alan Jenkins <alan-jenkins@tuffmail.co.uk>
2009-05-21udevd: implement a more efficient queue file formatAlan Jenkins
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-21fix location of database filesKay Sievers
2009-05-20require key names in uppercaseKay Sievers
Drop pretty expensive case-insensitive matching, and key names in mixed or lowercase are not supported anyway.
2009-05-20use openat(), unlinkat(), fstatat()Kay Sievers
2009-05-20use more efficient string copyingKay Sievers
2009-05-04remove all PHYSDEVPATH handling and warning aboutKay Sievers
2009-05-04handle devtmpfs nodesKay Sievers
UDev follows the kernel given name, and re-uses the kernel created device node. If the kernel and spcecified udev rules disagree, the udev specified node node is created and the kernel-created on is deleted.
2009-04-26drop "extern" keyword from non-static functionKay Sievers
2009-04-23libudev: monitor - export filter_update()Kay Sievers
2009-04-23libudev: queue - clarify commentsKay Sievers
2009-04-23libudev: queue - fix get_seqnum_is_finished()Kay Sievers
On Thu, Apr 23, 2009 at 11:39, Alan Jenkins <alan-jenkins@tuffmail.co.uk> wrote: > I'm puzzled by this function: > > /* if we have not seen this seqnum, check if it is/was already queued */ > if (seqnum < udev_queue->last_seen_udev_seqnum) { > udev_queue_get_udev_seqnum(udev_queue); > if (seqnum < udev_queue->last_seen_udev_seqnum) > > Shouldn't the test be (seqnum > udev_queue->last_seen_udev_seqnum) ?
2009-04-23libudev: monitor - add udev_monitor_filter_removeKay Sievers
2009-04-23libudev: monitor - do not filter messages with wrong magicKay Sievers
2009-04-23libudev: monitor - switch to filter_add_match_subsystem_devtype()Kay Sievers
2009-04-22libudev: monitor - use simpler hashKay Sievers
2009-04-22update TODOKay Sievers
2009-04-22libudev: monitor - add client socket filter for subsystem valueKay Sievers
Messages send back by the udev daemon to the netlink socket are multiplexed by the kernel and delivered to multiple clients. The clients can upload a socket filter to let the kernel drop messages not belonging to a certain subsystem. This prevent needless wakeups and message processing for users who are only interested in a subset of available events. Recent kernels allow untrusted users to listen to the netlink messages. The messages send by the udev daemon are versioned, to prevent any custom software reading them without libudev. The message wire format may change with any udev version update.
2009-04-19udevd: at startup create /dev/null, /dev/console, /dev/kmsgKay Sievers
2009-04-18test-libudev: update monitor sourceKay Sievers
2009-04-16libudev: monitor - clarify socket handling documentationKay Sievers
2009-04-15libudev: path_encode - always return 0 if encoded string does not fit into sizeKay Sievers
2009-04-08libudev: monitor - ignore messages from unusual sourcesScott James Remnant
For added protection, ignore any unicast message received on the netlink socket or any multicast message on the kernel group not received from the kernel. Signed-off-by: Scott James Remnant <scott@ubuntu.com>
2009-04-08libudev: monitor - unify socket message handlingKay Sievers
2009-04-08path_encode: fix max length calculationKay Sievers
Sebastian Krahmer wrote: > it should reserve 4 times not 3 times len :)
2009-04-06avoid leaking netlink socket fd to external programsAlan Jenkins
The netlink socket is now used by udev event processes. We should take care not to pass it to the programs they execute. This is the same way the inotify fd was handled. Signed-off-by: Alan Jenkins <alan-jenkins@tuffmail.co.uk>
2009-03-29"UDEV_MONITOR_KERNEL/UDEV" -> "kernel/udev"Kay Sievers
2009-03-29send monitor events back to netlink socketKay Sievers
Instead of of our own private monitor socket, we send the processed event back to our netlink socket, to the multicast group 2 -- so any number of users can listen to udev events, just like they can listen to kernel emitted events on group 1.
2009-03-26libudev: GPL -> LGPLKay Sievers
2009-03-18udevadm: test - handling trailing '/' in devpathKay Sievers
On Wed, Mar 18, 2009 at 16:00, Matthias Schwarzott <zzam@gentoo.org> wrote: found out how the error occurs: It is a difference between A. udevadm test /sys/class/mem/null/ and B. udevadm test /sys/class/mem/null Case A was the case that showed the error behaviour. It seems udevadm is confused by the trailing slash. This behaviour seems to be there since ages.
2009-03-12udevadm: settle - synchronise with the udev daemonScott James Remnant
There's still a slight race condition when using udevadm settle, if the udev daemon has a pending inotify event but hasn't yet generated the "change" uevent for it, the kernel and udev sequence numbers will match and settle will exit. Now udevadm settle will send a control message to udevd, which will respond by sending SIGUSR1 back to the waiting udevadm settle once it has completed the main loop iteration in which it received the control message. If there were no pending inotify events, this will simply wake up the udev daemon and allow settle to continue. If there are pending inotify events, they are handled first in the main loop so when settle is continued they will have been turned into uevents and the kernel sequence number will have been incremented. Since the inotify event is pending for udevd when the close() system call returns (it's queued as part of the kernel handling for that system call), and since the kernel sequence number is incremented by writing to the uevent file (as udevd does), this solves the race. When the settle continues, if there were pending inotify events that udevd had not read, they are now pending uevents which settle can wait for. Signed-off-by: Scott James Remnant <scott@ubuntu.com>
2009-03-11libudev: ctrl - return error after sending ctrl messageKay Sievers
2009-03-04libudev: queue - use lstat() to check existence of symlinkKay Sievers
2009-02-23Allow watch handle to be stored in the udevdb.Scott James Remnant
2009-01-14libudev: use 4096 bytes buffer for attribute readingKay Sievers
2009-01-06libudev: test - add udev_device_get_property_value()Kay Sievers
2009-01-06libudev: device - add udev_device_get_property_value()Kay Sievers
2009-01-03libudev: subsytem -> subsystemKay Sievers
2009-01-03libudev: device - remove udev_device_get_parent_with_subsystemMarcel Holtmann
2009-01-03libudev: device - lookup subsystem and devtype togetherMarcel Holtmann
2009-01-03libudev: device - read "uevent" only if info is not already loadedKay Sievers
2009-01-02libudev: device - add devtype supportMarcel Holtmann
2008-12-29libudev: enumerate - add lookup by propertyKay Sievers