Re: [RFC PATCH v2 0/3] Move usages of struct __call_single_data to call_single_data_t

From: Leonardo Brás
Date: Wed Aug 30 2023 - 22:07:04 EST


On Wed, 2023-08-30 at 16:48 -0600, Jens Axboe wrote:
> On 8/30/23 4:29 PM, Leonardo Br?s wrote:
> > On Tue, 2023-08-29 at 10:29 +0800, Chengming Zhou wrote:
> > > On 2023/8/29 08:55, Leonardo Br?s wrote:
> > > > On Tue, 2023-07-04 at 04:22 -0300, Leonardo Br?s wrote:
> > > > > On Tue, 2023-06-13 at 00:51 -0300, Leonardo Bras Soares Passos wrote:
> > > > > > Friendly ping
> > > > > >
> > > > > > On Sat, May 20, 2023 at 2:30?AM Leonardo Bras <leobras@xxxxxxxxxx> wrote:
> > > > > > >
> > > > > > > Changes since RFCv1:
> > > > > > > - request->csd moved to the middle of the struct, without size impact
> > > > > > > - type change happens in a different patch (thanks Jens Axboe!)
> > > > > > > - Improved the third patch to also update the .h file.
> > > > > > >
> > > > > > > Leonardo Bras (3):
> > > > > > > blk-mq: Move csd inside struct request so it's 32-byte aligned
> > > > > > > blk-mq: Change request->csd type to call_single_data_t
> > > > > > > smp: Change signatures to use call_single_data_t
> > > > > > >
> > > > > > > include/linux/blk-mq.h | 10 +++++-----
> > > > > > > include/linux/smp.h | 2 +-
> > > > > > > kernel/smp.c | 4 ++--
> > > > > > > kernel/up.c | 2 +-
> > > > > > > 4 files changed, 9 insertions(+), 9 deletions(-)
> > > > > > >
> > > > > > > --
> > > > > > > 2.40.1
> > > > > > >
> > > > >
> > > > > Hello Jens,
> > > > >
> > > > > I still want your feedback on this series :)
> > > > >
> > > > > I think I addressed every issue of RFCv1, but if you have any other feedback,
> > > > > please let me know.
> > > > >
> > > > > Thanks!
> > > > > Leo
> > > >
> > > > Hello Jens Axboe,
> > > >
> > > > Please provide feedback on this series!
> > > >
> > > > Are you ok with those changes?
> > > > What's your opinion on them?
> > > >
> > > > Thanks!
> > > > Leo
> > > >
> > >
> > > Hello,
> > >
> > > FYI, there is no csd in struct request anymore in block/for-next branch,
> > > which is deleted by this commit:
> > >
> > > commit 660e802c76c89e871c29cd3174c07c8d23e39c35
> > > Author: Chengming Zhou <zhouchengming@xxxxxxxxxxxxx>
> > > Date: Mon Jul 17 12:00:55 2023 +0800
> > >
> > > blk-mq: use percpu csd to remote complete instead of per-rq csd
> > >
> > > If request need to be completed remotely, we insert it into percpu llist,
> > > and smp_call_function_single_async() if llist is empty previously.
> > >
> > > We don't need to use per-rq csd, percpu csd is enough. And the size of
> > > struct request is decreased by 24 bytes.
> > >
> > > This way is cleaner, and looks correct, given block softirq is guaranteed
> > > to be scheduled to consume the list if one new request is added to this
> > > percpu list, either smp_call_function_single_async() returns -EBUSY or 0.
> > >
> > > Signed-off-by: Chengming Zhou <zhouchengming@xxxxxxxxxxxxx>
> > > Reviewed-by: Ming Lei <ming.lei@xxxxxxxxxx>
> > > Reviewed-by: Christoph Hellwig <hch@xxxxxx>
> > > Link: https://lore.kernel.org/r/20230717040058.3993930-2-chengming.zhou@xxxxxxxxx
> > > Signed-off-by: Jens Axboe <axboe@xxxxxxxxx>
> > >
> >
> >
> > Oh, thanks for the heads-up!
> > I will send reviewed version of patch 3.
> >
> > I suppose it can go on top of block/for-next, since the above patch is there.
> > Does that work for you Jens Axboe?
>
> Just send it against Linus's tree, it's all upstream now.
>

Sure,

Thanks!
Leo