[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH v2 7/9] blkdebug: Add pass-through write_zero an
From: |
Eric Blake |
Subject: |
Re: [Qemu-devel] [PATCH v2 7/9] blkdebug: Add pass-through write_zero and discard support |
Date: |
Thu, 17 Nov 2016 19:17:27 -0600 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.4.0 |
On 11/17/2016 05:27 PM, Max Reitz wrote:
> On 17.11.2016 21:14, Eric Blake wrote:
>> In order to test the effects of artificial geometry constraints
>> on operations like write zero or discard, we first need blkdebug
>> to manage these actions. Ideally, it would be nice to let these
>> operations also react to injected errors like read/write/flush,
>> but it is not trivial to turn bdrv_aio error injection (where
>> we return BlockAIOCB*) into bdrv_co (where we return int), not
>> to mention the fact that I don't want to conflict with Kevin's
>> concurrent work on refactoring away from bdrv_aio. So for now,
>> the operations merely have a TODO comment for adding error
>> injection.
>>
>> However, one thing we CAN test is the contract promised by the
>> block layer; namely, if a device has specified limits on
>> alignment or maximum size, then those limits must be obeyed (for
>> now, the blkdebug driver merely inherits limits from whatever it
>> is wrapping, but the next patch will further enhance it to allow
>> specific limit overrides).
>>
>> Tested by setting up an NBD server with export 'foo', then invoking:
>> $ ./qemu-io
>> qemu-io> open -o driver=blkdebug blkdebug::nbd://localhost:10809/foo
>> qemu-io> d 0 15M
>> qemu-io> w -z 0 15M
>>
>> Pre-patch, the server never sees the discard (it was silently
>> eaten by the block layer); post-patch it is passed across the
>> wire. Likewise, pre-patch the write is always passed with
>> NBD_WRITE (with 15M of zeroes on the wire), while post-patch
>> it can utilize NBD_WRITE_ZEROES (for less traffic).
>>
>> Signed-off-by: Eric Blake <address@hidden>
>> ---
>> block/blkdebug.c | 61
>> ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
>> 1 file changed, 61 insertions(+)
>
> I probably have to take my R-b back, since this patch breaks iotest 98.
Huh, I guess I tweaked things since the last time I reran full tests;
but I indeed see a failure in './check -qcow2 98'. I'll investigate
tomorrow when I'm not as tired.
At least this patch is not 2.8 material, so respinning it doesn't affect
the other patches that should go in before the release.
--
Eric Blake eblake redhat com +1-919-301-3266
Libvirt virtualization library http://libvirt.org
signature.asc
Description: OpenPGP digital signature
- Re: [Qemu-devel] [PATCH v2 5/9] block: Pass unaligned discard requests to drivers, (continued)
[Qemu-devel] [PATCH v2 8/9] blkdebug: Add ability to override unmap geometries, Eric Blake, 2016/11/17
[Qemu-devel] [PATCH v2 7/9] blkdebug: Add pass-through write_zero and discard support, Eric Blake, 2016/11/17
[Qemu-devel] [PATCH v2 9/9] tests: Add coverage for recent block geometry fixes, Eric Blake, 2016/11/17
- Re: [Qemu-devel] [PATCH v2 9/9] tests: Add coverage for recent block geometry fixes, Max Reitz, 2016/11/17
- Re: [Qemu-devel] [PATCH v2 9/9] tests: Add coverage for recent block geometry fixes, Max Reitz, 2016/11/17
- Re: [Qemu-devel] [PATCH v2 9/9] tests: Add coverage for recent block geometry fixes, Eric Blake, 2016/11/17
- Re: [Qemu-devel] [PATCH v2 9/9] tests: Add coverage for recent block geometry fixes, Max Reitz, 2016/11/19
- Re: [Qemu-devel] [PATCH v2 9/9] tests: Add coverage for recent block geometry fixes, Max Reitz, 2016/11/19
- Re: [Qemu-devel] [PATCH v2 9/9] tests: Add coverage for recent block geometry fixes, Kevin Wolf, 2016/11/21
- Re: [Qemu-devel] [PATCH v2 9/9] tests: Add coverage for recent block geometry fixes, Eric Blake, 2016/11/21
Re: [Qemu-devel] [PATCH v2 for-2.8* 0/9] Fix block regressions, add blkdebug tests, Kevin Wolf, 2016/11/22