函数逻辑报告 |
Source Code:kernel\events\core.c |
Create Date:2022-07-27 14:56:38 |
| Last Modify:2022-05-20 07:50:19 | Copyright©Brick |
| 首页 | 函数Tree |
| 注解内核,赢得工具 | 下载SCCT | English |
函数名称:perf_output_sample
函数原型:void perf_output_sample(struct perf_output_handle *handle, struct perf_event_header *header, struct perf_sample_data *data, struct perf_event *event)
返回类型:void
参数:
| 类型 | 参数 | 名称 |
|---|---|---|
| struct perf_output_handle * | handle | |
| struct perf_event_header * | header | |
| struct perf_sample_data * | data | |
| struct perf_event * | event |
| 6563 | sample_type等于type |
| 6565 | perf_output_put(handle, * header) |
| 6567 | 如果sample_type按位与PERF_SAMPLE_IDENTIFIER则perf_output_put(handle, id) |
| 6570 | 如果sample_type按位与PERF_SAMPLE_IP则perf_output_put(handle, ip) |
| 6573 | 如果sample_type按位与PERF_SAMPLE_TID则perf_output_put(handle, tid_entry) |
| 6576 | 如果sample_type按位与PERF_SAMPLE_TIME则perf_output_put(handle, time) |
| 6579 | 如果sample_type按位与PERF_SAMPLE_ADDR则perf_output_put(handle, addr) |
| 6582 | 如果sample_type按位与PERF_SAMPLE_ID则perf_output_put(handle, id) |
| 6588 | 如果sample_type按位与PERF_SAMPLE_CPU则perf_output_put(handle, cpu_entry) |
| 6591 | 如果sample_type按位与PERF_SAMPLE_PERIOD则perf_output_put(handle, period) |
| 6597 | 如果sample_type按位与PERF_SAMPLE_CALLCHAIN则 |
| 6605 | 如果sample_type按位与PERF_SAMPLE_RAW则 |
| 6608 | 如果raw则 |
| 6611 | perf_output_put(handle, size) |
| 6612 | 循环 |
| 6613 | 如果copy则 |
| 6614 | __output_custom(handle, copy, data, size) |
| 6616 | 否则 |
| 6617 | __output_copy(handle, data, size) |
| 6620 | 如果perf_raw_frag_last(frag)则退出 |
| 6623 | 当1循环 |
| 6624 | 如果pad则__output_skip(handle, NULL, pad) |
| 6626 | 否则 |
| 6638 | 如果sample_type按位与PERF_SAMPLE_BRANCH_STACK则 |
| 6639 | 如果br_stack则 |
| 6642 | size等于nr乘sizeof(structperf_branch_entry) |
| 6645 | perf_output_put(handle, nr) |
| 6646 | perf_output_copy(handle, entries, size) |
| 6647 | 否则 |
| 6651 | nr等于0 |
| 6652 | perf_output_put(handle, nr) |
| 6656 | 如果sample_type按位与PERF_SAMPLE_REGS_USER则 |
| 6663 | perf_output_put(handle, abi) |
| 6665 | 如果abi则 |
| 6666 | mask等于sample_regs_user |
| 6667 | perf_output_sample_regs(handle, regs, mask) |
| 6673 | 如果sample_type按位与PERF_SAMPLE_STACK_USER则 |
| 6679 | 如果sample_type按位与PERF_SAMPLE_WEIGHT则perf_output_put(handle, weight) |
| 6682 | 如果sample_type按位与PERF_SAMPLE_DATA_SRC则perf_output_put(handle, val) |
| 6685 | 如果sample_type按位与PERF_SAMPLE_TRANSACTION则perf_output_put(handle, txn) |
| 6688 | 如果sample_type按位与PERF_SAMPLE_REGS_INTR则 |
| 6694 | perf_output_put(handle, abi) |
| 6696 | 如果abi则 |
| 6697 | mask等于sample_regs_intr |
| 6699 | perf_output_sample_regs(handle, regs, mask) |
| 6708 | 如果sample_type按位与PERF_SAMPLE_AUX则 |
| 6709 | perf_output_put(handle, aux_size) |
| 6711 | 如果aux_size则perf_aux_sample_output(event, handle, data) |
| 6715 | 如果非watermark则 |
| 6716 | wakeup_events等于wakeup_events |
| 6718 | 如果wakeup_events则 |
| 6720 | events等于local_inc_return( & event limit ) |
| 6722 | 如果events大于等于wakeup_events则 |
| 6723 | local_sub(wakeup_events, & event limit ) |
| 6724 | local_inc( & wakeup stamp ) |
| 名称 | 描述 |
|---|---|
| __perf_event_output |
| 源代码转换工具 开放的插件接口 | X |
|---|---|
| 支持:c/c++/esqlc/java Oracle/Informix/Mysql 插件可实现:逻辑报告 代码生成和批量转换代码 |