Re: ZBC/FLEX FIO addition ideas

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

 



On 15 March 2018 at 16:43, Bart Van Assche <Bart.VanAssche@xxxxxxx> wrote:
>
> Adding support for ZBC drives as a profile has a significant disadvantage,
> namely that the different I/O patterns (sequential read, sequential write,
> random read, random write, ...) all have to be reimplemented. That's why I'm
> considering to add ZBC support by modifying what get_next_block() produces.
> Can you have a look at the (barely tested) patch below?

I don't have access to any ZBC devices but I looked over the patch.
This seems to be a blend of both both of Philip's suggestions and I
quite like it because it centralized most of the logic within the
engine itself bar the offset fixing.

Something that could help is
if ioengines were able to specify a callbacks to say whether an offset
+ size is valid or whether the ioengine wants to "fix" them. If it
says the offset is invalid we just quietly pretend we did the I/O,
reduce the amount of I/O we have to do on this loop and generate the
next offset + size. If it chooses to just fix it then we just use the
different values it fixed the I/O to (assuming it fits alignment,
minimum block sizes etc). How do people see fix mode interacting with
things like bssplit? Do we just ban bssplit when in this mode for now?

Most engines could leave these unset but it would be perfect for this
one and it would stop the typical path having to depend on this
particular ioengine being configured in. If fix things up mode is set
then I suppose fio could then go on to ban things like lsfr, randommap
and random_distribution. I guess one snag with re-rolling in "valid"
mode is that you could end up re-rolling forever. I'm no expert but
I'm hoping doing another if (engine defines block_checking) on every
I/O won't have too much of a hit.

Perhaps we just start with "fix" mode see how that goes and move on
from there? Something else that could get hairy are verify jobs that
are seperate from their write job because the offsets generated during
a subsequent verify will not necessarily be invalid at the same points
or changed the same way. I suppose inline verify should work assuming
write regions haven't been reset due to becoming full.

-- 
Sitsofe | http://sucs.org/~sits/
--
To unsubscribe from this list: send the line "unsubscribe fio" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[Index of Archives]     [Linux Kernel]     [Linux SCSI]     [Linux IDE]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux SCSI]

  Powered by Linux