mirror of
https://github.com/torvalds/linux.git
synced 2026-08-02 05:12:01 +02:00
sched: walt: remove vendor hook "trace_binder_transaction_received"
"trace_binder_transaction_received" vendor hook is used to clear binder low latency MVP priority, but for some usecase it is observed that usespace application is initiating read ioctl quickly and as part of ioctl handling binder driver initiates transaction received vendor hook and binder low latency MVP priority is cleared for the binder thread. Handle above condition by allowing binder thread to maintain and run with MVP priority for it's allocated MVP timeslice. The Low latency flag of the task is reset only when the binder transactions is initiated again on the same thread and task initiating the transaction doesn't comply with the low latency criterion. Change-Id: Ie068adc64796432b7d41b0256a25a04caac518b1 Signed-off-by: Ashay Jaiswal <quic_ashayj@quicinc.com>
This commit is contained in:
parent
c9410f348b
commit
92c1eb4e2f
|
|
@ -992,16 +992,18 @@ static void walt_binder_low_latency_set(void *unused, struct task_struct *task,
|
|||
(current->group_leader->prio < MAX_RT_PRIO &&
|
||||
task_in_related_thread_group(task))))
|
||||
wts->low_latency |= WALT_LOW_LATENCY_BINDER;
|
||||
}
|
||||
|
||||
static void walt_binder_low_latency_clear(void *unused, struct binder_transaction *t)
|
||||
{
|
||||
struct walt_task_struct *wts = (struct walt_task_struct *) current->android_vendor_data1;
|
||||
|
||||
if (unlikely(walt_disabled))
|
||||
return;
|
||||
if (wts->low_latency & WALT_LOW_LATENCY_BINDER)
|
||||
else
|
||||
/*
|
||||
* Clear low_latency flag if criterion above is not met, this
|
||||
* will handle usecase where for a binder thread WALT_LOW_LATENCY_BINDER
|
||||
* is set by one task and before WALT clears this flag after timer expiry
|
||||
* some other task tries to use same binder thread.
|
||||
*
|
||||
* The only gets cleared when binder transaction is initiated
|
||||
* and the above condition to set flasg is nto satisfied.
|
||||
*/
|
||||
wts->low_latency &= ~WALT_LOW_LATENCY_BINDER;
|
||||
|
||||
}
|
||||
|
||||
static void binder_set_priority_hook(void *data,
|
||||
|
|
@ -1364,7 +1366,6 @@ void walt_cfs_init(void)
|
|||
register_trace_android_rvh_select_task_rq_fair(walt_select_task_rq_fair, NULL);
|
||||
|
||||
register_trace_android_vh_binder_wakeup_ilocked(walt_binder_low_latency_set, NULL);
|
||||
register_trace_binder_transaction_received(walt_binder_low_latency_clear, NULL);
|
||||
|
||||
register_trace_android_vh_binder_set_priority(binder_set_priority_hook, NULL);
|
||||
register_trace_android_vh_binder_restore_priority(binder_restore_priority_hook, NULL);
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user