Lines Matching defs:x86_pmu

631 struct x86_pmu {  struct
635 const char *name;
636 int version;
637 int (*handle_irq)(struct pt_regs *);
638 void (*disable_all)(void);
639 void (*enable_all)(int added);
640 void (*enable)(struct perf_event *);
641 void (*disable)(struct perf_event *);
642 void (*add)(struct perf_event *);
643 void (*del)(struct perf_event *);
644 void (*read)(struct perf_event *event);
645 int (*hw_config)(struct perf_event *event);
646 int (*schedule_events)(struct cpu_hw_events *cpuc, int n, int *assign);
647 unsigned eventsel;
648 unsigned perfctr;
649 int (*addr_offset)(int index, bool eventsel);
650 int (*rdpmc_index)(int index);
651 u64 (*event_map)(int);
652 int max_events;
653 int num_counters;
654 int num_counters_fixed;
655 int cntval_bits;
679 struct x86_pmu_quirk *quirks; argument
680 int perfctr_second_write;
681 u64 (*limit_period)(struct perf_event *event, u64 l);
684 unsigned int late_ack :1,
685 enabled_ack :1,
686 counter_freezing :1;
690 int attr_rdpmc_broken;
691 int attr_rdpmc;
692 struct attribute **format_attrs;
694 ssize_t (*events_sysfs_show)(char *page, u64 config);
695 const struct attribute_group **attr_update;
697 unsigned long attr_freeze_on_smi;
702 int (*cpu_prepare)(int cpu);
703 void (*cpu_starting)(int cpu);
704 void (*cpu_dying)(int cpu);
705 void (*cpu_dead)(int cpu);
707 void (*check_microcode)(void);
708 void (*sched_task)(struct perf_event_context *ctx,
714 u64 intel_ctrl;
715 union perf_capabilities intel_cap;
720 unsigned int bts :1,
721 bts_active :1,
722 pebs :1,
723 pebs_active :1,
724 pebs_broken :1,
725 pebs_prec_dist :1,
726 pebs_no_tlb :1,
727 pebs_no_isolation :1;
728 int pebs_record_size;
729 int pebs_buffer_size;
730 int max_pebs_events;
731 void (*drain_pebs)(struct pt_regs *regs, struct perf_sample_data *data);
732 struct event_constraint *pebs_constraints;
733 void (*pebs_aliases)(struct perf_event *event);
734 unsigned long large_pebs_flags;
735 u64 rtm_abort_event;
740 unsigned int lbr_tos, lbr_from, lbr_to,
741 lbr_info, lbr_nr; /* LBR base regs and size */
742 union {
746 union {
750 bool lbr_double_abort; /* duplicated lbr aborts */
751 bool lbr_pt_coexist; /* (LBR|BTS) may coexist with PT */
756 unsigned int lbr_depth_mask:8;
757 unsigned int lbr_deep_c_reset:1;
758 unsigned int lbr_lip:1;
759 unsigned int lbr_cpl:1;
760 unsigned int lbr_filter:1;
761 unsigned int lbr_call_stack:1;
762 unsigned int lbr_mispred:1;
763 unsigned int lbr_timed_lbr:1;
764 unsigned int lbr_br_type:1;
766 void (*lbr_reset)(void);
767 void (*lbr_read)(struct cpu_hw_events *cpuc);
768 void (*lbr_save)(void *ctx);
769 void (*lbr_restore)(void *ctx);
774 atomic_t lbr_exclusive[x86_lbr_exclusive_max];
779 u64 (*update_topdown_event)(struct perf_event *event);
780 int (*set_topdown_event_period)(struct perf_event *event);
787 void (*swap_task_ctx)(struct perf_event_context *prev,
793 unsigned int amd_nb_constraints : 1;
794 u64 perf_ctr_pair_en;
799 struct extra_reg *extra_regs;
800 unsigned int flags;
805 struct perf_guest_switch_msr *(*guest_get_msrs)(int *nr);
810 int (*check_period) (struct perf_event *event, u64 period);
812 int (*aux_output_match) (struct perf_event *event);