mirror of
https://github.com/rd-stuffs/msm-4.14.git
synced 2025-02-20 11:45:48 +08:00
thermal: limits-dcvs: Switch to non deferrable work
Currently, when lmh interrupt fires we notify the scheduler about thermal pressure. The scheduler reduces the capacity of the cpu(s) for which the interrupt fired, while we requeue our deferrable work. This leads to an interesting deadlock, since the cpu is running with reduced capacity, the scheduler does not put any task on it, extending the idle time and causing it to remain at reduced capacity - leading to severe underutilization of the cpu(s). Switch to using delayed work instead of deferrable work. This will cause us to exit idle until the thermal condition is recovered. [dereference23: Backport to msm-4.14] Change-Id: I4c27c9a952ed556336297eb25e815c848b8266eb Signed-off-by: Abhijeet Dharmapurikar <adharmap@codeaurora.org> Signed-off-by: Alexander Winkowski <dereference23@outlook.com> Signed-off-by: Richard Raya <rdxzv.dev@gmail.com>
This commit is contained in:
parent
5dc122ca75
commit
01c3246e38
@ -738,7 +738,7 @@ static int limits_dcvs_probe(struct platform_device *pdev)
|
||||
|
||||
mutex_init(&hw->access_lock);
|
||||
INIT_WORK(&hw->cdev_register_work, register_cooling_device);
|
||||
INIT_DEFERRABLE_WORK(&hw->freq_poll_work, limits_dcvs_poll);
|
||||
INIT_DELAYED_WORK(&hw->freq_poll_work, limits_dcvs_poll);
|
||||
hw->osm_hw_reg = devm_ioremap(&pdev->dev, request_reg, 0x4);
|
||||
if (!hw->osm_hw_reg) {
|
||||
pr_err("register remap failed\n");
|
||||
|
Loading…
x
Reference in New Issue
Block a user