Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit d9b96411 authored by Omprakash Dhyade's avatar Omprakash Dhyade
Browse files

fs: Use synchronize_rcu_expedited



synchronize_rcu depends on preemption to come
out of sleep. The checks are at tick, so the
worst case delays are of order 10ms.
In multi-core system, scheduler may not preempt
a high cpu demand tasks for long durations
(~50ms or more) as it can accommodate remaining
tasks on other cores, including idle cores.
This can cause high delays for umount as it
uses synchronize_rcu. On average it takes 20ms,
some iteration taking upto 50ms in real world
scenarios of launching applications.
Use synchronize_rcu_expedited instead.

Change-Id: Ic0152126b5a4e49cfb6d6e5d4d464733cfa3b568
Signed-off-by: default avatarOmprakash Dhyade <odhyade@codeaurora.org>
parent 182fc241
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -1306,7 +1306,7 @@ static void namespace_unlock(void)

	up_write(&namespace_sem);

	synchronize_rcu();
	synchronize_rcu_expedited();

	while (!hlist_empty(&head)) {
		mnt = hlist_entry(head.first, struct mount, mnt_hash);