Re: [PATCH v2 14/22] qemu-iotests/199: better catch postcopy time

2020-07-23 Thread Vladimir Sementsov-Ogievskiy
19.02.2020 16:16, Andrey Shinkevich wrote: On 17/02/2020 18:02, Vladimir Sementsov-Ogievskiy wrote: The test aims to test _postcopy_ migration, and wants to do some write operations during postcopy time. Test considers migrate status=complete event on source as start of postcopy. This is comple

Re: [PATCH v2 12/22] qemu-iotests/199: fix style

2020-07-23 Thread Vladimir Sementsov-Ogievskiy
24.07.2020 01:03, Eric Blake wrote: On 2/17/20 9:02 AM, Vladimir Sementsov-Ogievskiy wrote: Mostly, satisfy pep8 complains. Signed-off-by: Vladimir Sementsov-Ogievskiy ---   tests/qemu-iotests/199 | 13 +++--   1 file changed, 7 insertions(+), 6 deletions(-) With none of your series a

Re: [PATCH 4/7] ide: reorder set/get sector functions

2020-07-23 Thread Philippe Mathieu-Daudé
On 7/24/20 7:22 AM, John Snow wrote: > Reorder these just a pinch to make them more obvious at a glance what > the addressing mode is. > > Signed-off-by: John Snow > --- > hw/ide/core.c | 26 +++--- > 1 file changed, 15 insertions(+), 11 deletions(-) Reviewed-by: Philippe Ma

Re: [PATCH 1/7] ide: rename cmd_write to ctrl_write

2020-07-23 Thread Philippe Mathieu-Daudé
On 7/24/20 7:22 AM, John Snow wrote: > It's the Control register, part of the Control block -- Command is > misleading here. Rename all related functions and constants. > > Signed-off-by: John Snow > --- > include/hw/ide/internal.h | 9 + > hw/ide/core.c | 12 ++-- >

[PATCH 7/7] ide: cancel pending callbacks on SRST

2020-07-23 Thread John Snow
The SRST implementation did not keep up with the rest of IDE; it is possible to perform a weak reset on an IDE device to remove the BSY/DRQ bits, and then issue writes to the control/device registers which can cause chaos with the state machine. Fix that by actually performing a real reset. Repor

[PATCH 5/7] ide: remove magic constants from the device register

2020-07-23 Thread John Snow
(In QEMU, we call this the "select" register.) My memory isn't good enough to memorize what these magic runes do. Label them to prevent mixups from happening in the future. Side note: I assume it's safe to always set 0xA0 even though ATA2 claims these bits are reserved, because ATA3 immediately r

[PATCH 4/7] ide: reorder set/get sector functions

2020-07-23 Thread John Snow
Reorder these just a pinch to make them more obvious at a glance what the addressing mode is. Signed-off-by: John Snow --- hw/ide/core.c | 26 +++--- 1 file changed, 15 insertions(+), 11 deletions(-) diff --git a/hw/ide/core.c b/hw/ide/core.c index a880b91b47..f35864070b 100

[PATCH 1/7] ide: rename cmd_write to ctrl_write

2020-07-23 Thread John Snow
It's the Control register, part of the Control block -- Command is misleading here. Rename all related functions and constants. Signed-off-by: John Snow --- include/hw/ide/internal.h | 9 + hw/ide/core.c | 12 ++-- hw/ide/ioport.c | 2 +- hw/ide/macio.c

[PATCH 6/7] ide: clear interrupt on command write

2020-07-23 Thread John Snow
Not known to fix any bug, but I couldn't help but notice that ATA specifies that writing to this register should clear an interrupt. ATA7: Section 5.3.3 (Command register - Effect) ATA6: Section 7.4.4 (Command register - Effect) ATA5: Section 7.4.4 (Command register - Effect) ATA4: Section 7.4.4 (

[PATCH 0/7] IDE: SRST and other fixes

2020-07-23 Thread John Snow
The goal of this series is to fix the Software Reset (SRST) routine. That said, the first six patches are almost entirely unrelated... Patches 2, 3, and 6 fix extremely minor deviations from the spec I noticed while researching SRST. (One of them gets rid of a FIXME from 2003.) Patches 1, 4, and

[PATCH 2/7] ide: don't tamper with the device register

