Hi Hannes, On Thu, Apr 18, 2019 at 04:06:32PM +0200, Hannes Reinecke wrote: > When calling blk_queue_split() it will be using the per-queue > bioset to allocate the split bio from. However, blk_steal_bios() > might move the bio to another queue, _and_ the original queue > might be removed completely (nvme is especially prone to do so). Could you explain a bit how the original queue is removed in case that blk_steal_bios() is involved? > That leaves the bvecs of the split bio with a missing / destroyed > mempool, and a really fun crash in bio_endio(). per-queue bioset is used originally for avoiding deadlock, are you sure the static bioset is safe? Thanks, Ming