Re: [PATCH v2 1/4] blk-mq: use percpu csd to remote complete instead of per-rq csd

From: Ming Lei
Date: Wed Jul 05 2023 - 11:08:48 EST


On Thu, Jun 29, 2023 at 07:03:56PM +0800, chengming.zhou@xxxxxxxxx wrote:
> From: Chengming Zhou <zhouchengming@xxxxxxxxxxxxx>
>
> 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>
> ---
> v2:
> - Change to use call_single_data_t, which avoid to use 2 cache lines
> for 1 csd, as suggested by Ming Lei.
> - Improve the commit log, the explanation is copied from Ming Lei.

Reviewed-by: Ming Lei <ming.lei@xxxxxxxxxx>

Thanks,
Ming