如果启用了CONFIG_UEVENT_HELPER,那么,产生uevent的时候,内核会在[这里]运行新的uevent helper进程。也就是说,每次上报uevent,都会创建新的进程。 每次如果我们是在编译时静态指定uevent helper的话,在开机的时候,因为内核设备比较多,产生很多uevent,就会一下子创建很多进程,占用大量内存。如果内存不够,就有导致OOM的风...
117.1 设置uevent_helper 在114.2小节的第十部分中进行了定义,具体内容如下所示: #ifdef CONFIG_UEVENT_HELPER /* call uevent_helper, usually only enabled during early boot */ if (uevent_helper[0] && !kobj_usermode_filter(kobj)) { struct subprocess_info *info; retval = add_uevent_var(env, "...
6.设置uevent_helper - 北京迅为电子(教程分享版)于20231212发布在抖音,已经收获了241个喜欢,来抖音,记录美好生活!
本帖重点讨论后半段的if (uevent_helper[0] && !kobj_usermode_filter(kobj))代码,这里的核心调用是call_usermodehelper,这个函数最有意思的地方就在于在内核空间调用用户空间的程序,它的详细实现机制在书中已经讲得很多,这里就不再赘述了。call_usermodehelper在kobject_uevent_env函数中要调用的用户空间程序由ue...
uevent_helper方法通过调用call_usermodehelper来达到从内核空间运行一个用户空间进程的目的,用户空间进程的二进制文件的路径由ueventhelper提供,该变量是一字符数组,在内核源码中的定义为: #ifdef CONFIG_UEVENT_HELPERchar uevent_helper[UEVENT_HELPER_PATH_LEN] = CONFIG_UEVENT_HELPER_PATH;#endif ...