* ext4: BUG: scheduling while atomic
@ 2009-03-31 22:09 Thiemo Nagel
0 siblings, 0 replies; only message in thread
From: Thiemo Nagel @ 2009-03-31 22:09 UTC (permalink / raw)
To: Theodore Tso; +Cc: Ext4 Developers List
Dear Ted,
I came across "scheduling while atomic" during tests with intentionally
corrupted ext4 images. It seems that ext4_error() is called while
holding a spinlock. The resulting superblock flush then causes a sleep.
I have no idea how bad this is (if at all).
The issue can be reproduced with yesterday's version of your ext4 tree
when calling "mkdir" inside this fs:
http://e18.physik.tu-muenchen.de/~tnagel/misc/issue11.image.ext4.bz2
Kind regards,
Thiemo
[ 201.286550] EXT4-fs: barriers enabled
[ 201.301352] kjournald2 starting: pid 4073, dev loop0:8, commit
interval 5 seconds
[ 201.301501] EXT4 FS on loop0, internal journal on loop0:8
[ 201.301508] EXT4-fs: delayed allocation enabled
[ 201.301531] EXT4-fs: file extents enabled
[ 201.301718] EXT4-fs: mballoc enabled
[ 201.301813] EXT4-fs: mounted filesystem loop0 with ordered data mode
[ 207.890044] EXT4-fs error (device loop0): ext4_mb_generate_buddy:
EXT4-fs: group 1: 381 blocks in bitmap, 383 in gd
[ 207.890169] EXT4-fs error (device loop0): ext4_add_entry: bad entry
in directory #2: directory entry across blocks - offset=0, inode=2,
rec_len=18444, name_len=1
[ 207.890386] EXT4-fs error (device loop0): ext4_init_block_bitmap:
Checksum bad for group 0
[ 207.890425] BUG: scheduling while atomic: mkdir/4088/0x00000002
[ 207.890448] INFO: lockdep is turned off.
[ 207.890453] Modules linked in: ext4 jbd2 crc16 cpufreq_ondemand
cpufreq_userspace cpufreq_powersave acpi_cpufreq freq_table
speedstep_lib michael_mic arc4 ecb lib80211_crypt_tkip nls_iso8859_1
nls_cp437 vfat fat nls_base toshiba loop snd_intel8x0 snd_ac97_codec
ac97_bus ipw2200 libipw snd_pcm snd_timer lib80211 psmouse snd soundcore
snd_page_alloc toshiba_acpi rfkill backlight input_polldev battery
button ac evdev ext3 jbd mbcache usbhid sd_mod ata_generic usb_storage
ata_piix libata ehci_hcd uhci_hcd e100 mii scsi_mod usbcore thermal
processor fan thermal_sys
[ 207.890825] Pid: 4088, comm: mkdir Not tainted 2.6.29-ext4 #1
[ 207.890831] Call Trace:
[ 207.890864] [<c01227b7>] __schedule_bug+0x77/0x81
[ 207.890894] [<c0316021>] schedule+0x8f/0x847
[ 207.890923] [<c01189d6>] ? read_hpet+0xd/0x14
[ 207.890951] [<c0140fb2>] ? ktime_get_ts+0x48/0x4c
[ 207.890961] [<c0316820>] io_schedule+0x47/0x79
[ 207.890989] [<c01c0839>] sync_buffer+0x36/0x3e
[ 207.891015] [<c0316c4f>] __wait_on_bit+0x39/0x61
[ 207.891086] [<c01c0803>] ? sync_buffer+0x0/0x3e
[ 207.891113] [<c01c0803>] ? sync_buffer+0x0/0x3e
[ 207.891122] [<c0316ce4>] out_of_line_wait_on_bit+0x6d/0x89
[ 207.891152] [<c013e3ee>] ? wake_bit_function+0x0/0x55
[ 207.891178] [<c01c0801>] __wait_on_buffer+0x21/0x23
[ 207.891205] [<c01c24c6>] sync_dirty_buffer+0x94/0xd1
[ 207.891216] [<c0239077>] ? __percpu_counter_sum+0x54/0x6d
[ 207.891306] [<e044b35c>] ext4_commit_super+0x133/0x175 [ext4]
[ 207.891374] [<e044bcc7>] ext4_handle_error+0x83/0xac [ext4]
[ 207.891402] [<c012bb76>] ? printk+0x1b/0x1d
[ 207.891495] [<e044c1a5>] ext4_error+0x52/0x58 [ext4]
[ 207.891564] [<e043a56b>] ext4_init_block_bitmap+0x64/0x418 [ext4]
[ 207.891595] [<c0318496>] ? _spin_lock+0x4a/0x50
[ 207.891657] [<e043ac2f>] ext4_read_block_bitmap+0xdf/0x2ae [ext4]
[ 207.891744] [<e045b4a9>] ext4_mb_free_blocks+0x133/0x6f6 [ext4]
[ 207.891753] [<c0318d6d>] ? _spin_unlock+0x27/0x3c
[ 207.891809] [<e008ebd0>] ? insert_revoke_hash+0xe5/0xf2 [jbd2]
[ 207.891847] [<e008b3d6>] ? jbd2_journal_forget+0x17e/0x220 [jbd2]
[ 207.891941] [<e0455c0c>] ? __ext4_journal_revoke+0x4a/0x5f [ext4]
[ 207.892003] [<e043a3c4>] ext4_free_blocks+0x8c/0x106 [ext4]
[ 207.892128] [<e045399e>] ext4_ext_truncate+0x413/0x82c [ext4]
[ 207.892195] [<e04446bc>] ext4_truncate+0x73/0x4f0 [ext4]
[ 207.892251] [<e008acc2>] ? jbd2_journal_get_write_access+0x2f/0x3c
[jbd2]
[ 207.892339] [<e043fd6d>] ? ext4_mark_iloc_dirty+0x4cf/0x542 [ext4]
[ 207.892405] [<e0440a2f>] ? ext4_mark_inode_dirty+0x172/0x1a2 [ext4]
[ 207.892473] [<e0455b51>] ? __ext4_handle_dirty_metadata+0xb1/0xca [ext4]
[ 207.892538] [<e0444b39>] ? ext4_delete_inode+0x0/0x227 [ext4]
[ 207.892603] [<e0444c65>] ext4_delete_inode+0x12c/0x227 [ext4]
[ 207.892636] [<c02386a7>] ? _raw_spin_unlock+0x7f/0x8b
[ 207.892723] [<e0444b39>] ? ext4_delete_inode+0x0/0x227 [ext4]
[ 207.892751] [<c01b4b86>] generic_delete_inode+0xdc/0x171
[ 207.892761] [<c01b4c37>] generic_drop_inode+0x1c/0x1b9
[ 207.892790] [<c022e096>] ? _atomic_dec_and_lock+0x3a/0x64
[ 207.892816] [<c01b41c6>] iput+0x4b/0x4e
[ 207.892880] [<e04484ba>] ext4_mkdir+0x250/0x2c3 [ext4]
[ 207.892914] [<c01ad315>] vfs_mkdir+0xdd/0x182
[ 207.892940] [<c01ad43d>] sys_mkdirat+0x83/0xbd
[ 207.892968] [<c01ad497>] sys_mkdir+0x20/0x22
[ 207.892978] [<c01031fb>] sysenter_do_call+0x12/0x3f
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2009-03-31 22:09 UTC | newest]
Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2009-03-31 22:09 ext4: BUG: scheduling while atomic Thiemo Nagel
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.