All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 0/7] Framework for NAND lifetime testing
@ 2015-04-14 22:58 Dan Ehrenberg
  2015-04-14 22:58 ` [PATCH 1/7] Allow trim on any file type Dan Ehrenberg
                   ` (6 more replies)
  0 siblings, 7 replies; 13+ messages in thread
From: Dan Ehrenberg @ 2015-04-14 22:58 UTC (permalink / raw)
  To: fio, axboe; +Cc: gwendal, Dan Ehrenberg

My goal here is to be able to qualify and characterize NAND flash
by running fio job files on it. The major problem with NAND is that
it wears out. The most basic thing to test is how long it takes
blocks to wear out with repeated program/erase cycles.

Linux exposes NAND devices, among other things, with the MTD
subsystem. That system allows the proper read, write and erase block
sizes which vary in ways unlike normal block devices. For many MTD
devices, blocks must be erased before writing them, and some have
to be written in sequential order.

This patch series adds
- an MTD ioengine, interpreting trim as erase.
- a new writetrim workload to alternate between writes and
  trims in a way that makes sense for devices which need to be
  erased before sequential writes.
- a histogram counting the first trim block where an error
  occurred, which corresponds to block lifetime in the case of
  NAND.

Dan Ehrenberg (7):
  Allow trim on any file type
  Add new writetrim rw= mode for trims preceding writes
  Collect a block-wise histogram of trim and write errors
  mtd: Add CONFIG_MTD to ./configure script
  mtd: Import libmtd with modifications to make it compile
  mtd: ioengine
  mtd: example job file

 HOWTO               |   29 +-
 Makefile            |    5 +
 backend.c           |    5 +
 client.c            |    4 +
 configure           |   20 +
 engines/mtd.c       |  209 ++++++++
 examples/mtd.fio    |   21 +
 filesetup.c         |   26 +-
 fio.1               |   21 +-
 init.c              |    7 +
 io_ddir.h           |    3 +
 io_u.c              |   25 +-
 iolog.c             |   12 +
 lib/libmtd.c        | 1424 +++++++++++++++++++++++++++++++++++++++++++++++++++
 lib/libmtd.h        |  354 +++++++++++++
 lib/libmtd_common.h |  223 ++++++++
 lib/libmtd_int.h    |  109 ++++
 lib/libmtd_legacy.c |  384 ++++++++++++++
 lib/libmtd_xalloc.h |  106 ++++
 options.c           |   34 +-
 options.h           |    2 +
 server.c            |    4 +
 stat.c              |  199 +++++++
 stat.h              |   27 +
 thread_options.h    |    6 +
 25 files changed, 3241 insertions(+), 18 deletions(-)
 create mode 100644 engines/mtd.c
 create mode 100644 examples/mtd.fio
 create mode 100644 lib/libmtd.c
 create mode 100644 lib/libmtd.h
 create mode 100644 lib/libmtd_common.h
 create mode 100644 lib/libmtd_int.h
 create mode 100644 lib/libmtd_legacy.c
 create mode 100644 lib/libmtd_xalloc.h

-- 
2.2.0.rc0.207.ga3a616c



^ permalink raw reply	[flat|nested] 13+ messages in thread

end of thread, other threads:[~2015-04-15 21:02 UTC | newest]

Thread overview: 13+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-04-14 22:58 [PATCH 0/7] Framework for NAND lifetime testing Dan Ehrenberg
2015-04-14 22:58 ` [PATCH 1/7] Allow trim on any file type Dan Ehrenberg
2015-04-14 22:58 ` [PATCH 2/7] Add new writetrim rw= mode for trims preceding writes Dan Ehrenberg
2015-04-15  0:43   ` Jens Axboe
2015-04-15 17:49     ` Daniel Ehrenberg
2015-04-15 19:30       ` Jens Axboe
2015-04-15 20:28         ` Daniel Ehrenberg
2015-04-15 21:02           ` Jens Axboe
2015-04-14 22:58 ` [PATCH 3/7] Collect a block-wise histogram of trim and write errors Dan Ehrenberg
2015-04-14 22:58 ` [PATCH 4/7] mtd: Add CONFIG_MTD to ./configure script Dan Ehrenberg
2015-04-14 22:58 ` [PATCH 5/7] mtd: Import libmtd with modifications to make it compile Dan Ehrenberg
2015-04-14 22:58 ` [PATCH 6/7] mtd: ioengine Dan Ehrenberg
2015-04-14 22:58 ` [PATCH 7/7] mtd: example job file Dan Ehrenberg

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.