[Top][All Lists]

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

NVMe ZNS zone append past zone size?

From: Niklas Cassel
Subject: NVMe ZNS zone append past zone size?
Date: Tue, 19 Jan 2021 10:38:50 +0000

Hello all,

When testing with the ZNS code that is in nvme-next,
I can zone append, targeting the first zone by specifying zslba 0,
and then just put that call it in a while loop, it will
manage to fill up not just zone0, but the whole drive.

Since zslba is defined as:
"Zone Start Logical Block Address (ZSLBA): This field indicates the 64-bit
address of the lowest logical block of the zone in which the data and
metadata, if applicable, associated with this command is to be stored."

Should an append that specifies zslba 0 (== zone 0), be allowed
to write into zone 1 (and beyond).

According to "Writing in Sequential Write Required Zones",
we should get either a "Zone Boundary Error" or "Zone Is Full" error,
depending on zone 0 write pointer, combined with how many LBAs we try
to append.

Looking at the code, I think that this has to be handled in
either nvme_check_zone_write() or nvme_advance_zone_wp().

Considering that Dmitry and Klaus were discussing when to advance
the write pointer, etc, for several of the patch series revisions,
I think it is better to leave a potential fix to you guys.

Kind regards,

reply via email to

[Prev in Thread] Current Thread [Next in Thread]