2020-07-23 Thread John Snow
In real ISA operation, register writes go out to an entire bus channel and all listening devices receive the write. The devices do not toggle the DEV bit based on their own configuration, nor does the HBA intermediate or tamper with that value. The reality of the matter is that DEV0/DEV1 according

[PATCH 3/7] ide: model HOB correctly

2020-07-23 Thread John Snow
I have been staring at this FIXME for years and I never knew what it meant. I finally stumbled across it! When writing to the command registers, the old value is shifted into a HOB copy of the register and the new value is written into the primary register. When reading registers, the value retrie

Re: [PATCH v2 08/22] migration/block-dirty-bitmap: keep bitmap state for all bitmaps

2020-07-23 Thread Vladimir Sementsov-Ogievskiy
24.07.2020 00:30, Eric Blake wrote: On 2/17/20 9:02 AM, Vladimir Sementsov-Ogievskiy wrote: Keep bitmap state for disabled bitmaps too. Keep the state until the end of the process. It's needed for the following commit to implement bitmap postcopy canceling. To clean-up the new list the followin

Re: [PATCH v2 16/22] qemu-iotests/199: change discard patterns

2020-07-23 Thread Eric Blake
On 2/17/20 9:02 AM, Vladimir Sementsov-Ogievskiy wrote: iotest 40 works too long because of many discard opertion. On the same I'm assuming you meant s/40/199/ here, as well as the typo fixes pointed out by Andrey. time, postcopy period is very short, in spite of all these efforts. So, let

Re: [PATCH v2 17/22] qemu-iotests/199: increase postcopy period

2020-07-23 Thread Eric Blake
On 2/17/20 9:02 AM, Vladimir Sementsov-Ogievskiy wrote: Test wants force bitmap postcopy. Still, resulting postcopy period is The test wants to force a bitmap postcopy. Still, the resulting postcopy period is very small. very small. Let's increase it by adding more bitmaps to migrate. Also,

Re: [PATCH v2 12/22] qemu-iotests/199: fix style

2020-07-23 Thread Eric Blake
On 2/17/20 9:02 AM, Vladimir Sementsov-Ogievskiy wrote: Mostly, satisfy pep8 complains. Signed-off-by: Vladimir Sementsov-Ogievskiy --- tests/qemu-iotests/199 | 13 +++-- 1 file changed, 7 insertions(+), 6 deletions(-) With none of your series applied, I get: $ ./check -qcow2 199

Re: [PATCH v2 08/22] migration/block-dirty-bitmap: keep bitmap state for all bitmaps

2020-07-23 Thread Eric Blake
On 2/17/20 9:02 AM, Vladimir Sementsov-Ogievskiy wrote: Keep bitmap state for disabled bitmaps too. Keep the state until the end of the process. It's needed for the following commit to implement bitmap postcopy canceling. To clean-up the new list the following logic is used: We need two events t

Re: [PATCH v2 10/22] migration/block-dirty-bitmap: cancel migration on shutdown

2020-07-23 Thread Eric Blake
On 2/17/20 9:02 AM, Vladimir Sementsov-Ogievskiy wrote: If target is turned of prior to postcopy finished, target crashes s/of/off/ because busy bitmaps are found at shutdown. Canceling incoming migration helps, as it removes all unfinished (and therefore busy) bitmaps. Similarly on source w

Re: [PATCH v2 03/22] migration/block-dirty-bitmap: rename dirty_bitmap_mig_cleanup

2020-07-23 Thread Eric Blake
On 2/19/20 8:20 AM, Vladimir Sementsov-Ogievskiy wrote: 18.02.2020 14:00, Andrey Shinkevich wrote: On 17/02/2020 18:02, Vladimir Sementsov-Ogievskiy wrote: Rename dirty_bitmap_mig_cleanup to dirty_bitmap_do_save_cleanup, to stress that it is on save part. Signed-off-by: Vladimir Sementsov-Ogie

Re: [PATCH v2 02/22] migration/block-dirty-bitmap: rename state structure types

2020-07-23 Thread Eric Blake
On 2/17/20 9:02 AM, Vladimir Sementsov-Ogievskiy wrote: Rename types to be symmetrical for load/save part and shorter. Signed-off-by: Vladimir Sementsov-Ogievskiy --- migration/block-dirty-bitmap.c | 68 ++ 1 file changed, 36 insertions(+), 32 deletions(-) N

