All of lore.kernel.org
 help / color / mirror / Atom feed
* Kill "No I/O performed by ..."
@ 2019-01-25  8:56 Matias Bjorling
  2019-02-01 15:36 ` Jens Axboe
  0 siblings, 1 reply; 2+ messages in thread
From: Matias Bjorling @ 2019-01-25  8:56 UTC (permalink / raw)
  To: Jens Axboe, fio; +Cc: Damien Le Moal

[-- Attachment #1: Type: text/plain, Size: 1138 bytes --]

Hi Jens,

I noticed that the "No I/O performed by" message was ripped out in November. Some of the verification tests used it for the zone test suite (t/zbd/test-zbd-support).

When running the zones test script. It has two tests (2 and 3), which assumes that the "No I/O performed by " message is printed, such that it can verify that no I/Os have been executed.

# Test 2 - Block size exceeds zone size. That test should show that the kernel fails the I/O.
fio --aux-path=/tmp --allow_file_create=0 --name=job1 --filename=/dev/nullb0 --rw=write --direct=1 --zonemode=zbd --offset=536870912 --bs=536870912 --size=536870912

# Test 3 - Run fio against an empty zone. No I/Os to be issued, since it (at that point), no zones have been written.
fio --aux-path=/tmp --allow_file_create=0 --name=/dev/nullb0 --filename=/dev/nullb0 --offset=34359738368 --bs=4K --size=268435456 --zonemode=zbd --ioengine=psync --rw=read --direct=1 --thread=1

In both cases, fio reports a successful exit status.

To fix this, should the patch be reverted, kill the tests, or change fio to return an unsuccessful exit status?

Thanks,
Matias

[-- Attachment #2: Type: text/html, Size: 1441 bytes --]

^ permalink raw reply	[flat|nested] 2+ messages in thread

* Re: Kill "No I/O performed by ..."
  2019-01-25  8:56 Kill "No I/O performed by ..." Matias Bjorling
@ 2019-02-01 15:36 ` Jens Axboe
  0 siblings, 0 replies; 2+ messages in thread
From: Jens Axboe @ 2019-02-01 15:36 UTC (permalink / raw)
  To: Matias Bjorling, fio; +Cc: Damien Le Moal

On 1/25/19 1:56 AM, Matias Bjorling wrote:
> Hi Jens,
> 
> I noticed that the "No I/O performed by" message was ripped out in November. Some of the verification tests used it for the zone test suite (t/zbd/test-zbd-support).
> 
> When running the zones test script. It has two tests (2 and 3), which assumes that the "No I/O performed by " message is printed, such that it can verify that no I/Os have been executed.
> 
> # Test 2 - Block size exceeds zone size. That test should show that the kernel fails the I/O.
> fio --aux-path=/tmp --allow_file_create=0 --name=job1 --filename=/dev/nullb0 --rw=write --direct=1 --zonemode=zbd --offset=536870912 --bs=536870912 --size=536870912
> 
> # Test 3 - Run fio against an empty zone. No I/Os to be issued, since it (at that point), no zones have been written.
> fio --aux-path=/tmp --allow_file_create=0 --name=/dev/nullb0 --filename=/dev/nullb0 --offset=34359738368 --bs=4K --size=268435456 --zonemode=zbd --ioengine=psync --rw=read --direct=1 --thread=1
> 
> In both cases, fio reports a successful exit status.
> 
> To fix this, should the patch be reverted, kill the tests, or change fio to return an unsuccessful exit status?

The problem with it was that it had so many false positives, which drove
me nuts. So I just decided to kill it. It was meant to be helpful to users
that something wasn't quite right. But it needs to be bullet proof for that
to be the case. After having had to tweak it for the Nth time, it's now dead.

I'd welcome it back if we did something really trivial, and not rely on
counters that may or may not get reset for loops, etc. Something that just
did, on the first IO completion:

if (!td->ever_done_ios)
    td->ever_done_ios = true;

and then just use that for the trigger.

-- 
Jens Axboe



^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2019-02-01 15:36 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-01-25  8:56 Kill "No I/O performed by ..." Matias Bjorling
2019-02-01 15:36 ` Jens Axboe

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.