Re: [PATCH v2 0/3] Rework write error handling in pblk

2018-05-07 Thread Matias Bjørling

On 04/24/2018 07:45 AM, Hans Holmberg wrote:

From: Hans Holmberg 

This patch series fixes the(currently incomplete) write error handling
in pblk by:

  * queuing and re-submitting failed writes in the write buffer
  * evacuating valid data data in lines with write failures, so the
chunk(s) with write failures can be reset to a known state by the fw

Lines with failures in smeta are put back on the free list.
Failed chunks will be reset on the next use.

If a write failes in emeta, the lba list is cached so the line can be
garbage collected without scanning the out-of-band area.

Changes in V2:
- Added the recov_writes counter increase to the new path
- Moved lba list emeta reading during gc to a separate function
- Allocating the saved lba list with pblk_malloc instead of kmalloc
- Fixed formatting issues
- Removed dead code

Hans Holmberg (3):
   lightnvm: pblk: rework write error recovery path
   lightnvm: pblk: garbage collect lines with failed writes
   lightnvm: pblk: fix smeta write error path

  drivers/lightnvm/pblk-core.c |  52 +++-
  drivers/lightnvm/pblk-gc.c   | 102 +--
  drivers/lightnvm/pblk-init.c |  47 ---
  drivers/lightnvm/pblk-rb.c   |  39 --
  drivers/lightnvm/pblk-recovery.c |  91 -
  drivers/lightnvm/pblk-rl.c   |  29 -
  drivers/lightnvm/pblk-sysfs.c|  15 ++-
  drivers/lightnvm/pblk-write.c| 269 ++-
  drivers/lightnvm/pblk.h  |  36 --
  9 files changed, 384 insertions(+), 296 deletions(-)



Applied for 4.18.


Re: [PATCH v2 0/3] Rework write error handling in pblk

2018-05-07 Thread Matias Bjørling

On 04/24/2018 07:45 AM, Hans Holmberg wrote:

From: Hans Holmberg 

This patch series fixes the(currently incomplete) write error handling
in pblk by:

  * queuing and re-submitting failed writes in the write buffer
  * evacuating valid data data in lines with write failures, so the
chunk(s) with write failures can be reset to a known state by the fw

Lines with failures in smeta are put back on the free list.
Failed chunks will be reset on the next use.

If a write failes in emeta, the lba list is cached so the line can be
garbage collected without scanning the out-of-band area.

Changes in V2:
- Added the recov_writes counter increase to the new path
- Moved lba list emeta reading during gc to a separate function
- Allocating the saved lba list with pblk_malloc instead of kmalloc
- Fixed formatting issues
- Removed dead code

Hans Holmberg (3):
   lightnvm: pblk: rework write error recovery path
   lightnvm: pblk: garbage collect lines with failed writes
   lightnvm: pblk: fix smeta write error path

  drivers/lightnvm/pblk-core.c |  52 +++-
  drivers/lightnvm/pblk-gc.c   | 102 +--
  drivers/lightnvm/pblk-init.c |  47 ---
  drivers/lightnvm/pblk-rb.c   |  39 --
  drivers/lightnvm/pblk-recovery.c |  91 -
  drivers/lightnvm/pblk-rl.c   |  29 -
  drivers/lightnvm/pblk-sysfs.c|  15 ++-
  drivers/lightnvm/pblk-write.c| 269 ++-
  drivers/lightnvm/pblk.h  |  36 --
  9 files changed, 384 insertions(+), 296 deletions(-)



Applied for 4.18.


Re: [PATCH v2 0/3] Rework write error handling in pblk

2018-04-30 Thread Javier Gonzalez
> On 28 Apr 2018, at 21.31, Matias Bjørling  wrote:
> 
> On 4/23/18 10:45 PM, Hans Holmberg wrote:
>> From: Hans Holmberg 
>> This patch series fixes the(currently incomplete) write error handling
>> in pblk by:
>>  * queuing and re-submitting failed writes in the write buffer
>>  * evacuating valid data data in lines with write failures, so the
>>chunk(s) with write failures can be reset to a known state by the fw
>> Lines with failures in smeta are put back on the free list.
>> Failed chunks will be reset on the next use.
>> If a write failes in emeta, the lba list is cached so the line can be
>> garbage collected without scanning the out-of-band area.
>> Changes in V2:
>> - Added the recov_writes counter increase to the new path
>> - Moved lba list emeta reading during gc to a separate function
>> - Allocating the saved lba list with pblk_malloc instead of kmalloc
>> - Fixed formatting issues
>> - Removed dead code
>> Hans Holmberg (3):
>>   lightnvm: pblk: rework write error recovery path
>>   lightnvm: pblk: garbage collect lines with failed writes
>>   lightnvm: pblk: fix smeta write error path
>>  drivers/lightnvm/pblk-core.c |  52 +++-
>>  drivers/lightnvm/pblk-gc.c   | 102 +--
>>  drivers/lightnvm/pblk-init.c |  47 ---
>>  drivers/lightnvm/pblk-rb.c   |  39 --
>>  drivers/lightnvm/pblk-recovery.c |  91 -
>>  drivers/lightnvm/pblk-rl.c   |  29 -
>>  drivers/lightnvm/pblk-sysfs.c|  15 ++-
>>  drivers/lightnvm/pblk-write.c| 269 
>> ++-
>>  drivers/lightnvm/pblk.h  |  36 --
>>  9 files changed, 384 insertions(+), 296 deletions(-)
> 
> Thanks Hans. I've applied 1 & 3. The second did not apply cleanly to 
> for-4.18/core. Could you please resend a rebased version?

