From: Paul E. McKenney Date: Wed, 20 Jan 2021 21:38:08 +0000 (-0800) Subject: kvfree_rcu: Make krc_this_cpu_unlock() use raw_spin_unlock_irqrestore() X-Git-Tag: accepted/tizen/unified/20230118.172025~7363^2^2^3~3 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=7ffc9ec8eac196cbd85669a4d7920cd80f186a51;p=platform%2Fkernel%2Flinux-rpi.git kvfree_rcu: Make krc_this_cpu_unlock() use raw_spin_unlock_irqrestore() The krc_this_cpu_unlock() function does a raw_spin_unlock() immediately followed by a local_irq_restore(). This commit saves a line of code by merging them into a raw_spin_unlock_irqrestore(). This transformation also reduces scheduling latency because raw_spin_unlock_irqrestore() responds immediately to a reschedule request. In contrast, local_irq_restore() does a scheduling-oblivious enabling of interrupts. Reported-by: Sebastian Andrzej Siewior Signed-off-by: Paul E. McKenney --- diff --git a/kernel/rcu/tree.c b/kernel/rcu/tree.c index 08b5044..7ee83f3 100644 --- a/kernel/rcu/tree.c +++ b/kernel/rcu/tree.c @@ -3229,8 +3229,7 @@ krc_this_cpu_lock(unsigned long *flags) static inline void krc_this_cpu_unlock(struct kfree_rcu_cpu *krcp, unsigned long flags) { - raw_spin_unlock(&krcp->lock); - local_irq_restore(flags); + raw_spin_unlock_irqrestore(&krcp->lock, flags); } static inline struct kvfree_rcu_bulk_data *