Re: [PATCH 0/5] lightnvm: More flexible approach to metadata

2018-06-19 Thread Javier Gonzalez

> On 16 Jun 2018, at 00.27, Igor Konopko  wrote:
> 
> This series of patches introduce some more flexibility in pblk
> related to OOB meta:
> -ability to use different sizes of metadata (previously fixed 16b)
> -ability to use pblk on drives without metadata
> -ensuring that extended (interleaved) metadata is not in use
> 
> I belive that most of this patches, maybe except of number 4 (Support
> for packed metadata) are rather simple, so waiting for comments
> especially about this one.
> 
> Igor Konopko (5):
>  lightnvm: pblk: Helpers for OOB metadata
>  lightnvm: pblk: Remove resv field for sec meta
>  lightnvm: Flexible DMA pool entry size
>  lightnvm: pblk: Support for packed metadata in pblk.
>  lightnvm: pblk: Disable interleaved metadata in pblk
> 
> drivers/lightnvm/core.c  | 33 ++-
> drivers/lightnvm/pblk-core.c | 86 +++-
> drivers/lightnvm/pblk-init.c | 52 +++-
> drivers/lightnvm/pblk-map.c  | 21 ++
> drivers/lightnvm/pblk-rb.c   |  3 ++
> drivers/lightnvm/pblk-read.c | 85 +--
> drivers/lightnvm/pblk-recovery.c | 67 +--
> drivers/lightnvm/pblk-sysfs.c|  7 
> drivers/lightnvm/pblk-write.c| 22 ++
> drivers/lightnvm/pblk.h  | 46 +++--
> drivers/nvme/host/lightnvm.c |  7 +++-
> include/linux/lightnvm.h |  9 +++--
> 12 files changed, 333 insertions(+), 105 deletions(-)
> 
> --
> 2.14.3

I get a number of errors when running the series. A simple bisect points
to the first patch being the one introducing the (first) regression.
Here you have the trace attached. I could easily reproduce it mounting
ext4 and running a RocksDB's db_bench.

