diff mbox series

[for-7.2] block/blkio: Set BlockDriver::has_variable_length to false

Message ID 20221108144433.1334074-1-afaria@redhat.com
State New
Headers show
Series [for-7.2] block/blkio: Set BlockDriver::has_variable_length to false | expand

Commit Message

Alberto Faria Nov. 8, 2022, 2:44 p.m. UTC
Setting it to true can cause the device size to be queried from libblkio
in otherwise fast paths, degrading performance. Set it to false and
require users to refresh the device size explicitly instead.

Fixes: 4c8f4fda0504 ("block/blkio: Tolerate device size changes")
Suggested-by: Kevin Wolf <kwolf@redhat.com>
Signed-off-by: Alberto Faria <afaria@redhat.com>
---
 block/blkio.c | 1 -
 1 file changed, 1 deletion(-)

Comments

Kevin Wolf Nov. 10, 2022, 1:53 p.m. UTC | #1
Am 08.11.2022 um 15:44 hat Alberto Faria geschrieben:
> Setting it to true can cause the device size to be queried from libblkio
> in otherwise fast paths, degrading performance. Set it to false and
> require users to refresh the device size explicitly instead.
> 
> Fixes: 4c8f4fda0504 ("block/blkio: Tolerate device size changes")
> Suggested-by: Kevin Wolf <kwolf@redhat.com>
> Signed-off-by: Alberto Faria <afaria@redhat.com>

Thanks, applied to the block branch.

Kevin
Stefan Hajnoczi Nov. 10, 2022, 9:01 p.m. UTC | #2
On Tue, 8 Nov 2022 at 09:45, Alberto Faria <afaria@redhat.com> wrote:
>
> Setting it to true can cause the device size to be queried from libblkio
> in otherwise fast paths, degrading performance. Set it to false and
> require users to refresh the device size explicitly instead.
>
> Fixes: 4c8f4fda0504 ("block/blkio: Tolerate device size changes")
> Suggested-by: Kevin Wolf <kwolf@redhat.com>
> Signed-off-by: Alberto Faria <afaria@redhat.com>

If it's okay to set it to false then that makes me wonder why this
undocumented field exists at all. Can you or Kevin explain and
possibly follow up with a patch that documents the field?

Thanks,
Stefan
Kevin Wolf Nov. 11, 2022, 10:03 a.m. UTC | #3
Am 10.11.2022 um 22:01 hat Stefan Hajnoczi geschrieben:
> On Tue, 8 Nov 2022 at 09:45, Alberto Faria <afaria@redhat.com> wrote:
> >
> > Setting it to true can cause the device size to be queried from libblkio
> > in otherwise fast paths, degrading performance. Set it to false and
> > require users to refresh the device size explicitly instead.
> >
> > Fixes: 4c8f4fda0504 ("block/blkio: Tolerate device size changes")
> > Suggested-by: Kevin Wolf <kwolf@redhat.com>
> > Signed-off-by: Alberto Faria <afaria@redhat.com>
> 
> If it's okay to set it to false then that makes me wonder why this
> undocumented field exists at all. Can you or Kevin explain and
> possibly follow up with a patch that documents the field?

It is for removable media backends (only host_cdrom has survived until
today; there used to be host_floppy, too) where the disk size can change
without an explicit block_resize when you change the medium.

I'm not sure how well this works in practice, but so far we've not
intentionally broken anything related to it that wasn't always broken.

Kevin
diff mbox series

Patch

diff --git a/block/blkio.c b/block/blkio.c
index 620fab28a7..5eae3adfaf 100644
--- a/block/blkio.c
+++ b/block/blkio.c
@@ -993,7 +993,6 @@  static void blkio_refresh_limits(BlockDriverState *bs, Error **errp)
     { \
         .format_name             = name, \
         .protocol_name           = name, \
-        .has_variable_length     = true, \
         .instance_size           = sizeof(BDRVBlkioState), \
         .bdrv_file_open          = blkio_file_open, \
         .bdrv_close              = blkio_close, \