[RFC 0/4] lightnvm: add write buffering to rrpc

From: Javier GonzÃlez
Date: Thu Feb 04 2016 - 08:08:31 EST


Hi,

This patchset adds write buffering to rrpc. This is necessary to support
writes that are smaller than the actual flash controller page size.
Typically, these are larger tahn 4K (e.g., 64K) since they are organized
organized in several 4K sectors and planes.

The code can be tested on the lightnvm enabled qemu, built on top of
Keith Busch's qemu-nvme [1]. At the moment, different flushing
strategies are enabled by flags. I am now working on flushing the writer
work queue when syncs are not aligned with the device's page size, but
this should not change the general architecture.

Any feedback on the architecture, design and implementation are more
than welcome.

Thanks,
Javier

[1] https://github.com/OpenChannelSSD/qemu-nvme

Javier GonzÃlez (4):
lightnvm: precalculate controller write boundaries
lightnvm: add write buffering for rrpc
lightnvm: read from rrpc write buffer if possible
lightnvm: add debug info for rrpc target

drivers/lightnvm/core.c | 10 +
drivers/lightnvm/rrpc.c | 1233 ++++++++++++++++++++++++++++++++++++++--------
drivers/lightnvm/rrpc.h | 93 +++-
include/linux/lightnvm.h | 11 +-
4 files changed, 1138 insertions(+), 209 deletions(-)

--
2.1.4