Spdk/test/unit/lib/ftl
Claire J. In 658d118c06 lib/ftl: consider 3D TLC NAND read unit size
For the latest TLC NAND, one write buffer unit (rwb batch)
needs to be spread over three PUs instead of being allocated
to a single PU for better sequential read performance
since the optimal write size(ws_opt) of 3D TLC NAND is
3 times bigger than the optimal read size(rs_opt).

I added num_interleave_units in 'struct spdk_ftl_conf'
to configure the number of interleaving units per ws_opt.
If num_interleave_units is set as 1, the whole of the ws_opt
blocks are placed sequentially around each PU.
If num_interleave_units is set as N, the 1/N of the ws_opt
blocks are staggered. So consecutively numbered blocks
are separated by ws_opt / num_interleave_units.

The sequential read performance is improved from 1.9GiB/s
up to 2.97GiB/S with this patch on our system. No performance
degradation is observed on sequential writes or
4KB random reads/writes.

Please refer to the Trello card for more details.
https://trello.com/c/Osol93ZU

Change-Id: I371e72067b278ef43c3ac87a3d9ce9010d3fcb15
Signed-off-by: Claire J. In <claire.in@circuitblvd.com>
Reviewed-on: https://review.gerrithub.io/c/spdk/spdk/+/450976
Reviewed-by: Young Tack Jin <youngtack.jin@circuitblvd.com>
Reviewed-by: Konrad Sztyber <konrad.sztyber@intel.com>
Reviewed-by: Darek Stojaczyk <dariusz.stojaczyk@intel.com>
Reviewed-by: Wojciech Malikowski <wojciech.malikowski@intel.com>
Reviewed-by: Ben Walker <benjamin.walker@intel.com>
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
2019-05-24 23:29:22 +00:00
..
common thread: Add a mechanism to exit a lightweight thread 2019-05-22 04:23:17 +00:00
ftl_band.c test/unit/ftl: Add module unit tests for relocate 2019-02-13 18:48:35 +00:00
ftl_io.c lib/ftl: allow parent/child relations between IOs 2019-04-24 21:57:06 +00:00
ftl_md lib/ftl: Keep DMA buffer for metadata as part of ftl_md structure 2019-04-02 00:04:58 +00:00
ftl_ppa ftl: Added unit tests for FTL library 2019-01-22 23:22:16 +00:00
ftl_reloc.c lib/ftl: name ftl_io's LBA / iovec unions 2019-05-10 22:20:57 +00:00
ftl_rwb.c lib/ftl: consider 3D TLC NAND read unit size 2019-05-24 23:29:22 +00:00
ftl_wptr lib/ftl: mirror writes to non-volatile cache 2019-05-22 16:17:23 +00:00
Makefile lib/ftl: allow parent/child relations between IOs 2019-04-24 21:57:06 +00:00