Skip to contentSkip to conversation

BUG at rmap.c:212

DISCUSSION Petr Vandrovec 2 participants 2 messages Jul 31, 2002

Subsystems (2)
lore
Share & tools
lore
#0 lore raw
Quoted 9 lines · Rik van Riel
Quoted 6 lines · Petr Vandrovec
Quoted 1 line

Line 212 is 'pte_chain_unlock(page);' right ?

Nope. On my system (2.5.29-changeset548) it is a BUG() call which was added by akpm in rmap.c revision 1.5, in his 'Add BUG() on a can't-happen code path in page_remove_rmap()'. It just added #else BUG() branch to #ifdef DEBUG_RMAP conditional.

Quoted 5 lines
Quoted 2 lines

Probably because of your code did not do anything special when 'Not found. This should NEVER happen!' code path triggers.

Of course, ntpd is probably running into a different problem, but the printk's enabled with DEBUG_RMAP should give us some hints.

No nvidia here. Boot, start X, quit X, run updatedb, reboot... cat /proc/pidof ntpd/maps says that it has mmaped only ntpd and few libraries from /lib. I hope that printed values will have some value for you. And btw, ntpd uses some mlock*() call, it has status 'SL' in process list. Do you know how to find what memory it has locked?

Jul 31 15:38:13 vana sshd[1303]: Received signal 15; terminating.
Jul 31 15:38:13 vana ntpd[1326]: ntpd exiting on signal 15
Jul 31 15:38:13 vana kernel: page_remove_rmap: pte_chain dc893098 not present.
Jul 31 15:38:13 vana kernel: page_remove_rmap: only found: 
Jul 31 15:38:13 vana kernel: page_remove_rmap: driver cleared PG_reserved ?
Jul 31 15:38:13 vana kernel: page_remove_rmap: pte_chain dc89309c not present.
Jul 31 15:38:13 vana kernel: page_remove_rmap: only found: 
Jul 31 15:38:13 vana kernel: page_remove_rmap: driver cleared PG_reserved ?
Jul 31 15:38:13 vana kernel: page_remove_rmap: pte_chain dc8930a0 not present.
Jul 31 15:38:13 vana kernel: page_remove_rmap: only found: 
Jul 31 15:38:13 vana kernel: page_remove_rmap: driver cleared PG_reserved ?
Jul 31 15:38:13 vana kernel: page_remove_rmap: pte_chain dc8930a4 not present.
Jul 31 15:38:13 vana kernel: page_remove_rmap: only found: 
Jul 31 15:38:13 vana kernel: page_remove_rmap: driver cleared PG_reserved ?
Jul 31 15:38:13 vana wwwoffled[1311]: Exit signalled. 
Jul 31 15:38:13 vana kernel: page_remove_rmap: pte_chain dc893100 not present.
Jul 31 15:38:13 vana wwwoffled[1311]: Exiting. 
Jul 31 15:38:13 vana kernel: page_remove_rmap: only found: 
Jul 31 15:38:13 vana kernel: page_remove_rmap: driver cleared PG_reserved ?
Jul 31 15:38:13 vana kernel: page_remove_rmap: pte_chain dc893228 not present.
Jul 31 15:38:13 vana kernel: page_remove_rmap: only found: 
Jul 31 15:38:13 vana kernel: page_remove_rmap: driver cleared PG_reserved ?
Jul 31 15:38:13 vana kernel: page_remove_rmap: pte_chain dc89322c not present.
Jul 31 15:38:13 vana kernel: page_remove_rmap: only found: 
Jul 31 15:38:13 vana kernel: page_remove_rmap: driver cleared PG_reserved ?
Jul 31 15:38:13 vana kernel: page_remove_rmap: pte_chain dc893230 not present.
Jul 31 15:38:13 vana kernel: page_remove_rmap: only found: 
Jul 31 15:38:13 vana kernel: page_remove_rmap: driver cleared PG_reserved ?
Jul 31 15:38:13 vana kernel: page_remove_rmap: pte_chain dc893234 not present.
Jul 31 15:38:13 vana kernel: page_remove_rmap: only found: dbbde210 dadfe210 
Jul 31 15:38:13 vana kernel: page_remove_rmap: driver cleared PG_reserved ?
Jul 31 15:38:13 vana kernel: page_remove_rmap: pte_chain dc893238 not present.
Jul 31 15:38:13 vana kernel: page_remove_rmap: only found: 
Jul 31 15:38:13 vana kernel: page_remove_rmap: driver cleared PG_reserved ?
Jul 31 15:38:13 vana kernel: page_remove_rmap: pte_chain dc89323c not present.
Jul 31 15:38:13 vana kernel: page_remove_rmap: only found: 
Jul 31 15:38:13 vana kernel: page_remove_rmap: driver cleared PG_reserved ?
Jul 31 15:38:13 vana kernel: page_remove_rmap: pte_chain dc893240 not present.
Jul 31 15:38:13 vana kernel: page_remove_rmap: only found: 
Jul 31 15:38:13 vana kernel: page_remove_rmap: driver cleared PG_reserved ?
Jul 31 15:38:13 vana kernel: page_remove_rmap: pte_chain dc893260 not present.
Jul 31 15:38:13 vana kernel: page_remove_rmap: only found: dec759c4 
Jul 31 15:38:13 vana kernel: page_remove_rmap: driver cleared PG_reserved ?
Jul 31 15:38:13 vana kernel: page_remove_rmap: pte_chain dc8932d4 not present.
Jul 31 15:38:13 vana kernel: page_remove_rmap: only found: 
Jul 31 15:38:13 vana kernel: page_remove_rmap: driver cleared PG_reserved ?
Jul 31 15:38:13 vana kernel: page_remove_rmap: pte_chain dc893310 not present.
Jul 31 15:38:13 vana kernel: page_remove_rmap: only found: db27f1e8 dbbde2ec dadfe2ec 
Jul 31 15:38:13 vana kernel: page_remove_rmap: driver cleared PG_reserved ?
Jul 31 15:38:13 vana kernel: page_remove_rmap: pte_chain dc893314 not present.
Jul 31 15:38:13 vana kernel: page_remove_rmap: only found: db27f1ec dbbde2f0 dadfe2f0 
Jul 31 15:38:13 vana kernel: page_remove_rmap: driver cleared PG_reserved ?
Jul 31 15:38:13 vana kernel: page_remove_rmap: pte_chain dc89331c not present.
Jul 31 15:38:13 vana kernel: page_remove_rmap: only found: db27f1f4 
Jul 31 15:38:13 vana kernel: page_remove_rmap: driver cleared PG_reserved ?
Jul 31 15:38:13 vana kernel: page_remove_rmap: pte_chain dc893380 not present.
Jul 31 15:38:13 vana kernel: page_remove_rmap: only found: 
Jul 31 15:38:13 vana kernel: page_remove_rmap: driver cleared PG_reserved ?
Jul 31 15:38:13 vana kernel: page_remove_rmap: pte_chain dc893438 not present.
Jul 31 15:38:13 vana kernel: page_remove_rmap: only found: 
Jul 31 15:38:13 vana kernel: page_remove_rmap: driver cleared PG_reserved ?
Jul 31 15:38:13 vana kernel: page_remove_rmap: pte_chain dc89343c not present.
Jul 31 15:38:13 vana kernel: page_remove_rmap: only found: dbbde418 dadfe418 
Jul 31 15:38:13 vana kernel: page_remove_rmap: driver cleared PG_reserved ?
Jul 31 15:38:13 vana kernel: page_remove_rmap: pte_chain dc893448 not present.
Jul 31 15:38:13 vana kernel: page_remove_rmap: only found: dbbde424 dadfe424 
Jul 31 15:38:13 vana kernel: page_remove_rmap: driver cleared PG_reserved ?
Jul 31 15:38:13 vana kernel: page_remove_rmap: pte_chain dc8934b0 not present.
Jul 31 15:38:13 vana kernel: page_remove_rmap: only found: 
Jul 31 15:38:13 vana kernel: page_remove_rmap: driver cleared PG_reserved ?
Jul 31 15:38:13 vana kernel: page_remove_rmap: pte_chain dc8934c0 not present.
Jul 31 15:38:13 vana kernel: page_remove_rmap: only found: 
Jul 31 15:38:13 vana kernel: page_remove_rmap: driver cleared PG_reserved ?
Jul 31 15:38:13 vana kernel: page_remove_rmap: pte_chain dc8934d0 not present.
Jul 31 15:38:13 vana kernel: page_remove_rmap: only found: dbbde4ac dadfe4ac 
Jul 31 15:38:13 vana kernel: page_remove_rmap: driver cleared PG_reserved ?
Jul 31 15:38:13 vana kernel: page_remove_rmap: pte_chain dc8934d4 not present.
Jul 31 15:38:13 vana kernel: page_remove_rmap: only found: dbbde4b0 dadfe4b0 dfc5c3ac cddaf3ac d418c3ac ca9353ac c559a3ac 
Jul 31 15:38:13 vana kernel: page_remove_rmap: driver cleared PG_reserved ?
Jul 31 15:38:13 vana kernel: page_remove_rmap: pte_chain dc8934ec not present.
Jul 31 15:38:13 vana kernel: page_remove_rmap: only found: dbbde4c8 dadfe4c8 
Jul 31 15:38:13 vana kernel: page_remove_rmap: driver cleared PG_reserved ?
Jul 31 15:38:13 vana kernel: page_remove_rmap: pte_chain dc893520 not present.
Jul 31 15:38:13 vana kernel: page_remove_rmap: only found: 
Jul 31 15:38:13 vana kernel: page_remove_rmap: driver cleared PG_reserved ?
Jul 31 15:38:13 vana kernel: page_remove_rmap: pte_chain dc893528 not present.
Jul 31 15:38:13 vana kernel: page_remove_rmap: only found: 
Jul 31 15:38:13 vana kernel: page_remove_rmap: driver cleared PG_reserved ?
Jul 31 15:38:13 vana kernel: page_remove_rmap: pte_chain dc89353c not present.
Jul 31 15:38:13 vana kernel: page_remove_rmap: only found: 
Jul 31 15:38:13 vana kernel: page_remove_rmap: driver cleared PG_reserved ?
Jul 31 15:38:13 vana kernel: page_remove_rmap: pte_chain dc893550 not present.
Jul 31 15:38:13 vana kernel: page_remove_rmap: only found: 
Jul 31 15:38:13 vana kernel: page_remove_rmap: driver cleared PG_reserved ?
Jul 31 15:38:13 vana kernel: page_remove_rmap: pte_chain dc893554 not present.
Jul 31 15:38:13 vana kernel: page_remove_rmap: only found: 
Jul 31 15:38:13 vana kernel: page_remove_rmap: driver cleared PG_reserved ?
Jul 31 15:38:13 vana kernel: page_remove_rmap: pte_chain dc893558 not present.
Jul 31 15:38:13 vana kernel: page_remove_rmap: only found: 
Jul 31 15:38:13 vana kernel: page_remove_rmap: driver cleared PG_reserved ?
Jul 31 15:38:13 vana kernel: page_remove_rmap: pte_chain dc893560 not present.
Jul 31 15:38:13 vana kernel: page_remove_rmap: only found: 
Jul 31 15:38:13 vana kernel: page_remove_rmap: driver cleared PG_reserved ?
Jul 31 15:38:13 vana kernel: page_remove_rmap: pte_chain dc893568 not present.
Jul 31 15:38:13 vana kernel: page_remove_rmap: only found: 
Jul 31 15:38:13 vana kernel: page_remove_rmap: driver cleared PG_reserved ?
Jul 31 15:38:13 vana kernel: page_remove_rmap: pte_chain dc89356c not present.
Jul 31 15:38:13 vana kernel: page_remove_rmap: only found: 
Jul 31 15:38:13 vana kernel: page_remove_rmap: driver cleared PG_reserved ?
Jul 31 15:38:13 vana kernel: page_remove_rmap: pte_chain dc893570 not present.
Jul 31 15:38:13 vana kernel: page_remove_rmap: only found: 
Jul 31 15:38:13 vana kernel: page_remove_rmap: driver cleared PG_reserved ?
Jul 31 15:38:13 vana kernel: page_remove_rmap: pte_chain dc893574 not present.
Jul 31 15:38:13 vana kernel: page_remove_rmap: only found: 
Jul 31 15:38:13 vana kernel: page_remove_rmap: driver cleared PG_reserved ?
Jul 31 15:38:13 vana kernel: page_remove_rmap: pte_chain dc89358c not present.
Jul 31 15:38:13 vana kernel: page_remove_rmap: only found: dbbde568 dadfe568 
Jul 31 15:38:13 vana kernel: page_remove_rmap: driver cleared PG_reserved ?
Jul 31 15:38:13 vana kernel: page_remove_rmap: pte_chain dc893590 not present.
Jul 31 15:38:13 vana kernel: page_remove_rmap: only found: dfc5c468 
Jul 31 15:38:13 vana kernel: page_remove_rmap: driver cleared PG_reserved ?
Jul 31 15:38:13 vana kernel: page_remove_rmap: pte_chain dc893594 not present.
Jul 31 15:38:13 vana kernel: page_remove_rmap: only found: dfc5c46c 
Jul 31 15:38:13 vana kernel: page_remove_rmap: driver cleared PG_reserved ?
Jul 31 15:38:13 vana kernel: page_remove_rmap: pte_chain dc893604 not present.
Jul 31 15:38:13 vana kernel: page_remove_rmap: only found: dbbde5e0 dadfe5e0 dfc5c4dc 
Jul 31 15:38:13 vana kernel: page_remove_rmap: driver cleared PG_reserved ?
Jul 31 15:38:13 vana kernel: page_remove_rmap: pte_chain dc893630 not present.
Jul 31 15:38:13 vana kernel: page_remove_rmap: only found: dbbde098 dadfe098 
Jul 31 15:38:13 vana kernel: page_remove_rmap: driver cleared PG_reserved ?
Jul 31 15:38:13 vana kernel: page_remove_rmap: pte_chain dc893634 not present.
Jul 31 15:38:13 vana kernel: page_remove_rmap: only found: dbbde09c dadfe09c 
Jul 31 15:38:13 vana kernel: page_remove_rmap: driver cleared PG_reserved ?
Jul 31 15:38:13 vana kernel: page_remove_rmap: pte_chain dc893638 not present.
Jul 31 15:38:13 vana kernel: page_remove_rmap: only found: dbbde0a0 dadfe0a0 
Jul 31 15:38:13 vana kernel: page_remove_rmap: driver cleared PG_reserved ?
Jul 31 15:38:13 vana kernel: page_remove_rmap: pte_chain dc89363c not present.
Jul 31 15:38:13 vana kernel: page_remove_rmap: only found: dbbde0a4 dadfe0a4 
Jul 31 15:38:13 vana kernel: page_remove_rmap: driver cleared PG_reserved ?
Jul 31 15:38:13 vana kernel: page_remove_rmap: pte_chain dc893640 not present.
Jul 31 15:38:13 vana kernel: page_remove_rmap: only found: dbbde0a8 dadfe0a8 
Jul 31 15:38:13 vana kernel: page_remove_rmap: driver cleared PG_reserved ?
Jul 31 15:38:13 vana kernel: page_remove_rmap: pte_chain dc893644 not present.
Jul 31 15:38:13 vana kernel: page_remove_rmap: only found: dbbde0ac dadfe0ac 
Jul 31 15:38:13 vana kernel: page_remove_rmap: driver cleared PG_reserved ?
Jul 31 15:38:13 vana kernel: page_remove_rmap: pte_chain dc893648 not present.
Jul 31 15:38:13 vana kernel: page_remove_rmap: only found: dbbde0b0 dadfe0b0 
Jul 31 15:38:13 vana kernel: page_remove_rmap: driver cleared PG_reserved ?
Jul 31 15:38:13 vana kernel: page_remove_rmap: pte_chain dc89364c not present.
Jul 31 15:38:13 vana kernel: page_remove_rmap: only found: dbbde0b4 dadfe0b4 
Jul 31 15:38:13 vana kernel: page_remove_rmap: driver cleared PG_reserved ?
Jul 31 15:38:13 vana kernel: page_remove_rmap: pte_chain dc893650 not present.
Jul 31 15:38:13 vana kernel: page_remove_rmap: only found: dbbde0b8 dadfe0b8 
Jul 31 15:38:13 vana kernel: page_remove_rmap: driver cleared PG_reserved ?
Jul 31 15:38:13 vana kernel: page_remove_rmap: pte_chain dc893654 not present.
Jul 31 15:38:13 vana kernel: page_remove_rmap: only found: dbbde0bc dadfe0bc 
Jul 31 15:38:13 vana kernel: page_remove_rmap: driver cleared PG_reserved ?
Jul 31 15:38:13 vana kernel: page_remove_rmap: pte_chain dc893658 not present.
Jul 31 15:38:13 vana kernel: page_remove_rmap: only found: dbbde0c0 dadfe0c0 
Jul 31 15:38:13 vana kernel: page_remove_rmap: driver cleared PG_reserved ?
Jul 31 15:38:13 vana kernel: page_remove_rmap: pte_chain dc89365c not present.
Jul 31 15:38:13 vana kernel: page_remove_rmap: only found: dbbde0c4 dadfe0c4 
Jul 31 15:38:13 vana kernel: page_remove_rmap: driver cleared PG_reserved ?
Jul 31 15:38:13 vana kernel: page_remove_rmap: pte_chain dc8936b0 not present.
Jul 31 15:38:13 vana kernel: page_remove_rmap: only found: 
Jul 31 15:38:13 vana kernel: page_remove_rmap: driver cleared PG_reserved ?
Jul 31 15:38:13 vana kernel: page_remove_rmap: pte_chain dc8936c8 not present.
Jul 31 15:38:13 vana kernel: page_remove_rmap: only found: 
Jul 31 15:38:13 vana kernel: page_remove_rmap: driver cleared PG_reserved ?
Jul 31 15:38:13 vana kernel: page_remove_rmap: pte_chain dc8936cc not present.
Jul 31 15:38:13 vana kernel: page_remove_rmap: only found: 
Jul 31 15:38:13 vana kernel: page_remove_rmap: driver cleared PG_reserved ?
Jul 31 15:38:13 vana kernel: page_remove_rmap: pte_chain dc8936e0 not present.
Jul 31 15:38:13 vana kernel: page_remove_rmap: only found: 
Jul 31 15:38:13 vana kernel: page_remove_rmap: driver cleared PG_reserved ?
Jul 31 15:38:13 vana kernel: page_remove_rmap: pte_chain dc8936e8 not present.
Jul 31 15:38:13 vana kernel: page_remove_rmap: only found: dbbde150 dadfe150 
Jul 31 15:38:13 vana kernel: page_remove_rmap: driver cleared PG_reserved ?
Jul 31 15:38:13 vana kernel: page_remove_rmap: pte_chain dc8936f0 not present.
Jul 31 15:38:13 vana kernel: page_remove_rmap: only found: 
Jul 31 15:38:13 vana kernel: page_remove_rmap: driver cleared PG_reserved ?
Jul 31 15:38:13 vana kernel: page_remove_rmap: pte_chain dc8936f4 not present.
Jul 31 15:38:13 vana kernel: page_remove_rmap: only found: 
Jul 31 15:38:13 vana kernel: page_remove_rmap: driver cleared PG_reserved ?
Jul 31 15:38:15 vana kernel: Kernel logging (proc) stopped.
Jul 31 15:38:15 vana kernel: Kernel log daemon terminating.

Petr Vandrovec [email protected]

#1 lore raw
Quoted 8 lines · Petr Vandrovec

...

Quoted 5 lines
Quoted 2 lines

Probably because of your code did not do anything special when 'Not found. This should NEVER happen!' code path triggers.

Of course, ntpd is probably running into a different problem, but the printk's enabled with DEBUG_RMAP should give us some hints.

Quoted 5 lines

No nvidia here. Boot, start X, quit X, run updatedb, reboot... cat /proc/pidof ntpd/maps says that it has mmaped only ntpd and few libraries from /lib. I hope that printed values will have some value for you. And btw, ntpd uses some mlock*() call, it has status 'SL' in process list. Do you know how to find what memory it has locked?

It's good that this it nice and reproducible, thanks.

Linus, can we please not have that BUG() in 2.5.30?

mm/rmap.c renamed from mm/rmap.c~no-bug +0 -2
@@ -205,8 +205,6 @@ void page_remove_rmap(struct page * page
 	}
 	printk("\n");
 	printk(KERN_ERR "page_remove_rmap: driver cleared PG_reserved ?\n");
-#else
-	BUG();
 #endif
 
 out:

.