函数逻辑报告 |
Source Code:kernel\events\ring_buffer.c |
Create Date:2022-07-27 15:03:28 |
Last Modify:2020-03-12 14:18:49 | Copyright©Brick |
首页 | 函数Tree |
注解内核,赢得工具 | 下载SCCT | English |
函数名称:rb_alloc_aux
函数原型:int rb_alloc_aux(struct ring_buffer *rb, struct perf_event *event, unsigned long pgoff, int nr_pages, long watermark, int flags)
返回类型:int
参数:
类型 | 参数 | 名称 |
---|---|---|
struct ring_buffer * | rb | |
struct perf_event * | event | |
unsigned long | pgoff | |
int | nr_pages | |
long | watermark | |
int | flags |
668 | overwrite等于非flags按位与Buffer handling 的值 |
669 | node等于如果cpu恒等于负1则负1否则cpu_to_node(cpu) |
672 | 如果非has_aux(event)则返回:负EOPNOTSUPP |
685 | 如果非overwrite则 |
692 | aux_pages等于kcalloc_node(nr_pages, *的长度, GFP_KERNEL, node) |
698 | 以aux_nr_pages小于nr_pages循环 |
703 | page等于rb_alloc_aux_page(node, order) |
707 | 以last大于aux_nr_pages循环aux_pages[aux_nr_pages]等于page_address(page++) |
718 | 如果capabilities按位与PERF_PMU_CAP_AUX_NO_SG且overwrite则 |
720 | page等于virt_to_page(kaddr) returns a valid pointer if and only if* virt_addr_valid(kaddr) returns true.(aux_pages[0]) |
722 | 如果page_private(page)不等于max_order则转到:out |
731 | ret等于0 |
741 | aux_overwrite等于overwrite |
742 | aux_watermark等于watermark |
744 | 如果非aux_watermark且非aux_overwrite则aux_watermark等于nr_pages左移PAGE_SHIFT determines the page size 减1位 |
747 | out : |
750 | 否则__rb_free_aux(rb) |
753 | 返回:ret |
名称 | 描述 |
---|---|
perf_mmap |
源代码转换工具 开放的插件接口 | X |
---|---|
支持:c/c++/esqlc/java Oracle/Informix/Mysql 插件可实现:逻辑报告 代码生成和批量转换代码 |