[Top] [All Lists]

Re: xfsdump stuck in io_schedule

To: Andrew Morton <akpm@xxxxxxxxx>
Subject: Re: xfsdump stuck in io_schedule
From: Zlatko Calusic <zlatko.calusic@xxxxxxxx>
Date: Sun, 17 Nov 2002 20:38:50 +0100
Cc: Stephen Lord <lord@xxxxxxx>, Andi Kleen <ak@xxxxxxx>, linux-xfs@xxxxxxxxxxx
In-reply-to: <3DD7EB2C.C20F312E@digeo.com> (Andrew Morton's message of "Sun, 17 Nov 2002 11:17:00 -0800")
References: <dnfzu3yw8u.fsf@magla.zg.iskon.hr> <20021115135233.A13882@oldwotan.suse.de> <dnlm3v9ebk.fsf@magla.zg.iskon.hr> <20021115140635.A31836@wotan.suse.de> <dnr8dmj1i1.fsf@magla.zg.iskon.hr> <20021115164012.A28685@wotan.suse.de> <87u1ih4x29.fsf@atlas.iskon.hr> <1037539697.1240.30.camel@laptop.americas.sgi.com> <877kfcqmy5.fsf@atlas.iskon.hr> <3DD7EB2C.C20F312E@digeo.com>
Reply-to: zlatko.calusic@xxxxxxxx
Sender: linux-xfs-bounce@xxxxxxxxxxx
User-agent: Gnus/5.090007 (Oort Gnus v0.07) XEmacs/21.4 (Honest Recruiter, i386-debian-linux)
Andrew Morton <akpm@xxxxxxxxx> writes:

> Zlatko Calusic wrote:
>> Let's recapitulate:
>> I'm dumping (or tarring) xfs filesystem (/usr) which consists of lots
>> of files from a faster (7200rpm, plate speed up to 37MB/sec) IDE disk
>> to a (big = 2 - 3GB) file on a xfs partition on a slower (5400rpm,
>> plate speed up to 23MB/sec) IDE disk and I'm getting page allocation
>> failures during that exercise. Kernel is virgin 2.5.47, preempt is
>> off, number of processors doesn't make a difference.
>> Now, more than ever, this looks like a VM bug, not really xfs
>> specific. Andrew, what would you like me to try to clarify it further?
> Well, not really a "bug".  Mode zero allocations will always fail, and

Well, yes, but it's somehow sad that allocator returned failure when
asked for a single page, while I have 580MB worth of inactive page
cache pages ready for eviction.

> the caller needs to handle that.  For some reason kswapd is not keeping
> up here.  It would be interesting to put a dump_stack() alongside that
> page allocation failure printk in mm/page_alloc.c.

Call Trace:
 [bounce_end_io+33/120] __alloc_pages+0x249/0x274
 [move_vma+433/912] find_or_create_page+0x3d/0x98
 [xfs_parseargs+1623/1844] _pagebuf_lookup_pages+0x19b/0x3cc
 [xfs_initialize_vnode+188/508] pagebuf_get+0x90/0x110
 [xfs_initialize_vnode+455/508] pagebuf_readahead+0x23/0x28
 [_lsn_cmp+121/216] xfs_btree_reada_bufs+0x3d/0x44
 [xlog_do_recovery_pass+1998/2148] xfs_bulkstat+0x73a/0xb1c
 [huft_build+1381/1468] huft_build+0x545/0x5bc
 [semctl_nolock+123/484] xfs_ioc_bulkstat+0x117/0x16c
 [xlog_recover_process_iunlinks+128/680] xfs_bulkstat_one+0x0/0x4d0
 [sys_semget+215/308] xfs_ioctl+0x297/0x5ac
 [huft_build+1381/1468] huft_build+0x545/0x5bc
 [xlog_write+723/960] xfs_iunlock+0x2f/0x54
 [xfs_attrmulti_by_handle+43/456] xfs_inactive_free_eofblocks+0xb3/0x268
 [xfs_ioctl+1263/1452] xfs_release+0x83/0xbc
 [.text.lock.namespace+174/885] dput+0x19/0x194
 [.text.lock.super+193/491] __fput+0xd6/0xf8
 [sys_msgctl+99/1604] linvfs_ioctl+0x23/0x60
 [huft_build+1381/1468] huft_build+0x545/0x5bc
 [huft_build+1381/1468] huft_build+0x545/0x5bc
 [alloc_inode+121/384] sys_ioctl+0x22d/0x27c
 [huft_build+1381/1468] huft_build+0x545/0x5bc
 [irq_entries_start+199/2176] syscall_call+0x7/0xb
 [huft_build+1381/1468] huft_build+0x545/0x5bc

xfsdump: page allocation failure. order:0, mode:0x0

> How much memory do you have?

768MB (no highmem)

This is /proc/meminfo after xfsdump fails:

MemTotal:       772612 kB
MemFree:          3184 kB
MemShared:           0 kB
Buffers:         35000 kB
Cached:         617860 kB
SwapCached:          0 kB
Active:         135556 kB
Inactive:       588368 kB
HighTotal:           0 kB
HighFree:            0 kB
LowTotal:       772612 kB
LowFree:          3184 kB
SwapTotal:     2097136 kB
SwapFree:      2097136 kB
Dirty:               4 kB
Writeback:           0 kB
Mapped:          97612 kB
Slab:            36096 kB
Committed_AS:   114108 kB
PageTables:        880 kB
ReverseMaps:     40242


<Prev in Thread] Current Thread [Next in Thread>