Re: [PATCH v2 00/22] Fix error handling during bitmap postcopy

2020-07-23 Thread Eric Blake
On 5/29/20 7:16 AM, Vladimir Sementsov-Ogievskiy wrote: 29.05.2020 14:58, Eric Blake wrote: On 4/2/20 2:42 AM, Vladimir Sementsov-Ogievskiy wrote: Ping! It's a fix, but not a degradation and I'm afraid too big for 5.0. Still, I think I should ping it anyway. John, I'm afraid, that this all i

Re: [PATCH v4 2/4] block/nbd: define new max_write_zero_fast limit

2020-07-23 Thread Eric Blake
On 6/11/20 11:26 AM, Vladimir Sementsov-Ogievskiy wrote: The NBD spec was recently updated to clarify that max_block doesn't relate to NBD_CMD_WRITE_ZEROES with NBD_CMD_FLAG_FAST_ZERO (which mirrors Qemu flag BDRV_REQ_NO_FALLBACK). bs->bl.max_write_zero_fast is zero by default which means using

Re: [PATCH v4 1/4] block: add max_pwrite_zeroes_fast to BlockLimits

2020-07-23 Thread Eric Blake
On 6/11/20 11:26 AM, Vladimir Sementsov-Ogievskiy wrote: The NBD spec was recently updated to clarify that max_block doesn't relate to NBD_CMD_WRITE_ZEROES with NBD_CMD_FLAG_FAST_ZERO (which mirrors Qemu flag BDRV_REQ_NO_FALLBACK). To drop the restriction we need new max_pwrite_zeroes_fast. Defa

Re: [PATCH v11 00/11] iotests: Dump QCOW2 dirty bitmaps metadata

2020-07-23 Thread Eric Blake
On 7/23/20 2:42 PM, Eric Blake wrote: On 7/17/20 3:14 AM, Andrey Shinkevich wrote: Add dirty bitmap information to QCOW2 metadata dump in the qcow2_format.py.   block/qcow2.c  |   2 +-   docs/interop/qcow2.txt |   2 +-   tests/qemu-iotests/qcow2.py    | 

Re: [PATCH v11 01/11] qcow2: Fix capitalization of header extension constant.

2020-07-23 Thread Eric Blake
On 7/17/20 3:14 AM, Andrey Shinkevich wrote: Make the capitalization of the hexadecimal numbers consistent for the QCOW2 header extension constants in docs/interop/qcow2.txt. Suggested-by: Eric Blake Signed-off-by: Andrey Shinkevich Reviewed-by: Vladimir Sementsov-Ogievskiy --- block/qcow2.

Re: [PATCH v11 00/11] iotests: Dump QCOW2 dirty bitmaps metadata

2020-07-23 Thread Eric Blake
On 7/17/20 3:14 AM, Andrey Shinkevich wrote: Add dirty bitmap information to QCOW2 metadata dump in the qcow2_format.py. v10: 01: Fixing of issues in QCOW2 extension classes noted by Vladimir. 02: Reading bitmap tables was moved into Qcow2BitmapTable class. 03: Handling '-j' key was mov

Re: [PATCH for-5.1? 0/4] non-blocking connect

2020-07-23 Thread Eric Blake
On 7/20/20 1:07 PM, Vladimir Sementsov-Ogievskiy wrote: Hi! This fixes real problem (see 04). On the other hand it may be too much for 5.1, and it's not a degradation. So, up to you. Given the concerns raised on 3, I think I'll wait for v2 of the series, and defer it to 5.2. It's based on

Re: [PATCH 3/3] block/nbd: nbd_co_reconnect_loop(): don't sleep if drained

2020-07-23 Thread Eric Blake
On 7/20/20 4:00 AM, Vladimir Sementsov-Ogievskiy wrote: We try to go to wakeable sleep, so that, if drain begins it will break the sleep. But what if nbd_client_co_drain_begin() already called and s->drained is already true? We'll go to sleep, and drain will have to wait for the whole timeout. Le

Re: [PATCH 2/3] block/nbd: on shutdown terminate connection attempt

