Re: [PATCH v8 0/8] nbd: eliminate queue freeze/unfreeze overhead in connection setup
yangerkun <[email protected]> Mon, 10 Aug 2026 08:43:21 +0800
| Newsgroups | org.kernel.vger.linux-block |
|---|---|
| Message-ID | <[email protected]> |
Hi Jens,
Would you be willing to consider applying this patchset?
Thanks,
Erkun.
在 2026/8/5 20:29, Yang Erkun 写道:
> This series eliminates the blk_mq_freeze_queue()/unfreeze_queue()
> overhead that currently occurs during nbd connection setup(nbd provide
> ondemand and was using in AI sandbox e2b[1] to mount and attach rootfs).
> Each freeze cycle will introduce a RCU grace which was significant
> with multi-core system.
>
> time nbd-client --name myexport --connections 96 127.0.0.1 1234
>
> After this patchset:
> real 0m0.090s
> user 0m0.004s
> sys 0m0.018s
>
> Without this patchset:
> real 0m2.195s
> user 0m0.005s
> sys 0m0.022s
>
> v7->v8:
> 1. clean some code for patch 7
> 2. reject invalid pre_defined_connections for patch 8
>
> v6->v7:
> 1. fix patch 3(sorry again for mistake in v6)
>
> v5->v6:
> 1. patch 3, reset stale FEAT*, not only write cache
> 2. patch 5, using the way Kuai advise to skip freeze
> 3. patch 6, adopt kuai's suggestion
> 4. patch 8, rename nr_hw_queues and add some comments
>
> v4->v5:
> 1. add patch 3 to reset write cache on disconnect
> 2. fix ("nbd: factor out a nbd_genl_foreach_sock")
>
> v3->v4:
> 1. factor out nbd_genl_foreach_sock to cleanup duplicated code
> 2. rewrite some commit message to make what's going more clearly
>
> v2->v3:
> 1. Stop using xarray, and protect it by rejecting late NBD_SET_SOCKS
> 2. Eliminate freeze in nbd_set_size when device setup
> 3. Add module parameter to eliminate freeze for pre-created device
>
> v1->v2:
> 1. Rewrite cover letter
> 2. Eliminate freeze call from blk_mq_update_nr_hw_queues in
> nbd_start_device for netlink path
>
> Long Li (1):
> nbd: simplify find_fallback() by removing redundant logic
>
> Yang Erkun (7):
> nbd: disallow NBD_SET_SOCK on an active device
> nbd: clear queue limits on disconnect
> nbd: remove queue freeze in nbd_add_socket
> nbd: skip queue freeze when setting size at device startup
> nbd: factor out a nbd_genl_foreach_sock
> nbd: remove queue freeze for newly created nbd from netlink path
> nbd: add pre_defined_connections module parameter for pre-created
> devices
>
> drivers/block/nbd.c | 257 +++++++++++++++++++++++---------------------
> 1 file changed, 137 insertions(+), 120 deletions(-)
>