函数逻辑报告

Linux Kernel

v5.5.9

Brick Technologies Co., Ltd

Source Code:kernel\trace\ring_buffer.c Create Date:2022-07-27 12:58:47
Last Modify:2020-03-17 19:30:04 Copyright©Brick
首页 函数Tree
注解内核,赢得工具下载SCCTEnglish

函数名称:_tail_page_update - move the tail page forward

函数原型:static void rb_tail_page_update(struct ring_buffer_per_cpu *cpu_buffer, struct buffer_page *tail_page, struct buffer_page *next_page)

返回类型:void

参数:

类型参数名称
struct ring_buffer_per_cpu *cpu_buffer
struct buffer_page *tail_page
struct buffer_page *next_page
1078  old_write等于返回和
1079  old_entries等于返回和
1081  local_inc( & pages_touched)
1086  The "volatile" is due to gcc bugs ()
1093  如果tail_page恒等于READ_ONCE(write to tail )则
1095  val等于old_write按位与The buffer page counters, write and entries, must be reset* atomically when crossing page boundaries. To synchronize this* update, two counters are inserted into the number. One is* the actual counter for the write position or count on the page.的反
1096  eval等于old_entries按位与The buffer page counters, write and entries, must be reset* atomically when crossing page boundaries. To synchronize this* update, two counters are inserted into the number. One is* the actual counter for the write position or count on the page.的反
1108  local_cmpxchg( & dex for next write , old_write, val)
1109  local_cmpxchg( & ries on this page , old_entries, eval)
1116  local_set( & write committed index , 0)
1119  cmpxchg( & write to tail , tail_page, next_page)
调用者
名称描述
rb_move_tailThis is the slow path, force gcc not to inline it.