2020-07-23 Thread Eric Blake
On 7/20/20 4:00 AM, Vladimir Sementsov-Ogievskiy wrote: On shutdown nbd driver may be in a connecting state. We should shutdown it as well, otherwise we may hang in nbd_teardown_connection, waiting for conneciton_co to finish in BDRV_POLL_WHILE(bs, s->connection_co) loop if remote server is down.

Re: [PATCH 1/3] block/nbd: allow drain during reconnect attempt

2020-07-23 Thread Eric Blake
On 7/20/20 4:00 AM, Vladimir Sementsov-Ogievskiy wrote: It should be to reenter qio_channel_yield() on io/channel read/write path, so it's safe to reduce in_flight and allow attaching new aio context. And no problem to allow drain itself: connection attempt is not a guest request. Moreover, if re

Re: [PATCH] block/amend: Check whether the node exists

2020-07-23 Thread Peter Maydell
On Fri, 10 Jul 2020 at 10:51, Max Reitz wrote: > > We should check whether the user-specified node-name actually refers to > a node. The simplest way to do that is to use bdrv_lookup_bs() instead > of bdrv_find_node() (the former wraps the latter, and produces an error > message if necessary). >

Re: [PATCH v7 36/47] nbd: Use CAF when looking for dirty bitmap

2020-07-23 Thread Andrey Shinkevich
On 25.06.2020 18:22, Max Reitz wrote: When looking for a dirty bitmap to share, we should handle filters by just including them in the search (so they do not break backing chains). Signed-off-by: Max Reitz --- nbd/server.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --g

Re: [PATCH v7 35/47] commit: Deal with filters

2020-07-23 Thread Andrey Shinkevich
On 25.06.2020 18:22, Max Reitz wrote: This includes some permission limiting (for example, we only need to take the RESIZE permission if the base is smaller than the top). Signed-off-by: Max Reitz --- block/block-backend.c | 9 +++- block/commit.c | 96 +

[PATCH v5 2/3] nvme: indicate CMB support through controller capabilities register

2020-07-23 Thread Andrzej Jakowski
This patch sets CMBS bit in controller capabilities register when user configures NVMe driver with CMB support, so capabilites are correctly reported to guest OS. Signed-off-by: Andrzej Jakowski Reviewed-by: Klaus Jensen Reviewed-by: Maxim Levitsky --- hw/block/nvme.c | 1 + include/bloc

[PATCH v5 3/3] nvme: allow cmb and pmr to be enabled on same device

2020-07-23 Thread Andrzej Jakowski
So far it was not possible to have CMB and PMR emulated on the same device, because BAR2 was used exclusively either of PMR or CMB. This patch places CMB at BAR4 offset so it not conflicts with MSI-X vectors. Signed-off-by: Andrzej Jakowski --- hw/block/nvme.c | 120

[PATCH v5] nvme: allow cmb and pmr emulation on same device

2020-07-23 Thread Andrzej Jakowski
Resending series recently posted on mailing list related to nvme device extension with couple of fixes after review. This patch series does following: - Exports memory_region_to_absolute_addr() function so it is avaialbe for use by drivers. This function is needed by 3rd patch in this serie

[PATCH v5 1/3] memory: export memory_region_to_absolute_addr() function

2020-07-23 Thread Andrzej Jakowski
This change exports memory_region_to_absolute_addr() function so it can be used by drivers requiring to calculate absolute address for memory subregions when memory hierarchy is used. Signed-off-by: Andrzej Jakowski --- include/exec/memory.h | 9 + softmmu/memory.c | 2 +- 2 files c

Re: [PATCH v7 34/47] backup: Deal with filters

2020-07-23 Thread Andrey Shinkevich
On 25.06.2020 18:22, Max Reitz wrote: Signed-off-by: Max Reitz --- block/backup-top.c | 2 +- block/backup.c | 9 + blockdev.c | 19 +++ 3 files changed, 21 insertions(+), 9 deletions(-) diff --git a/block/backup.c b/block/backup.c index 4f13bb20a5..9

Re: [ovirt-users] very very bad iscsi performance

2020-07-23 Thread Paolo Bonzini
Getting meaningful results is more important than getting good results. If the benchmark is not meaningful, it is not useful towards fixing the issue. Did you try virtio-blk with direct LUN? Paolo Il gio 23 lug 2020, 16:35 Philip Brown ha scritto: > Im in the middle of a priority issue right n

Re: [ovirt-users] very very bad iscsi performance

