Between udev_monitor_enable_receiving() and the start of g_main_loop, a lot of udev events accumulate, and G_IO_ERR occurs in udev.
In vim3 target, many udev events occur when booting.
========================================================
KERNEL[3947.849435] add /kernel/slab/:atA-0000192/cgroup/dentry(660:storaged.service) (cgroup)
KERNEL[3947.849544] add /kernel/slab/inode_cache/cgroup/inode_cache(660:storaged.service) (cgroup)
KERNEL[3947.851730] add /kernel/slab/sock_inode_cache/cgroup/sock_inode_cache(660:storaged.service) (cgroup)
KERNEL[3947.851822] add /kernel/slab/:t-0000256/cgroup/kmalloc-256(660:storaged.service) (cgroup)
KERNEL[3947.851964] add /kernel/slab/:t-0000512/cgroup/kmalloc-512(660:storaged.service) (cgroup)
KERNEL[3947.852916] add /kernel/slab/:tA-0000192/cgroup/cred_jar(660:storaged.service) (cgroup)
KERNEL[3947.852971] add /kernel/slab/:t-0000128/cgroup/kmalloc-128(660:storaged.service) (cgroup)
KERNEL[3947.853031] add /kernel/slab/proc_inode_cache/cgroup/proc_inode_cache(660:storaged.service) (cgroup)
KERNEL[3947.853760] add /kernel/slab/:tA-0000896/cgroup/mm_struct(660:storaged.service) (cgroup)
KERNEL[3947.853807] add /kernel/slab/:tA-0000176/cgroup/vm_area_struct(660:storaged.service) (cgroup)
KERNEL[3947.853831] add /kernel/slab/:tA-0000064/cgroup/anon_vma_chain(660:storaged.service) (cgroup)
KERNEL[3947.853848] add /kernel/slab/anon_vma/cgroup/anon_vma(660:storaged.service) (cgroup)
==============================================================
Default value of udev buffer: /proc/sys/net/core/rmem_default (212992 byte on vim3 target)
Change-Id: I810a4f872b23e0f4b8e3ed8b68cdb5915ce1b0a3
#include "notifier.h"
#include "file-helper.h"
+#define UDEV_MONITOR_BUFFER_SIZE (512 * 1024)
+
struct cpu_hotplug {
struct udev *udev;
struct udev_monitor *mon;
return -1;
}
+ if (udev_monitor_set_receive_buffer_size(ch.mon, UDEV_MONITOR_BUFFER_SIZE) < 0) {
+ _E("cpu-hotplug: change monitor buffer size failed");
+ ret = -1;
+ goto monitor_failed;
+ }
+
if (udev_monitor_filter_add_match_subsystem_devtype(ch.mon, "cpu", NULL) < 0) {
_E("cpu-hotplug: creating monitor add match subsystem failed");
ret = -1;