Hans' patches apply on top of the fixes I sent this week. I have just
sent the V2 and the patches still apply. You can find them at:
  https://github.com/OpenChannelSSD/linux/tree/for-4.18/pblk

Javier


signature.asc
Description: Message signed with OpenPGP


Re: [PATCH v2 0/3] Rework write error handling in pblk

2018-04-30 Thread Javier Gonzalez
> On 28 Apr 2018, at 21.31, Matias Bjørling  wrote:
> 
> On 4/23/18 10:45 PM, Hans Holmberg wrote:
>> From: Hans Holmberg 
>> This patch series fixes the(currently incomplete) write error handling
>> in pblk by:
>>  * queuing and re-submitting failed writes in the write buffer
>>  * evacuating valid data data in lines with write failures, so the
>>chunk(s) with write failures can be reset to a known state by the fw
>> Lines with failures in smeta are put back on the free list.
>> Failed chunks will be reset on the next use.
>> If a write failes in emeta, the lba list is cached so the line can be
>> garbage collected without scanning the out-of-band area.
>> Changes in V2:
>> - Added the recov_writes counter increase to the new path
>> - Moved lba list emeta reading during gc to a separate function
>> - Allocating the saved lba list with pblk_malloc instead of kmalloc
>> - Fixed formatting issues
>> - Removed dead code
>> Hans Holmberg (3):
>>   lightnvm: pblk: rework write error recovery path
>>   lightnvm: pblk: garbage collect lines with failed writes
>>   lightnvm: pblk: fix smeta write error path
>>  drivers/lightnvm/pblk-core.c |  52 +++-
>>  drivers/lightnvm/pblk-gc.c   | 102 +--
>>  drivers/lightnvm/pblk-init.c |  47 ---
>>  drivers/lightnvm/pblk-rb.c   |  39 --
>>  drivers/lightnvm/pblk-recovery.c |  91 -
>>  drivers/lightnvm/pblk-rl.c   |  29 -
>>  drivers/lightnvm/pblk-sysfs.c|  15 ++-
>>  drivers/lightnvm/pblk-write.c| 269 
>> ++-
>>  drivers/lightnvm/pblk.h  |  36 --
>>  9 files changed, 384 insertions(+), 296 deletions(-)
> 
> Thanks Hans. I've applied 1 & 3. The second did not apply cleanly to 
> for-4.18/core. Could you please resend a rebased version?

Hans' patches apply on top of the fixes I sent this week. I have just
sent the V2 and the patches still apply. You can find them at:
  https://github.com/OpenChannelSSD/linux/tree/for-4.18/pblk

Javier


signature.asc
Description: Message signed with OpenPGP


Re: [PATCH v2 0/3] Rework write error handling in pblk

2018-04-28 Thread Matias Bjørling

On 4/23/18 10:45 PM, Hans Holmberg wrote:

From: Hans Holmberg 

This patch series fixes the(currently incomplete) write error handling
in pblk by:

  * queuing and re-submitting failed writes in the write buffer
  * evacuating valid data data in lines with write failures, so the
chunk(s) with write failures can be reset to a known state by the fw

Lines with failures in smeta are put back on the free list.
Failed chunks will be reset on the next use.

If a write failes in emeta, the lba list is cached so the line can be
garbage collected without scanning the out-of-band area.

Changes in V2:
- Added the recov_writes counter increase to the new path
- Moved lba list emeta reading during gc to a separate function
- Allocating the saved lba list with pblk_malloc instead of kmalloc
- Fixed formatting issues
- Removed dead code

Hans Holmberg (3):
   lightnvm: pblk: rework write error recovery path
   lightnvm: pblk: garbage collect lines with failed writes
   lightnvm: pblk: fix smeta write error path

  drivers/lightnvm/pblk-core.c |  52 +++-
  drivers/lightnvm/pblk-gc.c   | 102 +--
  drivers/lightnvm/pblk-init.c |  47 ---
  drivers/lightnvm/pblk-rb.c   |  39 --
  drivers/lightnvm/pblk-recovery.c |  91 -
  drivers/lightnvm/pblk-rl.c   |  29 -
  drivers/lightnvm/pblk-sysfs.c|  15 ++-
  drivers/lightnvm/pblk-write.c| 269 ++-
  drivers/lightnvm/pblk.h  |  36 --
  9 files changed, 384 insertions(+), 296 deletions(-)



Thanks Hans. I've applied 1 & 3. The second did not apply cleanly to 
for-4.18/core. Could you please resend a rebased version?


Re: [PATCH v2 0/3] Rework write error handling in pblk

2018-04-28 Thread Matias Bjørling

