Re: page allocation failure

From: Andrew Morton
Date: Thu Jan 22 2004 - 04:59:17 EST


Oliver Kiddle <okiddle@xxxxxxxxxxx> wrote:
>
> st0: Block limits 1 - 16777215 bytes.
> xfsdump: page allocation failure. order:9, mode:0xd0
> Call Trace:
> [<c0132d18>] __alloc_pages+0x2db/0x319
> [<c02a5dc9>] enlarge_buffer+0xcf/0x182
> [<c02a6cd9>] st_map_user_pages+0x37/0x88
> [<c02a2909>] setup_buffering+0xf3/0x127
> [<c02a3690>] st_read+0xe0/0x3d1
> [<c0147625>] vfs_read+0xb0/0x119
> [<c01478a0>] sys_read+0x42/0x63
> [<c0108ab7>] syscall_call+0x7/0xb

This one's actually somewhat OK. The tape driver is simply trying to
allocate a huge buffer and is falling back if it fails.

This will shut up the debugging code:

--- 25/drivers/scsi/osst.c~osst-warning-fix 2004-01-22 01:57:35.000000000 -0800
+++ 25-akpm/drivers/scsi/osst.c 2004-01-22 01:57:59.000000000 -0800
@@ -5106,6 +5106,8 @@ static int enlarge_buffer(OSST_buffer *S
if (need_dma)
priority |= GFP_DMA;

+ priority |= __GFP_NOWARN;
+
/* Try to allocate the first segment up to OS_DATA_SIZE and the others
big enough to reach the goal (code assumes no segments in place) */
for (b_size = OS_DATA_SIZE, order = OSST_FIRST_ORDER; b_size >= PAGE_SIZE; order--, b_size /= 2) {

_

-
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/