All of lore.kernel.org
 help / color / mirror / Atom feed
From: Larkin Lowrey <llowrey@nuclearwinter.com>
To: Slava Pestov <sp@datera.io>
Cc: Kent Overstreet <kmo@daterainc.com>, linux-bcache@vger.kernel.org
Subject: Re: Null pointer oops
Date: Wed, 13 Aug 2014 17:14:12 -0500	[thread overview]
Message-ID: <53EBE334.9020606@nuclearwinter.com> (raw)
In-Reply-To: <CACHGV4LtxvPz=VrzsXb9L2c779QijzQO-moPzM188AaVr8Q9jg@mail.gmail.com>

Thanks for looking into this. It's good to know it has already been
addressed.

--Larkin

On 8/13/2014 4:30 PM, Slava Pestov wrote:
> I was mistaken. The bug is fixed in the pull request Kent sent to Jens for 3.16:
>
> http://evilpiepirate.org/git/linux-bcache.git/commit/?h=bcache-dev&id=bcf090e0040e30f8409e6a535a01e6473afb096f
>
> On Wed, Aug 13, 2014 at 2:25 PM, Slava Pestov <sp@datera.io> wrote:
>> Indeed it looks like iter is NULL. I see the bug is still present in
>> the latest dev branch. The problem is that we're not checking the
>> return value of mempoool_alloc(), which may be NULL if we pass
>> GFP_NOWAIT.
>>
>> On Wed, Aug 13, 2014 at 2:21 PM, Larkin Lowrey
>> <llowrey@nuclearwinter.com> wrote:
>>> Here's the dissassembly of bch_btree_node_read_done. The offending line
>>> is 207 and the instruction is at offset 76.
>>>
>>> --Larkin
>>>
>>> 199     void bch_btree_node_read_done(struct btree *b)
>>> 200     {
>>>    0x00000000000065b0 <+0>:     callq  0x65b5 <bch_btree_node_read_done+5>
>>>    0x00000000000065b5 <+5>:     push   %rbp
>>>    0x00000000000065b8 <+8>:     mov    %rsp,%rbp
>>>    0x00000000000065bb <+11>:    push   %r15
>>>    0x00000000000065bd <+13>:    push   %r14
>>>    0x00000000000065bf <+15>:    push   %r13
>>>    0x00000000000065c1 <+17>:    push   %r12
>>>    0x00000000000065c3 <+19>:    mov    %rdi,%r12
>>>    0x00000000000065c6 <+22>:    push   %rbx
>>>
>>> 201             const char *err = "bad btree header";
>>>    0x0000000000006800 <+592>:   mov    $0x0,%rdx
>>>
>>> 202             struct bset *i = btree_bset_first(b);
>>> 203             struct btree_iter *iter;
>>> 204
>>> 205             iter = mempool_alloc(b->c->fill_iter, GFP_NOWAIT);
>>>    0x00000000000065b6 <+6>:     xor    %esi,%esi
>>>    0x00000000000065c7 <+23>:    mov    0x80(%rdi),%rax
>>>    0x00000000000065d5 <+37>:    mov    0xcb58(%rax),%rdi
>>>    0x00000000000065dc <+44>:    callq  0x65e1 <bch_btree_node_read_done+49>
>>>    0x00000000000065e9 <+57>:    mov    %rax,%r13
>>>
>>> 206             iter->size = b->c->sb.bucket_size / b->c->sb.block_size;
>>>    0x00000000000065e1 <+49>:    mov    0x80(%r12),%rsi
>>>    0x00000000000065ec <+60>:    xor    %edx,%edx
>>>    0x00000000000065ee <+62>:    movzwl 0x432(%rsi),%eax
>>>    0x00000000000065f5 <+69>:    divw   0x430(%rsi)
>>>    0x0000000000006604 <+84>:    movzwl %ax,%eax
>>>    0x0000000000006607 <+87>:    mov    %rax,0x0(%r13)
>>>
>>> 207             iter->used = 0;
>>>    0x00000000000065fc <+76>:    movq   $0x0,0x8(%r13)
>>>
>>> 208
>>> 209     #ifdef CONFIG_BCACHE_DEBUG
>>> 210             iter->b = &b->keys;
>>> 211     #endif
>>> 212
>>> 213             if (!i->seq)
>>>    0x000000000000660b <+91>:    mov    0x10(%rbx),%rax
>>>    0x000000000000660f <+95>:    test   %rax,%rax
>>>    0x0000000000006612 <+98>:    je     0x6800 <bch_btree_node_read_done+592>
>>>
>>> 214                     goto err;
>>> 215
>>> 216             for (;
>>>    0x000000000000664d <+157>:   cmp    %r9d,%ecx
>>>    0x0000000000006650 <+160>:   jae    0x6882 <bch_btree_node_read_done+722>
>>>    0x0000000000006744 <+404>:   cmp    %r9d,%r10d
>>>    0x0000000000006747 <+407>:   jae    0x6898 <bch_btree_node_read_done+744>
>>>
>>> 217                  b->written < btree_blocks(b) && i->seq ==
>>> b->keys.set[0].data->seq;
>>>    0x0000000000006618 <+104>:   mov    0x80(%r12),%rsi
>>>    0x0000000000006625 <+117>:   movzwl 0xc0(%r12),%edi
>>>    0x000000000000662e <+126>:   mov    0x108(%r12),%r8
>>>    0x0000000000006636 <+134>:   movzwl 0xde2(%rsi),%ecx
>>>    0x0000000000006644 <+148>:   mov    %rdx,%r9
>>>    0x0000000000006647 <+151>:   shr    %cl,%r9
>>>    0x000000000000664a <+154>:   movzwl %di,%ecx
>>>    0x0000000000006656 <+166>:   cmp    0x10(%r8),%rax
>>>    0x000000000000665a <+170>:   jne    0x6882 <bch_btree_node_read_done+722>
>>>    0x000000000000670f <+351>:   mov    %rdx,%r9
>>>    0x000000000000672a <+378>:   movzwl 0xde2(%rsi),%ecx
>>>    0x0000000000006738 <+392>:   shr    %cl,%r9
>>>    0x000000000000674d <+413>:   mov    0x10(%r8),%rcx
>>>    0x0000000000006751 <+417>:   cmp    %rcx,0x10(%rbx)
>>>    0x0000000000006755 <+421>:   jne    0x6898 <bch_btree_node_read_done+744>
>>>    0x0000000000006892 <+738>:   add    %r8,%rbx
>>>    0x0000000000006895 <+741>:   nopl   (%rax)
>>>
>>> 218                  i = write_block(b)) {
>>> 219                     err = "unsupported bset version";
>>>    0x00000000000069c0 <+1040>:  mov    $0x0,%rdx
>>>    0x00000000000069c7 <+1047>:  jmpq   0x6807 <bch_btree_node_read_done+599>
>>>    0x00000000000069cc <+1052>:  nopl   0x0(%rax)
>>>
>>> 220                     if (i->version > BCACHE_BSET_VERSION)
>>>    0x0000000000006660 <+176>:   mov    0x18(%rbx),%r10d
>>>    0x0000000000006664 <+180>:   cmp    $0x1,%r10d
>>>    0x0000000000006668 <+184>:   ja     0x69c0
>>> <bch_btree_node_read_done+1040>
>>>    0x000000000000666e <+190>:   movzwl 0x430(%rsi),%r11d
>>>    0x0000000000006676 <+198>:   jmpq   0x6769 <bch_btree_node_read_done+441>
>>>    0x000000000000667b <+203>:   nopl   0x0(%rax,%rax,1)
>>>    0x000000000000675b <+427>:   mov    0x18(%rbx),%r10d
>>>    0x000000000000675f <+431>:   cmp    $0x1,%r10d
>>>    0x0000000000006763 <+435>:   ja     0x69c0
>>> <bch_btree_node_read_done+1040>
>>>
>>> 221                             goto err;
>>> 222
>>> 223                     err = "bad btree header";
>>> 224                     if (b->written + set_blocks(i, block_bytes(b->c)) >
>>>    0x0000000000006769 <+441>:   mov    0x1c(%rbx),%eax
>>>    0x000000000000676c <+444>:   mov    %r11,%rcx
>>>    0x000000000000676f <+447>:   xor    %edx,%edx
>>>    0x0000000000006771 <+449>:   shl    $0x9,%rcx
>>>    0x0000000000006775 <+453>:   movzwl %di,%edi
>>>    0x0000000000006778 <+456>:   mov    %r9d,%r9d
>>>    0x000000000000677b <+459>:   and    $0x1fffe00,%ecx
>>>    0x0000000000006781 <+465>:   lea    0x20(,%rax,8),%r8
>>>    0x0000000000006789 <+473>:   lea    -0x1(%r8,%rcx,1),%rax
>>>    0x000000000000678e <+478>:   div    %rcx
>>>    0x0000000000006791 <+481>:   add    %rdi,%rax
>>>    0x0000000000006794 <+484>:   cmp    %r9,%rax
>>>    0x0000000000006797 <+487>:   ja     0x6800 <bch_btree_node_read_done+592>
>>>
>>> 225                         btree_blocks(b))
>>> 226                             goto err;
>>> 227
>>> 228                     err = "bad magic";
>>>    0x00000000000069d0 <+1056>:  mov    $0x0,%rdx
>>>    0x00000000000069d7 <+1063>:  jmpq   0x6807 <bch_btree_node_read_done+599>
>>>    0x00000000000069dc <+1068>:  nopl   0x0(%rax)
>>>
>>> 229                     if (i->magic != bset_magic(&b->c->sb))
>>>    0x00000000000067aa <+506>:   cmp    %rax,0x8(%rbx)
>>>    0x00000000000067ae <+510>:   jne    0x69d0
>>> <bch_btree_node_read_done+1056>
>>>
>>> 230                             goto err;
>>> 231
>>> 232                     err = "bad checksum";
>>>    0x00000000000067df <+559>:   mov    $0x0,%rdx
>>>    0x00000000000067e6 <+566>:   jmp    0x6807 <bch_btree_node_read_done+599>
>>>    0x00000000000067e8 <+568>:   nopl   0x0(%rax,%rax,1)
>>>    0x00000000000067f0 <+576>:   mov    0x1c(%rbx),%eax
>>>    0x00000000000067f3 <+579>:   jmpq   0x66bf <bch_btree_node_read_done+271>
>>>    0x00000000000067f8 <+584>:   nopl   0x0(%rax,%rax,1)
>>>
>>> 233                     switch (i->version) {
>>>    0x00000000000067b4 <+516>:   cmp    $0x1,%r10d
>>>    0x00000000000067bb <+523>:   je     0x6680 <bch_btree_node_read_done+208>
>>>
>>> 234                     case 0:
>>> 235                             if (i->csum != csum_set(i))
>>>    0x00000000000067c1 <+529>:   lea    0x20(%rbx),%r14
>>>    0x00000000000067c5 <+533>:   lea    0x8(%rbx),%rdi
>>>    0x00000000000067ce <+542>:   sub    %rdi,%rsi
>>>    0x00000000000067d1 <+545>:   callq  0x67d6 <bch_btree_node_read_done+550>
>>>    0x00000000000067d6 <+550>:   cmp    %rax,%r15
>>>    0x00000000000067d9 <+553>:   je     0x66a6 <bch_btree_node_read_done+246>
>>> 236                                     goto err;
>>> 237                             break;
>>> 238                     case BCACHE_BSET_VERSION:
>>> 239                             if (i->csum != btree_csum_set(b, i))
>>>    0x000000000000669d <+237>:   cmp    %rax,%r15
>>>    0x00000000000066a0 <+240>:   jne    0x67df <bch_btree_node_read_done+559>
>>>    0x00000000000067b8 <+520>:   mov    (%rbx),%r15
>>>
>>> 240                                     goto err;
>>> 241                             break;
>>> 242                     }
>>> 243
>>> 244                     err = "empty set";
>>>    0x00000000000069e0 <+1072>:  mov    $0x0,%rdx
>>>    0x00000000000069e7 <+1079>:  jmpq   0x6807 <bch_btree_node_read_done+599>
>>>
>>> 245                     if (i != b->keys.set[0].data && !i->keys)
>>>    0x00000000000066a6 <+246>:   cmp    %rbx,0x108(%r12)
>>>    0x00000000000066ae <+254>:   je     0x67f0 <bch_btree_node_read_done+576>
>>>    0x00000000000066b4 <+260>:   mov    0x1c(%rbx),%eax
>>>    0x00000000000066b7 <+263>:   test   %eax,%eax
>>>    0x00000000000066b9 <+265>:   je     0x69e0
>>> <bch_btree_node_read_done+1072>
>>>
>>> 246                             goto err;
>>> 247
>>> 248                     bch_btree_iter_push(iter, i->start,
>>> bset_bkey_last(i));
>>>    0x00000000000066c3 <+275>:   mov    %r14,%rsi
>>>    0x00000000000066c6 <+278>:   mov    %r13,%rdi
>>>    0x00000000000066c9 <+281>:   callq  0x66ce <bch_btree_node_read_done+286>
>>>
>>> 249
>>> 250                     b->written += set_blocks(i, block_bytes(b->c));
>>>    0x00000000000066ce <+286>:   mov    0x80(%r12),%rsi
>>>    0x00000000000066d6 <+294>:   mov    0x1c(%rbx),%eax
>>>    0x00000000000066d9 <+297>:   xor    %edx,%edx
>>>    0x00000000000066e3 <+307>:   movzwl 0x430(%rsi),%ecx
>>>    0x00000000000066ea <+314>:   shl    $0x9,%ecx
>>>    0x00000000000066ed <+317>:   movslq %ecx,%rcx
>>>    0x00000000000066f0 <+320>:   lea    0x1f(%rcx,%rax,8),%rax
>>>    0x00000000000066f5 <+325>:   div    %rcx
>>>    0x0000000000006704 <+340>:   mov    %eax,%edi
>>>    0x0000000000006706 <+342>:   add    0xc0(%r12),%di
>>>    0x0000000000006712 <+354>:   mov    %di,0xc0(%r12)
>>>
>>> 251             }
>>> 252
>>> 253             err = "corrupted btree";
>>>    0x00000000000069b0 <+1024>:  mov    $0x0,%rdx
>>>    0x00000000000069b7 <+1031>:  jmpq   0x6807 <bch_btree_node_read_done+599>
>>>    0x00000000000069bc <+1036>:  nopl   0x0(%rax)
>>>
>>> 254             for (i = write_block(b);
>>>    0x00000000000068a1 <+753>:   cmp    %rdx,%rcx
>>>    0x00000000000068a4 <+756>:   jae    0x68e5 <bch_btree_node_read_done+821>
>>>    0x00000000000068e0 <+816>:   cmp    %rdx,%rcx
>>>    0x00000000000068e3 <+819>:   jb     0x68c8 <bch_btree_node_read_done+792>
>>>
>>> 255                  bset_sector_offset(&b->keys, i) < KEY_SIZE(&b->key);
>>> 256                  i = ((void *) i) + block_bytes(b->c))
>>>    0x00000000000068d7 <+807>:   mov    %rcx,%rbx
>>>    0x00000000000068da <+810>:   sub    %r8d,%ecx
>>>
>>> 257                     if (i->seq == b->keys.set[0].data->seq)
>>>    0x00000000000068a6 <+758>:   mov    0x10(%r8),%rdi
>>>    0x00000000000068aa <+762>:   cmp    %rdi,0x10(%rbx)
>>>    0x00000000000068ae <+766>:   je     0x69b0
>>> <bch_btree_node_read_done+1024>
>>>    0x00000000000068b4 <+772>:   cltq
>>>    0x00000000000068b6 <+774>:   mov    %rax,%r9
>>>    0x00000000000068b9 <+777>:   lea    (%rbx,%rax,1),%rcx
>>>    0x00000000000068bd <+781>:   neg    %r9
>>>    0x00000000000068c0 <+784>:   jmp    0x68d7 <bch_btree_node_read_done+807>
>>>    0x00000000000068c2 <+786>:   nopw   0x0(%rax,%rax,1)
>>>    0x00000000000068c8 <+792>:   lea    (%rbx,%rax,1),%rcx
>>>    0x00000000000068cc <+796>:   cmp    0x10(%rcx,%r9,1),%rdi
>>>    0x00000000000068d1 <+801>:   je     0x69b0
>>> <bch_btree_node_read_done+1024>
>>>
>>> 258                             goto err;
>>> 259
>>> 260             bch_btree_sort_and_fix_extents(&b->keys, iter, &b->c->sort);
>>>    0x00000000000068e5 <+821>:   lea    0xc8(%r12),%r14
>>>    0x00000000000068ed <+829>:   lea    0xcb60(%rsi),%rdx
>>>    0x00000000000068f4 <+836>:   mov    %r13,%rsi
>>>    0x00000000000068f7 <+839>:   mov    %r14,%rdi
>>>    0x00000000000068fa <+842>:   callq  0x68ff <bch_btree_node_read_done+847>
>>>
>>> 261
>>> 262             i = b->keys.set[0].data;
>>>    0x0000000000006907 <+855>:   mov    0x108(%r12),%rbx
>>>
>>> 263             err = "short btree key";
>>>    0x00000000000069ec <+1084>:  mov    $0x0,%rdx
>>>    0x00000000000069f3 <+1091>:  jmpq   0x6807 <bch_btree_node_read_done+599>
>>>
>>> 264             if (b->keys.set[0].size &&
>>>    0x00000000000068ff <+847>:   mov    0xe0(%r12),%eax
>>>    0x0000000000006914 <+868>:   test   %eax,%eax
>>>    0x0000000000006916 <+870>:   je     0x694d <bch_btree_node_read_done+925>
>>>    0x0000000000006944 <+916>:   test   %rax,%rax
>>>    0x0000000000006947 <+919>:   js     0x69ec
>>> <bch_btree_node_read_done+1084>
>>>
>>> 265                 bkey_cmp(&b->key, &b->keys.set[0].end) < 0)
>>> 266                     goto err;
>>> 267
>>> 268             if (b->written < btree_blocks(b))
>>>    0x000000000000694d <+925>:   mov    0x80(%r12),%rax
>>>    0x0000000000006955 <+933>:   movzwl 0xc0(%r12),%esi
>>>    0x0000000000006965 <+949>:   movzwl 0xde2(%rax),%ecx
>>>    0x000000000000696c <+956>:   shr    %cl,%rdx
>>>    0x000000000000696f <+959>:   cmp    %edx,%esi
>>>    0x0000000000006971 <+961>:   jae    0x6868 <bch_btree_node_read_done+696>
>>>
>>> 269                     bch_bset_init_next(&b->keys, write_block(b),
>>>    0x000000000000698f <+991>:   mov    %r14,%rdi
>>>    0x000000000000699e <+1006>:  callq  0x69a3
>>> <bch_btree_node_read_done+1011>
>>>    0x00000000000069a3 <+1011>:  mov    0x80(%r12),%rax
>>>    0x00000000000069ab <+1019>:  jmpq   0x6868 <bch_btree_node_read_done+696>
>>>
>>> 270                                        bset_magic(&b->c->sb));
>>> 271     out:
>>> 272             mempool_free(iter, b->c->fill_iter);
>>>    0x0000000000006868 <+696>:   mov    0xcb58(%rax),%rsi
>>>    0x000000000000686f <+703>:   mov    %r13,%rdi
>>>    0x0000000000006872 <+706>:   callq  0x6877 <bch_btree_node_read_done+711>
>>>
>>> 273             return;
>>> 274     err:
>>> 275             set_btree_node_io_error(b);
>>> 276             bch_cache_set_error(b->c, "%s at bucket %zu, block %u,
>>> %u keys",
>>>    0x0000000000006829 <+633>:   mov    0x1c(%rbx),%r9d
>>>    0x000000000000684a <+666>:   mov    %esi,%ecx
>>>    0x000000000000684c <+668>:   mov    $0x0,%rsi
>>>    0x0000000000006853 <+675>:   shr    %cl,%r8d
>>>    0x0000000000006856 <+678>:   mov    %rax,%rcx
>>>    0x0000000000006859 <+681>:   xor    %eax,%eax
>>>    0x000000000000685b <+683>:   callq  0x6860 <bch_btree_node_read_done+688>
>>>    0x0000000000006860 <+688>:   mov    0x80(%r12),%rax
>>>
>>> 277                                 err, PTR_BUCKET_NR(b->c, &b->key, 0),
>>> 278                                 bset_block_offset(b, i), i->keys);
>>> 279             goto out;
>>> 280     }
>>>    0x0000000000006877 <+711>:   pop    %rbx
>>>    0x0000000000006878 <+712>:   pop    %r12
>>>    0x000000000000687a <+714>:   pop    %r13
>>>    0x000000000000687c <+716>:   pop    %r14
>>>    0x000000000000687e <+718>:   pop    %r15
>>>    0x0000000000006880 <+720>:   pop    %rbp
>>>    0x0000000000006881 <+721>:   retq
>>>    0x0000000000006882 <+722>:   movzwl 0x430(%rsi),%eax
>>>    0x0000000000006889 <+729>:   shl    $0x9,%eax
>>>    0x000000000000688c <+732>:   imul   %eax,%ecx
>>>    0x000000000000688f <+735>:   movslq %ecx,%rbx
>>>
>>>
>>> On 8/13/2014 1:45 PM, Slava Pestov wrote:
>>>> Can you post the disassembly of the function?
>>>>
>>>> On Wed, Aug 13, 2014 at 11:35 AM, Larkin Lowrey
>>>> <llowrey@nuclearwinter.com> wrote:
>>>>> Thanks. Trying gdb helped me find the answer. I needed to install the
>>>>> kernel-debuginfo-3.15.8-200.fc20.x86_64  package via yum.
>>>>>
>>>>> From addr2line:
>>>>>> bch_btree_node_read_done+0x4c
>>>>>> drivers/md/bcache/btree.c:207
>>>>> Here'a a snippet from gdb:
>>>>>
>>>>>> (gdb) list *(bch_btree_node_read_done+0x4c)
>>>>>> 0x65fc is in bch_btree_node_read_done (drivers/md/bcache/btree.c:207).
>>>>>> 202             struct bset *i = btree_bset_first(b);
>>>>>> 203             struct btree_iter *iter;
>>>>>> 204
>>>>>> 205             iter = mempool_alloc(b->c->fill_iter, GFP_NOWAIT);
>>>>>> 206             iter->size = b->c->sb.bucket_size / b->c->sb.block_size;
>>>>>> 207             iter->used = 0;
>>>>>> 208
>>>>>> 209     #ifdef CONFIG_BCACHE_DEBUG
>>>>>> 210             iter->b = &b->keys;
>>>>>> 211     #endif
>>>>> This doesn't make any sense to me. If iter was null I would expect line
>>>>> 206 to blow up first.
>>>>>
>>>>> --Larkin
>>>>>
>>>>> On 8/13/2014 12:41 PM, Slava Pestov wrote:
>>>>>> You can try to use gdb:
>>>>>>
>>>>>> gdb /lib/modules/.../foo.ko
>>>>>>
>>>>>> list *(bch_btree_node_read_done+0x4c)
>>>>>>
>>>>>>
>>>>>> On Wed, Aug 13, 2014 at 9:40 AM, Larkin Lowrey
>>>>>> <llowrey@nuclearwinter.com> wrote:
>>>>>>> This is making be feel very dumb. I've googled extensively but can't
>>>>>>> figure out how to run addr2line for a module.
>>>>>>>
>>>>>>> I'm running Fedora 20 and the kernel did not have debugging symbols. I
>>>>>>> downloaded the version with symbols but I don't know if the addresses
>>>>>>> are going to be the same. Bcache is a module for me and that's where
>>>>>>> things get tricky. Do you have any tips?
>>>>>>>
>>>>>>> --Larkin
>>>>>>>
>>>>>>> On 8/13/2014 12:04 AM, Kent Overstreet wrote:
>>>>>>>> Any chance you could do an addr2line and get me the exact line where
>>>>>>>> it happened?
>>>>>>>>
>>>>>>>> On Aug 12, 2014 10:02 PM, "Larkin Lowrey" <llowrey@nuclearwinter.com
>>>>>>>> <mailto:llowrey@nuclearwinter.com>> wrote:
>>>>>>>>
>>>>>>>>     I got an oops while doing some heavy I/O. I have an md raid10 cache
>>>>>>>>     device (4 SSDs) and 3 md raid5/6 backing devices. This setup has been
>>>>>>>>     well behaved for about 6 months.
>>>>>>>>
>>>>>>>>     If this isn't a known issue is there anything I can do to provide more
>>>>>>>>     useful information?
>>>>>>>>
>>>>>>>>     I'm running kernel 3.15.8-200.fc20.x86_64.
>>>>>>>>
>>>>>>>>     [210884.047249] BUG: unable to handle kernel NULL pointer
>>>>>>>>     dereference at 0000000000000008
>>>>>>>>     [210884.055605] IP: [<ffffffffa01625fc>]
>>>>>>>>     bch_btree_node_read_done+0x4c/0x450 [bcache]
>>>>>>>>     [210884.063723] PGD 0
>>>>>>>>     [210884.066053] Oops: 0002 [#1] SMP
>>>>>>>>     [210884.069610] Modules linked in: lp parport binfmt_misc
>>>>>>>>     ipt_MASQUERADE iptable_nat nf_nat_ipv4 nf_nat xt_CHECKSUM
>>>>>>>>     iptable_mangle tun bridge stp llc xt_multiport ebtable_nat
>>>>>>>>     ebtables hwmon_vid ip6t_REJECT nf_conntrack_ipv6 nf_conntrack_ipv4
>>>>>>>>     nf_defrag_ipv6 nf_defrag_ipv4 ip6table_filter xt_conntrack
>>>>>>>>     ip6_tables nf_conntrack keyspan ezusb kvm_amd kvm crct10dif_pclmul
>>>>>>>>     crc32_pclmul crc32c_intel ghash_clmulni_intel microcode serio_raw
>>>>>>>>     amd64_edac_mod edac_core fam15h_power k10temp edac_mce_amd
>>>>>>>>     sp5100_tco i2c_piix4 igb ptp pps_core dca shpchp acpi_cpufreq
>>>>>>>>     btrfs bcache raid456 async_raid6_recov async_memcpy async_pq
>>>>>>>>     async_xor async_tx xor raid6_pq raid10 i2c_algo_bit drm_kms_helper
>>>>>>>>     ttm drm i2c_core mpt2sas mvsas libsas raid_class
>>>>>>>>     scsi_transport_sas cpufreq_stats
>>>>>>>>     [210884.140704] CPU: 5 PID: 11188 Comm: kworker/5:1 Not tainted
>>>>>>>>     3.15.8-200.fc20.x86_64 #1
>>>>>>>>     [210884.149069] Hardware name:  /H8DG6/H8DGi, BIOS 3.0a       07/2
>>>>>>>>     [210884.155280] Workqueue: bcache cache_lookup [bcache]
>>>>>>>>     [210884.160531] task: ffff880218633160 ti: ffff8800217b8000
>>>>>>>>     task.ti: ffff8800217b8000
>>>>>>>>     [210884.168502] RIP: 0010:[<ffffffffa01625fc>]
>>>>>>>>      [<ffffffffa01625fc>] bch_btree_node_read_done+0x4c/0x450 [bcache]
>>>>>>>>     [210884.179105] RSP: 0000:ffff8800217bbbe8  EFLAGS: 00010212
>>>>>>>>     [210884.184806] RAX: 0000000000000400 RBX: ffff880245ec0000 RCX:
>>>>>>>>     0000000000000000
>>>>>>>>     [210884.192480] RDX: 0000000000000000 RSI: ffff880418380000 RDI:
>>>>>>>>     0000000000000246
>>>>>>>>     [210884.200075] RBP: ffff8800217bbc10 R08: 0000000000000000 R09:
>>>>>>>>     0000000000000f6b
>>>>>>>>     [210884.207738] R10: 0000000000000000 R11: 0000000000000400 R12:
>>>>>>>>     ffff880413d06c00
>>>>>>>>     [210884.215391] R13: 0000000000000000 R14: ffff8800217bbc20 R15:
>>>>>>>>     ffff880413d06c00
>>>>>>>>     [210884.222961] FS:  00007f73bacd6880(0000)
>>>>>>>>     GS:ffff88021fd40000(0000) knlGS:0000000000000000
>>>>>>>>     [210884.231516] CS:  0010 DS: 0000 ES: 0000 CR0: 000000008005003b
>>>>>>>>     [210884.237557] CR2: 0000000000000008 CR3: 0000000001c11000 CR4:
>>>>>>>>     00000000000407e0
>>>>>>>>     [210884.245131] Stack:
>>>>>>>>     [210884.247395]  ffff880274f4d020 ffff880413d06c00
>>>>>>>>     0000bfcc44a463f8 ffff8800217bbc20
>>>>>>>>     [210884.255337]  ffff880413d06c00 ffff8800217bbc78
>>>>>>>>     ffffffffa0162b68 0000000000000000
>>>>>>>>     [210884.263256]  ffff880218633160 0000000000000000
>>>>>>>>     0000000000000000 0000000000000000
>>>>>>>>     [210884.271234] Call Trace:
>>>>>>>>     [210884.273985]  [<ffffffffa0162b68>]
>>>>>>>>     bch_btree_node_read+0x168/0x190 [bcache]
>>>>>>>>     [210884.281258]  [<ffffffffa0163f69>]
>>>>>>>>     bch_btree_node_get+0x169/0x290 [bcache]
>>>>>>>>     [210884.288377]  [<ffffffffa01642f5>]
>>>>>>>>     bch_btree_map_keys_recurse+0xd5/0x1d0 [bcache]
>>>>>>>>     [210884.296311]  [<ffffffffa016dcb0>] ?
>>>>>>>>     cached_dev_congested+0x180/0x180 [bcache]
>>>>>>>>     [210884.303953]  [<ffffffff8135b204>] ?
>>>>>>>>     call_rwsem_down_read_failed+0x14/0x30
>>>>>>>>     [210884.311158]  [<ffffffffa01673f7>]
>>>>>>>>     bch_btree_map_keys+0x127/0x150 [bcache]
>>>>>>>>     [210884.318273]  [<ffffffffa016dcb0>] ?
>>>>>>>>     cached_dev_congested+0x180/0x180 [bcache]
>>>>>>>>     [210884.325826]  [<ffffffffa016e7f5>] cache_lookup+0xf5/0x1f0 [bcache]
>>>>>>>>     [210884.332325]  [<ffffffff810a4af6>] process_one_work+0x176/0x430
>>>>>>>>     [210884.338427]  [<ffffffff810a578b>] worker_thread+0x11b/0x3a0
>>>>>>>>     [210884.344282]  [<ffffffff810a5670>] ? rescuer_thread+0x3b0/0x3b0
>>>>>>>>     [210884.350447]  [<ffffffff810ac528>] kthread+0xd8/0xf0
>>>>>>>>     [210884.355615]  [<ffffffff810ac450>] ? insert_kthread_work+0x40/0x40
>>>>>>>>     [210884.362017]  [<ffffffff816ff93c>] ret_from_fork+0x7c/0xb0
>>>>>>>>     [210884.367756]  [<ffffffff810ac450>] ? insert_kthread_work+0x40/0x40
>>>>>>>>     [210884.374234] Code: 08 01 00 00 48 8b b8 58 cb 00 00 e8 bf 25 01
>>>>>>>>     e1 49 8b b4 24 80 00 00 00 49 89 c5 31 d2 0f b7 86 32 04 00 00 66
>>>>>>>>     f7 b6 30 04 00 00 <49> c7 45 08 00 00 00 00 0f b7 c0 49 89 45 00
>>>>>>>>     48 8b 43 10 48 85
>>>>>>>>     [210884.395405] RIP  [<ffffffffa01625fc>]
>>>>>>>>     bch_btree_node_read_done+0x4c/0x450 [bcache]
>>>>>>>>     [210884.403389]  RSP <ffff8800217bbbe8>
>>>>>>>>     [210884.407171] CR2: 0000000000000008
>>>>>>>>     [210884.411233] ---[ end trace 0064e6abfd068c85 ]---
>>>>>>>>     [210884.416352] BUG: unable to handle kernel paging request at
>>>>>>>>     ffffffffffffffd8
>>>>>>>>     [210884.423871] IP: [<ffffffff810acb10>] kthread_data+0x10/0x20
>>>>>>>>     [210884.429915] PGD 1c14067 PUD 1c16067 PMD 0
>>>>>>>>
>>>>>>>>     --Larkin
>>>>>>>>
>>>>>>>>     --
>>>>>>>>     To unsubscribe from this list: send the line "unsubscribe
>>>>>>>>     linux-bcache" in
>>>>>>>>     the body of a message to majordomo@vger.kernel.org
>>>>>>>>     <mailto:majordomo@vger.kernel.org>
>>>>>>>>     More majordomo info at  http://vger.kernel.org/majordomo-info.html
>>>>>>>>
>>>>>>> --
>>>>>>> To unsubscribe from this list: send the line "unsubscribe linux-bcache" in
>>>>>>> the body of a message to majordomo@vger.kernel.org
>>>>>>> More majordomo info at  http://vger.kernel.org/majordomo-info.html
>>>>>> --
>>>>>> To unsubscribe from this list: send the line "unsubscribe linux-bcache" in
>>>>>> the body of a message to majordomo@vger.kernel.org
>>>>>> More majordomo info at  http://vger.kernel.org/majordomo-info.html
> --
> To unsubscribe from this list: send the line "unsubscribe linux-bcache" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html

  parent reply	other threads:[~2014-08-13 22:14 UTC|newest]

Thread overview: 13+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-08-13  5:02 Null pointer oops Larkin Lowrey
     [not found] ` <CALJ65z=25CrrO9uMc2vfYVAQWb=6eK+OhB5TGJJrCp=D4ALvrQ@mail.gmail.com>
2014-08-13 16:40   ` Larkin Lowrey
2014-08-13 17:41     ` Slava Pestov
2014-08-13 18:35       ` Larkin Lowrey
2014-08-13 18:45         ` Slava Pestov
2014-08-13 21:21           ` Larkin Lowrey
2014-08-13 21:25             ` Slava Pestov
2014-08-13 21:30               ` Slava Pestov
2014-08-13 21:34                 ` Jianjian Huo
2014-08-13 22:14                 ` Larkin Lowrey [this message]
2014-08-16  5:48                 ` Peter Kieser
2014-08-13 21:32               ` Larkin Lowrey
2014-08-13 21:37                 ` Slava Pestov

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=53EBE334.9020606@nuclearwinter.com \
    --to=llowrey@nuclearwinter.com \
    --cc=kmo@daterainc.com \
    --cc=linux-bcache@vger.kernel.org \
    --cc=sp@datera.io \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.