2020-07-23 Thread Philip Brown
Im in the middle of a priority issue right now, so cant take time out to rerun the bench, but... Usually in that kind of situation, if you dont turn on sync-to-disk on every write, you get benchmarks that are artificially HIGH. Forcing O_DIRECT slows throughput down. Dont you think the results ar

Re: [PATCH v2 20/20] simplebench: add bench-backup.py

2020-07-23 Thread Max Reitz
On 01.06.20 20:11, Vladimir Sementsov-Ogievskiy wrote: > Add script to benchmark new backup architecture. > > Signed-off-by: Vladimir Sementsov-Ogievskiy > --- > scripts/simplebench/bench-backup.py | 132 > 1 file changed, 132 insertions(+) > create mode 100755 scri

Re: [PATCH v2 19/20] simplebench: bench_block_job: add cmd_options argument

2020-07-23 Thread Max Reitz
On 01.06.20 20:11, Vladimir Sementsov-Ogievskiy wrote: > Add argument to allow additional block-job options. > > Signed-off-by: Vladimir Sementsov-Ogievskiy > --- > scripts/simplebench/bench-example.py | 2 +- > scripts/simplebench/bench_block_job.py | 13 - > 2 files changed, 9 i

Re: [PATCH v2 18/20] block/block-copy: drop unused argument of block_copy()

2020-07-23 Thread Max Reitz
On 01.06.20 20:11, Vladimir Sementsov-Ogievskiy wrote: > Signed-off-by: Vladimir Sementsov-Ogievskiy > --- > include/block/block-copy.h | 3 +-- > block/backup-top.c | 2 +- > block/block-copy.c | 11 ++- > 3 files changed, 4 insertions(+), 12 deletions(-) Reviewed-by:

Re: [BULK] Re: [ovirt-users] very very bad iscsi performance

2020-07-23 Thread Stefan Hajnoczi
On Tue, Jul 21, 2020 at 07:14:53AM -0700, Philip Brown wrote: > Thank you for the analysis. I have some further comments: > > First off, filebench pre-writes the files before doing oltp benchmarks, so I > dont think the thin provisioning is at play here. > I will double check this, but if you don

Re: [PATCH for-5.1] nbd: Fix large trim/zero requests

2020-07-23 Thread Vladimir Sementsov-Ogievskiy
23.07.2020 14:47, Eric Blake wrote: On 7/23/20 2:23 AM, Vladimir Sementsov-Ogievskiy wrote: 23.07.2020 00:22, Eric Blake wrote: Although qemu as NBD client limits requests to <2G, the NBD protocol allows clients to send requests almost all the way up to 4G.  But because our block layer is not y

Re: [PATCH 13/13] ssh: add GUri-based URI parsing

2020-07-23 Thread Daniel P . Berrangé
On Thu, Jul 23, 2020 at 04:58:48PM +0400, Marc-André Lureau wrote: > Hi > > On Thu, Jul 23, 2020 at 4:33 PM Richard W.M. Jones > wrote: > > > On Thu, Jul 09, 2020 at 11:42:34PM +0400, Marc-André Lureau wrote: > > > Signed-off-by: Marc-André Lureau > > > --- > > > block/ssh.c | 75 +

Re: [PATCH 13/13] ssh: add GUri-based URI parsing

2020-07-23 Thread Marc-André Lureau
Hi On Thu, Jul 23, 2020 at 4:33 PM Richard W.M. Jones wrote: > On Thu, Jul 09, 2020 at 11:42:34PM +0400, Marc-André Lureau wrote: > > Signed-off-by: Marc-André Lureau > > --- > > block/ssh.c | 75 + > > 1 file changed, 58 insertions(+), 17 de

Re: [PATCH 05/13] block/ssh: auto-ify URI parsing variables

2020-07-23 Thread Richard W.M. Jones
On Thu, Jul 09, 2020 at 11:42:26PM +0400, Marc-André Lureau wrote: > Signed-off-by: Marc-André Lureau > --- > block/ssh.c | 23 +++ > 1 file changed, 7 insertions(+), 16 deletions(-) > > diff --git a/block/ssh.c b/block/ssh.c > index 098dbe03c15..c8f6ad79e3c 100644 > --- a/

Re: [PATCH 13/13] ssh: add GUri-based URI parsing

