qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Qemu-devel] [Bug 1600563] Re: min_io_size is currently limited to size


From: Rubén Rodríguez
Subject: [Qemu-devel] [Bug 1600563] Re: min_io_size is currently limited to size uint16_t
Date: Sat, 15 Jul 2017 18:05:24 -0000

The value is set to uint16_t by mistake. The value is passed to Qemu in
bytes, but then it is divided by the sector size and passed to the vm in
sectors through a 16 bit register field. The vm kernel then multiplies
it again by sector size and shows (through /sys/block/x/queue) the value
in bytes. Because of this, the input value from the qemu side should be
uint32_t.

A simple patch is attached, correcting the problem. I think some extra
logic should be added after dividing by the page size, to prevent
overflowing the 16 bit register.

With that patch, I can pass a 4MB min and optimal io sizes successfully,
to match the stripe size used by RBD/Ceph. Sadly though, I see no
improvement coming out of it, but I'll document that in a separate bug
report.

address@hidden:~# lsblk -t
NAME     ALIGNMENT  MIN-IO  OPT-IO PHY-SEC LOG-SEC ROTA SCHED RQ-SIZE   RA WSAME
sda              0 4194304 4194304     512     512    1 noop      128 4096    2G

** Patch added: "min_io_size32.patch"
   
https://bugs.launchpad.net/qemu/+bug/1600563/+attachment/4915272/+files/min_io_size32.patch

-- 
You received this bug notification because you are a member of qemu-
devel-ml, which is subscribed to QEMU.
https://bugs.launchpad.net/bugs/1600563

Title:
  min_io_size is currently limited to size uint16_t

Status in QEMU:
  New

Bug description:
  I am using LVM VGs on MD-raid1 for hosting my KVM volumes. On the
  host, a VG looks like this:

  Disk /dev/vm/vol202a: 60 GiB, 64424509440 bytes, 125829120 sectors
  Units: sectors of 1 * 512 = 512 bytes
  Sector size (logical/physical): 512 bytes / 4096 bytes
  I/O size (minimum/optimal): 131072 bytes / 131072 bytes

  In order to replicate the block device characteristics in the guest, I
  am using the following extra parameters:

  -set device.scsi0-0-0-0.logical_block_size=512
  -set device.scsi0-0-0-0.physical_block_size=4096
  -set device.scsi0-0-0-0.min_io_size=131072

  This doesn't work as qemu complains that min_io_size needs to be of
  type uint16_t.

To manage notifications about this bug go to:
https://bugs.launchpad.net/qemu/+bug/1600563/+subscriptions



reply via email to

[Prev in Thread] Current Thread [Next in Thread]