gpu: nvgpu: Move sm_arch to nvgpu_gpu_params

Move sm_arch_* fields to nvgpu_gpu_params to make them available from
common code without accessing Linux specific GPU characteristics.

JIRA NVGPU-259

Change-Id: Ieffb2ddde81b27af53dfedb9fe3972d20757cc35
Signed-off-by: Terje Bergstrom <tbergstrom@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/1593686
Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com>
Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
This commit is contained in:
Terje Bergstrom
2017-11-07 10:08:16 -08:00
committed by mobile promotions
parent dc5f6bcee0
commit 870e76fbc7
4 changed files with 16 additions and 7 deletions

View File

@@ -226,6 +226,10 @@ gk20a_ctrl_ioctl_gpu_characteristics(
g->ops.mm.get_mmu_levels(g, pgpu->big_page_size)[0].lo_bit[0];
pgpu->available_big_page_sizes = nvgpu_mm_get_available_big_page_sizes(g);
pgpu->sm_arch_sm_version = g->params.sm_arch_sm_version;
pgpu->sm_arch_spa_version = g->params.sm_arch_spa_version;
pgpu->sm_arch_warp_count = g->params.sm_arch_warp_count;
if (request->gpu_characteristics_buf_size > 0) {
size_t write_size = sizeof(*pgpu);

View File

@@ -1075,6 +1075,11 @@ struct nvgpu_gpu_params {
u32 gpu_impl;
/* GPU revision ID */
u32 gpu_rev;
/* sm version */
u32 sm_arch_sm_version;
/* sm instruction set */
u32 sm_arch_spa_version;
u32 sm_arch_warp_count;
};
struct gk20a {

View File

@@ -841,11 +841,11 @@ void gr_gm20b_detect_sm_arch(struct gk20a *g)
{
u32 v = gk20a_readl(g, gr_gpc0_tpc0_sm_arch_r());
g->gpu_characteristics.sm_arch_spa_version =
g->params.sm_arch_spa_version =
gr_gpc0_tpc0_sm_arch_spa_version_v(v);
g->gpu_characteristics.sm_arch_sm_version =
g->params.sm_arch_sm_version =
gr_gpc0_tpc0_sm_arch_sm_version_v(v);
g->gpu_characteristics.sm_arch_warp_count =
g->params.sm_arch_warp_count =
gr_gpc0_tpc0_sm_arch_warp_count_v(v);
}
@@ -1154,7 +1154,7 @@ void gr_gm20b_bpt_reg_info(struct gk20a *g, struct nvgpu_warpstate *w_state)
/* for maxwell & kepler */
u32 numSmPerTpc = 1;
u32 numWarpPerTpc = g->gpu_characteristics.sm_arch_warp_count * numSmPerTpc;
u32 numWarpPerTpc = g->params.sm_arch_warp_count * numSmPerTpc;
for (sm_id = 0; sm_id < gr->no_of_sm; sm_id++) {
gpc = g->gr.sm_to_cluster[sm_id].gpc_index;

View File

@@ -37,11 +37,11 @@ void vgpu_gr_detect_sm_arch(struct gk20a *g)
gk20a_dbg_fn("");
g->gpu_characteristics.sm_arch_sm_version =
g->params.sm_arch_sm_version =
priv->constants.sm_arch_sm_version;
g->gpu_characteristics.sm_arch_spa_version =
g->params.sm_arch_spa_version =
priv->constants.sm_arch_spa_version;
g->gpu_characteristics.sm_arch_warp_count =
g->params.sm_arch_warp_count =
priv->constants.sm_arch_warp_count;
}