drivers: pva: enable profiling when it is active

Bug 5467846

Change-Id: Iad35078b05e0dbfa5ac638a718b1a900fd054d9e
Signed-off-by: Johnny Liu <johnliu@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/3465128
Reviewed-by: svcacv <svcacv@nvidia.com>
Reviewed-by: Nan Wang <nanwa@nvidia.com>
GVS: buildbot_gerritrpt <buildbot_gerritrpt@nvidia.com>
Reviewed-by: Omar Nemri <onemri@nvidia.com>
This commit is contained in:
Johnny Liu
2025-10-07 17:09:25 +00:00
committed by mobile promotions
parent eb29d03e62
commit bf60517305
2 changed files with 3 additions and 13 deletions

View File

@@ -143,7 +143,8 @@ static int64_t get_vpu_stats(struct pva_kmd_device *dev, void *file_data,
kmd_tegra_stats.average_vpu_utilization[0] = 0; kmd_tegra_stats.average_vpu_utilization[0] = 0;
kmd_tegra_stats.average_vpu_utilization[1] = 0; kmd_tegra_stats.average_vpu_utilization[1] = 0;
pva_kmd_notify_fw_get_tegra_stats(dev, &kmd_tegra_stats); if (pva_kmd_device_maybe_on(dev))
pva_kmd_notify_fw_get_tegra_stats(dev, &kmd_tegra_stats);
return print_vpu_stats(&kmd_tegra_stats, out_buffer, offset, size); return print_vpu_stats(&kmd_tegra_stats, out_buffer, offset, size);
} }

View File

@@ -63,18 +63,8 @@ pva_kmd_notify_fw_get_tegra_stats(struct pva_kmd_device *pva,
uint64_t buffer_offset = 0U; uint64_t buffer_offset = 0U;
enum pva_error err = PVA_SUCCESS; enum pva_error err = PVA_SUCCESS;
struct pva_kmd_fw_tegrastats fw_tegra_stats = { 0 }; struct pva_kmd_fw_tegrastats fw_tegra_stats = { 0 };
bool stats_enabled = pva->debugfs_context.stats_enable;
uint64_t duration = 0U; uint64_t duration = 0U;
if (stats_enabled == false) {
pva_kmd_log_err("Tegra stats are disabled");
goto err_out;
}
if (!pva_kmd_device_maybe_on(pva)) {
goto out;
}
/* Power on PVA if not already */ /* Power on PVA if not already */
err = pva_kmd_device_busy(pva); err = pva_kmd_device_busy(pva);
if (err != PVA_SUCCESS) { if (err != PVA_SUCCESS) {
@@ -85,7 +75,7 @@ pva_kmd_notify_fw_get_tegra_stats(struct pva_kmd_device *pva,
pva_kmd_set_cmd_get_tegra_stats(&cmd, pva->tegra_stats_resource_id, pva_kmd_set_cmd_get_tegra_stats(&cmd, pva->tegra_stats_resource_id,
pva->tegra_stats_buf_size, pva->tegra_stats_buf_size,
buffer_offset, stats_enabled); buffer_offset, true);
err = pva_kmd_submit_cmd_sync(&pva->submitter, &cmd, sizeof(cmd), err = pva_kmd_submit_cmd_sync(&pva->submitter, &cmd, sizeof(cmd),
PVA_KMD_WAIT_FW_POLL_INTERVAL_US, PVA_KMD_WAIT_FW_POLL_INTERVAL_US,
@@ -100,7 +90,6 @@ pva_kmd_notify_fw_get_tegra_stats(struct pva_kmd_device *pva,
pva_kmd_device_idle(pva); pva_kmd_device_idle(pva);
out:
duration = sat_sub64(fw_tegra_stats.window_end_time, duration = sat_sub64(fw_tegra_stats.window_end_time,
fw_tegra_stats.window_start_time); fw_tegra_stats.window_start_time);