On 03.04.2019 09:12, Hans Holmberg wrote:
On Wed, Mar 27, 2019 at 1:41 PM Igor Konopko <igor.j.konopko@xxxxxxxxx> wrote:
This is another set of fixes and improvements to both pblk and lightnvm
core.
First & second patches are the most crutial, since they changes the approach
to the partial read path, so detailed review is needed especially here.
Other patches are my other findings related to some bugs or potential
improvements, mostly related to some corner cases.
Changes v2 -> v3;
-dropped some not needed patches
-dropped patches which were already pulled into for-5.2/core branch
-commit messages cleanup
Changes v1 -> v2:
-dropped some not needed patches
-review feedback incorporated for some of the patches
-partial read path changes patch splitted into two patches
Hi Igor,
I ran the quick xfstests and generic/247 hangs with this patchset on qemu:
FSTYP -- xfs (non-debug)
PLATFORM -- Linux/x86_64 u1804-qatd 5.0.0-rc6_for-5.2/core_igor_v3
generic/247 95s ...
<hang>
Note: If i run it with Matias 5.2 core branch with my biovec fix, it
completes successfully, but with this in dmesg:
[ 358.028158] Page cache invalidation failure on direct I/O.
Possible data corruption due to collision with buffered I/O!
[ 358.030768] File: /mnt/247 PID: 4431 Comm: dd
(I have not looked into that any further)
Thanks Hans for testing that and reporting back. Will definitely look
into that and resubmit when fixed.
Igor
Best regards,
Hans
Igor Konopko (10):
lightnvm: pblk: IO path reorganization
lightnvm: pblk: simplify partial read path
lightnvm: pblk: propagate errors when reading meta
lightnvm: pblk: recover only written metadata
lightnvm: pblk: wait for inflight IOs in recovery
lightnvm: pblk: remove internal IO timeout
lightnvm: pblk: store multiple copies of smeta
lightnvm: pblk: GC error handling
lightnvm: pblk: use nvm_rq_to_ppa_list()
lightnvm: track inflight target creations
drivers/lightnvm/core.c | 19 ++-
drivers/lightnvm/pblk-cache.c | 8 +-
drivers/lightnvm/pblk-core.c | 179 +++++++++++++++++----
drivers/lightnvm/pblk-gc.c | 5 +-
drivers/lightnvm/pblk-init.c | 37 +++--
drivers/lightnvm/pblk-read.c | 336 +++++++++++----------------------------
drivers/lightnvm/pblk-recovery.c | 69 ++++----
drivers/lightnvm/pblk-rl.c | 3 +-
drivers/lightnvm/pblk.h | 31 ++--
include/linux/lightnvm.h | 2 +
10 files changed, 343 insertions(+), 346 deletions(-)
--
2.9.5