[Linux-cachefs] cachefs

Joshua Levine spamjoshua at gmail.com
Tue Aug 18 16:57:13 UTC 2009


Thank you for the reply. The box from last night is down and awaiting remote
hands I am afraid.


What I did today, was compile from Linus' git tree and force load on another
machine resulting in:


Aug 18 09:32:18 dload05 kernel: [  268.336887] BUG: unable to handle kernel
NULL pointer dereference at 0000000000000040

Aug 18 09:32:18 dload05 kernel: [  268.337070] IP: [<ffffffffa02cfda5>]
fscache_object_slow_work_execute+0x755/0xb70 [fscache]

Aug 18 09:32:18 dload05 kernel: [  268.337214] PGD 377ba067 PUD 77ede067 PMD
0

Aug 18 09:32:18 dload05 kernel: [  268.337399] Oops: 0002 [#1] SMP

Aug 18 09:32:18 dload05 kernel: [  268.337541] last sysfs file:
/sys/kernel/uevent_seqnum

Aug 18 09:32:18 dload05 kernel: [  268.337609] CPU 0

Aug 18 09:32:18 dload05 kernel: [  268.337709] Modules linked in: cachefiles
af_packet autofs4 ipv6 nfs lockd fscache nfs_acl auth_rpcgss sunrpc
iptable_filter ip_tables x_tables uhci_hcd usbkbd evdev psmouse serio_raw
pcspkr k8temp button processor i2c_piix4 i2c_core shpchp pci_hotplug ext3
jbd mbcache usbhid sr_mod cdrom hid sd_mod sg tg3 ata_generic libphy
ehci_hcd sata_svw ohci_hcd pata_serverworks pata_acpi libata usbcore
scsi_mod floppy thermal fan thermal_sys fuse

Aug 18 09:32:18 dload05 kernel: [  268.339993] Pid: 4480, comm: kslowd Not
tainted 2.6.31-rc6-iwin-linus-cachefs #1 H8SSL

Aug 18 09:32:18 dload05 kernel: [  268.340084] RIP:
0010:[<ffffffffa02cfda5>]  [<ffffffffa02cfda5>]
fscache_object_slow_work_execute+0x755/0xb70 [fscache]

Aug 18 09:32:18 dload05 kernel: [  268.340226] RSP: 0018:ffff880077cbbe60
EFLAGS: 00010246

Aug 18 09:32:18 dload05 kernel: [  268.340294] RAX: 0000000000000000 RBX:
ffff88007e7ba7f8 RCX: 01000000000000c1

Aug 18 09:32:18 dload05 kernel: [  268.340366] RDX: ffff88007e7579d0 RSI:
ffffea0001ba9b08 RDI: ffff88007e7ba79c

Aug 18 09:32:18 dload05 kernel: [  268.340437] RBP: ffff88007e7ba780 R08:
0000000000000000 R09: ffffffff814def00

Aug 18 09:32:18 dload05 kernel: [  268.340509] R10: 0000000000000000 R11:
0000000000000000 R12: ffff88007e7ba79c

Aug 18 09:32:18 dload05 kernel: [  268.340581] R13: ffffffff810ad050 R14:
00000000ffffe114 R15: 0000000000000000

Aug 18 09:32:18 dload05 kernel: [  268.340654] FS:  00007f5bb302a6f0(0000)
GS:ffff880001627000(0000) knlGS:0000000000000000

Aug 18 09:32:18 dload05 kernel: [  268.340744] CS:  0010 DS: 0018 ES: 0018
CR0: 000000008005003b

Aug 18 09:32:18 dload05 kernel: [  268.340805] CR2: 0000000000000040 CR3:
0000000074afe000 CR4: 00000000000006f0

Aug 18 09:32:18 dload05 kernel: [  268.340805] DR0: 0000000000000000 DR1:
0000000000000000 DR2: 0000000000000000

Aug 18 09:32:18 dload05 kernel: [  268.340805] DR3: 0000000000000000 DR6:
00000000ffff0ff0 DR7: 0000000000000400

Aug 18 09:32:18 dload05 kernel: [  268.341026] Process kslowd (pid: 4480,
threadinfo ffff880077cba000, task ffff880037b8a080)

Aug 18 09:32:18 dload05 kernel: [  268.341026] Stack:

Aug 18 09:32:18 dload05 kernel: [  268.341026]  ffff88007e7ba7f8
0000000000000001 0000000000000004 ffffffff810ad050

Aug 18 09:32:18 dload05 kernel: [  268.341026] <0> 0000000000000000
ffffffff810ad313 0000000000000001 ffff880037b8a080

Aug 18 09:32:18 dload05 kernel: [  268.341026] <0> ffffffff8105c700
ffff880077cbbea8 ffff880077cbbea8 ffff880077cbbef8

Aug 18 09:32:18 dload05 kernel: [  268.341026] Call Trace:

Aug 18 09:32:18 dload05 kernel: [  268.341026]  [<ffffffff810ad050>] ?
slow_work_thread+0x0/0x450

Aug 18 09:32:18 dload05 kernel: [  268.341026]  [<ffffffff810ad313>] ?
slow_work_thread+0x2c3/0x450

Aug 18 09:32:18 dload05 kernel: [  268.341026]  [<ffffffff8105c700>] ?
autoremove_wake_function+0x0/0x30

Aug 18 09:32:18 dload05 kernel: [  268.341026]  [<ffffffff810ad050>] ?
slow_work_thread+0x0/0x450

Aug 18 09:32:18 dload05 kernel: [  268.341026]  [<ffffffff8105c596>] ?
kthread+0xa6/0xb0

Aug 18 09:32:18 dload05 kernel: [  268.341026]  [<ffffffff8100cd9a>] ?
child_rip+0xa/0x20

Aug 18 09:32:18 dload05 kernel: [  268.341026]  [<ffffffff8105c4f0>] ?
kthread+0x0/0xb0

Aug 18 09:32:18 dload05 kernel: [  268.341026]  [<ffffffff8100cd90>] ?
child_rip+0x0/0x20

Aug 18 09:32:18 dload05 kernel: [  268.341026] Code: ff ff 48 8b 45 60 48 83
65 28 fd 4c 8d 65 1c 48 89 ef 48 8b 00 ff 50 18 4c 89 e7 e8 76 67 02 e1 c7
45 00 06 00 00 00 48 8b 45 68 <f0> 0f ba 70 40 01 19 d2 85 d2 74 12 48 8b 7d
68 be 01 00 00 00

Aug 18 09:32:18 dload05 kernel: [  268.345014] RIP  [<ffffffffa02cfda5>]
fscache_object_slow_work_execute+0x755/0xb70 [fscache]

Aug 18 09:32:18 dload05 kernel: [  268.345014]  RSP <ffff880077cbbe60>

Aug 18 09:32:18 dload05 kernel: [  268.345014] CR2: 0000000000000040

Aug 18 09:32:18 dload05 kernel: [  268.345603] ---[ end trace
4b1e94ca8e4d77ee ]---



In an attempt to debug I was able to retrieve the below:


This GDB was configured as "x86_64-linux-gnu".

(gdb) file vmlinux

Reading symbols from /usr/local/src/work/vmlinux...done.

(gdb) list *fscache_object_slow_work_execute+0x755

No symbol "fscache_object_slow_work_execute" in current context.

(gdb) list *slow_work_thread+0x0

0xffffffff810ad050 is in slow_work_thread (kernel/slow-work.c:370).

365

366    /*

367     * Worker thread dispatcher

368     */

369    static int slow_work_thread(void *_data)

370    {

371        int vsmax;

372

373        DEFINE_WAIT(wait);

374


(gdb) list *slow_work_thread+0x2c3

0xffffffff810ad313 is in slow_work_thread (kernel/slow-work.c:199).

194        if (!test_and_clear_bit(SLOW_WORK_PENDING, &work->flags))

195            BUG();

196

197        work->ops->execute(work);

198

199        if (very_slow)

200            atomic_dec(&vslow_work_executing_count);

201        clear_bit_unlock(SLOW_WORK_EXECUTING, &work->flags);

202

203        /* if someone tried to enqueue the item whilst we were executing
it,


(gdb) list *autoremove_wake_function+0x0

0xffffffff8105c700 is in autoremove_wake_function (kernel/wait.c:164).

159        spin_unlock_irqrestore(&q->lock, flags);

160    }

161    EXPORT_SYMBOL(abort_exclusive_wait);

162

163    int autoremove_wake_function(wait_queue_t *wait, unsigned mode, int
sync, void *key)

164    {

165        int ret = default_wake_function(wait, mode, sync, key);

166

167        if (ret)

168            list_del_init(&wait->task_list);


(gdb) list *kthread+0xa6

0xffffffff8105c596 is in kthread (kernel/kthread.c:80).

75        complete(&create->done);

76        schedule();

77

78        ret = -EINTR;

79        if (!self.should_stop)

80            ret = threadfn(data);

81

82        /* we can't just return, we must preserve "self" on stack */

83        do_exit(ret);

84    }


(gdb) list *child_rip+0xa

0xffffffff8100cd9a is at arch/x86/kernel/entry_64.S:1219.

1214         */

1215        movq %rdi, %rax

1216        movq %rsi, %rdi

1217        call *%rax

1218        # exit

1219        mov %eax, %edi

1220        call do_exit

1221        ud2            # padding for call trace

1222        CFI_ENDPROC

1223    END(child_rip)


(gdb) list *kthread+0x0

0xffffffff8105c4f0 is in kthread (kernel/kthread.c:60).

55        return to_kthread(current)->should_stop;

56    }

57    EXPORT_SYMBOL(kthread_should_stop);

58

59    static int kthread(void *_create)

60    {

61        /* Copy data: it's on kthread's stack */

62        struct kthread_create_info *create = _create;

63        int (*threadfn)(void *data) = create->threadfn;

64        void *data = create->data;


(gdb) list *child_rip+0x0

0xffffffff8100cd90 is at arch/x86/kernel/entry_64.S:1209.

1204        ret

1205        CFI_ENDPROC

1206    END(kernel_thread)

1207

1208    ENTRY(child_rip)

1209        pushq $0        # fake return address

1210        CFI_STARTPROC

1211        /*

1212         * Here we are in the child and the registers are set as they
were

1213         * at kernel_thread() invocation in the parent.


Please let me know what I can do to further help narrow this down.


Thank you,

Joshua



More information about the Linux-cachefs mailing list