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

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



> On 16 Jun 2018, at 00.27, Igor Konopko <igor.j.konopko@xxxxxxxxx> 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:ffffb17102733e40 EFLAGS: 00010293
[   80.302756] RAX: 0000000000000000 RBX: ffff8d34529003e8 RCX: ffff8d3467068020
[   80.302757] RDX: 0000000000000001 RSI: ffff8d34529003e8 RDI: ffff8d34529004a8
[   80.302758] RBP: ffff8d34622ae800 R08: 0000000000000000 R09: 8080808080808080
[   80.302758] R10: 0000000000000018 R11: fefefefefefefeff R12: ffff8d34529004a8
[   80.302759] R13: 0000000000000000 R14: ffff8d346532c600 R15: 0ffff8d345f59990
[   80.302760] FS:  0000000000000000(0000) GS:ffff8d34778c0000(0000) knlGS:0000000000000000
[   80.302761] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
[   80.302762] CR2: 00007f4d37e00000 CR3: 000000020780a002 CR4: 00000000003606e0
[   80.302763] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
[   80.302764] DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
[   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: G        W         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:ffffb17106d23808 EFLAGS: 00010246
[   81.551928] RAX: 0000000000000000 RBX: ffff8d34529003e8 RCX: 0000000000000300
[   81.551929] RDX: 0000000000000001 RSI: ffff8d34529003e8 RDI: ffff8d34529004a8
[   81.551929] RBP: ffff8d34529004a8 R08: 0000000000000018 R09: ffff8d345d6e96d0
[   81.551930] R10: ffffb17106d237c8 R11: 0000000000000040 R12: ffff8d34622ae800
[   81.551930] R13: 0000000000000b40 R14: ffff8d34622aec10 R15: ffffb1710615d7c0
[   81.551931] FS:  00007f4d6707e700(0000) GS:ffff8d3477980000(0000) knlGS:0000000000000000
[   81.551932] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
[   81.551932] CR2: 00007f4d57e00000 CR3: 000000040c204006 CR4: 00000000003606e0
[   81.551933] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
[   81.551933] DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
[   81.551934] Call Trace:
[   81.551937]  pblk_update_map_dev+0x69/0x370
[   81.551938]  __pblk_rb_update_l2p+0x52/0x160
[   81.551939]  __pblk_rb_may_write+0x40/0x50
[   81.551941]  pblk_rb_may_write_user+0x6c/0xe0
[   81.551942]  pblk_write_to_cache+0xa1/0x270
[   81.551944]  ? pblk_make_rq+0x6d/0x110
[   81.551944]  pblk_make_rq+0x6d/0x110
[   81.551947]  generic_make_request+0x1e8/0x410
[   81.551948]  ? submit_bio+0x6c/0x140
[   81.551950]  ? iov_iter_get_pages+0xbd/0x340
[   81.551951]  submit_bio+0x6c/0x140
[   81.551952]  ? bio_add_page+0x1b/0x50
[   81.551954]  do_blockdev_direct_IO+0x2011/0x29f0
[   81.551957]  ? ext4_dio_get_block_unwritten_sync+0x50/0x50
[   81.551958]  ? ext4_direct_IO+0x288/0x740
[   81.551959]  ext4_direct_IO+0x288/0x740
[   81.551961]  generic_file_direct_write+0xc4/0x160
[   81.551962]  __generic_file_write_iter+0xb6/0x1e0
[   81.551964]  ? __switch_to_asm+0x40/0x70
[   81.551965]  ? __switch_to_asm+0x34/0x70
[   81.551966]  ext4_file_write_iter+0xc7/0x400
[   81.551967]  ? __switch_to_asm+0x34/0x70
[   81.551968]  ? __switch_to_asm+0x40/0x70
[   81.551968]  ? __switch_to_asm+0x34/0x70
[   81.551969]  ? __switch_to_asm+0x40/0x70
[   81.551970]  ? __switch_to_asm+0x34/0x70
[   81.551971]  __vfs_write+0x112/0x1a0
[   81.551973]  vfs_write+0xb3/0x1a0
[   81.551974]  ksys_pwrite64+0x71/0x90
[   81.551976]  ? exit_to_usermode_loop+0x5c/0xb0
[   81.551977]  do_syscall_64+0x55/0x100
[   81.551978]  entry_SYSCALL_64_after_hwframe+0x44/0xa9
[   81.551980] RIP: 0033:0x7f4dd04a2da3
[   81.551980] Code: 49 89 ca b8 12 00 00 00 0f 05 48 3d 01 f0 ff ff 73 34 c3 48 83 ec 08 e8 cb f3 ff ff 48 89 04 24 49 89 ca b8 12 00 00 00 0f 05 <48> 8b 3c 24 48 89 c2 e8 11 f4 ff ff 48 89 d0 48 83 c4 08 48 3d 01
[   81.551995] RSP: 002b:00007f4d6707a8f0 EFLAGS: 00000293 ORIG_RAX: 0000000000000012
[   81.551996] RAX: ffffffffffffffda RBX: 0000000006a05000 RCX: 00007f4dd04a2da3
[   81.551997] RDX: 0000000006a05000 RSI: 00007f4d4ffff000 RDI: 000000000000000f
[   81.551997] RBP: 00007f4d6707a950 R08: 00007f4d60000d70 R09: 00007f4d6707aad0
[   81.551998] R10: 0000000008000000 R11: 0000000000000293 R12: 0000000008000000
[   81.551998] R13: 00007f4d4ffff000 R14: 00007f4d60000bc0 R15: 00007f4d6707a9a0
[   81.551999] ---[ end trace c4ab4ef1527265f7 ]---
[   81.555052] WARNING: CPU: 6 PID: 5045 at drivers/lightnvm/pblk-core.c:162 __pblk_map_invalidate+0x10b/0x130
[   81.555053] Modules linked in:
[   81.555055] CPU: 6 PID: 5045 Comm: rocksdb:bg0 Tainted: G        W         4.17.0--00884b2fb689 #2569
[   81.555056] Hardware name: Supermicro Super Server/X11SSH-F, BIOS 2.1 12/11/2017
[   81.555057] RIP: 0010:__pblk_map_invalidate+0x10b/0x130
[   81.555057] 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.555072] RSP: 0018:ffffb17106d23808 EFLAGS: 00010246
[   81.555073] RAX: 0000000000000000 RBX: ffff8d34529003e8 RCX: 0000000000000300
[   81.555073] RDX: 0000000000000001 RSI: ffff8d34529003e8 RDI: ffff8d34529004a8
[   81.555074] RBP: ffff8d34529004a8 R08: 0000000000000018 R09: ffff8d345d6e96d0
[   81.555074] R10: ffffb17106d237c8 R11: 0000000000000040 R12: ffff8d34622ae800
[   81.555075] R13: 0000000000000d41 R14: ffff8d34622aec10 R15: ffffb17106166808
[   81.555076] FS:  00007f4d6707e700(0000) GS:ffff8d3477980000(0000) knlGS:0000000000000000
[   81.555076] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
[   81.555077] CR2: 00007f4d57e00000 CR3: 000000040c204006 CR4: 00000000003606e0
[   81.555078] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
[   81.555078] DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
[   81.555078] Call Trace:
[   81.555081]  pblk_update_map_dev+0x69/0x370
[   81.555083]  __pblk_rb_update_l2p+0x52/0x160
[   81.555084]  __pblk_rb_may_write+0x40/0x50
[   81.555085]  pblk_rb_may_write_user+0x6c/0xe0
[   81.555087]  pblk_write_to_cache+0xa1/0x270
[   81.555088]  ? pblk_make_rq+0x6d/0x110
[   81.555089]  pblk_make_rq+0x6d/0x110
[   81.555092]  generic_make_request+0x1e8/0x410
[   81.555093]  ? submit_bio+0x6c/0x140
[   81.555095]  ? iov_iter_get_pages+0xbd/0x340
[   81.555096]  submit_bio+0x6c/0x140
[   81.555098]  ? bio_add_page+0x1b/0x50
[   81.555100]  do_blockdev_direct_IO+0x2011/0x29f0
[   81.555102]  ? ext4_dio_get_block_unwritten_sync+0x50/0x50
[   81.555104]  ? ext4_direct_IO+0x288/0x740
[   81.555104]  ext4_direct_IO+0x288/0x740
[   81.555107]  generic_file_direct_write+0xc4/0x160
[   81.555108]  __generic_file_write_iter+0xb6/0x1e0
[   81.555110]  ? __switch_to_asm+0x40/0x70
[   81.555111]  ? __switch_to_asm+0x34/0x70
[   81.555112]  ext4_file_write_iter+0xc7/0x400
[   81.555113]  ? __switch_to_asm+0x34/0x70
[   81.555114]  ? __switch_to_asm+0x40/0x70
[   81.555114]  ? __switch_to_asm+0x34/0x70
[   81.555115]  ? __switch_to_asm+0x40/0x70
[   81.555115]  ? __switch_to_asm+0x34/0x70
[   81.555117]  __vfs_write+0x112/0x1a0
[   81.555119]  vfs_write+0xb3/0x1a0
[   81.555121]  ksys_pwrite64+0x71/0x90
[   81.555123]  ? exit_to_usermode_loop+0x5c/0xb0
[   81.555124]  do_syscall_64+0x55/0x100
[   81.555125]  entry_SYSCALL_64_after_hwframe+0x44/0xa9
[   81.555127] RIP: 0033:0x7f4dd04a2da3

Attachment: signature.asc
Description: Message signed with OpenPGP


[Index of Archives]     [Linux RAID]     [Linux SCSI]     [Linux ATA RAID]     [IDE]     [Linux Wireless]     [Linux Kernel]     [ATH6KL]     [Linux Bluetooth]     [Linux Netdev]     [Kernel Newbies]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Device Mapper]

  Powered by Linux