Function report

Linux Kernel

v5.5.9

Brick Technologies Co., Ltd

Source Code:kernel\kprobes.c Create Date:2022-07-28 11:35:05
Last Modify:2022-05-22 18:14:58 Copyright©Brick
home page Tree
Annotation kernel can get tool activityDownload SCCTChinese

Name:kprobe_optimizer

Proto:static void kprobe_optimizer(struct work_struct *work)

Type:void

Parameter:

TypeParameterName
struct work_struct *work
557  mutex_lock( & This protects kprobe_table and optimizing_list )
558  cpus_read_lock()
559  mutex_lock( & mutex protecting text section modification (dynamic code patching).* some users need to sleep (allocating memory...) while they hold this lock.* Note: Also protects SMP-alternatives modification on x86.)
561  mutex_lock( & Mutex protects:* 1) List of modules (also safely readable with preempt_disable),* 2) module_use links,* 3) module_addr_min/module_addr_max.* (delete and add uses RCU list operations). )
567  Unoptimize (replace a jump with a breakpoint and remove the breakpoint* if need) kprobes listed on unoptimizing_list.
578  synchronize_rcu_tasks()
581  Optimize (replace a breakpoint with a jump) kprobes listed on* optimizing_list.
584  Reclaim all kprobes on the free_list
586  mutex_unlock - release the mutex*@lock: the mutex to be released* Unlock a mutex that has been locked by this task previously.* This function must not be used in interrupt context. Unlocking* of a not locked mutex is not allowed.
587  mutex_unlock - release the mutex*@lock: the mutex to be released* Unlock a mutex that has been locked by this task previously.* This function must not be used in interrupt context. Unlocking* of a not locked mutex is not allowed.
588  cpus_read_unlock()
589  mutex_unlock - release the mutex*@lock: the mutex to be released* Unlock a mutex that has been locked by this task previously.* This function must not be used in interrupt context. Unlocking* of a not locked mutex is not allowed.
592  If Not list_empty - tests whether a list is empty*@head: the list to test. || Not list_empty - tests whether a list is empty*@head: the list to test. Then Start optimizer after OPTIMIZE_DELAY passed