Hi All, I am attempting a simple disk based FS written as a module. As part of registering the filesystem, I read the superblock from the disk and use the information from the superblock on disk. I use sb_read to read the super block block.
But on attempting to read an inode(root) from disk, which is on another block on the disk, the call to sb_bread hangs and I get a stack trace along with a message saying that there is a soft lockup. I use sb_read to read the Inode block. Following is the stack trace: Sep 2 09:04:48 localhost kernel: BUG: soft lockup detected on CPU#0! Sep 2 09:04:48 localhost kernel: [<c0405e4e>] show_trace_log_lvl+0x1a/0x2f Sep 2 09:04:48 localhost kernel: [<c0406450>] show_trace+0x12/0x14 Sep 2 09:04:48 localhost kernel: [<c04064d4>] dump_stack+0x16/0x18 Sep 2 09:04:48 localhost kernel: [<c04563b5>] softlockup_tick+0xa8/0xba Sep 2 09:04:48 localhost kernel: [<c042f992>] run_local_timers+0x12/0x14 Sep 2 09:04:48 localhost kernel: [<c042fd4b>] update_process_times+0x3e/0x63 Sep 2 09:04:48 localhost kernel: [<c043f550>] tick_sched_timer+0x5d/0xa1 Sep 2 09:04:48 localhost kernel: [<c043bc73>] hrtimer_interrupt+0x128/0x1b5 Sep 2 09:04:48 localhost kernel: [<c0419db7>] smp_apic_timer_interrupt+0x72/0x84 Sep 2 09:04:48 localhost kernel: [<c0405910>] apic_timer_interrupt+0x28/0x30 Sep 2 09:04:48 localhost kernel: [<c045aa11>] find_lock_page+0x7f/0x87 Sep 2 09:04:48 localhost kernel: [<c045b379>] find_or_create_page+0x1e/0x89 Sep 2 09:04:48 localhost kernel: [<c0493ec6>] __getblk+0x178/0x28b Sep 2 09:04:48 localhost kernel: [<c049532a>] __bread+0x12/0xa7 Sep 2 09:04:48 localhost kernel: [<e0bf3373>] extdfs_read_inode+0xb7/0x15c [extd] Sep 2 09:04:48 localhost kernel: [<e0bf3641>] extd_fill_super+0x191/0x22d [extd] Sep 2 09:04:48 localhost kernel: [<c0479b22>] get_sb_bdev+0xeb/0x136 Sep 2 09:04:48 localhost kernel: [<e0bf302d>] extd_get_sb+0x21/0x27 [extd] Sep 2 09:04:48 localhost kernel: [<c04796da>] vfs_kern_mount+0x81/0xf1 Sep 2 09:04:48 localhost kernel: [<c0479792>] do_kern_mount+0x30/0x42 Sep 2 09:04:48 localhost kernel: [<c048bc04>] do_mount+0x601/0x678 Sep 2 09:04:48 localhost kernel: [<c048bcea>] sys_mount+0x6f/0xa4 Sep 2 09:04:48 localhost kernel: [<c0404eb8>] syscall_call+0x7/0xb Please help me fiond ways to avoid soft lockups. Or whatever you think is not the problem with my code. Dheeraj
