/kernel/linux/linux-6.6/drivers/gpu/drm/v3d/ |
H A D | v3d_perfmon.c | 12 void v3d_perfmon_get(struct v3d_perfmon *perfmon) in v3d_perfmon_get() argument 14 if (perfmon) in v3d_perfmon_get() 15 refcount_inc(&perfmon->refcnt); in v3d_perfmon_get() 18 void v3d_perfmon_put(struct v3d_perfmon *perfmon) in v3d_perfmon_put() argument 20 if (perfmon && refcount_dec_and_test(&perfmon->refcnt)) { in v3d_perfmon_put() 21 mutex_destroy(&perfmon->lock); in v3d_perfmon_put() 22 kfree(perfmon); in v3d_perfmon_put() 26 void v3d_perfmon_start(struct v3d_dev *v3d, struct v3d_perfmon *perfmon) in v3d_perfmon_start() argument 32 if (WARN_ON_ONCE(!perfmon || v3 in v3d_perfmon_start() 61 v3d_perfmon_stop(struct v3d_dev *v3d, struct v3d_perfmon *perfmon, bool capture) v3d_perfmon_stop() argument 87 struct v3d_perfmon *perfmon; v3d_perfmon_find() local 105 struct v3d_perfmon *perfmon = elem; v3d_perfmon_idr_del() local 126 struct v3d_perfmon *perfmon; v3d_perfmon_create_ioctl() local 175 struct v3d_perfmon *perfmon; v3d_perfmon_destroy_ioctl() local 195 struct v3d_perfmon *perfmon; v3d_perfmon_get_values_ioctl() local [all...] |
H A D | v3d_drv.h | 32 * using perfmon related ioctls. A perfmon can be attached to a submit_cl 38 /* Tracks the number of users of the perfmon, when this counter reaches 39 * zero the perfmon is destroyed. 43 /* Protects perfmon stop, as it can be invoked from multiple places. */ 46 /* Number of counters activated in this perfmon instance 55 * HW perf counter values every time the perfmon is attached 56 * to a GPU job. This way, perfmon users don't have to 60 * destroying the perfmon and creating a new one. 117 /* Used to track the active perfmon i 167 } perfmon; global() member 239 struct v3d_perfmon *perfmon; global() member [all...] |
H A D | v3d_gem.c | 332 if (job->perfmon) in v3d_job_free() 333 v3d_perfmon_put(job->perfmon); in v3d_job_free() 739 render->base.perfmon = v3d_perfmon_find(v3d_priv, in v3d_submit_cl_ioctl() 742 if (!render->base.perfmon) { in v3d_submit_cl_ioctl() 750 bin->base.perfmon = render->base.perfmon; in v3d_submit_cl_ioctl() 751 v3d_perfmon_get(bin->base.perfmon); in v3d_submit_cl_ioctl() 769 clean_job->perfmon = render->base.perfmon; in v3d_submit_cl_ioctl() 770 v3d_perfmon_get(clean_job->perfmon); in v3d_submit_cl_ioctl() [all...] |
H A D | v3d_sched.c | 68 if (job->perfmon != v3d->active_perfmon) in v3d_switch_perfmon() 71 if (job->perfmon && v3d->active_perfmon != job->perfmon) in v3d_switch_perfmon() 72 v3d_perfmon_start(v3d, job->perfmon); in v3d_switch_perfmon()
|
/kernel/linux/linux-6.6/drivers/gpu/drm/vc4/ |
H A D | vc4_perfmon.c | 18 void vc4_perfmon_get(struct vc4_perfmon *perfmon) in vc4_perfmon_get() argument 22 if (!perfmon) in vc4_perfmon_get() 25 vc4 = perfmon->dev; in vc4_perfmon_get() 29 refcount_inc(&perfmon->refcnt); in vc4_perfmon_get() 32 void vc4_perfmon_put(struct vc4_perfmon *perfmon) in vc4_perfmon_put() argument 36 if (!perfmon) in vc4_perfmon_put() 39 vc4 = perfmon->dev; in vc4_perfmon_put() 43 if (refcount_dec_and_test(&perfmon->refcnt)) in vc4_perfmon_put() 44 kfree(perfmon); in vc4_perfmon_put() 47 void vc4_perfmon_start(struct vc4_dev *vc4, struct vc4_perfmon *perfmon) in vc4_perfmon_start() argument 67 vc4_perfmon_stop(struct vc4_dev *vc4, struct vc4_perfmon *perfmon, bool capture) vc4_perfmon_stop() argument 91 struct vc4_perfmon *perfmon; vc4_perfmon_find() local 118 struct vc4_perfmon *perfmon = elem; vc4_perfmon_idr_del() local 145 struct vc4_perfmon *perfmon; vc4_perfmon_create_ioctl() local 201 struct vc4_perfmon *perfmon; vc4_perfmon_destroy_ioctl() local 228 struct vc4_perfmon *perfmon; vc4_perfmon_get_values_ioctl() local [all...] |
H A D | vc4_irq.c | 130 /* Only submit the next job in the bin list if it matches the perfmon in vc4_irq_finish_bin_job() 132 * perfmon attached to them). in vc4_irq_finish_bin_job() 134 if (next && next->perfmon == exec->perfmon) in vc4_irq_finish_bin_job() 147 /* Stop the perfmon so that the next bin job can be started. */ in vc4_cancel_bin_job() 148 if (exec->perfmon) in vc4_cancel_bin_job() 149 vc4_perfmon_stop(vc4, exec->perfmon, false); in vc4_cancel_bin_job() 173 /* Only stop the perfmon if following jobs in the queue don't expect it in vc4_irq_finish_render_job() 176 if (exec->perfmon && !nextrender && in vc4_irq_finish_render_job() 177 (!nextbin || nextbin->perfmon ! in vc4_irq_finish_render_job() [all...] |
H A D | vc4_drv.h | 51 * using perfmon related ioctls. A perfmon can be attached to a submit_cl 59 /* Tracks the number of users of the perfmon, when this counter reaches 60 * zero the perfmon is destroyed. 64 /* Number of counters activated in this perfmon instance 73 * perf counter values every time the perfmon is attached to a GPU job. 74 * This way, perfmon users don't have to retrieve the results after 77 * destroying the perfmon and creating a new one. 175 /* Used to track the active perfmon if any. Access to this field is 756 struct vc4_perfmon *perfmon; member 773 } perfmon; global() member [all...] |
H A D | vc4_gem.c | 487 /* Only start the perfmon if it was not already started by a previous in vc4_submit_next_bin_job() 490 if (exec->perfmon && vc4->active_perfmon != exec->perfmon) in vc4_submit_next_bin_job() 491 vc4_perfmon_start(vc4, exec->perfmon); in vc4_submit_next_bin_job() 507 * different perfmon instance attached to it. The same goes in vc4_submit_next_bin_job() 508 * if one of them had a perfmon attached to it and the other in vc4_submit_next_bin_job() 511 if (next && next->perfmon == exec->perfmon) in vc4_submit_next_bin_job() 716 * same perfmon as our job attached to it (or if both jobs don't have in vc4_queue_submit() 717 * perfmon activate in vc4_queue_submit() [all...] |
/kernel/linux/linux-5.10/drivers/gpu/drm/vc4/ |
H A D | vc4_perfmon.c | 18 void vc4_perfmon_get(struct vc4_perfmon *perfmon) in vc4_perfmon_get() argument 20 if (perfmon) in vc4_perfmon_get() 21 refcount_inc(&perfmon->refcnt); in vc4_perfmon_get() 24 void vc4_perfmon_put(struct vc4_perfmon *perfmon) in vc4_perfmon_put() argument 26 if (perfmon && refcount_dec_and_test(&perfmon->refcnt)) in vc4_perfmon_put() 27 kfree(perfmon); in vc4_perfmon_put() 30 void vc4_perfmon_start(struct vc4_dev *vc4, struct vc4_perfmon *perfmon) in vc4_perfmon_start() argument 35 if (WARN_ON_ONCE(!perfmon || vc4->active_perfmon)) in vc4_perfmon_start() 38 for (i = 0; i < perfmon in vc4_perfmon_start() 47 vc4_perfmon_stop(struct vc4_dev *vc4, struct vc4_perfmon *perfmon, bool capture) vc4_perfmon_stop() argument 67 struct vc4_perfmon *perfmon; vc4_perfmon_find() local 85 struct vc4_perfmon *perfmon = elem; vc4_perfmon_idr_del() local 106 struct vc4_perfmon *perfmon; vc4_perfmon_create_ioctl() local 158 struct vc4_perfmon *perfmon; vc4_perfmon_destroy_ioctl() local 182 struct vc4_perfmon *perfmon; vc4_perfmon_get_values_ioctl() local [all...] |
H A D | vc4_irq.c | 125 /* Only submit the next job in the bin list if it matches the perfmon in vc4_irq_finish_bin_job() 127 * perfmon attached to them). in vc4_irq_finish_bin_job() 129 if (next && next->perfmon == exec->perfmon) in vc4_irq_finish_bin_job() 142 /* Stop the perfmon so that the next bin job can be started. */ in vc4_cancel_bin_job() 143 if (exec->perfmon) in vc4_cancel_bin_job() 144 vc4_perfmon_stop(vc4, exec->perfmon, false); in vc4_cancel_bin_job() 166 /* Only stop the perfmon if following jobs in the queue don't expect it in vc4_irq_finish_render_job() 169 if (exec->perfmon && !nextrender && in vc4_irq_finish_render_job() 170 (!nextbin || nextbin->perfmon ! in vc4_irq_finish_render_job() [all...] |
H A D | vc4_drv.h | 45 * using perfmon related ioctls. A perfmon can be attached to a submit_cl 51 /* Tracks the number of users of the perfmon, when this counter reaches 52 * zero the perfmon is destroyed. 56 /* Number of counters activated in this perfmon instance 65 * perf counter values every time the perfmon is attached to a GPU job. 66 * This way, perfmon users don't have to retrieve the results after 69 * destroying the perfmon and creating a new one. 165 /* Used to track the active perfmon if any. Access to this field is 664 struct vc4_perfmon *perfmon; member 679 } perfmon; global() member [all...] |
H A D | vc4_gem.c | 478 /* Only start the perfmon if it was not already started by a previous in vc4_submit_next_bin_job() 481 if (exec->perfmon && vc4->active_perfmon != exec->perfmon) in vc4_submit_next_bin_job() 482 vc4_perfmon_start(vc4, exec->perfmon); in vc4_submit_next_bin_job() 496 * different perfmon instance attached to it. The same goes in vc4_submit_next_bin_job() 497 * if one of them had a perfmon attached to it and the other in vc4_submit_next_bin_job() 500 if (next && next->perfmon == exec->perfmon) in vc4_submit_next_bin_job() 699 * same perfmon as our job attached to it (or if both jobs don't have in vc4_queue_submit() 700 * perfmon activate in vc4_queue_submit() [all...] |
/kernel/linux/linux-5.10/drivers/crypto/caam/ |
H A D | debugfs.c | 47 struct caam_perfmon *perfmon; in caam_debugfs_init() local 54 perfmon = (struct caam_perfmon __force *)&ctrlpriv->ctrl->perfmon; in caam_debugfs_init() 59 &perfmon->req_dequeued, &caam_fops_u64_ro); in caam_debugfs_init() 61 &perfmon->ob_enc_req, &caam_fops_u64_ro); in caam_debugfs_init() 63 &perfmon->ib_dec_req, &caam_fops_u64_ro); in caam_debugfs_init() 65 &perfmon->ob_enc_bytes, &caam_fops_u64_ro); in caam_debugfs_init() 67 &perfmon->ob_prot_bytes, &caam_fops_u64_ro); in caam_debugfs_init() 69 &perfmon->ib_dec_bytes, &caam_fops_u64_ro); in caam_debugfs_init() 71 &perfmon in caam_debugfs_init() [all...] |
H A D | ctrl.c | 426 ccbvid = rd_reg32(&ctrl->perfmon.ccb_id); in caam_get_era_from_hw() 431 id_ms = rd_reg32(&ctrl->perfmon.caam_id_ms); in caam_get_era_from_hw() 670 caam_little_end = !(bool)(rd_reg32(&ctrl->perfmon.status) & in caam_probe() 672 comp_params = rd_reg32(&ctrl->perfmon.comp_parms_ms); in caam_probe() 833 rng_vid = (rd_reg32(&ctrl->perfmon.cha_id_ls) & in caam_probe() 917 caam_id = (u64)rd_reg32(&ctrl->perfmon.caam_id_ms) << 32 | in caam_probe() 918 (u64)rd_reg32(&ctrl->perfmon.caam_id_ls); in caam_probe()
|
/kernel/linux/linux-6.6/drivers/crypto/caam/ |
H A D | debugfs.c | 46 struct caam_perfmon __force *perfmon, in caam_debugfs_init() 58 &perfmon->req_dequeued, &caam_fops_u64_ro); in caam_debugfs_init() 60 &perfmon->ob_enc_req, &caam_fops_u64_ro); in caam_debugfs_init() 62 &perfmon->ib_dec_req, &caam_fops_u64_ro); in caam_debugfs_init() 64 &perfmon->ob_enc_bytes, &caam_fops_u64_ro); in caam_debugfs_init() 66 &perfmon->ob_prot_bytes, &caam_fops_u64_ro); in caam_debugfs_init() 68 &perfmon->ib_dec_bytes, &caam_fops_u64_ro); in caam_debugfs_init() 70 &perfmon->ib_valid_bytes, &caam_fops_u64_ro); in caam_debugfs_init() 74 &perfmon->faultaddr, &caam_fops_u32_ro); in caam_debugfs_init() 76 &perfmon in caam_debugfs_init() 45 caam_debugfs_init(struct caam_drv_private *ctrlpriv, struct caam_perfmon __force *perfmon, struct dentry *root) caam_debugfs_init() argument [all...] |
H A D | ctrl.c | 418 static int caam_get_era_from_hw(struct caam_perfmon __iomem *perfmon) in caam_get_era_from_hw() argument 444 ccbvid = rd_reg32(&perfmon->ccb_id); in caam_get_era_from_hw() 449 id_ms = rd_reg32(&perfmon->caam_id_ms); in caam_get_era_from_hw() 467 * @perfmon: Performance Monitor Registers 469 static int caam_get_era(struct caam_perfmon __iomem *perfmon) in caam_get_era() argument 482 return caam_get_era_from_hw(perfmon); in caam_get_era() 647 struct caam_perfmon __iomem *perfmon; in caam_ctrl_rng_init() local 649 perfmon = ctrlpriv->total_jobrs ? in caam_ctrl_rng_init() 650 (struct caam_perfmon __iomem *)&ctrlpriv->jr[0]->perfmon : in caam_ctrl_rng_init() 651 (struct caam_perfmon __iomem *)&ctrl->perfmon; in caam_ctrl_rng_init() 857 struct caam_perfmon __iomem *perfmon; caam_probe() local [all...] |
H A D | debugfs.h | 13 struct caam_perfmon __force *perfmon, struct dentry *root); 16 struct caam_perfmon __force *perfmon, in caam_debugfs_init() 15 caam_debugfs_init(struct caam_drv_private *ctrlpriv, struct caam_perfmon __force *perfmon, struct dentry *root) caam_debugfs_init() argument
|
/kernel/linux/linux-5.10/drivers/gpu/drm/nouveau/nvkm/engine/pm/ |
H A D | base.c | 214 struct nvkm_pm *pm = dom->perfmon->pm; in nvkm_perfdom_init() 244 struct nvkm_pm *pm = dom->perfmon->pm; in nvkm_perfdom_sample() 268 struct nvkm_pm *pm = dom->perfmon->pm; in nvkm_perfdom_read() 313 struct nvkm_pm *pm = dom->perfmon->pm; in nvkm_perfdom_dtor() 366 nvkm_perfdom_new_(struct nvkm_perfmon *perfmon, in nvkm_perfdom_new_() argument 373 struct nvkm_pm *pm = perfmon->pm; in nvkm_perfdom_new_() 419 dom->perfmon = perfmon; in nvkm_perfdom_new_() 434 nvkm_perfmon_mthd_query_domain(struct nvkm_perfmon *perfmon, in nvkm_perfmon_mthd_query_domain() argument 440 struct nvkm_object *object = &perfmon in nvkm_perfmon_mthd_query_domain() 482 nvkm_perfmon_mthd_query_signal(struct nvkm_perfmon *perfmon, void *data, u32 size) nvkm_perfmon_mthd_query_signal() argument 536 nvkm_perfmon_mthd_query_source(struct nvkm_perfmon *perfmon, void *data, u32 size) nvkm_perfmon_mthd_query_source() argument 590 struct nvkm_perfmon *perfmon = nvkm_perfmon(object); nvkm_perfmon_mthd() local 608 struct nvkm_perfmon *perfmon = nvkm_perfmon(oclass->parent); nvkm_perfmon_child_new() local 629 struct nvkm_perfmon *perfmon = nvkm_perfmon(object); nvkm_perfmon_dtor() local 649 struct nvkm_perfmon *perfmon; nvkm_perfmon_new() local [all...] |
H A D | priv.h | 75 struct nvkm_perfmon *perfmon; member
|
/kernel/linux/linux-6.6/drivers/gpu/drm/nouveau/nvkm/engine/pm/ |
H A D | base.c | 214 struct nvkm_pm *pm = dom->perfmon->pm; in nvkm_perfdom_init() 244 struct nvkm_pm *pm = dom->perfmon->pm; in nvkm_perfdom_sample() 268 struct nvkm_pm *pm = dom->perfmon->pm; in nvkm_perfdom_read() 313 struct nvkm_pm *pm = dom->perfmon->pm; in nvkm_perfdom_dtor() 366 nvkm_perfdom_new_(struct nvkm_perfmon *perfmon, in nvkm_perfdom_new_() argument 373 struct nvkm_pm *pm = perfmon->pm; in nvkm_perfdom_new_() 419 dom->perfmon = perfmon; in nvkm_perfdom_new_() 434 nvkm_perfmon_mthd_query_domain(struct nvkm_perfmon *perfmon, in nvkm_perfmon_mthd_query_domain() argument 440 struct nvkm_object *object = &perfmon in nvkm_perfmon_mthd_query_domain() 482 nvkm_perfmon_mthd_query_signal(struct nvkm_perfmon *perfmon, void *data, u32 size) nvkm_perfmon_mthd_query_signal() argument 536 nvkm_perfmon_mthd_query_source(struct nvkm_perfmon *perfmon, void *data, u32 size) nvkm_perfmon_mthd_query_source() argument 590 struct nvkm_perfmon *perfmon = nvkm_perfmon(object); nvkm_perfmon_mthd() local 608 struct nvkm_perfmon *perfmon = nvkm_perfmon(oclass->parent); nvkm_perfmon_child_new() local 629 struct nvkm_perfmon *perfmon = nvkm_perfmon(object); nvkm_perfmon_dtor() local 649 struct nvkm_perfmon *perfmon; nvkm_perfmon_new() local [all...] |
H A D | priv.h | 75 struct nvkm_perfmon *perfmon; member
|
/kernel/linux/linux-5.10/tools/build/feature/ |
H A D | test-libpfm4.c | 3 #include <perfmon/pfmlib.h>
|
/kernel/linux/linux-6.6/tools/build/feature/ |
H A D | test-libpfm4.c | 3 #include <perfmon/pfmlib.h>
|
/kernel/linux/linux-5.10/drivers/gpu/drm/nouveau/include/nvkm/engine/ |
H A D | pm.h | 10 struct nvkm_object *perfmon; member
|
/kernel/linux/linux-6.6/drivers/dma/idxd/ |
H A D | Makefile | 9 idxd-$(CONFIG_INTEL_IDXD_PERFMON) += perfmon.o
|