gpu: nvgpu: add perfmon Hals

Add following HALs for Ga100 and Ga10b. These will
be used for calculating chiplet offsets corresponding
to GPC/FBP perf register.

get_pmmgpcrouter_per_chiplet_offset
get_pmmfbprouter_per_chiplet_offset

get_hwpm_fbp_perfmon_regs_base
get_hwpm_gpc_perfmon_regs_base
get_hwpm_fbprouter_perfmon_regs_base
get_hwpm_gpcrouter_perfmon_regs_base

Bug 200712091

Signed-off-by: Debarshi Dutta <ddutta@nvidia.com>
Change-Id: Iec1a16ef4a3c26dca054c30d95bef991983dc2b7
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nvgpu/+/2648832
Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com>
This commit is contained in:
Debarshi Dutta
2022-01-06 15:59:25 +05:30
committed by mobile promotions
parent 3d01b89e68
commit 7db5f0d339
7 changed files with 81 additions and 4 deletions

View File

@@ -1,5 +1,5 @@
/*
* Copyright (c) 2020-2021, NVIDIA CORPORATION. All rights reserved.
* Copyright (c) 2020-2022, NVIDIA CORPORATION. All rights reserved.
*
* Permission is hereby granted, free of charge, to any person obtaining a
* copy of this software and associated documentation files (the "Software"),
@@ -47,11 +47,18 @@ void ga10b_perf_deinit_inst_block(struct gk20a *g);
u32 ga10b_perf_get_pmmsys_per_chiplet_offset(void);
u32 ga10b_perf_get_pmmgpc_per_chiplet_offset(void);
u32 ga10b_perf_get_pmmfbp_per_chiplet_offset(void);
u32 ga10b_perf_get_pmmgpcrouter_per_chiplet_offset(void);
u32 ga10b_perf_get_pmmfbprouter_per_chiplet_offset(void);
const u32 *ga10b_perf_get_hwpm_sys_perfmon_regs(u32 *count);
const u32 *ga10b_perf_get_hwpm_gpc_perfmon_regs(u32 *count);
const u32 *ga10b_perf_get_hwpm_fbp_perfmon_regs(u32 *count);
u32 ga10b_get_hwpm_fbp_perfmon_regs_base(struct gk20a *g);
u32 ga10b_get_hwpm_gpc_perfmon_regs_base(struct gk20a *g);
u32 ga10b_get_hwpm_fbprouter_perfmon_regs_base(struct gk20a *g);
u32 ga10b_get_hwpm_gpcrouter_perfmon_regs_base(struct gk20a *g);
void ga10b_perf_get_num_hwpm_perfmon(struct gk20a *g, u32 *num_sys_perfmon,
u32 *num_fbp_perfmon, u32 *num_gpc_perfmon);
void ga10b_perf_init_hwpm_pmm_register(struct gk20a *g);