2020-07-23 Thread Richard W.M. Jones
On Thu, Jul 09, 2020 at 11:42:34PM +0400, Marc-André Lureau wrote: > Signed-off-by: Marc-André Lureau > --- > block/ssh.c | 75 + > 1 file changed, 58 insertions(+), 17 deletions(-) > > diff --git a/block/ssh.c b/block/ssh.c > index c8f6ad79e

Re: [PATCH for-5.1] nbd: Fix large trim/zero requests

2020-07-23 Thread Eric Blake
On 7/23/20 2:23 AM, Vladimir Sementsov-Ogievskiy wrote: 23.07.2020 00:22, Eric Blake wrote: Although qemu as NBD client limits requests to <2G, the NBD protocol allows clients to send requests almost all the way up to 4G.  But because our block layer is not yet 64-bit clean, we accidentally wrap

Re: [PATCH v2 17/20] backup: move to block-copy

2020-07-23 Thread Max Reitz
On 01.06.20 20:11, Vladimir Sementsov-Ogievskiy wrote: > This brings async request handling and block-status driven chunk sizes > to backup out of the box, which improves backup performance. > > Signed-off-by: Vladimir Sementsov-Ogievskiy > --- > include/block/block-copy.h | 9 +-- > block/bac

Re: [PATCH v2 16/20] iotests: 257: prepare for backup over block-copy

2020-07-23 Thread Max Reitz
On 01.06.20 20:11, Vladimir Sementsov-Ogievskiy wrote: > Iotest 257 dumps a lot of in-progress information of backup job, such > as offset and bitmap dirtiness. Further commit will move backup to be > one block-copy call, which will introduce async parallel requests > instead of plain cluster-by-cl

Re: [PATCH v2 15/20] iotests: 219: prepare for backup over block-copy

2020-07-23 Thread Max Reitz
On 01.06.20 20:11, Vladimir Sementsov-Ogievskiy wrote: > The further change of moving backup to be a on block-copy call will -on? > make copying chunk-size and cluster-size a separate things. So, even s/a/two/ > with 64k cluster sized qcow2 image, default chunk would be 1M. > Test 219 depends o

Re: [PATCH v2 14/20] iotests: 185: prepare for backup over block-copy

2020-07-23 Thread Max Reitz
On 01.06.20 20:11, Vladimir Sementsov-Ogievskiy wrote: > The further change of moving backup to be a on block-copy call will -on? > make copying chunk-size and cluster-size a separate things. So, even s/a/two/ > with 64k cluster sized qcow2 image, default chunk would be 1M. > 185 test however a

Re: [PATCH v2 13/20] iotests: 129: prepare for backup over block-copy

2020-07-23 Thread Max Reitz
On 01.06.20 20:11, Vladimir Sementsov-Ogievskiy wrote: > After introducing parallel async copy requests instead of plain > cluster-by-cluster copying loop, backup job may finish earlier than > final assertion in do_test_stop. Let's require slow backup explicitly > by specifying speed parameter. Is

Re: [PATCH v2 12/20] iotests: 56: prepare for backup over block-copy

2020-07-23 Thread Max Reitz
On 01.06.20 20:11, Vladimir Sementsov-Ogievskiy wrote: > After introducing parallel async copy requests instead of plain > cluster-by-cluster copying loop, we'll have to wait for paused status, > as we need to wait for several parallel request. So, let's gently wait > instead of just asserting that

Re: [PATCH v2 11/20] qapi: backup: add x-max-chunk and x-max-workers parameters

2020-07-23 Thread Max Reitz
On 22.07.20 14:22, Max Reitz wrote: > On 01.06.20 20:11, Vladimir Sementsov-Ogievskiy wrote: >> Add new parameters to configure future backup features. The patch >> doesn't introduce aio backup requests (so we actually have only one >> worker) neither requests larger than one cluster. Still, formal

Re: [PATCH for-5.1] nbd: Fix large trim/zero requests

2020-07-23 Thread Vladimir Sementsov-Ogievskiy
23.07.2020 00:22, Eric Blake wrote: Although qemu as NBD client limits requests to <2G, the NBD protocol allows clients to send requests almost all the way up to 4G. But because our block layer is not yet 64-bit clean, we accidentally wrap such requests into a negative size, and fail with EIO in