diff options
Diffstat (limited to 'include/linux/perf_event.h')
| -rw-r--r-- | include/linux/perf_event.h | 37 |
1 files changed, 20 insertions, 17 deletions
diff --git a/include/linux/perf_event.h b/include/linux/perf_event.h index 893a0d07986f..486e84ccb1f9 100644 --- a/include/linux/perf_event.h +++ b/include/linux/perf_event.h | |||
| @@ -79,7 +79,7 @@ struct perf_branch_stack { | |||
| 79 | struct perf_branch_entry entries[0]; | 79 | struct perf_branch_entry entries[0]; |
| 80 | }; | 80 | }; |
| 81 | 81 | ||
| 82 | struct perf_regs_user { | 82 | struct perf_regs { |
| 83 | __u64 abi; | 83 | __u64 abi; |
| 84 | struct pt_regs *regs; | 84 | struct pt_regs *regs; |
| 85 | }; | 85 | }; |
| @@ -580,34 +580,40 @@ extern u64 perf_event_read_value(struct perf_event *event, | |||
| 580 | 580 | ||
| 581 | 581 | ||
| 582 | struct perf_sample_data { | 582 | struct perf_sample_data { |
| 583 | u64 type; | 583 | /* |
| 584 | * Fields set by perf_sample_data_init(), group so as to | ||
| 585 | * minimize the cachelines touched. | ||
| 586 | */ | ||
| 587 | u64 addr; | ||
| 588 | struct perf_raw_record *raw; | ||
| 589 | struct perf_branch_stack *br_stack; | ||
| 590 | u64 period; | ||
| 591 | u64 weight; | ||
| 592 | u64 txn; | ||
| 593 | union perf_mem_data_src data_src; | ||
| 584 | 594 | ||
| 595 | /* | ||
| 596 | * The other fields, optionally {set,used} by | ||
| 597 | * perf_{prepare,output}_sample(). | ||
| 598 | */ | ||
| 599 | u64 type; | ||
| 585 | u64 ip; | 600 | u64 ip; |
| 586 | struct { | 601 | struct { |
| 587 | u32 pid; | 602 | u32 pid; |
| 588 | u32 tid; | 603 | u32 tid; |
| 589 | } tid_entry; | 604 | } tid_entry; |
| 590 | u64 time; | 605 | u64 time; |
| 591 | u64 addr; | ||
| 592 | u64 id; | 606 | u64 id; |
| 593 | u64 stream_id; | 607 | u64 stream_id; |
| 594 | struct { | 608 | struct { |
| 595 | u32 cpu; | 609 | u32 cpu; |
| 596 | u32 reserved; | 610 | u32 reserved; |
| 597 | } cpu_entry; | 611 | } cpu_entry; |
| 598 | u64 period; | ||
| 599 | union perf_mem_data_src data_src; | ||
| 600 | struct perf_callchain_entry *callchain; | 612 | struct perf_callchain_entry *callchain; |
| 601 | struct perf_raw_record *raw; | 613 | struct perf_regs regs_user; |
| 602 | struct perf_branch_stack *br_stack; | 614 | struct perf_regs regs_intr; |
| 603 | struct perf_regs_user regs_user; | ||
| 604 | u64 stack_user_size; | 615 | u64 stack_user_size; |
| 605 | u64 weight; | 616 | } ____cacheline_aligned; |
| 606 | /* | ||
| 607 | * Transaction flags for abort events: | ||
| 608 | */ | ||
| 609 | u64 txn; | ||
| 610 | }; | ||
| 611 | 617 | ||
| 612 | /* default value for data source */ | 618 | /* default value for data source */ |
| 613 | #define PERF_MEM_NA (PERF_MEM_S(OP, NA) |\ | 619 | #define PERF_MEM_NA (PERF_MEM_S(OP, NA) |\ |
| @@ -624,9 +630,6 @@ static inline void perf_sample_data_init(struct perf_sample_data *data, | |||
| 624 | data->raw = NULL; | 630 | data->raw = NULL; |
| 625 | data->br_stack = NULL; | 631 | data->br_stack = NULL; |
| 626 | data->period = period; | 632 | data->period = period; |
| 627 | data->regs_user.abi = PERF_SAMPLE_REGS_ABI_NONE; | ||
| 628 | data->regs_user.regs = NULL; | ||
| 629 | data->stack_user_size = 0; | ||
| 630 | data->weight = 0; | 633 | data->weight = 0; |
| 631 | data->data_src.val = PERF_MEM_NA; | 634 | data->data_src.val = PERF_MEM_NA; |
| 632 | data->txn = 0; | 635 | data->txn = 0; |
