diff options
author | seshendra Gadagottu <sgadagottu@nvidia.com> | 2018-01-02 18:48:46 -0500 |
---|---|---|
committer | mobile promotions <svcmobile_promotions@nvidia.com> | 2018-01-08 15:16:49 -0500 |
commit | caf168e33ec12ff6f0ed90fd4aa7654c09eaa553 (patch) | |
tree | 5bc2c0fc10e46840d54d74fd8efdc2c192bcf5d1 /drivers/gpu/nvgpu/gp10b/gr_gp10b.c | |
parent | 667c9fd10b23165914b307de89ce3b28f8ce2424 (diff) |
gpu: nvgpu: gv11b: fix for gfx preemption
Used chip specific attrib_cb_gfxp_default_size and
attrib_cb_gfxp_size buffer sizes during committing
global callback buffer when gfx preemption is requested.
These sizes are different for gv11b from gp10b.
Also used gv11b specific preemption related functions:
gr_gv11b_set_ctxsw_preemption_mode
gr_gv11b_update_ctxsw_preemption_mode
This is required because preemption related buffer
sizes are different for gv11b from gp10b. More optimization
will be done as part of NVGPU-484.
Another issue fixed is: gpu va for preemption buffers
still needs to be 8 bit aligned, even though 49 bits
available now. This done because of legacy implementation
of fecs ucode.
Bug 1976694
Change-Id: I284e29e0815d205c150998b07d0757b5089d3267
Signed-off-by: seshendra Gadagottu <sgadagottu@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/1630520
Reviewed-by: svc-mobile-coverity <svc-mobile-coverity@nvidia.com>
GVS: Gerrit_Virtual_Submit
Reviewed-by: Terje Bergstrom <tbergstrom@nvidia.com>
Reviewed-by: Richard Zhao <rizhao@nvidia.com>
Tested-by: Richard Zhao <rizhao@nvidia.com>
Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com>
Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
Diffstat (limited to 'drivers/gpu/nvgpu/gp10b/gr_gp10b.c')
-rw-r--r-- | drivers/gpu/nvgpu/gp10b/gr_gp10b.c | 14 |
1 files changed, 7 insertions, 7 deletions
diff --git a/drivers/gpu/nvgpu/gp10b/gr_gp10b.c b/drivers/gpu/nvgpu/gp10b/gr_gp10b.c index b5194223..942ebf24 100644 --- a/drivers/gpu/nvgpu/gp10b/gr_gp10b.c +++ b/drivers/gpu/nvgpu/gp10b/gr_gp10b.c | |||
@@ -1,7 +1,7 @@ | |||
1 | /* | 1 | /* |
2 | * GP10B GPU GR | 2 | * GP10B GPU GR |
3 | * | 3 | * |
4 | * Copyright (c) 2015-2017, NVIDIA CORPORATION. All rights reserved. | 4 | * Copyright (c) 2015-2018, NVIDIA CORPORATION. All rights reserved. |
5 | * | 5 | * |
6 | * Permission is hereby granted, free of charge, to any person obtaining a | 6 | * Permission is hereby granted, free of charge, to any person obtaining a |
7 | * copy of this software and associated documentation files (the "Software"), | 7 | * copy of this software and associated documentation files (the "Software"), |
@@ -406,12 +406,8 @@ int gr_gp10b_commit_global_cb_manager(struct gk20a *g, | |||
406 | gk20a_dbg_fn(""); | 406 | gk20a_dbg_fn(""); |
407 | 407 | ||
408 | if (gr_ctx->graphics_preempt_mode == NVGPU_PREEMPTION_MODE_GRAPHICS_GFXP) { | 408 | if (gr_ctx->graphics_preempt_mode == NVGPU_PREEMPTION_MODE_GRAPHICS_GFXP) { |
409 | attrib_size_in_chunk = gr->attrib_cb_default_size + | 409 | attrib_size_in_chunk = gr->attrib_cb_gfxp_size; |
410 | (gr_gpc0_ppc0_cbm_beta_cb_size_v_gfxp_v() - | 410 | cb_attrib_cache_size_init = gr->attrib_cb_gfxp_default_size; |
411 | gr_gpc0_ppc0_cbm_beta_cb_size_v_default_v()); | ||
412 | cb_attrib_cache_size_init = gr->attrib_cb_default_size + | ||
413 | (gr_gpc0_ppc0_cbm_beta_cb_size_v_gfxp_v() - | ||
414 | gr_gpc0_ppc0_cbm_beta_cb_size_v_default_v()); | ||
415 | } else { | 411 | } else { |
416 | attrib_size_in_chunk = gr->attrib_cb_size; | 412 | attrib_size_in_chunk = gr->attrib_cb_size; |
417 | cb_attrib_cache_size_init = gr->attrib_cb_default_size; | 413 | cb_attrib_cache_size_init = gr->attrib_cb_default_size; |
@@ -738,6 +734,10 @@ void gr_gp10b_cb_size_default(struct gk20a *g) | |||
738 | gr->attrib_cb_default_size = 0x800; | 734 | gr->attrib_cb_default_size = 0x800; |
739 | gr->alpha_cb_default_size = | 735 | gr->alpha_cb_default_size = |
740 | gr_gpc0_ppc0_cbm_alpha_cb_size_v_default_v(); | 736 | gr_gpc0_ppc0_cbm_alpha_cb_size_v_default_v(); |
737 | gr->attrib_cb_gfxp_default_size = | ||
738 | gr_gpc0_ppc0_cbm_beta_cb_size_v_gfxp_v(); | ||
739 | gr->attrib_cb_gfxp_size = | ||
740 | gr_gpc0_ppc0_cbm_beta_cb_size_v_gfxp_v(); | ||
741 | } | 741 | } |
742 | 742 | ||
743 | void gr_gp10b_set_alpha_circular_buffer_size(struct gk20a *g, u32 data) | 743 | void gr_gp10b_set_alpha_circular_buffer_size(struct gk20a *g, u32 data) |