A few change to increase test coverage for zoned devices.

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

 



Hi,

We (Micron San Jose CA) have a few FIO changes to propose. The general goal of these changes is to increase the test coverage for zoned devices. Below is a summary.

1. A ZNS namespace has a maximum number of open zones (aka number of zones one can write in parallel) that may be smallish. There is another ZNS limitation that is the maximum number of "active" zones  (active=zone in state open or closed). This number can be much bigger than the maximum number of open zones.

This Fio change allows to test the device in regards to this maximum number of active zones. 

Fio is given a maximum number of active zones. The threads/jobs (their number is limited to the maximum number open zones) write a bit into one active zone, close it, jumps to another active zone (open it (write implicit open)) and so on. The writing threads keep ping ponging across the active zones writing a bit each time and then closing the zone. An active zone is re-opened when a writing thread write again in the zone (implicit open). As a consequence, the write load is spread across all active zones while never passing the max number of active zones.
Then at some point some active zones get  full. When that happens they are not "active" anymore. Fio selects other zones automatically, they will become active on the first write. As a consequence, over time, the active zones move across the namespace (but they stay in the window specified by fio). That gives a good workout to the device running it at its max limit of active zones and jumping (to write in a zone) at high rate from one zone to another.

2. An application can "finish" a zone without writing it in full. For example an app could only write half a zone and then finish it. That changes the state of the zone to "full". The app cannot write anymore in the zone. The zone will have to be reset at some point.

We have a change in FIO that allows to test that. A new option tells FIO to stop writing in a zone when reaching some threshold and to "finish" it. At that point, FIO sends a zone management command to finish the zone and consider the zone full (even if it is not actually full of app data).

3. Another change is relaxing the checks in zbd_verify_sizes() in regards to read IO on zoned devices. The reading can start anywhere in a zone (below the WP), it doesn't need to always start at the zone beginning.

I would have to move these changes on latest fio and do some cleanup before having patches ready.

Let me know if that make sense to add the above to fio.

Best regards,

Pierre





[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