Function report |
Source Code:kernel\kmod.c |
Create Date:2022-07-28 09:34:49 |
Last Modify:2020-03-12 14:18:49 | Copyright©Brick |
home page | Tree |
Annotation kernel can get tool activity | Download SCCT | Chinese |
Name:__request_module - try to load a kernel module*@wait: wait (or not) for the operation to complete*@fmt: printf style format string for the name of the module*@...: arguments as specified in the format string
Proto:int __request_module(bool wait, const char *fmt, ...)
Type:int
Parameter:
Type | Parameter | Name |
---|---|---|
bool | wait | |
const char * | fmt |
137 | WARN_ON_ONCE(wait && rrent_is_async - is %current an async worker task?* Returns %true if %current is an async worker task.) |
139 | If Not modprobe_path is set via /proc/sys.[0] Then Return 0 |
145 | If ret >= MODULE_NAME_LEN Then Return -ENAMETOOLONG |
152 | If atomic_dec_if_positive( & kmod_concurrent_max) < 0 Then |
153 | pr_warn_ratelimited("request_module: kmod_concurrent_max (%u) close to 0 (max_modprobes: %u), for module %s, throttling...", atomic_read( & kmod_concurrent_max), Assuming:* threads = div64_u64((u64) totalram_pages * (u64) PAGE_SIZE,* (u64) THREAD_SIZE * 8UL);* If you need less than 50 threads would mean we're dealing with systems* smaller than 3200 pages, module_name) |
159 | If Not ret Then |
162 | Return -ETIME |
164 | pr_warn_ratelimited("request_module: sigkill sent for modprobe %s, giving up", module_name) |
165 | Return ret |
171 | ret = call_modprobe(module_name, wait ? wait for the process to complete : wait for the exec, but not the process ) |
173 | atomic_inc( & kmod_concurrent_max) |
176 | Return ret |
Source code conversion tool public plug-in interface | X |
---|---|
Support c/c++/esqlc/java Oracle/Informix/Mysql Plug-in can realize: logical Report Code generation and batch code conversion |