]> git.baikalelectronics.ru Git - kernel.git/commit
kvfree_rcu: Refactor kfree_rcu_monitor()
authorUladzislau Rezki (Sony) <urezki@gmail.com>
Wed, 21 Apr 2021 11:22:52 +0000 (13:22 +0200)
committerPaul E. McKenney <paulmck@kernel.org>
Mon, 10 May 2021 23:00:48 +0000 (16:00 -0700)
commitecbbb6adbe3302b09530e5740b34129a1a85065e
tree87242fb61dc474251820450899c9e766135426c5
parent12d8b5aa3a511c1cbac9b26fd61895027f56b7d1
kvfree_rcu: Refactor kfree_rcu_monitor()

Currently we have three functions which depend on each other.
Two of them are quite tiny and the last one where the most
work is done. All of them are related to queuing RCU batches
to reclaim objects after a GP.

1. kfree_rcu_monitor(). It consist of few lines. It acquires a spin-lock
   and calls kfree_rcu_drain_unlock().

2. kfree_rcu_drain_unlock(). It also consists of few lines of code. It
   calls queue_kfree_rcu_work() to queue the batch.  If this fails,
   it rearms the monitor work to try again later.

3. queue_kfree_rcu_work(). This provides the bulk of the functionality,
   attempting to start a new batch to free objects after a GP.

Since there are no external users of functions [2] and [3], both
can eliminated by moving all logic directly into [1], which both
shrinks and simplifies the code.

Also replace comments which start with "/*" to "//" format to make it
unified across the file.

Signed-off-by: Uladzislau Rezki (Sony) <urezki@gmail.com>
Signed-off-by: Paul E. McKenney <paulmck@kernel.org>
kernel/rcu/tree.c