Function Report

Linux Kernel (v4.4)

Source File:arch\x86\include\asm\atomic.h Create Date:2016-01-14 09:04:53
Last Modify:2016-01-11 07:01:32 Copyright©Brick
home page Tree
Annotate the kernelChinese

Function Name:atomic_dec

Function:static inline __attribute__((always_inline)) void atomic_dec(atomic_t *v)

Return Type:static inline __attribute__((always_inline)) void

Parameter:

Type Parameter NameRemarks
atomic_t * v pointer of type atomic_t

Function description: decrement atomic variable

105  asm volatile(LOCK_PREFIX "decl %0" : "+m" (v->counter));
Caller
Function NameFunction description
atomic_long_dec
static_key_slow_dec
mapping_unmap_writable
put_write_accessreleases this write permission
i_readcount_dec
unpause_graph_tracing
tasklet_enable
__neigh_parms_put
__sock_putUngrab socket in the context, which assumes that socket refcnt cannot hit zero, f.e. it is true in context of any socketcall.
reqsk_queue_removed
fl6_sock_release
__in6_dev_put
__in6_ifa_put
rhashtable_remove_fast remove object from hash table
part_dec_in_flight
hw_perf_event_destroy
x86_del_exclusive
__intel_shared_reg_put_constraints
uncore_put_constraint
uncore_pci_remove
nhmex_mbox_put_shared_reg
nhmex_rbox_put_constraint
mce_intel_hcpu_update
crash_nmi_callback
update_ftrace_func
arch_ftrace_update_code
put_bh
dup_mmap
copy_processCreate a new process
release_task
__sigqueue_allocallocate a new signal queue record- this may be called without locks if and only if t== current, otherwise an appropriate lock must be held to stop the target task from exiting
__sigqueue_free
__request_module try to load a kernel module
worker_set_flags set worker flags and adjust nr_running accordingly
alloc_pidmap
pidmap_init
commit_creds Install new credentials upon the current task
async_run_entry_fnpick the first pending entry and run it
io_schedule_timeoutThis task is about to go to sleep on IO. Increment rq->nr_iowait so that process accounting knows that this is a task in IO wait state.
rt_clear_overload
dl_clear_overload
cpupri_set update the cpu priority setting
thaw_processes
misrouted_irq
poll_spurious_irqs
hb_waiters_decReflects a waiter being removed from the waitqueue by wakeup paths.
css_free_work_fncss destruction is four-stage process.
freezer_css_offline initiate destruction of a freezer css
freezer_apply_state apply state change to a single cgroup_freezer
kgdb_cpu_enter
kgdb_breakpoint generate breakpoint exception
vkdb_printf
rb_remove_pages
ring_buffer_resize resize the ring buffer
ring_buffer_record_enable enable writes to the buffer
ring_buffer_record_enable_cpu enable writes to the buffer
ring_buffer_read_finish finish reading the iterator of the buffer
ring_buffer_reset_cpu reset a ring buffer per CPU buffer
s_stop
tracing_cpumask_write
ftrace_dump
function_stack_trace_call
func_prolog_decPrologue for the preempt and irqs off function tracers.
irqsoff_tracer_callirqsoff uses its own tracer function to keep the overhead down:
irqsoff_graph_entry
irqsoff_graph_return
start_critical_timing
stop_critical_timing
func_prolog_preempt_disablePrologue for the wakeup function tracers.
wakeup_tracer_callwakeup uses its own tracer function to keep the overhead down:
wakeup_graph_entry
wakeup_graph_return
probe_wakeup_sched_switch
probe_wakeup
trace_graph_entry
trace_graph_return
ftrace_dump_buf
unaccount_event_cpu
unaccount_event
exclusive_event_destroy
perf_mmap_closeA buffer can be mmap()ed multiple times; either directly through the same event, or through other events by use of perf_event_set_output().
perf_mmap
get_callchain_buffers
xol_free_insn_slot If slot was earlier allocated by
padata_get_next Get the next object that needs serialization.
padata_serial_worker
put_refcounted_compound_page
clear_wb_congested
__vma_link_file
__frontswap_clear
zswap_free_entryCarries out the common pattern of freeing and entry's zpool allocation, freeing the entry itself, and decrementing the number of stored pages.
mem_cgroup_move_charge
zpool_put_driver
freequewakes up waiters on the sender and receiver waiting queue, removes the message queue from message queue ID IDR, and cleans up all the messages associated with this queue.
do_msgrcv
free_ipc_ns
exit_io_contextCalled by the exiting task
__blk_mq_free_request
__blk_mq_tag_idleIf a previously busy queue goes inactive, potential waiters could now be allowed to queue. Wake them up and check.
avc_node_delete
avc_node_kill
avc_node_replace
selinux_secmark_refcount_dec
__xfrm_state_put
selinux_xfrm_freeFree the xfrm_sec_ctx structure.
wb_wait_for_completion wait for completion of bdi_writeback_works
fsnotify_detach_markRemove mark from inode/ vfsmount list, group list, drop inode reference if we got one.
fsnotify_add_mark_lockedAttach an initialized mark to a given group and fs object. These marks may be used for the fsnotify backend to determine which event types should be delivered to which group.
inotify_free_group_priv
inotify_ignored_and_remove_idrSend IN_IGNORED for this wd, remove this wd from the idr.
fanotify_free_group_priv
__mb_cache_entry_forget
mb_cache_entry_get Get a cache entry by device/ block number.(There can only be one entry in the cache per device and block.) Returns NULL if no such cache entry exists. The returned cache entry is locked for exclusive access("single writer").
__mb_cache_entry_find
do_coredump
dqputPut reference to dquot