On 5/14/20 2:55 AM, Damien Le Moal wrote:
On 2020/05/14 9:22, Martin K. Petersen wrote:
Damien,
Any idea why the io_opt limit is not set to the physical block size
when the drive does not report an optimal transfer length ? Would it
be bad to set that value instead of leaving it to 0 ?
The original intent was that io_opt was a weak heuristic for something
being a RAID device. Regular disk drives didn't report it. These days
that distinction probably isn't relevant.
However, before we entertain departing from the historic io_opt
behavior, I am a bit puzzled by the fact that you have a device that
reports io_opt as 512 bytes. What kind of device performs best when each
I/O is limited to a single logical block?
Indeed. It is an NVMe M.2 consumer grade SSD. Nothing fancy. If you look at
nvme/host/core.c nvme_update_disk_info(), you will see that io_opt is set to the
block size... This is probably abusing this limit. So I guess the most elegant
fix may be to have nvme stop doing that ?
Yes, I guess that would be the best approach. If the driver doesn't
report it we shouldn't make up any values but rather leave it at '0'.
Cheers,
Hannes
--
Dr. Hannes Reinecke Teamlead Storage & Networking
hare@xxxxxxx +49 911 74053 688
SUSE Software Solutions GmbH, Maxfeldstr. 5, 90409 Nürnberg
HRB 36809 (AG Nürnberg), Geschäftsführer: Felix Imendörffer
--
dm-devel mailing list
dm-devel@xxxxxxxxxx
https://www.redhat.com/mailman/listinfo/dm-devel