2023-09-15 02:56:39

by NeilBrown

[permalink] [raw]
Subject: Re: [PATCH v1 11/17] lib: add light-weight queuing mechanism.

On Fri, 15 Sep 2023, Chuck Lever III wrote:
>
> > On Sep 11, 2023, at 9:30 PM, Andrew Morton <[email protected]> wrote:
> >
> > On Tue, 12 Sep 2023 09:19:59 +1000 "NeilBrown" <[email protected]> wrote:
> >
> >> Plain old list_heads (which the code currently uses) require a spinlock
> >> to be taken to insert something into the queue. As this is usually in
> >> bh context, it needs to be a spin_lock_bh(). My understanding is that
> >> the real-time developers don't much like us disabling bh. It isn't an
> >> enormous win switching from a list_head list to a llist_node list, but
> >> there are small gains such as object size reduction and less locking. I
> >> particularly wanted an easy-to-use library facility that could be
> >> plugged in to two different uses cases in the sunrpc code and there
> >> didn't seem to be one. I could have written one using list_head, but
> >> llist seemed a better fix. I think the code in sunrpc that uses this
> >> lwq looks a lot neater after the conversion.
> >
> > Thanks. Could we please get words such as these into the changelog,
> > describing why it was felt necessary to add more library code?
> >
> > And also into the .c file, to help people who are looking at it and
> > wondering "can I use this". And to help reviewers who are wondering
> > "could they have used Neil's thing".
>
> Neil, are you planning to send along a replacement for 11/17,
> or would you like me to fold the above into the patch description
> I have now?

Sorry I didn't reply sooner - been busy.
I'll send a patch that can be squashed in to 11/17 which adds some more
explanatory text. Hopefully soonish.

NeilBrown