函数逻辑报告

Linux Kernel

v5.5.9

Brick Technologies Co., Ltd

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

函数名称:This is the slow path, force gcc not to inline it.

函数原型:static noinline struct ring_buffer_event *rb_move_tail(struct ring_buffer_per_cpu *cpu_buffer, unsigned long tail, struct rb_event_info *info)

返回类型:struct ring_buffer_event

参数:

类型参数名称
struct ring_buffer_per_cpu *cpu_buffer
unsigned longtail
struct rb_event_info *info
2207  tail_page等于tail_page
2208  commit_page等于committed pages
2209  buffer等于buffer
2213  next_page等于tail_page
2215  rb_inc_page(cpu_buffer, & next_page)
2222  如果此条件成立可能性小(为编译器优化)(next_page == commit_page)则
2223  local_inc( & commit_overrun)
2224  转到:out_reset
2241  如果_is_head_page - test if the given page is the head page* Because the reader may move the head_page pointer, we can* not trust what the head page is (it may be pointing to* the reader page). But if the next page is a header page,
2252  如果非flags按位与RB_FL_OVERWRITE的值则
2254  转到:out_reset
2260  如果ret小于0则转到:out_reset
2262  如果ret则转到:out_again
2264  否则
2280  转到:out_reset
2285  _tail_page_update - move the tail page forward
2287  out_again :
2289  rb_reset_tail(cpu_buffer, tail, info)
2292  rb_end_commit(cpu_buffer)
2294  local_inc( & committing)
2297  返回:错误号
2299  out_reset :
2301  rb_reset_tail(cpu_buffer, tail, info)
2303  返回:NULL
调用者
名称描述
__rb_reserve_next