Skip to contentSkip to conversation

page_alloc bug in 2.4.17-pre8

DISCUSSION Mike Black 2 participants 4 messages May 23, 2002

lore
Share & tools
lore

Mike Black

author
#0 lore raw

This machine had been up for 2-1/2 days and had run this backup (afio) twice successfully.

Here's line 108 of page_alloc.c:

        if (PageLRU(page))
                BUG();

Hopefully this doesn't indicate a CPU problem? The power supply on this thing blew Saturday but has run OK until now.

May 22 00:51:01 picard kernel: kernel BUG at page_alloc.c:108!
May 22 00:51:01 picard kernel: invalid operand: 0000
May 22 00:51:01 picard kernel: CPU:    1
May 22 00:51:01 picard kernel: EIP:    0010:[swap_duplicate+82/192]    Not tainted
May 22 00:51:01 picard kernel: EFLAGS: 00010286
May 22 00:51:01 picard kernel: eax: 01000009   ebx: c176aed0   ecx: c176aed0   edx: cfd67690
May 22 00:51:01 picard kernel: esi: 00000000   edi: cfd67690   ebp: 000000e3   esp: ce55fef8
May 22 00:51:01 picard kernel: ds: 0018   es: 0018   ss: 0018
May 22 00:51:01 picard kernel: Process afio (pid: 15467, stackpage=ce55f000)
May 22 00:51:01 picard kernel: Stack: c176aed0 00001000 cfd67690 000000e3 00008000 f09fb2ac 00015f90 00000000
May 22 00:51:01 picard kernel:        c176aed0 c176aed0 efd5ae28 cfd67690 000000e2 c0131858 c012a04d ce55ff8c
May 22 00:51:01 picard kernel:        c176aed0 00000000 00001000 00000000 dd3318a0 ffffffea 00008000 00001000
May 22 00:51:01 picard kernel: Call Trace: [<f09fb2ac>] [shmem_truncate+172/524] [generic_file_write+1781/1856] [mprotect_fixup+270/
1176] [change_protection+268/348]
May 22 00:51:01 picard kernel:    [create_empty_buffers+75/80] [probe_irq_on+15/292]
May 22 00:51:01 picard kernel:
May 22 00:51:01 picard kernel: Code: 0f 0b 6c 00 93 b3 24 c0 89 d8 2b 05 f0 70 30 c0 69 c0 ab aa

Michael D. Black [email protected]
http://www.csihq.com/
http://www.csihq.com/~mike
321-676-2923, x203
Melbourne FL

#1 lore raw
Quoted 6 lines · Mike Black

This machine had been up for 2-1/2 days and had run this backup (afio) twice successfully.

Here's line 108 of page_alloc.c:

        if (PageLRU(page))
                BUG();
Quoted 6 lines

Hopefully this doesn't indicate a CPU problem? The power supply on this thing blew Saturday but has run OK until now.

May 22 00:51:01 picard kernel: kernel BUG at page_alloc.c:108!
May 22 00:51:01 picard kernel: invalid operand: 0000
May 22 00:51:01 picard kernel: CPU:    1
May 22 00:51:01 picard kernel: EIP:    0010:[swap_duplicate+82/192]    Not tainted

There were quite a number of reports of those PageLRU BUGs on 2.4.17. No idea what fixed them, but 2.4.18 (and 2.4.19-pre) has seemed free of them (Ben LaHaise made a plausible change, but closer analysis suggested it couldn't really be the fix). Suggest you upgrade.

Your oops report, by the way, must have been using the wrong System.map:
page_alloc.c:108 is in __free_pages_ok(), swap_duplicate() is over in swapfile.c. But no matter, page_alloc.c:108 identifies it well enough.

Hugh

author
#2 lore raw

Oops -- got the wrong version (head was in the wrong kernel space). This occurred on 2.4.19-pre8

----- Original Message -----
From: "Hugh Dickins" <[email protected]>
To: "Mike Black" <[email protected]>
Cc: "linux-kernel" <[email protected]>
Sent: Thursday, May 23, 2002 8:12 AM
Subject: Re: page_alloc bug in 2.4.17-pre8

Quoted 25 lines · Mike Black
Quoted 6 lines

This machine had been up for 2-1/2 days and had run this backup (afio) twice successfully.

Here's line 108 of page_alloc.c:

        if (PageLRU(page))
                BUG();
Quoted 6 lines

Hopefully this doesn't indicate a CPU problem? The power supply on this thing blew Saturday but has run OK until now.

May 22 00:51:01 picard kernel: kernel BUG at page_alloc.c:108!
May 22 00:51:01 picard kernel: invalid operand: 0000
May 22 00:51:01 picard kernel: CPU:    1
May 22 00:51:01 picard kernel: EIP:    0010:[swap_duplicate+82/192]    Not tainted

There were quite a number of reports of those PageLRU BUGs on 2.4.17. No idea what fixed them, but 2.4.18 (and 2.4.19-pre) has seemed free of them (Ben LaHaise made a plausible change, but closer analysis suggested it couldn't really be the fix). Suggest you upgrade.

Your oops report, by the way, must have been using the wrong System.map:
page_alloc.c:108 is in __free_pages_ok(), swap_duplicate() is over in swapfile.c. But no matter, page_alloc.c:108 identifies it well enough.

Hugh

#3 lore raw
Quoted 2 lines · Mike Black

Oops -- got the wrong version (head was in the wrong kernel space). This occurred on 2.4.19-pre8

Then page_alloc.c:108 is a different check from what you showed, it's

	if (page->mapping)
		BUG();

I know nothing of that one, sorry.

Hugh