From 1dd0e69d4683cade5e1d53356d4663a3657a7a6c Mon Sep 17 00:00:00 2001 From: Jack Diver Date: Wed, 13 Mar 2024 16:33:34 +0000 Subject: [DO NOT MERGE ANYWHERE] Revert "mali_pixel: Periodically read ACPM GPU signal" Revert submission 2753879-gpu-slcv2-gs201 Reason for revert: Prebuild did not land before cutoff Reverted changes: /q/submissionid:2753879-gpu-slcv2-gs201 Bug: 329447972 Change-Id: I61f877019194c4c86cc0df79ea466adecceaef19 --- .../platform/pixel/pixel_memory_group_manager.h | 2 - mali_kbase/backend/gpu/mali_kbase_js_backend.c | 3 -- mali_kbase/csf/mali_kbase_csf_scheduler.c | 4 -- mali_kbase/mali_kbase_config.c | 9 ----- mali_kbase/mali_kbase_config.h | 18 --------- mali_kbase/platform/pixel/pixel_gpu.c | 1 - mali_kbase/platform/pixel/pixel_gpu_slc.c | 10 ----- mali_kbase/platform/pixel/pixel_gpu_slc.h | 4 -- mali_pixel/memory_group_manager.c | 8 ---- mali_pixel/pixel_slc.c | 45 +--------------------- mali_pixel/pixel_slc.h | 8 ---- 11 files changed, 1 insertion(+), 111 deletions(-) diff --git a/common/include/uapi/gpu/arm/midgard/platform/pixel/pixel_memory_group_manager.h b/common/include/uapi/gpu/arm/midgard/platform/pixel/pixel_memory_group_manager.h index 2a27f4f..d410f7b 100644 --- a/common/include/uapi/gpu/arm/midgard/platform/pixel/pixel_memory_group_manager.h +++ b/common/include/uapi/gpu/arm/midgard/platform/pixel/pixel_memory_group_manager.h @@ -7,8 +7,6 @@ #ifndef _UAPI_PIXEL_MEMORY_GROUP_MANAGER_H_ #define _UAPI_PIXEL_MEMORY_GROUP_MANAGER_H_ -void pixel_mgm_slc_update_signal(struct memory_group_manager_device* mgm_dev, u64 signal); - void pixel_mgm_slc_inc_refcount(struct memory_group_manager_device* mgm_dev); void pixel_mgm_slc_dec_refcount(struct memory_group_manager_device* mgm_dev); diff --git a/mali_kbase/backend/gpu/mali_kbase_js_backend.c b/mali_kbase/backend/gpu/mali_kbase_js_backend.c index 304737f..be72c4a 100644 --- a/mali_kbase/backend/gpu/mali_kbase_js_backend.c +++ b/mali_kbase/backend/gpu/mali_kbase_js_backend.c @@ -244,9 +244,6 @@ static enum hrtimer_restart timer_callback(struct hrtimer *timer) spin_unlock_irqrestore(&kbdev->hwaccess_lock, flags); - /* Inform platform of scheduling event */ - kbasep_platform_event_tick_tock(kbdev); - return HRTIMER_NORESTART; } diff --git a/mali_kbase/csf/mali_kbase_csf_scheduler.c b/mali_kbase/csf/mali_kbase_csf_scheduler.c index 22a08a6..f7f7ed0 100644 --- a/mali_kbase/csf/mali_kbase_csf_scheduler.c +++ b/mali_kbase/csf/mali_kbase_csf_scheduler.c @@ -43,7 +43,6 @@ #include #include #endif /* CONFIG_MALI_TRACE_POWER_GPU_WORK_PERIOD */ -#include /* Value to indicate that a queue group is not groups_to_schedule list */ #define KBASEP_GROUP_PREPARED_SEQ_NUM_INVALID (U32_MAX) @@ -6686,9 +6685,6 @@ static int kbase_csf_scheduler_kthread(void *data) dev_dbg(kbdev->dev, "Waking up for event after a scheduling iteration."); wake_up_all(&kbdev->csf.event_wait); - - /* Inform platform of scheduling event */ - kbasep_platform_event_tick_tock(kbdev); } /* Wait for the other thread, that signaled the exit, to call kthread_stop() */ diff --git a/mali_kbase/mali_kbase_config.c b/mali_kbase/mali_kbase_config.c index 669e1c3..72080a7 100644 --- a/mali_kbase/mali_kbase_config.c +++ b/mali_kbase/mali_kbase_config.c @@ -119,15 +119,6 @@ void kbasep_platform_event_work_end(void *param) platform_funcs_p->platform_handler_work_end_func(param); } -void kbasep_platform_event_tick_tock(struct kbase_device *kbdev) -{ - struct kbase_platform_funcs_conf *platform_funcs_p; - - platform_funcs_p = (struct kbase_platform_funcs_conf*)PLATFORM_FUNCS; - if (platform_funcs_p && platform_funcs_p->platform_handler_tick_tock) - platform_funcs_p->platform_handler_tick_tock(kbdev); -} - int kbasep_platform_fw_config_init(struct kbase_device *kbdev) { struct kbase_platform_funcs_conf *platform_funcs_p; diff --git a/mali_kbase/mali_kbase_config.h b/mali_kbase/mali_kbase_config.h index 549c170..7f6d3ed 100644 --- a/mali_kbase/mali_kbase_config.h +++ b/mali_kbase/mali_kbase_config.h @@ -137,14 +137,6 @@ struct kbase_platform_funcs_conf { * Context: Atomic context */ void (*platform_handler_context_idle)(struct kbase_context *kctx); - /** - * platform_handler_tick_tock - Platform specific callback when a scheduler tick/tock occurs. - * - * @kbdev: kbase_device pointer - * - * Context: Process context - */ - void (*platform_handler_tick_tock)(struct kbase_device *kbdev); /** * platform_handler_work_begin_func - Platform specific handler whose * function changes depending on the @@ -641,16 +633,6 @@ void kbasep_platform_event_work_begin(void *param); */ void kbasep_platform_event_work_end(void *param); -/** - * kbasep_platform_tick_tock - Platform specific callback when a scheduler tick/tock occurs. - * - * @kbdev: kbase_device pointer - * - * Function calls a platform defined routine if specified in the configuration attributes. - * - */ -void kbasep_platform_event_tick_tock(struct kbase_device *kbdev); - /** * kbasep_platform_fw_config_init - Platform specific callback to configure FW * diff --git a/mali_kbase/platform/pixel/pixel_gpu.c b/mali_kbase/platform/pixel/pixel_gpu.c index 6e30053..ba0ceb8 100644 --- a/mali_kbase/platform/pixel/pixel_gpu.c +++ b/mali_kbase/platform/pixel/pixel_gpu.c @@ -282,7 +282,6 @@ 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 cf330af..e8aae75 100644 --- a/mali_kbase/platform/pixel/pixel_gpu_slc.c +++ b/mali_kbase/platform/pixel/pixel_gpu_slc.c @@ -125,16 +125,6 @@ void gpu_slc_kctx_idle(struct kbase_context *kctx) pixel_mgm_slc_dec_refcount(kctx->kbdev->mgm_dev); } -/** - * 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 * diff --git a/mali_kbase/platform/pixel/pixel_gpu_slc.h b/mali_kbase/platform/pixel/pixel_gpu_slc.h index cca2af9..82d0779 100644 --- a/mali_kbase/platform/pixel/pixel_gpu_slc.h +++ b/mali_kbase/platform/pixel/pixel_gpu_slc.h @@ -22,8 +22,6 @@ 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) @@ -42,8 +40,6 @@ 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_ */ diff --git a/mali_pixel/memory_group_manager.c b/mali_pixel/memory_group_manager.c index 81abfb4..03c6f74 100644 --- a/mali_pixel/memory_group_manager.c +++ b/mali_pixel/memory_group_manager.c @@ -533,14 +533,6 @@ static vm_fault_t mgm_vmf_insert_pfn_prot( return fault; } -void pixel_mgm_slc_update_signal(struct memory_group_manager_device* mgm_dev, u64 signal) -{ - struct mgm_groups *const data = mgm_dev->data; - - slc_update_signal(&data->slc_data, signal); -} -EXPORT_SYMBOL_GPL(pixel_mgm_slc_update_signal); - void pixel_mgm_slc_inc_refcount(struct memory_group_manager_device* mgm_dev) { struct mgm_groups *const data = mgm_dev->data; diff --git a/mali_pixel/pixel_slc.c b/mali_pixel/pixel_slc.c index f06d495..78f1b74 100644 --- a/mali_pixel/pixel_slc.c +++ b/mali_pixel/pixel_slc.c @@ -6,13 +6,11 @@ */ #include -#include #include #include #include #include /* Pixel integration includes */ -#include #include "pixel_slc.h" @@ -40,7 +38,6 @@ #define PBHA_BIT_MASK (0xf) #define PARTITION_DISABLE_HYSTERESIS (msecs_to_jiffies(100)) -#define PARTITION_ENABLE_THRESHOLD (7) /** @@ -56,7 +53,7 @@ static bool partition_required(struct slc_partition *pt) { lockdep_assert_held(&pt->lock); - return atomic_read(&pt->refcount) && (pt->signal >= PARTITION_ENABLE_THRESHOLD); + return atomic_read(&pt->refcount); } /** @@ -228,29 +225,6 @@ void slc_dec_refcount(struct slc_data *data) } } -void slc_update_signal(struct slc_data *data, u64 signal) -{ - struct slc_partition *pt = &data->partition; - unsigned long flags; - - spin_lock_irqsave(&pt->lock, flags); - - /* Use ACPM signal when available */ - if (data->signal) - pt->signal = ioread64((u64 __iomem*)data->signal); - else - pt->signal = signal; - - if (partition_required(pt)) - /* Enable the partition immediately if it's required */ - enable_partition(data, pt); - else - /* Lazily disable the partition if it's no longer required */ - queue_disable_worker(data); - - spin_unlock_irqrestore(&pt->lock, flags); -} - /** * init_partition - Register and initialize a partition with the SLC driver. * @@ -290,7 +264,6 @@ static int init_partition(struct slc_data *data, struct slc_partition *pt, u32 i .pbha = pbha, .enabled = false, .refcount = ATOMIC_INIT(0), - .signal = 0, }; spin_lock_init(&pt->lock); @@ -343,22 +316,6 @@ int slc_init_data(struct slc_data *data, struct device* dev) goto err_exit; } - if (IS_ENABLED(PIXEL_GPU_SLC_ACPM_SIGNAL)) { - u32 size; - - /* Obtain a handle to the ACPM provided GPU partition signal */ - if ((ret = acpm_ipc_get_buffer("GPU_SIGNAL", &data->signal, &size))) { - dev_err(data->dev, "failed to retrieve SLC GPU signal: %d", ret); - goto err_exit; - } - - /* Validate the signal buffer size */ - if (size != sizeof(u64)) { - dev_err(data->dev, "SLC GPU signal size incorrect: %d", size); - goto err_exit; - } - } - if ((ret = init_partition(data, &data->partition, 0))) goto pt_init_err_exit; diff --git a/mali_pixel/pixel_slc.h b/mali_pixel/pixel_slc.h index 1ac3da4..bcaf1ff 100644 --- a/mali_pixel/pixel_slc.h +++ b/mali_pixel/pixel_slc.h @@ -51,9 +51,6 @@ struct slc_partition { /** @lock: Lock protecting enable/disable ops on this partition */ spinlock_t lock; - - /** @signal: Partition enable/disable signal from SLC governor */ - u64 signal; }; /** @@ -71,9 +68,6 @@ struct slc_data { /** @disable_work: Work item used to queue lazy SLC partition disable ops. */ struct delayed_work disable_work; - - /** @signal: Partition enable/disable signal from SLC governor. */ - char __iomem *signal; }; int slc_init_data(struct slc_data *data, struct device* dev); @@ -88,6 +82,4 @@ void slc_inc_refcount(struct slc_data *data); void slc_dec_refcount(struct slc_data *data); -void slc_update_signal(struct slc_data *data, u64 signal); - #endif /* _PIXEL_SLC_H_ */ -- cgit v1.2.3