Function report | 
Source Code:kernel\events\core.c | 
Create Date:2022-07-28 13:36:52 | 
| Last Modify:2022-05-20 07:50:19 | Copyright©Brick | 
| home page | Tree | 
| Annotation kernel can get tool activity | Download SCCT | Chinese | 
Name:perf_output_sample
Proto:void perf_output_sample(struct perf_output_handle *handle, struct perf_event_header *header, struct perf_sample_data *data, struct perf_event *event)
Type:void
Parameter:
| Type | Parameter | Name | 
|---|---|---|
| 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 | If sample_type & PERF_SAMPLE_IDENTIFIER Then perf_output_put(handle, id) | 
| 6570 | If sample_type & PERF_SAMPLE_IP Then perf_output_put(handle, ip) | 
| 6573 | If sample_type & PERF_SAMPLE_TID Then perf_output_put(handle, tid_entry) | 
| 6576 | If sample_type & PERF_SAMPLE_TIME Then perf_output_put(handle, time) | 
| 6579 | If sample_type & PERF_SAMPLE_ADDR Then perf_output_put(handle, addr) | 
| 6582 | If sample_type & PERF_SAMPLE_ID Then perf_output_put(handle, id) | 
| 6585 | If sample_type & PERF_SAMPLE_STREAM_ID Then perf_output_put(handle, stream_id) | 
| 6588 | If sample_type & PERF_SAMPLE_CPU Then perf_output_put(handle, cpu_entry) | 
| 6591 | If sample_type & PERF_SAMPLE_PERIOD Then perf_output_put(handle, period) | 
| 6597 | If sample_type & PERF_SAMPLE_CALLCHAIN Then | 
| 6605 | If sample_type & PERF_SAMPLE_RAW Then | 
| 6608 | If raw Then | 
| 6611 | perf_output_put(handle, size) | 
| 6612 | Do | 
| 6613 | If copy Then | 
| 6614 | __output_custom(handle, copy, data, size) | 
| 6616 | Else | 
| 6617 | __output_copy(handle, data, size) | 
| 6620 | If perf_raw_frag_last(frag) Then Break | 
| 6623 | When 1 cycle | 
| 6624 | If pad Then __output_skip(handle, NULL, pad) | 
| 6626 | Else | 
| 6638 | If sample_type & PERF_SAMPLE_BRANCH_STACK Then | 
| 6639 | If br_stack Then | 
| 6642 | size = nr * sizeof(structperf_branch_entry) | 
| 6645 | perf_output_put(handle, nr) | 
| 6646 | perf_output_copy(handle, entries, size) | 
| 6647 | Else | 
| 6651 | nr = 0 | 
| 6652 | perf_output_put(handle, nr) | 
| 6656 | If sample_type & PERF_SAMPLE_REGS_USER Then | 
| 6663 | perf_output_put(handle, abi) | 
| 6665 | If abi Then | 
| 6666 | mask = sample_regs_user | 
| 6667 | perf_output_sample_regs(handle, regs, mask) | 
| 6673 | If sample_type & PERF_SAMPLE_STACK_USER Then | 
| 6679 | If sample_type & PERF_SAMPLE_WEIGHT Then perf_output_put(handle, weight) | 
| 6682 | If sample_type & PERF_SAMPLE_DATA_SRC Then perf_output_put(handle, val) | 
| 6685 | If sample_type & PERF_SAMPLE_TRANSACTION Then perf_output_put(handle, txn) | 
| 6688 | If sample_type & PERF_SAMPLE_REGS_INTR Then | 
| 6694 | perf_output_put(handle, abi) | 
| 6696 | If abi Then | 
| 6697 | mask = sample_regs_intr | 
| 6699 | perf_output_sample_regs(handle, regs, mask) | 
| 6705 | If sample_type & PERF_SAMPLE_PHYS_ADDR Then perf_output_put(handle, phys_addr) | 
| 6708 | If sample_type & PERF_SAMPLE_AUX Then | 
| 6709 | perf_output_put(handle, aux_size) | 
| 6711 | If aux_size Then perf_aux_sample_output(event, handle, data) | 
| 6715 | If Not watermark Then | 
| 6716 | wakeup_events = wakeup_events | 
| 6718 | If wakeup_events Then | 
| 6720 | events = local_inc_return( & event limit ) | 
| 6722 | If events >= wakeup_events Then | 
| 6723 | local_sub(wakeup_events, & event limit ) | 
| 6724 | local_inc( & wakeup stamp ) | 
| Name | Describe | 
|---|---|
| __perf_event_output | 
| Source code conversion tool public plug-in interface  | X | 
|---|---|
| Support c/c++/esqlc/java Oracle/Informix/Mysql Plug-in can realize: logical Report Code generation and batch code conversion  |