Re: 2.6.26-rc2-mm1: sloooow mkfs.ext2

From: Alexey Dobriyan
Date: Wed May 14 2008 - 16:38:47 EST


On Thu, May 15, 2008 at 01:16:00AM +0400, Alexey Dobriyan wrote:
> mkfs.ext2 became kick-ass slow:
>
> + sudo mkfs.ext2 -F
> mke2fs 1.40.6 (09-Feb-2008)
> Warning: 256-byte inodes not usable on older systems
> Filesystem label=
> OS type: Linux
> Block size=4096 (log=2)
> Fragment size=4096 (log=2)
> 9773056 inodes, 39072726 blocks
> 1953636 blocks (5.00%) reserved for the super user
> First data block=0
> Maximum filesystem blocks=4294967296
> 1193 block groups
> 32768 blocks per group, 32768 fragments per group
> 8192 inodes per group
> Superblock backups stored on blocks:
> ...
>
> Writing inode tables: 193/1193
> ^^^^
> counter moves slowly,
> occasional counting at what seems to be normal
> speed occur.
>
> 160 GB SATA disk, no partitions.
> According to sysfs, CFQ is in use, the rest is compiled out.
> 2.6.26-rc2 is fine, mkfs takes ~1 min.
>
> Slowdown is totally reproducible.
>
>
> CONFIG_ATA=y
> CONFIG_ATA_ACPI=y
> CONFIG_SATA_AHCI=y
> CONFIG_ATA_SFF=y
> CONFIG_ATA_PIIX=y
> CONFIG_PATA_JMICRON=y
>
>
> /sys/block/sdb/queue/iosched/back_seek_max
> 16384
> /sys/block/sdb/queue/iosched/back_seek_penalty
> 2
> /sys/block/sdb/queue/iosched/fifo_expire_async
> 250
> /sys/block/sdb/queue/iosched/fifo_expire_sync
> 120
> /sys/block/sdb/queue/iosched/quantum
> 4
> /sys/block/sdb/queue/iosched/slice_async
> 40
> /sys/block/sdb/queue/iosched/slice_async_rq
> 2
> /sys/block/sdb/queue/iosched/slice_idle
> 10
> /sys/block/sdb/queue/iosched/slice_sync
> 100

Here is where it spends time (seems to be always the same):

mkfs.ext2 D 0000000000000000 0 4760 4759
ffff81017ce93a58 0000000000000046 0000000000000000 0000000000000282
ffff81017e14d640 ffffffff8056f4c0 ffff81017e14d880 ffffffff804679a2
00000000ffffb5c4 000000007ce93a68 0000000000000003 ffffffff8023d504
Call Trace:
[<ffffffff804679a2>] ? _spin_unlock_irqrestore+0x42/0x80
[<ffffffff8023d504>] ? __mod_timer+0xc4/0x110
[<ffffffff80465012>] schedule_timeout+0x62/0xe0
[<ffffffff8023cee0>] ? process_timeout+0x0/0x10
[<ffffffff80464ef8>] io_schedule_timeout+0x28/0x40
[<ffffffff8027663a>] congestion_wait+0x8a/0xb0
[<ffffffff80248720>] ? autoremove_wake_function+0x0/0x40
[<ffffffff8026fe31>] balance_dirty_pages_ratelimited_nr+0x1a1/0x3f0
[<ffffffff8026915f>] generic_file_buffered_write+0x1ff/0x740
[<ffffffff80467870>] ? _spin_unlock+0x30/0x60
[<ffffffff802acafb>] ? mnt_drop_write+0x7b/0x160
[<ffffffff80269b30>] __generic_file_aio_write_nolock+0x2a0/0x460
[<ffffffff802548ed>] ? trace_hardirqs_off+0xd/0x10
[<ffffffff80269df7>] generic_file_aio_write_nolock+0x37/0xa0
[<ffffffff80292be1>] do_sync_write+0xf1/0x130
[<ffffffff80256485>] ? trace_hardirqs_on_caller+0xd5/0x160
[<ffffffff80248720>] ? autoremove_wake_function+0x0/0x40
[<ffffffff80256485>] ? trace_hardirqs_on_caller+0xd5/0x160
[<ffffffff8025651d>] ? trace_hardirqs_on+0xd/0x10
[<ffffffff8029339a>] vfs_write+0xaa/0xe0
[<ffffffff80293940>] sys_write+0x50/0x90
[<ffffffff8020b69b>] system_call_after_swapgs+0x7b/0x80

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/