Add a comment about the use of the synchronize_rcu() invocation.
There are two invocations of the synchronize_rcu() call in the
pkey base code. On one place it is optional but used to enforce
a fast path update to the other CPUs. As some people and code
checkers complain about this redundant invocation the suggestion
came up to add a comment to explain why the call is meaningful
at that place.
Closes: https://lore.kernel.org/linux-s390/20260313052312.2389-1-lirongqing@baidu.com/
Suggested-by: Li Rongqing <lirongqing@baidu.com>
Signed-off-by: Harald Freudenberger <freude@linux.ibm.com>
Reviewed-by: Holger Dengler <dengler@linux.ibm.com>
Signed-off-by: Vasily Gorbik <gor@linux.ibm.com>
list_add_rcu(&handler->list, &handler_list);
spin_unlock(&handler_list_write_lock);
+ /*
+ * Fast path to push the info about the updated list to the other
+ * CPUs. If removed, the other CPUs may get the updated list when the
+ * RCU context is synched. As this code is in general not performance
+ * critical and the list update mostly only occurs at the early time in
+ * system startup the focus is on concurrency versus performance.
+ */
synchronize_rcu();
module_put(handler->module);