On Thu, 16 Apr 2026 16:54:23 +0200 Petr Mladek <[email protected]> wrote:
> On Thu 2026-04-16 13:30:04, David Laight wrote: > > On Wed, 15 Apr 2026 15:01:37 +0800 > > [email protected] wrote: > > > > > From: Song Chen <[email protected]> > > > > > > The current notifier chain implementation uses a single-linked list > > > (struct notifier_block *next), which only supports forward traversal > > > in priority order. This makes it difficult to handle cleanup/teardown > > > scenarios that require notifiers to be called in reverse priority order. > > > > If it is only cleanup/teardown then the list can be order-reversed > > as part of that process at the same time as the list is deleted. > > Interesting idea. But it won't work in all situations. It is useful for things like locklessy queuing a request to be processed later. Items can be added with a cmpxchg and the list grabbed by xchg of NULL. The only downside is that reversing a list isn't cache friendly. Thinks... although that may not be any worse than accessing the current 'tail' to add to the end of a doubly linked (or singly linked with a tail ptr) list. David > > Note that the motivation for this update are the module loader > notifiers which are called several times for each loaded/removed module. > > Best Regards, > Petr >
