调用者| 名称 | 描述 |
| threadfunc | |
| do_boot_cpu | NOTE - on most systems this is a PHYSICAL apic ID, but on multiquad* (ie clustered apic addressing mode), this is a LOGICAL apic ID.* Returns zero if CPU booted OK, else error code from* ->wakeup_secondary_cpu. |
| kvm_async_pf_task_wait | @interrupt_kernel: Is this called from a routine which interrupts the kernel* (other than user space)? |
| do_wait | |
| __request_region | __request_region - create a new busy resource region*@parent: parent resource descriptor*@start: resource start address*@n: resource region size*@name: reserving caller's ID string*@flags: IO resource flags |
| sys_pause | |
| sigsuspend | |
| usermodehelper_read_trylock | |
| worker_thread | |
| rescuer_thread | scuer_thread - the rescuer thread function*@__rescuer: self* Workqueue rescuer thread function |
| __cancel_work_timer | |
| __kthread_parkme | |
| kthread | |
| kthreadd | |
| kthread_worker_fn | kthread_worker_fn - kthread function to process kthread_worker*@worker_ptr: pointer to initialized kthread_worker* This function implements the main cycle of kthread worker. It processes* work_list until it is stopped with kthread_stop() |
| smpboot_thread_fn | smpboot_thread_fn - percpu hotplug thread loop function*@data: thread data pointer* Checks for thread stop and park conditions. Calls the necessary* setup, cleanup, park and unpark functions for the registered* thread. |
| schedule_preempt_disabled | schedule_preempt_disabled - called with preemption disabled* Returns with preemption disabled. Note: preempt_count must be 1 |
| do_sched_yield | sys_sched_yield - yield the current processor to other threads.* This function yields the current CPU to other tasks. If there are no* other threads running on this CPU then this function will return.* Return: 0. |
| yield_to | yield_to - yield the current processor to another thread in* your thread group, or accelerate that thread toward the* processor it's on |
| io_schedule | |
| do_wait_intr | Note! These two wait functions are entered with the* case), so there is no race with testing the wakeup* condition in the caller before they add the wait* entry to the wake queue. |
| do_wait_intr_irq | |
| bit_wait | |
| rwsem_down_read_slowpath | Wait for the read lock to be granted |
| rwsem_down_write_slowpath | Wait until we successfully acquire the write lock |
| __rt_mutex_slowlock | __rt_mutex_slowlock() - Perform the wait-wake-try-to-take loop*@lock: the rt_mutex to take*@state: the state the task should block in (TASK_INTERRUPTIBLE* or TASK_UNINTERRUPTIBLE)*@timeout: the pre-initialized and started timer, or NULL for none*@waiter: |
| rt_mutex_handle_deadlock | |
| thaw_processes | |
| thaw_kernel_threads | |
| irq_wait_for_interrupt | |
| rcu_torture_fwd_prog_cond_resched | Give the scheduler a chance, even on nohz_full CPUs. |
| __refrigerator | Refrigerator is place where frozen processes are stored :-). |
| schedule_timeout | schedule_timeout - sleep until timeout*@timeout: timeout value in jiffies* Make the current task sleep until @timeout jiffies have* elapsed |
| schedule_hrtimeout_range_clock | schedule_hrtimeout_range_clock - sleep until timeout*@expires: timeout value (ktime_t)*@delta: slack in expires timeout (ktime_t)*@mode: timer mode*@clock_id: timer clock to be used |
| do_cpu_nanosleep | |
| cgroup_lock_and_drain_offline | group_lock_and_drain_offline - lock cgroup_mutex and drain offlined csses*@cgrp: root of the target subtree* Because css offlining is asynchronous, userland may try to re-enable a* controller while the previous css is still around. This function grabs |
| zap_pid_ns_processes | |
| prune_tree_thread | That gets run when evict_chunk() ends up needing to kill audit_tree.* Runs from a separate thread. |
| ring_buffer_wait | g_buffer_wait - wait for input to the ring buffer*@buffer: buffer to wait on*@cpu: the cpu buffer to wait on*@full: wait until a full page is available, if @cpu != RING_BUFFER_ALL_CPUS* If @cpu == RING_BUFFER_ALL_CPUS then the task will wake up as soon |
| ring_buffer_consumer | |
| wait_to_die | |
| ring_buffer_consumer_thread | |
| cpu_map_kthread_run | |
| mem_cgroup_wait_acct_move | |
| mem_cgroup_oom_synchronize | mem_cgroup_oom_synchronize - complete memcg OOM handling*@handle: actually kill/wait or just clean up the OOM state* This has to be called at the end of a page fault if the memcg OOM* handler was enabled |
| do_msgrcv | |
| do_semtimedop | |
| de_thread | This function makes sure the current process has its own signal table,* so that flush_signal_handlers can later reset the handlers without* disturbing other processes. (Other processes might share the signal* table via the CLONE_SIGHAND option to clone().) |
| pipe_wait | Drop the inode semaphore and wait for a pipe event, atomically |
| d_wait_lookup | |
| __wait_on_freeing_inode | |
| __inode_dio_wait | Direct i/o helper functions |
| inode_sleep_on_writeback | Sleep until I_SYNC is cleared. This function must be called with i_lock* held and drops it. It is aimed for callers not holding any inode reference* so once i_lock is dropped, inode can go away. |
| pin_kill | |
| bd_prepare_to_claim | d_prepare_to_claim - prepare to claim a block device*@bdev: block device of interest*@whole: the whole device containing @bdev, may equal @bdev*@holder: holder trying to claim @bdev* Prepare to claim @bdev |
| signalfd_dequeue | |
| eventfd_read | |
| eventfd_write | |
| handle_userfault | The locking rules involved in returning VM_FAULT_RETRY depending on* FAULT_FLAG_ALLOW_RETRY, FAULT_FLAG_RETRY_NOWAIT and* FAULT_FLAG_KILLABLE are not straightforward |
| userfaultfd_event_wait_completion | |
| userfaultfd_ctx_read | |
| io_sq_thread | |
| io_cqring_wait | Wait until events become available, if we don't already have some. The* application must reap them itself, as they reside on the shared cq ring. |
| io_uring_cancel_files | |
| io_worker_exit | |
| get_unlocked_entry | Look up entry in page cache, wait for it to become unlocked if it* is a DAX entry and return it. The caller must subsequently call* put_unlocked_entry() if it did not lock the entry or dax_unlock_entry()* if it did |
| wait_entry_unlocked | The only thing keeping the address space around is the i_pages lock* (it's cycled in clear_inode() after removing the entries from i_pages)* After we call xas_unlock_irq(), we cannot touch xas->xa. |
| dqget | Get reference to dquot* Locking is slightly tricky here. We are guarded from parallel quotaoff()* destroying our dquot by:* a) checking for quota flags under dq_list_lock and* b) getting a reference to dquot before we release dq_list_lock |
| klist_remove | 减少节点的引用计数并等待它移除 |
| do_exit | |
| kswapd_try_to_sleep | |
| kernel_signal_stop | |
| do_msgsnd | |