On 4/23/18 10:45 PM, Hans Holmberg wrote:

From: Hans Holmberg 

This patch series fixes the(currently incomplete) write error handling
in pblk by:

  * queuing and re-submitting failed writes in the write buffer
  * evacuating valid data data in lines with write failures, so the
chunk(s) with write failures can be reset to a known state by the fw

Lines with failures in smeta are put back on the free list.
Failed chunks will be reset on the next use.

If a write failes in emeta, the lba list is cached so the line can be
garbage collected without scanning the out-of-band area.

Changes in V2:
- Added the recov_writes counter increase to the new path
- Moved lba list emeta reading during gc to a separate function
- Allocating the saved lba list with pblk_malloc instead of kmalloc
- Fixed formatting issues
- Removed dead code

Hans Holmberg (3):
   lightnvm: pblk: rework write error recovery path
   lightnvm: pblk: garbage collect lines with failed writes
   lightnvm: pblk: fix smeta write error path

  drivers/lightnvm/pblk-core.c |  52 +++-
  drivers/lightnvm/pblk-gc.c   | 102 +--
  drivers/lightnvm/pblk-init.c |  47 ---
  drivers/lightnvm/pblk-rb.c   |  39 --
  drivers/lightnvm/pblk-recovery.c |  91 -
  drivers/lightnvm/pblk-rl.c   |  29 -
  drivers/lightnvm/pblk-sysfs.c|  15 ++-
  drivers/lightnvm/pblk-write.c| 269 ++-
  drivers/lightnvm/pblk.h  |  36 --
  9 files changed, 384 insertions(+), 296 deletions(-)



Thanks Hans. I've applied 1 & 3. The second did not apply cleanly to 
for-4.18/core. Could you please resend a rebased version?


[PATCH v2 0/3] Rework write error handling in pblk

2018-04-23 Thread Hans Holmberg
From: Hans Holmberg 

This patch series fixes the(currently incomplete) write error handling 
in pblk by:

 * queuing and re-submitting failed writes in the write buffer
 * evacuating valid data data in lines with write failures, so the
   chunk(s) with write failures can be reset to a known state by the fw

Lines with failures in smeta are put back on the free list.
Failed chunks will be reset on the next use.

If a write failes in emeta, the lba list is cached so the line can be 
garbage collected without scanning the out-of-band area.

Changes in V2:
- Added the recov_writes counter increase to the new path
- Moved lba list emeta reading during gc to a separate function
- Allocating the saved lba list with pblk_malloc instead of kmalloc
- Fixed formatting issues
- Removed dead code

Hans Holmberg (3):
  lightnvm: pblk: rework write error recovery path
  lightnvm: pblk: garbage collect lines with failed writes
  lightnvm: pblk: fix smeta write error path

 drivers/lightnvm/pblk-core.c |  52 +++-
 drivers/lightnvm/pblk-gc.c   | 102 +--
 drivers/lightnvm/pblk-init.c |  47 ---
 drivers/lightnvm/pblk-rb.c   |  39 --
 drivers/lightnvm/pblk-recovery.c |  91 -
 drivers/lightnvm/pblk-rl.c   |  29 -
 drivers/lightnvm/pblk-sysfs.c|  15 ++-
 drivers/lightnvm/pblk-write.c| 269 ++-
 drivers/lightnvm/pblk.h  |  36 --
 9 files changed, 384 insertions(+), 296 deletions(-)

-- 
2.7.4



[PATCH v2 0/3] Rework write error handling in pblk

2018-04-23 Thread Hans Holmberg
From: Hans Holmberg 

This patch series fixes the(currently incomplete) write error handling 
in pblk by:

 * queuing and re-submitting failed writes in the write buffer
 * evacuating valid data data in lines with write failures, so the
   chunk(s) with write failures can be reset to a known state by the fw

Lines with failures in smeta are put back on the free list.
Failed chunks will be reset on the next use.

If a write failes in emeta, the lba list is cached so the line can be 
garbage collected without scanning the out-of-band area.

Changes in V2:
- Added the recov_writes counter increase to the new path
- Moved lba list emeta reading during gc to a separate function
- Allocating the saved lba list with pblk_malloc instead of kmalloc
- Fixed formatting issues
- Removed dead code

Hans Holmberg (3):
  lightnvm: pblk: rework write error recovery path
  lightnvm: pblk: garbage collect lines with failed writes
  lightnvm: pblk: fix smeta write error path

 drivers/lightnvm/pblk-core.c |  52 +++-
 drivers/lightnvm/pblk-gc.c   | 102 +--
 drivers/lightnvm/pblk-init.c |  47 ---
 drivers/lightnvm/pblk-rb.c   |  39 --
 drivers/lightnvm/pblk-recovery.c |  91 -
 drivers/lightnvm/pblk-rl.c   |  29 -
 drivers/lightnvm/pblk-sysfs.c|  15 ++-
 drivers/lightnvm/pblk-write.c| 269 ++-
 drivers/lightnvm/pblk.h  |  36 --
 9 files changed, 384 insertions(+), 296 deletions(-)

-- 
2.7.4