qemu-block
[Top][All Lists]
Advanced

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

[Qemu-block] Unaligned images with O_DIRECT


From: Max Reitz
Subject: [Qemu-block] Unaligned images with O_DIRECT
Date: Tue, 14 May 2019 17:06:55 +0200
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Thunderbird/60.6.1

Hi,

Unaligned images don’t work so well with O_DIRECT:

$ echo > foo
$ qemu-img map --image-opts driver=file,filename=foo,cache.direct=on
Offset          Length          Mapped to       File
qemu-img: block/io.c:2093: bdrv_co_block_status: Assertion `*pnum &&
QEMU_IS_ALIGNED(*pnum, align) && align > offset - aligned_offset' failed.
[1]    10954 abort (core dumped)  qemu-img map --image-opts
driver=file,filename=foo,cache.direct=on

(compare https://bugzilla.redhat.com/show_bug.cgi?id=1588356)

This is because the request_alignment is 512 (in my case), but the EOF
is not aligned accordingly, so raw_co_block_status() returns an aligned
*pnum.

I suppose having an unaligned tail is not so bad and maybe we can just
adjust the assertion accordingly.  On the other hand, this has been
broken for a while.  Does it even make sense to use O_DIRECT with
unaligned images?  Shouldn’t we just reject them outright?

Max

Attachment: signature.asc
Description: OpenPGP digital signature


reply via email to

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