Re: Error using the buffer cache

mcatos
2007-05-04T16:36:33Z

I have isolated the problem a little bit. Here's what I do:

struct buffer_head *bh;
sector_t sector = 0;
bh = __bread(bdev, sector, bdev_get_queue(bdev)->hardsect_size);
brelse(bh);
sector++;
bh = __bread(bdev, sector, bdev_get_queue(bdev)->hardsect_size);
brelse(bh);

And I get this error:

BUG: soft lockup detected on CPU#1!
[] show_trace_log_lvl+0x185/0x1a0
[] show_trace+0x12/0x20
[] dump_stack+0x19/0x20
[] softlockup_tick+0x9e/0xd0
[] run_local_timers+0x12/0x20
[] update_process_times+0x34/0x80
[] smp_apic_timer_interrupt+0x6d/0x80
[] apic_timer_interrupt+0x2a/0x30
[] _read_unlock_irq+0x24/0x30
DWARF2 unwinder stuck at _read_unlock_irq+0x24/0x30
Leftover inexact backtrace:
[] show_trace+0x12/0x20
[] dump_stack+0x19/0x20
[] softlockup_tick+0x9e/0xd0
[] run_local_timers+0x12/0x20
[] update_process_times+0x34/0x80
[] smp_apic_timer_interrupt+0x6d/0x80
[] apic_timer_interrupt+0x2a/0x30
[] find_lock_page+0x85/0xa0
[] find_or_create_page+0x3b/0xb0
[] __getblk+0xef/0x2e0
[] __bread+0x12/0xb0

What am I doing wrong?

-------------------------------------------------
This mail sent through IMP: http://horde.org/imp/