函数逻辑报告 |
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 插件可实现:逻辑报告 代码生成和批量转换代码 |