diff options
author | Jack Diver <diverj@google.com> | 2023-11-22 17:15:57 +0000 |
---|---|---|
committer | Jack Diver <diverj@google.com> | 2024-02-28 18:24:31 +0000 |
commit | fffc58d2b4f70d6655f5022c026e0614df4411e4 (patch) | |
tree | ca76ed2789864257f1673d619d851222a8dc51f3 /mali_kbase/platform | |
parent | ee7d8af92a5ddd8645dc4ec689e3eab8a461bf53 (diff) | |
download | gpu-fffc58d2b4f70d6655f5022c026e0614df4411e4.tar.gz |
mali_pixel: Periodically read ACPM GPU signal
Use ACPM GPU signal to make enable/disable decisions for the SLC
partition.
Currently, the signal is sampled during scheduling tick.
Bug: 313458962
Test: gfxbench
Signed-off-by: Jack Diver <diverj@google.com>
(cherry picked from https://partner-android-review.googlesource.com/q/commit:dec457352147d282921e0ae81ce3a7154e80c64e)
Merged-In: Ife0adedf6006daaf17062a0f555d126c1fd45465
Change-Id: Ife0adedf6006daaf17062a0f555d126c1fd45465
Diffstat (limited to 'mali_kbase/platform')
-rw-r--r-- | mali_kbase/platform/pixel/pixel_gpu.c | 1 | ||||
-rw-r--r-- | mali_kbase/platform/pixel/pixel_gpu_slc.c | 10 | ||||
-rw-r--r-- | mali_kbase/platform/pixel/pixel_gpu_slc.h | 4 |
3 files changed, 15 insertions, 0 deletions
diff --git a/mali_kbase/platform/pixel/pixel_gpu.c b/mali_kbase/platform/pixel/pixel_gpu.c index ba0ceb8..6e30053 100644 --- a/mali_kbase/platform/pixel/pixel_gpu.c +++ b/mali_kbase/platform/pixel/pixel_gpu.c @@ -282,6 +282,7 @@ struct kbase_platform_funcs_conf platform_funcs = { .platform_handler_work_end_func = &gpu_dvfs_metrics_work_end, .platform_handler_context_active = &gpu_slc_kctx_active, .platform_handler_context_idle = &gpu_slc_kctx_idle, + .platform_handler_tick_tock = &gpu_slc_tick_tock, .platform_fw_cfg_init_func = &gpu_fw_cfg_init, .platform_handler_core_dump_func = &gpu_sscd_dump, }; diff --git a/mali_kbase/platform/pixel/pixel_gpu_slc.c b/mali_kbase/platform/pixel/pixel_gpu_slc.c index e8aae75..cf330af 100644 --- a/mali_kbase/platform/pixel/pixel_gpu_slc.c +++ b/mali_kbase/platform/pixel/pixel_gpu_slc.c @@ -126,6 +126,16 @@ void gpu_slc_kctx_idle(struct kbase_context *kctx) } /** + * gpu_slc_tick_tock() - Called when a GPU scheduling kick occurs + * + * @kbdev: The &struct kbase_device for the GPU. + */ +void gpu_slc_tick_tock(struct kbase_device *kbdev) +{ + pixel_mgm_slc_update_signal(kbdev->mgm_dev, 0); +} + +/** * gpu_slc_init - Initialize the SLC context for the GPU * * @kbdev: The &struct kbase_device for the GPU. diff --git a/mali_kbase/platform/pixel/pixel_gpu_slc.h b/mali_kbase/platform/pixel/pixel_gpu_slc.h index 82d0779..cca2af9 100644 --- a/mali_kbase/platform/pixel/pixel_gpu_slc.h +++ b/mali_kbase/platform/pixel/pixel_gpu_slc.h @@ -22,6 +22,8 @@ void gpu_slc_kctx_term(struct kbase_context *kctx); void gpu_slc_kctx_active(struct kbase_context *kctx); void gpu_slc_kctx_idle(struct kbase_context *kctx); + +void gpu_slc_tick_tock(struct kbase_device *kbdev); #else static int __maybe_unused gpu_pixel_handle_buffer_liveness_update_ioctl(struct kbase_context* kctx, struct kbase_ioctl_buffer_liveness_update* update) @@ -40,6 +42,8 @@ static void __maybe_unused gpu_slc_kctx_term(struct kbase_context* kctx) { (void static void __maybe_unused gpu_slc_kctx_active(struct kbase_context *kctx) { (void)kctx; } static void __maybe_unused gpu_slc_kctx_idle(struct kbase_context *kctx) { (void)kctx; } + +static void __maybe_unused gpu_slc_tick_tock(struct kbase_device *kbdev) { (void)kbdev; } #endif /* CONFIG_MALI_PIXEL_GPU_SLC */ #endif /* _PIXEL_GPU_SLC_H_ */ |