Message ID | 20190327123901.12323-1-igor.j.konopko@intel.com (mailing list archive) |
---|---|
Headers | show |
Series | lightnvm: next set of improvements for 5.2 | expand |
On Wed, Mar 27, 2019 at 1:41 PM Igor Konopko <igor.j.konopko@intel.com> 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) 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 >
On 03.04.2019 09:12, Hans Holmberg wrote: > On Wed, Mar 27, 2019 at 1:41 PM Igor Konopko <igor.j.konopko@intel.com> 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 >>
On 3/27/19 1:38 PM, Igor Konopko 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 > > 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(-) > Thanks Igor. I've picked up 5,6, and 8. Hans will be resend his previous patch to fix the bvec bug. Then we have time to get to the right solution without the stress of the -rc window.