From bf458c894159cf19b62408958019adba73823b73 Mon Sep 17 00:00:00 2001 From: Shuhei Matsumoto Date: Mon, 9 Mar 2020 01:26:38 -0400 Subject: [PATCH] doc/ftl: Fix broken table Signed-off-by: Shuhei Matsumoto Change-Id: If277dfde1f23f988652d29a37e7f4727ba269ea0 Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/1187 Tested-by: SPDK CI Jenkins Reviewed-by: Konrad Sztyber Reviewed-by: Wojciech Malikowski Reviewed-by: Ben Walker Reviewed-by: Jim Harris --- doc/ftl.md | 29 +++++++++++++++-------------- 1 file changed, 15 insertions(+), 14 deletions(-) diff --git a/doc/ftl.md b/doc/ftl.md index 1168393dd..207df08a8 100644 --- a/doc/ftl.md +++ b/doc/ftl.md @@ -47,16 +47,16 @@ The address map and valid map are, along with a several other things (e.g. UUID part of, number of surfaced LBAs, band's sequence number, etc.), parts of the band's metadata. The metadata is split in two parts: - * the head part, containing information already known when opening the band (device's UUID, band's - sequence number, etc.), located at the beginning blocks of the band, - * the tail part, containing the address map and the valid map, located at the end of the band. - head metadata band's data tail metadata +-------------------+-------------------------------+------------------------+ |zone 1 |...|zone n |...|...|zone 1 |...| | ... |zone m-1 |zone m| |block 1| |block 1| | |block x| | | |block y |block y| +-------------------+-------------+-----------------+------------------------+ + * the head part, containing information already known when opening the band (device's UUID, band's + sequence number, etc.), located at the beginning blocks of the band, + * the tail part, containing the address map and the valid map, located at the end of the band. + Bands are written sequentially (in a way that was described earlier). Before a band can be written to, all of its zones need to be erased. During that time, the band is considered to be in a `PREP` state. After that is done, the band transitions to the `OPENING` state, in which head metadata @@ -165,16 +165,7 @@ geometry of the SSD: - `serial` - serial number, - `lver` - version of the OCSSD standard (0 - disabled, 1 - "1.2", 2 - "2.0"), libftl only supports 2.0, - - `lba_index` - default LBA format. Possible values (libftl only supports lba_index >= 3): - |lba_index| data| metadata| - |---------|-----|---------| - | 0 | 512B| 0B | - | 1 | 512B| 8B | - | 2 | 512B| 16B | - | 3 |4096B| 0B | - | 4 |4096B| 64B | - | 5 |4096B| 128B | - | 6 |4096B| 16B | + - `lba_index` - default LBA format. Possible values can be found in the table below (libftl only supports lba_index >= 3): - `lnum_ch` - number of groups, - `lnum_lun` - number of parallel units - `lnum_pln` - number of planes (logical blocks from all planes constitute a chunk) @@ -185,6 +176,16 @@ geometry of the SSD: the data based on media feedback - `lmetadata` - metadata file + |lba_index| data| metadata| + |---------|-----|---------| + | 0 | 512B| 0B | + | 1 | 512B| 8B | + | 2 | 512B| 16B | + | 3 |4096B| 0B | + | 4 |4096B| 64B | + | 5 |4096B| 128B | + | 6 |4096B| 16B | + For more detailed description of the available options, consult the `hw/block/nvme.c` file in the QEMU repository.