On Wed, May 3, 2017 at 6:34 AM, NeilBrown <neilb@xxxxxxxx> wrote: > From 09017acf74ec4df674b78ca66f0924187f10d8a4 Mon Sep 17 00:00:00 2001 > From: NeilBrown <neilb@xxxxxxxx> > Date: Fri, 10 Mar 2017 13:59:50 +1100 > Subject: [PATCH] blk: make the bioset rescue_workqueue optional. > > This patch converts bioset_create() to not create a workqueue by > default, so alloctions will never trigger punt_bios_to_rescuer(). It > also introduces a new flag BIOSET_NEED_RESCUER() which tells > bioset_create() to preserve the old behavior. > > All callers of bioset_create() that are inside block device drivers, > are given the BIOSET_NEED_RESCUER(). > > biosets used by filesystems or other top-level users do not > need rescuing as the bio can never be queued behind other > bios. This includes fs_bio_set, blkdev_dio_pool, > btrfs_bioset, xfs_ioend_bioset, and one allocated by > target_core_iblock.c. > > biosets used by md/raid do not need rescuing as > their usage was recently audited and revised to never > risk deadlock. > > It is hoped that most, if not all, of the remaining biosets > can end up being the non-rescued version. > > Reviewed-by: Christoph Hellwig <hch@xxxxxx> > Credit-to: Ming Lei <ming.lei@xxxxxxxxxx> (minor fixes) > Signed-off-by: NeilBrown <neilb@xxxxxxxx> Reviewed-by: Ming Lei <ming.lei@xxxxxxxxxx> Thanks, Ming