函数逻辑报告

Linux Kernel

v5.5.9

Brick Technologies Co., Ltd

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

函数名称:rb_set_commit_to_write

函数原型:static __always_inline void rb_set_commit_to_write(struct ring_buffer_per_cpu *cpu_buffer)

返回类型:void

参数:

类型参数名称
struct ring_buffer_per_cpu *cpu_buffer
2473  again :
2474  max_count等于nr_pages乘100
2476 committed pages 不等于READ_ONCE(write to tail )循环
2477  如果uffer may be either ring_buffer or ring_buffer_per_cpu (cpu_buffer, !(--max_count))则返回
2479  如果uffer may be either ring_buffer or ring_buffer_per_cpu (cpu_buffer, _is_reader_page* The unique thing about the reader page, is that, if the* writer is ever on it, the previous pointer never points* back to the reader page.)则返回
2482  local_set( & write committed index , rb_page_write(committed pages ))
2484  rb_inc_page(cpu_buffer, & committed pages )
2486  如果rb_page_write(committed pages )则write_stamp等于 page time stamp
2490  The "volatile" is due to gcc bugs ()
2492 rb_commit_index(cpu_buffer)不等于rb_page_write(committed pages )循环
2495  local_set( & write committed index , rb_page_write(committed pages ))
2497  uffer may be either ring_buffer or ring_buffer_per_cpu (cpu_buffer, local_read( & write committed index ) & ~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.)
2500  The "volatile" is due to gcc bugs ()
2504  The "volatile" is due to gcc bugs ()
2511  如果此条件成立可能性小(为编译器优化)(committed pages != READ_ONCE(write to tail ))则转到:again
调用者
名称描述
rb_end_commit