Function report

Linux Kernel

v5.5.9

Brick Technologies Co., Ltd

Source Code:kernel\trace\ring_buffer.c Create Date:2022-07-28 11:54:10
Last Modify:2020-03-17 19:30:04 Copyright©Brick
home page Tree
Annotation kernel can get tool activityDownload SCCTChinese

Name:This is the slow path, force gcc not to inline it.

Proto:static noinline struct ring_buffer_event *rb_move_tail(struct ring_buffer_per_cpu *cpu_buffer, unsigned long tail, struct rb_event_info *info)

Type:struct ring_buffer_event

Parameter:

TypeParameterName
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  If Value for the false possibility is greater at compile time(next_page == commit_page) Then
2223  local_inc( & commit_overrun)
2224  Go to out_reset
2241  If _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, Then
2252  If Not (flags & RB_FL_OVERWRITE) Then
2254  Go to out_reset
2260  If ret < 0 Then Go to out_reset
2262  If ret Then Go to out_again
2264  Else
2280  Go to 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  Return ERR_PTR( - EAGAIN)
2299  out_reset :
2301  rb_reset_tail(cpu_buffer, tail, info)
2303  Return NULL
Caller
NameDescribe
__rb_reserve_next