函数逻辑报告 |
Source Code:kernel\events\core.c |
Create Date:2022-07-27 14:55:32 |
Last Modify:2022-05-20 07:50:19 | Copyright©Brick |
首页 | 函数Tree |
注解内核,赢得工具 | 下载SCCT | English |
函数名称:A buffer can be mmap()ed multiple times; either directly through the same* event, or through other events by use of perf_event_set_output().* In order to undo the VM accounting done by perf_mmap() we need to destroy
函数原型:static void perf_mmap_close(struct vm_area_struct *vma)
返回类型:void
参数:
类型 | 参数 | 名称 |
---|---|---|
struct vm_area_struct * | vma |
5674 | event等于private_data |
5676 | rb等于ring_buffer_get(event) |
5678 | mmap_locked等于mmap_locked |
5679 | size等于perf_data_size(rb) |
5697 | perf_pmu_output_stop(event) |
5700 | atomic_long_sub(aux_nr_pages - aux_mmap_locked, & locked_vm) |
5701 | atomic64_sub(aux_mmap_locked, & pinned_vm) |
5704 | rb_free_aux(rb) |
5710 | atomic_dec( & mmap_count) |
5715 | ring_buffer_attach(event, NULL) |
5719 | 如果atomic_read( & mmap_count)则转到:out_put |
5727 | again : |
5730 | 如果非atomic_long_inc_not_zero( & refcount)则 |
5735 | 继续下一循环 |
5739 | mutex_lock( & mmap_mutex) |
5750 | 如果rb恒等于rb则ring_buffer_attach(event, NULL) |
5760 | 转到:again |
5773 | atomic_long_sub((size >> PAGE_SHIFT determines the page size ) + 1 - mmap_locked, & locked_vm) |
5775 | atomic64_sub(mmap_locked, & pinned_vm) |
5778 | out_put : |
5779 | ring_buffer_put(rb) |
源代码转换工具 开放的插件接口 | X |
---|---|
支持:c/c++/esqlc/java Oracle/Informix/Mysql 插件可实现:逻辑报告 代码生成和批量转换代码 |