All of lore.kernel.org
 help / color / mirror / Atom feed
From: Christoph Hellwig <hch@infradead.org>
To: Damien Le Moal <damien.lemoal@wdc.com>
Cc: linux-block@vger.kernel.org, Jens Axboe <axboe@kernel.dk>,
	linux-scsi@vger.kernel.org,
	"Martin K . Petersen" <martin.petersen@oracle.com>
Subject: Re: [PATCH v2 5/7] block: Delay default elevator initialization
Date: Tue, 3 Sep 2019 02:02:47 -0700	[thread overview]
Message-ID: <20190903090247.GE23783@infradead.org> (raw)
In-Reply-To: <20190828022947.23364-6-damien.lemoal@wdc.com>

On Wed, Aug 28, 2019 at 11:29:45AM +0900, Damien Le Moal wrote:
> When elevator_init_mq() is called from blk_mq_init_allocated_queue(),
> the only information known about the device is the number of hardware
> queues as the block device scan by the device driver is not completed
> yet. The device type and the device required features are not set yet,
> preventing to correctly choose the default elevator most suitable for
> the device.
> 
> This currently affects all multi-queue zoned block devices which default
> to the "none" elevator instead of the required "mq-deadline" elevator.
> These drives currently include host-managed SMR disks connected to a
> smartpqi HBA and null_blk block devices with zoned mode enabled.
> Upcoming NVMe Zoned Namespace devices will also be affected.
> 
> Fix this by moving the execution of elevator_init_mq() from
> blk_mq_init_allocated_queue() into __device_add_disk() to allow for the
> device driver to probe the device characteristics and set attributes
> of the device request queue prior to the elevator initialization.
> 
> Also to make sure that the elevator initialization is never done while
> requests are in-flight (there should be none when the device driver
> calls device_add_disk()), freeze and quiesce the device request queue
> before executing blk_mq_init_sched().

So the disk can be accessed from userspace or partition probing once we
registered the region.  Based on that I think it would be better if
we set the elevator a little earlier before that happens.  With that
we shouldn't have to freeze the queue.

  reply	other threads:[~2019-09-03  9:02 UTC|newest]

Thread overview: 23+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-08-28  2:29 [PATCH v2 0/7] Elevator cleanups and improvements Damien Le Moal
2019-08-28  2:29 ` [PATCH v2 1/7] block: Cleanup elevator_init_mq() use Damien Le Moal
2019-09-03  8:55   ` Christoph Hellwig
2019-08-28  2:29 ` [PATCH v2 2/7] block: Change elevator_init_mq() to always succeed Damien Le Moal
2019-09-03  8:55   ` Christoph Hellwig
2019-08-28  2:29 ` [PATCH v2 3/7] block: Introduce elevator features Damien Le Moal
2019-08-28  8:16   ` Johannes Thumshirn
2019-08-28 10:41     ` Damien Le Moal
2019-08-28 10:43       ` Johannes Thumshirn
2019-08-28 11:08         ` Damien Le Moal
2019-08-28 11:11           ` Johannes Thumshirn
2019-09-03  8:56   ` Christoph Hellwig
2019-08-28  2:29 ` [PATCH v2 4/7] block: Improve default elevator selection Damien Le Moal
2019-09-03  8:57   ` Christoph Hellwig
2019-09-04  8:42     ` Damien Le Moal
2019-08-28  2:29 ` [PATCH v2 5/7] block: Delay default elevator initialization Damien Le Moal
2019-09-03  9:02   ` Christoph Hellwig [this message]
2019-09-04  2:07     ` Damien Le Moal
2019-09-04  6:47       ` Christoph Hellwig
2019-08-28  2:29 ` [PATCH v2 6/7] block: Set ELEVATOR_F_ZBD_SEQ_WRITE for nullblk zoned disks Damien Le Moal
2019-09-03  9:03   ` Christoph Hellwig
2019-08-28  2:29 ` [PATCH v2 7/7] scsi: Set ELEVATOR_F_ZBD_SEQ_WRITE for ZBC disks Damien Le Moal
2019-09-03  9:03   ` Christoph Hellwig

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20190903090247.GE23783@infradead.org \
    --to=hch@infradead.org \
    --cc=axboe@kernel.dk \
    --cc=damien.lemoal@wdc.com \
    --cc=linux-block@vger.kernel.org \
    --cc=linux-scsi@vger.kernel.org \
    --cc=martin.petersen@oracle.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.