[   80.302731] Workqueue: pblk-read-end-wq pblk_line_put_ws
[   80.302733] RIP: 0010:__pblk_line_put+0xc3/0xd0
[   80.302733] Code: 89 55 70 48 89 4b 20 48 89 43 28 48 89 10 83 45 64 01 c6 
07 00 0f 1f 40 00 48 89 de 4c 89 ef 5b 5d 41 5c 41 5d e9 5d a5 00 00 <0f> 0b e9 
60 ff ff ff 66 0f 1f 44 00 00 0f 1f 44 00 00 55 53 48 89
[   80.302755] RSP: 0018:b17102733e40 EFLAGS: 00010293
[   80.302756] RAX:  RBX: 8d34529003e8 RCX: 8d3467068020
[   80.302757] RDX: 0001 RSI: 8d34529003e8 RDI: 8d34529004a8
[   80.302758] RBP: 8d34622ae800 R08:  R09: 8080808080808080
[   80.302758] R10: 0018 R11: fefefefefefefeff R12: 8d34529004a8
[   80.302759] R13:  R14: 8d346532c600 R15: 08d345f59990
[   80.302760] FS:  () GS:8d34778c() 
knlGS:
[   80.302761] CS:  0010 DS:  ES:  CR0: 80050033
[   80.302762] CR2: 7f4d37e0 CR3: 00020780a002 CR4: 003606e0
[   80.302763] DR0:  DR1:  DR2: 
[   80.302764] DR3:  DR6: fffe0ff0 DR7: 0400
[   80.302764] Call Trace:
[   80.302768]  pblk_line_put_ws+0x1a/0x30
[   80.302771]  process_one_work+0x15e/0x3d0
[   80.302773]  worker_thread+0x4c/0x440
[   80.302774]  kthread+0xf8/0x130
[   80.302776]  ? rescuer_thread+0x350/0x350
[   80.302777]  ? kthread_associate_blkcg+0x90/0x90
[   80.302779]  ret_from_fork+0x35/0x40
[   80.302781] ---[ end trace c4ab4ef1527265f6 ]---
[   81.551907] WARNING: CPU: 6 PID: 5045 at drivers/lightnvm/pblk-core.c:162 
__pblk_map_invalidate+0x10b/0x130
[   81.551908] Modules linked in:
[   81.551910] CPU: 6 PID: 5045 Comm: rocksdb:bg0 Tainted: GW 
4.17.0--00884b2fb689 #2569
[   81.551911] Hardware name: Supermicro Super Server/X11SSH-F, BIOS 2.1 
12/11/2017
[   81.551912] RIP: 0010:__pblk_map_invalidate+0x10b/0x130
[   81.551912] Code: 48 89 de 4c 89 e7 e8 f4 fd ff ff 49 89 c5 e9 62 ff ff ff 
48 c7 c7 ec 8e 5e a4 c6 05 50 65 10 01 01 e8 29 eb 88 ff 0f 0b eb c5 <0f> 0b e9 
1b ff ff ff c6 07 00 0f 1f 40 00 4c 89 e7 c6 07 00 0f 1f
[   81.551927] RSP: 0018:b17106d23808 EFLAGS: 00010246
[   81.551928] RAX:  RBX: 8d34529003e8 RCX: 0300
[   81.551929] RDX: 0001 RSI: 8d34529003e8 RDI: 8d34529004a8
[   81.551929] RBP: 8d34529004a8 R08: 0018 R09: 8d345d6e96d0
[   81.551930] R10: b17106d237c8 R11: 0040 R12: 8d34622ae800
[   81.551930] R13: 0b40 R14: 8d34622aec10 R15: b1710615d7c0
[   81.551931] FS:  7f4d6707e700() GS:8d347798() 
knlGS:
[   81.551932] CS:  0010 DS:  ES:  CR0: 80050033
[   81.551932] CR2: 7f4d57e0 CR3: 00040c204006 CR4: 003606e0
[   81.551933] DR0:  DR1:  DR2: 
[   81.551933] DR3:  DR6: fffe0ff0 DR7: 0400
[   81.551934] Call Trace:
[   81.551937]  pblk_update_map_dev+0x69/0x370
[   81.551938]  __pblk_rb_update_l2p+0x52/0x160
[   81.551939]  

[PATCH 0/5] lightnvm: More flexible approach to metadata

2018-06-15 Thread Igor Konopko
This series of patches introduce some more flexibility in pblk
related to OOB meta:
-ability to use different sizes of metadata (previously fixed 16b)
-ability to use pblk on drives without metadata
-ensuring that extended (interleaved) metadata is not in use

I belive that most of this patches, maybe except of number 4 (Support
for packed metadata) are rather simple, so waiting for comments
especially about this one.

Igor Konopko (5):
  lightnvm: pblk: Helpers for OOB metadata
  lightnvm: pblk: Remove resv field for sec meta
  lightnvm: Flexible DMA pool entry size
  lightnvm: pblk: Support for packed metadata in pblk.
  lightnvm: pblk: Disable interleaved metadata in pblk

 drivers/lightnvm/core.c  | 33 ++-
 drivers/lightnvm/pblk-core.c | 86 +++-
 drivers/lightnvm/pblk-init.c | 52 +++-
 drivers/lightnvm/pblk-map.c  | 21 ++
 drivers/lightnvm/pblk-rb.c   |  3 ++
 drivers/lightnvm/pblk-read.c | 85 +--
 drivers/lightnvm/pblk-recovery.c | 67 +--
 drivers/lightnvm/pblk-sysfs.c|  7 
 drivers/lightnvm/pblk-write.c| 22 ++
 drivers/lightnvm/pblk.h  | 46 +++--
 drivers/nvme/host/lightnvm.c |  7 +++-
 include/linux/lightnvm.h |  9 +++--
 12 files changed, 333 insertions(+), 105 deletions(-)

-- 
2.14.3