函数逻辑报告

Linux Kernel

v5.5.9

Brick Technologies Co., Ltd

Source Code:include\linux\list.h Create Date:2022-07-27 06:38:25
Last Modify:2020-03-12 14:18:49 Copyright©Brick
首页 函数Tree
注解内核,赢得工具下载SCCTEnglish

函数名称:添加链表项

函数原型:static inline void list_add_tail(struct list_head *new, struct list_head *head)

返回类型:void

参数:

类型参数名称
struct list_head *new
struct list_head *head
93  在连续链表中插入记录
调用者
名称描述
plist_add添加节点到头上
plist_requeueplist_requeue - Requeue @node at end of same-prio entries
uevent_net_init
kobj_kset_joinadd the kobject to its kset's list
add_tail
klist_add_before当前节点前添加并初始化klist_node
list_sort_test
register_test_dev_kmod
kunit_alloc_and_get_resource
string_stream_vadd
populate_error_injection_listLookup and populate the error_injection_list.* For safety reasons we only allow certain functions to be overridden with* bpf_error_injection, so we need to populate the list of the symbols that have* been marked as safe for overriding.
ddebug_add_moduleAllocate a new ddebug_table for the given module* and add it to the global list.
irq_poll_schedq_poll_sched - Schedule a run of the iopoll handler*@iop: The parent iopoll structure* Description:* Add this irq_poll structure to the pending poll list and trigger the* raise of the blk iopoll softirq.
parman_lsort_item_add
parman_prio_initparman_prio_init - initializes a parman priority chunk*@parman: parman instance*@prio: parman prio structure to be initialized*@prority: desired priority of the chunk* Note: all locking must be provided by the caller
list_test_list_add_tail
list_test_list_del
list_test_list_replace
list_test_list_replace_init
list_test_list_swap
list_test_list_del_init
list_test_list_move
list_test_list_move_tail
list_test_list_bulk_move_tail
list_test_list_is_first
list_test_list_is_last
list_test_list_empty
list_test_list_empty_careful
list_test_list_rotate_left
list_test_list_rotate_to_front
list_test_list_is_singular
list_test_list_cut_position
list_test_list_cut_before
list_test_list_splice
list_test_list_splice_tail
list_test_list_splice_init
list_test_list_splice_tail_init
list_test_list_first_entry
list_test_list_last_entry
list_test_list_first_entry_or_null
list_test_list_next_entry
list_test_list_prev_entry
list_test_list_for_each
list_test_list_for_each_prev
list_test_list_for_each_safe
list_test_list_for_each_prev_safe
list_test_list_for_each_entry
list_test_list_for_each_entry_reverse
save_microcode_patch
update_cache
domain_add_cpudomain_add_cpu - Add a cpu to a resource's domain list.* If an existing domain in the resource r's domain list matches the cpu's* resource id, add the cpu in the domain.* Otherwise, a new domain is allocated and inserted into the right position
rdtgroup_mkdir_monCreate a monitor group under "mon_groups" directory of a control* and monitor group(ctrl_mon). This is a resource group* to monitor a subset of tasks and cpus in its parent ctrl_mon group.
__check_limboCheck the RMIDs that are marked as busy for this domain. If the* reported LLC occupancy is below the threshold clear the busy bit and* decrement the count. If the busy count gets to zero on an RMID, we* free the RMID
add_rmid_to_limbo
free_rmid
dom_data_init
l3_mon_evt_initInitialize the event list for the resource.* Note that MBM events are also part of RDT_RESOURCE_L3 resource* because as per the SDM the total and local memory bandwidth* are enumerated as part of L3 monitoring.
__add_pin_to_irq_nodeThe common case is 1:1 IRQ<->pin mappings. Sometimes there are* shared ISA-space IRQs, so we have to support them. We are super* fast in the common case, and fast for shared ISA-space IRQs.
copy_process创建进程
__send_signal
send_sigqueue
insert_worksert_work - insert a work into a pool*@pwq: pwq @work belongs to*@work: work to insert*@head: insertion point*@extra_flags: extra WORK_STRUCT_* flags to set* Insert @work which belongs to @pwq after @head
worker_attach_to_poolworker_attach_to_pool() - attach a worker to a pool*@worker: worker to be attached*@pool: the target pool* Attach @worker to @pool. Once attached, the %WORKER_UNBOUND flag and* cpu-binding of @worker are kept coordinated with the pool across
send_mayday
rescuer_threadscuer_thread - the rescuer thread function*@__rescuer: self* Workqueue rescuer thread function
flush_workqueuelush_workqueue - ensure that any scheduled work has run to completion.*@wq: workqueue to flush* This function sleeps until all work items which were queued on entry* have finished execution, but it is not livelocked by new incoming ones.
workqueue_apply_unbound_cpumask
__kthread_create_on_node
kthread_insert_worksert @work before @pos in @worker
async_schedule_node_domainasync_schedule_node_domain - NUMA specific version of async_schedule_domain*@func: function to execute asynchronously*@data: data pointer to pass to the function*@node: NUMA node that we want to schedule this on or close to*@domain: the domain
__enqueue_rt_entity
__wake_up_commonThe core wakeup function
__prepare_to_swait
__mutex_add_waiterAdd @waiter to a given location in the lock wait_list and set the* FLAG_WAITERS flag if it's the first waiter.
__down_commonBecause this function is inlined, the 'state' parameter will be* constant, and thus optimised away by the compiler. Likewise the* 'timeout' parameter for the cases without timeouts.
rwsem_down_read_slowpathWait for the read lock to be granted
rwsem_down_write_slowpathWait until we successfully acquire the write lock
init_data_structures_onceInitialize the lock_classes[] array elements, the free_lock_classes list* and also the delayed_free structure.
pm_qos_update_flagspm_qos_update_flags - Update a set of PM QoS flags
alloc_rtree_nodealloc_rtree_node - Allocate a new node and add it to the radix tree.* This function is used to allocate inner nodes as well as the* leave nodes of the radix tree. It also adds the node to the* corresponding linked list passed in by the *list parameter.
create_mem_extentsreate_mem_extents - Create a list of memory extents.*@list: List to put the extents into.*@gfp_mask: Mask to use for memory allocations.* The extents represent contiguous ranges of PFNs.
memory_bm_creatememory_bm_create - Allocate memory for a memory bitmap.
__register_nosave_regiongister_nosave_region - Register a region of unsaveable memory.* Register a range of page frames the contents of which should not be saved* during hibernation (to be used in the early initialization code).
__irq_alloc_domain_generic_chips__irq_alloc_domain_generic_chip - Allocate generic chips for an irq domain*@d: irq domain for which to allocate chips*@irqs_per_chip: Number of interrupts each chip handles (max 32)*@num_ct: Number of irq_chip_type instances associated with this*@name:
irq_setup_generic_chipq_setup_generic_chip - Setup a range of interrupts with a generic chip*@gc: Generic irq chip holding all data*@msk: Bitmask holding the irqs to initialize relative to gc->irq_base*@flags: Flags for initialization*@clr: IRQ_* bits to clear*@set: IRQ_* bits
rcu_torture_freeFree an element to the rcu_tortures pool.
rcu_torture_init
klp_init_func_early
klp_init_object_early
klp_init_patch
hash_bucket_addAdd an entry to a hash bucket
dma_debug_create_entries
collect_timerqueue
css_set_move_taskss_set_move_task - move a task from one css_set to another*@task: task being moved*@from_cset: css_set @task currently belongs to (may be NULL)*@to_cset: new css_set @task is being moved to (may be NULL)*@use_mg_tasks: move to @to_cset->mg_tasks instead
link_css_setlink_css_set - a helper function to link a css_set to a cgroup*@tmp_links: cgrp_cset_link objects allocated by allocate_cgrp_cset_links()*@cset: the css_set to be linked*@cgrp: the destination cgroup
find_css_setd_css_set - return a new css_set with one cgroup updated*@old_cset: the baseline css_set*@cgrp: the cgroup to be updated* Return a new css_set that's equivalent to @old_cset, but with @cgrp* substituted into the appropriate hierarchy.
cgroup_migrate_add_taskgroup_migrate_add_task - add a migration target task to a migration context*@task: target task*@mgctx: target migration context* Add @task, which is a migration target, to @mgctx->tset. This function* becomes noop if @task doesn't need to be migrated
cgroup_migrate_add_srcgroup_migrate_add_src - add a migration source css_set*@src_cset: the source css_set to add*@dst_cgrp: the destination cgroup*@mgctx: migration context* Tasks belonging to @src_cset are about to be migrated to @dst_cgrp
cgroup_migrate_prepare_dstgroup_migrate_prepare_dst - prepare destination css_sets for migration*@mgctx: migration context* Tasks are about to be moved and all the source css_sets have been* preloaded to @mgctx->preloaded_src_csets
cgroup_add_cftypesgroup_add_cftypes - add an array of cftypes to a subsystem*@ss: target cgroup subsystem*@cfts: zero-length name terminated array of cftypes* Register @cfts to @ss
cgroup_initgroup_init - cgroup initialization* Register cgroup filesystem and /proc file, and initialize* any subsystems that didn't request early init.
cgroup_exitgroup_exit - detach cgroup from exiting task*@tsk: pointer to task_struct of exiting process* Description: Detach cgroup from @tsk.
get_cg_rpool_locked
rdmacg_register_devicedmacg_register_device - register rdmacg device to rdma controller
__cpu_stop_queue_work
audit_add_ruleAdd rule to given filterlist if not a duplicate.
audit_alloc_name
llvm_gcov_init
llvm_gcda_emit_function
gcov_info_linkgcov_info_link - link/add profiling data set to the list*@info: profiling data set
gcov_info_dupgcov_info_dup - duplicate profiling data set*@info: profiling data set to duplicate* Return newly allocated duplicate on success, %NULL on error.
kprobe_add_ksym_blacklist
fei_write
tracepoint_module_coming
tracing_log_errracing_log_err - write an error to the tracing error log*@tr: The associated trace array for the error (NULL for top level array)*@loc: A string describing where the error occurred*@cmd: The tracing command that caused the error*@errs: The array of
register_trace_eventgister_trace_event - register output for an event type*@event: the event type to register* Event types are stored in a hash and this hash is used to* find a way to print an event
register_stat_tracer
hold_module_trace_bprintk_format
process_system_preds
dyn_event_register
trace_probe_append
prog_array_map_poke_track
xsk_map_sock_add
bpf_prog_offload_init
bpf_map_offload_map_alloc
__cgroup_bpf_attach__cgroup_bpf_attach() - Attach the program to a cgroup, and* propagate the change to descendants*@cgrp: The cgroup which descendants to traverse*@prog: A program to attach*@type: Type of attach operation*@flags: Option flags
perf_group_attach
perf_group_detach
pinned_sched_in
flexible_sched_in
perf_addr_filter_newAllocate a new address filter
inherit_eventInherit an event from parent task to child task.* Returns:* - valid pointer on success* - NULL for orphaned events* - IS_ERR() on error
toggle_bp_slotAdd/remove the given breakpoint in our constraint table
padata_do_parallelpadata_do_parallel - padata parallelization function*@ps: padatashell*@padata: object to be parallelized*@cb_cpu: pointer to the CPU that the serialization callback function should* run on. If it's not in the serial cpumask of @pinst* (i
padata_reorder
lru_add_page_tailsed by __split_huge_page_refcount()
register_shrinker_prepared
shrink_page_listshrink_page_list() returns the number of reclaimed pages
shutdown_cache
isolate_freepages_blockIsolate free pages onto a private freelist. If @strict is true, will abort* returning 0 on any invalid PFNs or non-free pages inside of the pageblock* (even though it may still end up isolating some pages).
list_lru_add
check_and_migrate_cma_pages
purge_fragmented_blocks
free_pcppages_bulkFrees a number of pages from the PCP lists* Assumes all pages on list are in same zone, and of same order.* count is the number of pages to free.* If the zone was previously in an "all pages pinned" state then look to
rmqueue_bulkObtain a specified number of elements from the buddy allocator, all under* a single hold of the lock, for efficiency. Add them to the supplied list.* Returns the number of new pages which were placed at *list.
add_swap_count_continuationadd_swap_count_continuation - called when a swap count is duplicated* beyond SWAP_MAP_MAX, it allocates a new page and links that to the entry's* page of the original vmalloc'ed swap_map, to hold the continuation count
migrate_page_add
__ksm_enter
cache_grow_end
get_valid_first_slabTry to find non-pfmemalloc slab if needed
free_blockCaller needs to acquire correct kmem_cache_node's list_lock*@list: List of detached free slabs should be freed by caller
__add_partialManagement of partially allocated slabs.
add_page_for_migrationResolves the given address to a struct page, isolates it from the LRU and* puts it to the given pagelist
deferred_split_huge_page
__khugepaged_enter
add_to_killSchedule a process for later kill.* Uses GFP_ATOMIC allocations to avoid potential recursions in the VM.
update_refsUpdate an object's references. object->lock must be held by the caller.
kmemleak_scanScan data sections and all the referenced memory blocks allocated via the* kernel's standard allocators. This function must be called with the* scan_mutex held.
kmemleak_test_initSome very simple testing. This function needs to be extended for* proper testing.
ss_add
do_msgsnd
do_msgrcv
unmerge_queuesmerge_queues - unmerge queues, if possible.*@sma: semaphore array* The function unmerges the wait queues if complex_count is 0.* It must be called prior to dropping the global semaphore array lock.
do_semtimedop
msg_insertAuxiliary functions to manipulate messages' list
mqueue_evict_inode
wq_addAdds current to info->e_wait_q[sr] before element with smaller prio
elv_register
__blk_complete_request
blk_mq_add_to_requeue_list
__blk_mq_insert_req_list
blk_mq_request_bypass_insertShould only be used carefully, when the caller knows we want to* bypass a potential IO scheduler on the target device.
blk_mq_flush_plug_list
blk_add_rq_to_plug
blk_mq_alloc_rqs
disk_add_events
ldm_ldmdb_addldm_ldmdb_add - Adds a raw VBLK entry to the ldmdb database*@data: Raw VBLK to add to the database*@len: Size of the raw VBLK*@ldb: Cache of the database structures* The VBLKs are sorted into categories. Partitions are also sorted by offset.* N
ldm_frag_addldm_frag_add - Add a VBLK fragment to a list*@data: Raw fragment to be added to the list*@size: Size of the raw fragment*@frags: Linked list of VBLK fragments* Fragmented VBLKs may not be consecutive in the database, so they are placed
blkcg_css_alloc
throtl_qnode_add_biohrotl_qnode_add_bio - add a bio to a throtl_qnode and activate it*@bio: bio being added*@qn: qnode to add bio to*@queued: the service_queue->queued[] list @qn belongs to* Add @bio to @qn and put @qn on @queued if it's not already on.
dd_insert_requestadd rq to rbtree and fifo
__bfq_insert_requestrns true if it causes the idle timer to be disabled
bfq_insert_request
add_suspend_info
key_garbage_collectorReaper for unused keys.
key_init内核密钥管理系统初始化
keyring_publish_namePublish the name of a keyring so that it can be found by name (if it has* one and it doesn't begin with a dot).
tomoyo_write_log2moyo_write_log2 - Write an audit log.*@r: Pointer to "struct tomoyo_request_info".*@len: Buffer size needed for @fmt and @args.*@fmt: The printf()'s format string.*@args: va_list structure for @fmt.* Returns nothing.
tomoyo_supervisormoyo_supervisor - Ask for the supervisor's decision
tomoyo_get_namemoyo_get_name - Allocate permanent memory for string data.*@name: The string to store into the permernent memory.* Returns pointer to "struct tomoyo_path_info" on success, NULL otherwise.
aa_unpackaa_unpack - unpack packed binary profile(s) data loaded from user space*@udata: user data copied to kmem (NOT NULL)*@lh: list to place unpacked profiles in a aa_repl_ws*@ns: Returns namespace profile is in if specified else NULL (NOT NULL)* Unpack user
dev_exceptions_copyalled under devcgroup_mutex
add_rules
ima_parse_add_rulema_parse_add_rule - add a rule to ima_policy_rules*@rule - ima measurement policy rule* Avoid locking by allowing just one writer at a time in ima_write_policy()* Returns the length of the rule parsed, an error code on failure
evm_init_config
sget_fcsget_fc - Find or create a superblock*@fc: Filesystem context
sget查找或创建超级块
__register_binfmt
__attach_mnt
commit_treevfsmount lock must be held for write
vfs_create_mountvfs_create_mount - Create a mount for a configured superblock*@fc: The configuration context with the superblock attached* Create a mount to an already configured superblock. If necessary, the* caller should invoke vfs_get_tree() before calling this.
clone_mnt
umount_treemount_lock must be held* namespace_sem must be held for write
copy_tree
open_detached_copy
mnt_set_expirymnt_set_expiry - Put a mount on an expiration list*@mnt: The mount to list.*@expiry_list: The list to add the mount to.
copy_mnt_ns
wb_queue_work
sb_mark_inode_writebackmark an inode as under writeback on the sb
propagate_umountllect all mounts that receive propagation from the mount in @list,* and return these additional mounts in the same list.*@list: the list of mounts to be unmounted.* vfsmount lock must be held for write
fsnotify_add_eventAdd an event to the group notification queue
fanotify_read
ep_ptable_queue_proc
ep_insertMust be called with "mtx" held.
ep_modifyModify the interest event mask by dropping an event if the new mask* has a match in the current file status. Must be called with "mtx" held.
ep_send_events_proc
dup_userfaultfd
userfaultfd_unmap_prep
kiocb_set_cancel_fn
aio_poll
io_cqring_fill_event
io_iopoll_req_issuedAfter the iocb has been issued, it's safe to be found on the poll list.* Adding the kiocb to the list AFTER submission ensures that we don't* find it from a io_iopoll_getevents() thread before the issuer is done* accessing the kiocb cookie.
io_req_defer
io_submit_sqe
__locks_insert_blockInsert waiter into blocker's block list.* We use a circular list so that processes can be easily woken up in* the order they blocked. The documentation doesn't require this but* it seems like the reasonable thing to do.
locks_insert_lock_ctx
mb_cache_entry_createmb_cache_entry_create - create entry in cache*@cache - cache where the entry should be created*@mask - gfp mask with which the entry should be allocated*@key - key of the entry*@value - value of the entry*@reusable - is the entry reusable by others?
put_dquot_lastAdd a dquot to the tail of the free list
put_inuse
list_move_tail链表项移动到尾部
__add_wait_queue_entry_tail
add_to_free_area_tailUsed for pages not on another list
flow_block_cb_add
resource_list_add_tail
dyn_event_add
sk_psock_queue_msg
add_page_to_lru_list_tail