函数逻辑报告

Linux Kernel

v5.5.9

Brick Technologies Co., Ltd

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

函数名称:rb_wakeups

函数原型:static __always_inline void rb_wakeups(struct ring_buffer *buffer, struct ring_buffer_per_cpu *cpu_buffer)

返回类型:void

参数:

类型参数名称
struct ring_buffer *buffer
struct ring_buffer_per_cpu *cpu_buffer
2618  如果waiters_pending
2619  waiters_pending = false
2621  irq_work_queue( & work)
2624  如果waiters_pending
2625  waiters_pending = false
2627  irq_work_queue( & work)
2630  如果last_pages_touch恒等于local_read( & pages_touched)则返回
2633  如果reader_page恒等于committed pages 则返回
2636  如果非full_waiters_pending则返回
2639  last_pages_touch等于local_read( & pages_touched)
2641  full等于shortest_full
2642  nr_pages等于nr_pages
2643  dirty等于g_buffer_nr_pages_dirty - get the number of used pages in the ring buffer*@buffer: The ring_buffer to get the number of pages from*@cpu: The cpu of the ring_buffer to get the number of pages from
2644  如果fullnr_pagesdirty乘100小于等于fullnr_pages则返回
2647  wakeup_full = true
2648  full_waiters_pending = false
2650  irq_work_queue( & work)
调用者
名称描述
ring_buffer_unlock_commitg_buffer_unlock_commit - commit a reserved*@buffer: The buffer to commit to*@event: The event pointer to commit.* This commits the data to the ring buffer, and releases any locks held.* Must be paired with ring_buffer_lock_reserve.
ring_buffer_writeg_buffer_write - write data to the buffer without reserving*@buffer: The ring buffer to write to