Function report

Linux Kernel

v5.5.9

Brick Technologies Co., Ltd

Source Code:kernel\workqueue.c Create Date:2022-07-28 09:27:58
Last Modify:2020-03-12 14:18:49 Copyright©Brick
home page Tree
Annotation kernel can get tool activityDownload SCCTChinese

Name:show_pwq

Proto:static void show_pwq(struct pool_workqueue *pwq)

Type:void

Parameter:

TypeParameterName
struct pool_workqueue *pwq
4664  pool = I: the associated pool
4667  bool has_in_flight = TSC's on different sockets may be reset asynchronously.* This may cause the TSC ADJUST value on socket 0 to be NOT 0., has_pending = false
4670  pr_info(" pwq %d:", I: pool ID )
4671  pr_cont_pool_info(pool)
4673  Like KERN_CONT, pr_cont() should only be used when continuing* a line with no newline ('\n') enclosed. Otherwise it defaults* back to KERN_DEFAULT.(" active=%d/%d refcnt=%d%s\n", L: nr of active works , L: max active works , L: reference count , !list_empty - tests whether a list is empty*@head: the list to test. ? " MAYDAY" : "")
4678  If L: current_work's pwq == pwq Then
4679  has_in_flight = true
4680  Break
4683  If has_in_flight Then
4684  bool comma = false
4686  pr_info(" in-flight:")
4688  If L: current_work's pwq != pwq Then Continue
4691  Like KERN_CONT, pr_cont() should only be used when continuing* a line with no newline ('\n') enclosed. Otherwise it defaults* back to KERN_DEFAULT.("%s %d%s:%ps", comma ? "," : "", task_pid_nr(I: worker task ), I: the workqueue to rescue ? "(RESCUER)" : "", L: current_work's fn )
4695  list_for_each_entry - iterate over list of given type*@pos: the type * to use as a loop cursor.*@head: the head for your list.*@member: the name of the list_head within the struct.(work, & L: scheduled works , entry)
4696  pr_cont_work(TSC's on different sockets may be reset asynchronously.* This may cause the TSC ADJUST value on socket 0 to be NOT 0., work)
4697  comma = true
4699  Like KERN_CONT, pr_cont() should only be used when continuing* a line with no newline ('\n') enclosed. Otherwise it defaults* back to KERN_DEFAULT.("\n")
4703  If get_work_pwq(work) == pwq Then
4704  has_pending = true
4705  Break
4708  If has_pending Then
4709  bool comma = false
4711  pr_info(" pending:")
4713  If get_work_pwq(work) != pwq Then Continue
4716  pr_cont_work(comma, work)
4717  comma = Not (The first word is the work queue pointer and the flags rolled into* one(work) & WORK_STRUCT_LINKED)
4719  Like KERN_CONT, pr_cont() should only be used when continuing* a line with no newline ('\n') enclosed. Otherwise it defaults* back to KERN_DEFAULT.("\n")
4722  If Not list_empty - tests whether a list is empty*@head: the list to test. Then
4723  bool comma = false
4725  pr_info(" delayed:")
4727  pr_cont_work(comma, work)
4728  comma = Not (The first word is the work queue pointer and the flags rolled into* one(work) & WORK_STRUCT_LINKED)
4730  Like KERN_CONT, pr_cont() should only be used when continuing* a line with no newline ('\n') enclosed. Otherwise it defaults* back to KERN_DEFAULT.("\n")
Caller
NameDescribe
destroy_workqueuedestroy_workqueue - safely terminate a workqueue*@wq: target workqueue* Safely destroy a workqueue. All work currently pending will be done first.
show_workqueue_stateshow_workqueue_state - dump workqueue state* Called from a sysrq handler or try_to_freeze_tasks() and prints out* all busy workqueues and pools.