Function report |
Source Code:kernel\livepatch\transition.c |
Create Date:2022-07-28 10:32:04 |
| Last Modify:2020-03-12 14:18:49 | Copyright©Brick |
| home page | Tree |
| Annotation kernel can get tool activity | Download SCCT | Chinese |
Name:Try to switch all remaining tasks to the target patch state by walking the* stacks of sleeping tasks and looking for any to-be-patched or* to-be-unpatched functions. If such functions are found, the task can't be* switched yet.
Proto:void klp_try_complete_transition(void)
Type:void
Parameter:Nothing
| 393 | bool complete = true |
| 395 | WARN_ON_ONCE(klp_target_state == ask patch states ) |
| 406 | read_lock( & tasklist_lock) |
| 410 | read_unlock( & tasklist_lock) |
| 415 | get_online_cpus() |
| 416 | for_each_possible_cpu(cpu) |
| 417 | task = dle_task - return the idle task for a given CPU.*@cpu: the processor in question.* Return: The idle task for the CPU @cpu. |
| 418 | If cpu_online(cpu) Then |
| 421 | Else if patch_state != klp_target_state Then |
| 427 | put_online_cpus() |
| 429 | If Not complete Then |
| 430 | If klp_signals_cnt && Not (klp_signals_cnt % SIGNALS_TIMEOUT) Then Sends a fake signal to all non-kthread tasks with TIF_PATCH_PENDING set.* Kthreads with TIF_PATCH_PENDING set are woken up. |
| 432 | klp_signals_cnt++ |
| 441 | Return |
| 445 | patch = klp_transition_patch |
| 453 | If Not enabled Then klp_free_patch_async(patch) |
| 455 | Else if replace Then klp_free_replaced_patches_async(patch) |
| Name | Describe |
|---|---|
| __klp_enable_patch | |
| klp_transition_work_fn | This work can be performed periodically to finish patching or unpatching any* "straggler" tasks which failed to transition in the first attempt. |
| __klp_disable_patch | Sysfs Interface* /sys/kernel/livepatch* /sys/kernel/livepatch/ |
| 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 |