From: John Garry <john.g.garry@oracle.com>
To: Christoph Hellwig <hch@lst.de>
Cc: "Michael S. Tsirkin" <mst@redhat.com>,
Jason Wang <jasowang@redhat.com>,
Xuan Zhuo <xuanzhuo@linux.alibaba.com>,
Paolo Bonzini <pbonzini@redhat.com>,
Stefan Hajnoczi <stefanha@redhat.com>,
"Martin K. Petersen" <martin.petersen@oracle.com>,
Damien Le Moal <dlemoal@kernel.org>,
Keith Busch <kbusch@kernel.org>, Sagi Grimberg <sagi@grimberg.me>,
linux-block@vger.kernel.org, linux-nvme@lists.infradead.org,
virtualization@lists.linux.dev, Jens Axboe <axboe@kernel.dk>
Subject: Re: [PATCH 12/15] virtio_blk: pass queue_limits to blk_mq_alloc_disk
Date: Sun, 30 Jun 2024 10:55:12 +0100 [thread overview]
Message-ID: <2455c846-e232-4e6e-8ba0-cd9de0cc7b03@oracle.com> (raw)
In-Reply-To: <20240629051958.GA15371@lst.de>
On 29/06/2024 06:19, Christoph Hellwig wrote:
> On Fri, Jun 28, 2024 at 03:25:02PM +0100, John Garry wrote:
>> I think that we might need a change like the following change after this:
>>
>> ----8<----
>> [PATCH] virtio_blk: Fix default logical block size
>>
>> If we fail to read a logical block size in virtblk_read_limits() ->
>> virtio_cread_feature(), then we default to what is in
>> lim->logical_block_size, but that would be 0.
>>
>> We can deal with lim->logical_block_size = 0 later in the
>> blk_mq_alloc_disk(), but the subsequent code in virtblk_read_limits()
>> cannot, so give a default of SECTOR_SIZE.
>
> I think the right fix would be to initialize it where the virtio code
> currently uses the uninitialized lim->logical_block_size. That assumes
> that we really want to handle this case. If reading the block size
> fails, can we really trust reading other less basic attributes? Or
> should we just fail the probe?
According to the comment on virtio_cread_feature, it is conditional
(which I read as optional) and that function can only fail with -ENOENT.
So I don't think that the probe should fail. virtio people?
From my qemu testing, it is always supplied (obvs).
>
> diff --git a/drivers/block/virtio_blk.c b/drivers/block/virtio_blk.c
> index 6c64a67ab9c901..5bde41505818f9 100644
> --- a/drivers/block/virtio_blk.c
> +++ b/drivers/block/virtio_blk.c
> @@ -1303,7 +1303,7 @@ static int virtblk_read_limits(struct virtio_blk *vblk,
>
> lim->logical_block_size = blk_size;
> } else
> - blk_size = lim->logical_block_size;
> + blk_size = SECTOR_SIZE;
I think that it would need to be:
blk_size = lim->logical_block_size = SECTOR_SIZE;
Which is a big ugly, so maybe:
if (err)
blk_size = SECTOR_SIZE;
lim->logical_block_size = SECTOR_SIZE;
or, alternatively, set bsize to SECTOR_SIZE when declared.
>
> /* Use topology information if available */
> err = virtio_cread_feature(vdev, VIRTIO_BLK_F_TOPOLOGY,
next prev parent reply other threads:[~2024-06-30 9:55 UTC|newest]
Thread overview: 67+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-01-22 17:36 atomic queue limits updates Christoph Hellwig
2024-01-22 17:36 ` [PATCH 01/15] block: move max_{open,active}_zones to struct queue_limits Christoph Hellwig
2024-01-23 4:39 ` Damien Le Moal
2024-01-24 6:00 ` Hannes Reinecke
2024-01-22 17:36 ` [PATCH 02/15] block: refactor disk_update_readahead Christoph Hellwig
2024-01-23 4:41 ` Damien Le Moal
2024-01-23 8:40 ` Christoph Hellwig
2024-01-24 6:01 ` Hannes Reinecke
2024-01-22 17:36 ` [PATCH 03/15] block: add an API to atomically update queue limits Christoph Hellwig
2024-01-23 4:50 ` Damien Le Moal
2024-01-23 8:44 ` Christoph Hellwig
2024-01-24 6:08 ` Hannes Reinecke
2024-01-24 9:21 ` Christoph Hellwig
2024-01-25 10:28 ` John Garry
2024-01-25 14:35 ` Christoph Hellwig
2024-01-22 17:36 ` [PATCH 04/15] block: use queue_limits_commit_update in queue_max_sectors_store Christoph Hellwig
2024-01-23 5:07 ` Damien Le Moal
2024-01-24 6:09 ` Hannes Reinecke
2024-01-22 17:36 ` [PATCH 05/15] block: add a max_user_discard_sectors queue limit Christoph Hellwig
2024-01-22 18:27 ` Keith Busch
2024-01-22 18:38 ` Christoph Hellwig
2024-01-24 15:44 ` Keith Busch
2024-01-25 8:12 ` Christoph Hellwig
2024-01-24 6:10 ` Hannes Reinecke
2024-01-22 17:36 ` [PATCH 06/15] nvme: remove the hack to not update the discard limits in nvme_config_discard Christoph Hellwig
2024-01-23 5:12 ` Damien Le Moal
2024-01-23 8:45 ` Christoph Hellwig
2024-01-24 6:11 ` Hannes Reinecke
2024-01-22 17:36 ` [PATCH 07/15] block: use queue_limits_commit_update in queue_discard_max_store Christoph Hellwig
2024-01-23 5:16 ` Damien Le Moal
2024-01-24 6:12 ` Hannes Reinecke
2024-01-22 17:36 ` [PATCH 08/15] block: pass a queue_limits argument to blk_alloc_queue Christoph Hellwig
2024-01-23 5:17 ` Damien Le Moal
2024-01-24 6:14 ` Hannes Reinecke
2024-01-25 9:45 ` John Garry
2024-01-25 14:32 ` Christoph Hellwig
2024-01-22 17:36 ` [PATCH 09/15] block: pass a queue_limits argument to blk_mq_init_queue Christoph Hellwig
2024-01-23 5:19 ` Damien Le Moal
2024-01-24 6:16 ` Hannes Reinecke
2024-01-22 17:36 ` [PATCH 10/15] block: pass a queue_limits argument to blk_mq_alloc_disk Christoph Hellwig
2024-01-23 5:22 ` Damien Le Moal
2024-01-24 6:17 ` Hannes Reinecke
2024-01-22 17:36 ` [PATCH 11/15] virtio_blk: split virtblk_probe Christoph Hellwig
2024-01-23 5:26 ` Damien Le Moal
2024-01-23 14:16 ` Stefan Hajnoczi
2024-01-23 20:23 ` Chaitanya Kulkarni
2024-01-24 6:19 ` Hannes Reinecke
2024-01-22 17:36 ` [PATCH 12/15] virtio_blk: pass queue_limits to blk_mq_alloc_disk Christoph Hellwig
2024-01-23 5:27 ` Damien Le Moal
2024-01-23 14:19 ` Stefan Hajnoczi
2024-01-24 6:21 ` Hannes Reinecke
2024-06-28 14:25 ` John Garry
2024-06-29 5:19 ` Christoph Hellwig
2024-06-30 9:55 ` John Garry [this message]
2024-07-01 4:54 ` Christoph Hellwig
2024-01-22 17:36 ` [PATCH 13/15] loop: cleanup loop_config_discard Christoph Hellwig
2024-01-23 5:28 ` Damien Le Moal
2024-01-24 5:29 ` Chaitanya Kulkarni
2024-01-24 6:21 ` Hannes Reinecke
2024-01-22 17:36 ` [PATCH 14/15] loop: pass queue_limits to blk_mq_alloc_disk Christoph Hellwig
2024-01-23 5:29 ` Damien Le Moal
2024-01-24 6:22 ` Hannes Reinecke
2024-01-22 17:36 ` [PATCH 15/15] loop: use the atomic queue limits update API Christoph Hellwig
2024-01-23 5:31 ` Damien Le Moal
2024-01-24 6:22 ` Hannes Reinecke
-- strict thread matches above, loose matches on Subject: below --
2024-02-12 6:45 atomic queue limits updates v4 Christoph Hellwig
2024-02-12 6:46 ` [PATCH 12/15] virtio_blk: pass queue_limits to blk_mq_alloc_disk Christoph Hellwig
2024-02-13 7:34 atomic queue limits updates v5 Christoph Hellwig
2024-02-13 7:34 ` [PATCH 12/15] virtio_blk: pass queue_limits to blk_mq_alloc_disk 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=2455c846-e232-4e6e-8ba0-cd9de0cc7b03@oracle.com \
--to=john.g.garry@oracle.com \
--cc=axboe@kernel.dk \
--cc=dlemoal@kernel.org \
--cc=hch@lst.de \
--cc=jasowang@redhat.com \
--cc=kbusch@kernel.org \
--cc=linux-block@vger.kernel.org \
--cc=linux-nvme@lists.infradead.org \
--cc=martin.petersen@oracle.com \
--cc=mst@redhat.com \
--cc=pbonzini@redhat.com \
--cc=sagi@grimberg.me \
--cc=stefanha@redhat.com \
--cc=virtualization@lists.linux.dev \
--cc=xuanzhuo@linux.alibaba.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).