函数逻辑报告

Linux Kernel

v5.5.9

Brick Technologies Co., Ltd

Source Code:kernel\sched\core.c Create Date:2022-07-27 10:36:20
Last Modify:2022-05-22 13:40:38 Copyright©Brick
首页 函数Tree
注解内核,赢得工具下载SCCTEnglish

函数名称:唤醒中断线程

函数原型:int wake_up_process(struct task_struct *p)

返回类型:int

参数:

类型参数名称
struct task_struct *p
2669  返回:ry_to_wake_up - wake up a thread*@p: the thread to be awakened*@state: the mask of task states that can be woken*@wake_flags: wake modifier flags (WF_*)* If (@state & @p->state) @p->state = TASK_RUNNING.
调用者
名称描述
rdtgroup_pseudo_lock_createdtgroup_pseudo_lock_create - Create a pseudo-locked region*@rdtgrp: resource group to which pseudo-lock region belongs* Called when a resource group in the pseudo-locksetup mode receives a* valid schemata that should be pseudo-locked
apm_initJust start the APM thread. We do NOT want to do APM BIOS* calls from anything but the APM thread, if for no other reason* than the fact that we don't trust the APM BIOS. This way,* most common APM BIOS problems that lead to protection errors
rcuwait_wake_up
exit_notifySend signals to all our closest relatives so that they know* to properly mourn us..
wakeup_softirqdwe cannot loop indefinitely here to avoid userspace starvation,* but we also don't want to introduce a worst case 1/HZ latency* to the pending events, so lets the scheduler to balance* the softirq load for us.
wake_up_workerwake_up_worker - wake up an idle worker*@pool: worker pool to wake worker from* Wake up the first idle worker of @pool.* CONTEXT:* spin_lock_irq(pool->lock).
wq_worker_sleeping准备休眠的进程
create_workerreate_worker - create a new workqueue worker*@pool: pool the new worker will belong to* Create and start a new worker which is attached to @pool.* CONTEXT:* Might sleep. Does GFP_KERNEL allocations.* Return:* Pointer to the newly created worker.
destroy_workerdestroy_worker - destroy a workqueue worker*@worker: worker to be destroyed* Destroy @worker and adjust @pool stats accordingly. The worker should* be idle.* CONTEXT:* spin_lock_irq(pool->lock).
send_mayday
init_rescuerWorkqueues which may be used during memory reclaim should have a rescuer* to guarantee forward progress.
free_pid
__kthread_create_on_node
kthread_parkkthread_park - park a thread created by kthread_create()
kthread_stop结束线程的运行
__kthread_create_worker
kthread_insert_worksert @work before @pos in @worker
wake_up_q
swake_up_lockedThe thing about the wake_up_state() return value; I think we can ignore it.* If for some reason it would return 0, that means the previously waiting* task is already running, so it will observe condition true (or has already).
sugov_kthread_create
__ww_mutex_dieWait-Die; wake a younger waiter context (when locks held) such that it can* die.* Among waiters with context, only the first one can have other locks acquired* already (ctx->acquired > 0), because __ww_mutex_add_waiter() and
__ww_mutex_woundWound-Wait; wound a younger @hold_ctx if it holds the lock.* Wound the lock holder if there are waiters with older transactions than* the lock holders. Even if multiple waiters may wound the lock holder,* it's sufficient that only one does.
__up
rt_mutex_adjust_prio_chainAdjust the priority chain
__irq_wake_thread
__setup_irq注册中断
rcutorture_booster_init
rcu_wake_cond
rcu_spawn_gp_kthreadSpawn the kthreads that handle RCU's grace periods.
__thaw_task
process_timeout
hrtimer_wakeupSleep related functions:
cpu_timer_fireThe timer is locked, fire it and arrange for its reload.
cgroup_freeze_taskFreeze or unfreeze the task by setting or clearing the JOBCTL_TRAP_FREEZE* jobctl bit.
audit_schedule_prune
proc_dohung_task_timeout_secsProcess updating of timeout sysctl
ring_buffer_producer
ring_buffer_producer_thread
start_kthreadstart_kthread - Kick off the hardware latency sampling/detector kthread* This starts the kernel thread that will sit and sample the CPU timestamp* counter (TSC or similar) and look for potential hardware latencies.
__cpu_map_entry_alloc
__cpu_map_flush
dio_bio_end_ioThe BIO completion handler simply queues the BIO up for the process-context* handler.* During I/O bi_private points at the dio. After I/O, bi_private is used to* implement a singly-linked list of completed BIOs, at dio->bio_list.
io_sq_offload_start
io_worker_release
io_wqe_activate_free_workerCheck head of free list for an available worker. If one isn't available,* caller must wake up the wq manager to create one.
io_wqe_wake_workerWe need a worker. If we find a free one, we're good. If not, and we're* below the max number of workers, wake up the manager to create one.
create_io_worker
io_wq_create
io_wq_worker_wake
coredump_finish
klist_release
pseudo_lock_measure_cyclespseudo_lock_measure_cycles - Trigger latency measure to pseudo-locked region* The measurement of latency to access a pseudo-locked region should be* done from a cpu that is associated with that pseudo-locked region
__exit_signalThis function expects the tasklist_lock write-locked.
blk_wake_io_task
rcu_stall_kick_kthreadsIf too much time has passed in the current grace period, and if* so configured, go kick the relevant kthreads.
rcu_check_gp_kthread_starvationComplain about starvation of grace-period kthread.
rq_qos_wake_function
dio_bio_end_aioAsynchronous IO callback.