Lines Matching refs:event

170 	int (*event_init)(struct fme_perf_priv *priv, u32 event, u32 portid);
171 void (*event_destroy)(struct fme_perf_priv *priv, u32 event,
173 u64 (*read_counter)(struct fme_perf_priv *priv, u32 event, u32 portid);
217 PMU_FORMAT_ATTR(event, "config:0-11");
288 static int basic_event_init(struct fme_perf_priv *priv, u32 event, u32 portid) in basic_event_init() argument
290 if (event <= BASIC_EVNT_MAX && is_portid_root(portid)) in basic_event_init()
297 u32 event, u32 portid) in basic_read_event_counter() argument
304 static int cache_event_init(struct fme_perf_priv *priv, u32 event, u32 portid) in cache_event_init() argument
307 event <= CACHE_EVNT_MAX && is_portid_root(portid)) in cache_event_init()
314 u32 event, u32 portid) in cache_read_event_counter() argument
320 if (event == CACHE_EVNT_WR_HIT || event == CACHE_EVNT_WR_MISS || in cache_read_event_counter()
321 event == CACHE_EVNT_DATA_WR_PORT_CONTEN || in cache_read_event_counter()
322 event == CACHE_EVNT_TAG_WR_PORT_CONTEN) in cache_read_event_counter()
331 v |= FIELD_PREP(CACHE_CTRL_EVNT, event); in cache_read_event_counter()
335 FIELD_GET(CACHE_CNTR_EVNT, v) == event, in cache_read_event_counter()
349 static bool is_fabric_event_supported(struct fme_perf_priv *priv, u32 event, in is_fabric_event_supported() argument
352 if (event > FAB_EVNT_MAX || !is_portid_root_or_port(portid)) in is_fabric_event_supported()
356 (event == FAB_EVNT_PCIE1_RD || event == FAB_EVNT_UPI_RD || in is_fabric_event_supported()
357 event == FAB_EVNT_PCIE1_WR || event == FAB_EVNT_UPI_WR)) in is_fabric_event_supported()
363 static int fabric_event_init(struct fme_perf_priv *priv, u32 event, u32 portid) in fabric_event_init() argument
369 if (!is_fabric_event_supported(priv, event, portid)) in fabric_event_init()
414 static void fabric_event_destroy(struct fme_perf_priv *priv, u32 event, in fabric_event_destroy() argument
422 static u64 fabric_read_event_counter(struct fme_perf_priv *priv, u32 event, in fabric_read_event_counter() argument
430 v |= FIELD_PREP(FAB_CTRL_EVNT, event); in fabric_read_event_counter()
434 FIELD_GET(FAB_CNTR_EVNT, v) == event, in fabric_read_event_counter()
444 static int vtd_event_init(struct fme_perf_priv *priv, u32 event, u32 portid) in vtd_event_init() argument
447 event <= VTD_EVNT_MAX && is_portid_port(portid)) in vtd_event_init()
453 static u64 vtd_read_event_counter(struct fme_perf_priv *priv, u32 event, in vtd_read_event_counter() argument
459 event += (portid * (VTD_EVNT_MAX + 1)); in vtd_read_event_counter()
463 v |= FIELD_PREP(VTD_CTRL_EVNT, event); in vtd_read_event_counter()
467 FIELD_GET(VTD_CNTR_EVNT, v) == event, in vtd_read_event_counter()
477 static int vtd_sip_event_init(struct fme_perf_priv *priv, u32 event, u32 portid) in vtd_sip_event_init() argument
480 event <= VTD_SIP_EVNT_MAX && is_portid_root(portid)) in vtd_sip_event_init()
486 static u64 vtd_sip_read_event_counter(struct fme_perf_priv *priv, u32 event, in vtd_sip_read_event_counter() argument
494 v |= FIELD_PREP(VTD_SIP_CTRL_EVNT, event); in vtd_sip_read_event_counter()
498 FIELD_GET(VTD_SIP_CNTR_EVNT, v) == event, in vtd_sip_read_event_counter()
786 static void fme_perf_event_destroy(struct perf_event *event) in fme_perf_event_destroy() argument
788 struct fme_perf_event_ops *ops = get_event_ops(event->hw.event_base); in fme_perf_event_destroy()
789 struct fme_perf_priv *priv = to_fme_perf_priv(event->pmu); in fme_perf_event_destroy()
792 ops->event_destroy(priv, event->hw.idx, event->hw.config_base); in fme_perf_event_destroy()
795 static int fme_perf_event_init(struct perf_event *event) in fme_perf_event_init() argument
797 struct fme_perf_priv *priv = to_fme_perf_priv(event->pmu); in fme_perf_event_init()
798 struct hw_perf_event *hwc = &event->hw; in fme_perf_event_init()
803 if (event->attr.type != event->pmu->type) in fme_perf_event_init()
811 if (is_sampling_event(event) || event->attach_state & PERF_ATTACH_TASK) in fme_perf_event_init()
814 if (event->cpu < 0) in fme_perf_event_init()
817 if (event->cpu != priv->cpu) in fme_perf_event_init()
820 eventid = get_event(event->attr.config); in fme_perf_event_init()
821 portid = get_portid(event->attr.config); in fme_perf_event_init()
822 evtype = get_evtype(event->attr.config); in fme_perf_event_init()
830 event->destroy = fme_perf_event_destroy; in fme_perf_event_init()
842 static void fme_perf_event_update(struct perf_event *event) in fme_perf_event_update() argument
844 struct fme_perf_event_ops *ops = get_event_ops(event->hw.event_base); in fme_perf_event_update()
845 struct fme_perf_priv *priv = to_fme_perf_priv(event->pmu); in fme_perf_event_update()
846 struct hw_perf_event *hwc = &event->hw; in fme_perf_event_update()
853 local64_add(delta, &event->count); in fme_perf_event_update()
856 static void fme_perf_event_start(struct perf_event *event, int flags) in fme_perf_event_start() argument
858 struct fme_perf_event_ops *ops = get_event_ops(event->hw.event_base); in fme_perf_event_start()
859 struct fme_perf_priv *priv = to_fme_perf_priv(event->pmu); in fme_perf_event_start()
860 struct hw_perf_event *hwc = &event->hw; in fme_perf_event_start()
867 static void fme_perf_event_stop(struct perf_event *event, int flags) in fme_perf_event_stop() argument
869 fme_perf_event_update(event); in fme_perf_event_stop()
872 static int fme_perf_event_add(struct perf_event *event, int flags) in fme_perf_event_add() argument
875 fme_perf_event_start(event, flags); in fme_perf_event_add()
880 static void fme_perf_event_del(struct perf_event *event, int flags) in fme_perf_event_del() argument
882 fme_perf_event_stop(event, PERF_EF_UPDATE); in fme_perf_event_del()
885 static void fme_perf_event_read(struct perf_event *event) in fme_perf_event_read() argument
887 fme_perf_event_update(event); in fme_perf_event_read()