Subject: pmap woes
To: None <port-sun3@NetBSD.ORG>
From: Michael Richardson <mcr@sandelman.ocunix.on.ca>
List: port-sun3
Date: 06/17/1996 23:12:55
  So, I couldn't sleep last night and spent several hours trying to
put my machine into a bad state so I could debug stuff.
  I made some headway. I wasn't very successful at discovering
precisely which page was bad.... Just now, things screwed up again, in
a way that "more" dies, so I hit 'pmap_debug' and captured...
  gdb told me that 0x20020047 was the PC when things where dying.
  Search down for 'set_pte' --- that is where things die. I note that
set_pte is not called at all until that point...

  Shit... I just realized that pmap_debug is a bit field of flags,
should have set it to -1. Dang. I knew that and used that knowledge
this morning...
  Now the machine is rebooted, and I have to break it again... Gordon,
am I on the right track? Does any of this help?

Script started on Mon Jun 17 22:47:36 1996
latour-[~/port-sun3] mcr >cu -l cua0 -s 9600
....

amaterasu-[/root] 71 >more .cshrc
pmap_enter(e0c7210, ed2c000, 4d8000, 7, 1)
pmap_enter(e0c7210, ed2e000, 248000, 7, 1)
pmap_enter(e56bb84, 1a000, 490000, 5, 0)
pmap_enter(e56bb84, 12000, 252000, 5, 0)
pmap_enter(e56bb84, dffe000, 700000, 5, 0)
pv_remove_all(700000)
pmap_remove_range_mmu(e553384, dffe000, e000000)
pmap_remove_range_mmu(e56bb84, dffe000, e000000)
pmap_enter(e56bb84, dffe000, 2c4000, 7, 0)
pmap_enter(e56bb84, 34000, 7ba000, 5, 0)
pmap_enter(e56bb84, 2c000, 654000, 5, 0)
pmap_enter(e56bb84, 38000, 2fc000, 5, 0)
pv_remove_all(7ba000)
pmap_remove_range_mmu(e553384, 34000, 36000)
pmap_remove_range_mmu(e56bb84, 34000, 36000)
pmap_enter(e56bb84, 34000, 39e000, 7, 0)
pmap_enter(e56bb84, 3c000, 2ba000, 5, 0)
pv_remove_all(2ba000)
pmap_remove_range_mmu(e553384, 3c000, 3e000)
pmap_remove_range_mmu(e56bb84, 3c000, 3e000)
pmap_enter(e56bb84, 3c000, 78a000, 7, 0)
pmap_enter(e56bb84, 18000, 670000, 5, 0)
pmap_enter(e56bb84, 14000, 444000, 5, 0)
pmap_enter(e56bb84, 40000, 1ba000, 5, 0)
pmap_enter(e56bb84, 2e000, 792000, 5, 0)
pmap_enter(e56bb84, 6000, 2e0000, 5, 0)
pmap_enter(e56bb84, 46000, 6ca000, 5, 0)
pmap_enter(e56bb84, c000, 65c000, 5, 0)
pmap_enter(e56bb84, e000, 7c6000, 5, 0)
pmap_enter(e56bb84, 2000, 75a000, 5, 0)
pmap_enter(e56bb84, 26000, 664000, 5, 0)
pv_remove_all(6ca000)
pmap_remove_range_mmu(e553384, 46000, 48000)
pmap_remove_range_mmu(e56bb84, 46000, 48000)
pmap_enter(e56bb84, 46000, 218000, 7, 0)
pv_remove_all(1d0000)
pmap_remove_range_mmu(e553384, 36000, 38000)
pmap_enter(e56bb84, 36000, 61c000, 7, 0)
pv_remove_all(486000)
pmap_remove_range_mmu(e553384, 3e000, 40000)
pmap_enter(e56bb84, 3e000, 43c000, 7, 0)
pv_remove_all(1ba000)
pmap_remove_range_mmu(e553384, 40000, 42000)
pmap_remove_range_mmu(e56bb84, 40000, 42000)
pmap_enter(e56bb84, 40000, 632000, 7, 0)
pmap_enter(e56bb84, 42000, 476000, 5, 0)
pv_remove_all(476000)
pmap_remove_range_mmu(e553384, 42000, 44000)
pmap_remove_range_mmu(e56bb84, 42000, 44000)
pmap_enter(e56bb84, 42000, 1ec000, 7, 0)
pmap_enter(e0c7210, e83a000, 730000, 7, 0)
pmap_enter(e56bb84, 54000, 2ae000, 5, 0)
pmap_enter(e56bb84, 44000, 352000, 5, 0)
pmap_remove_range_mmu(e56bb84, 2000, 20000)
pmap_remove_range_mmu(e56bb84, 20000, 34000)
pmap_remove_range_mmu(e56bb84, 34000, 38000)
pmap_remove_range_mmu(e56bb84, 38000, 3c000)
pmap_remove_range_mmu(e56bb84, 3c000, 3e000)
pmap_remove_range_mmu(e56bb84, 3e000, 40000)
pmap_remove_range_mmu(e56bb84, 40000, 54000)
pmap_remove_range_mmu(e56bb84, 54000, 56000)
pmap_remove_range_mmu(e56bb84, dfe0000, e000000)
pmap_enter(e56bb84, dffe000, 5be000, 7, 0)
pmap_remove_range_mmu(e0c7210, e83a000, e840000)
pmap_enter(e553384, dffe000, 700000, 5, 0)
pv_remove_all(700000)
pmap_remove_range_mmu(e553384, dffe000, e000000)
pmap_enter(e553384, dffe000, 65a000, 7, 0)
pv_remove_all(2ba000)
pmap_enter(e553384, 3c000, 3be000, 7, 0)
pv_remove_all(2fc000)
pmap_remove_range_mmu(e553384, 38000, 3a000)
pmap_enter(e553384, 38000, 448000, 7, 0)
pmap_enter(e553384, 34000, 7ba000, 5, 0)
pv_remove_all(7ba000)
pmap_remove_range_mmu(e553384, 34000, 36000)
pmap_enter(e553384, 34000, 692000, 7, 0)
pv_remove_all(2ae000)
pmap_remove_range_mmu(e553384, 54000, 56000)
pmap_enter(e553384, 54000, 570000, 7, 0)
pmap_enter(e553384, 40000, 1ba000, 5, 0)
pmap_enter(e553384, 46000, 6ca000, 5, 0)
pv_remove_all(1ba000)
pmap_remove_range_mmu(e553384, 40000, 42000)
pmap_enter(e553384, 40000, 746000, 7, 0)
pmap_enter(e553384, 46000, 6ca000, 7, 0)
pmap_enter(e56bb84, 2000, 376000, 5, 0)
pv_remove_all(53a000)
pmap_enter(e56bb84, a000, 524000, 7, 0)
pmap_protect_range(e56bb84, 2020000, 202c000)
pmap_enter(e57c984, dffe000, 5ec000, 7, 0)
pmap_enter(e57c984, 20aa000, 3a8000, 5, 0)
pmap_enter(e57c984, 8000, 38a000, 5, 0)
pmap_enter(e57c984, 209a000, 320000, 5, 0)
pmap_enter(e57c984, 20c8000, 492000, 5, 0)
pmap_enter(e56bb84, 2020000, 436000, 5, 0)
pv_link(e56bb84, 436000, 2020000, 0)
pmap: set_pte pmap=e56bb84 va=2020000 old=2020000 new=8000021b (eu)
pmap_enter(e56bb84, 202a000, 7f2000, 1, 0)

  There is where things screw up, and the signal is delievered.

Breakpoint at   _trapsignal:    linkw   a6,#0
db> c

pmap_remove_range_mmu(e0c7210, e76e000, e770000)
pmap_enter(e0c7210, e76c000, 192000, 3, 1)
pmap_remove_range_mmu(e56bb84, 2000, a000)
pmap_remove_range_mmu(e0c7210, e76c000, e76e000)
pmap_enter(e0c7210, e76e000, 192000, 3, 1)
pmap_remove_range_mmu(e56bb84, a000, c000)
pmap_remove_range_mmu(e56bb84, 2020000, 202a000)
pv_unlink(e56bb84, 436000, 2020000)
pmap: set_pte pmap=e56bb84 va=2020000 old=8200021b new=0 (rrmmu)
pmap_remove_range_mmu(e56bb84, 202a000, 202c000)
pmap_remove_range_mmu(e56bb84, dfe0000, e000000)
pmap_remove_range_mmu(e0c7210, ed2c000, ed30000)
pmap_enter(e58e684, dffe000, 498000, 7, 0)
pmap_enter(e553384, 3e000, 486000, 7, 0)
pmap_enter(e553384, 36000, 1d0000, 7, 0)
pmap_enter(e58e684, 2000, 782000, 5, 0)
pmap_enter(e58e684, 209a000, 320000, 5, 0)
pmap_enter(e58e684, 20a2000, 47c000, 5, 0)
pmap_enter(e58e684, 20c8000, 21a000, 7, 0)
pmap_enter(e553384, 48000, 630000, 7, 0)
Bupmap_enter(e553384, 4a000, 63c000, 7, 0)
spmap_enter(e553384, 42000, 476000, 7, 0)
 error (core dumped)
amaterasu-[/root] 72 >fastboot
pmap_enter(e553384, 52000, 464000, 7, 0)
pmap_enter(e0c7210, ed2c000, 204000, 7, 1)
pmap_enter(e0c7210, ed2e000, 78e000, 7, 1)
pmap_enter(e5c6084, 1a000, 490000, 5, 0)
pmap_enter(e5c6084, 12000, 252000, 5, 0)
pmap_enter(e5c6084, dffe000, 65a000, 5, 0)
pv_remove_all(65a000)
pmap_remove_range_mmu(e553384, dffe000, e000000)
pmap_remove_range_mmu(e5c6084, dffe000, e000000)
pmap_enter(e5c6084, dffe000, 7da000, 7, 0)
pmap_enter(e5c6084, 34000, 692000, 5, 0)
pmap_enter(e5c6084, 2c000, 654000, 5, 0)
pmap_enter(e5c6084, 38000, 448000, 5, 0)
pv_remove_all(692000)
pmap_remove_range_mmu(e553384, 34000, 36000)
pmap_remove_range_mmu(e5c6084, 34000, 36000)
pmap_enter(e5c6084, 34000, 3ba000, 7, 0)
pmap_enter(e599e84, dffe000, 6a6000, 7, 0)
pmap_enter(e599e84, 2000, 518000, 5, 0)
pmap_enter(e599e84, 20d0000, 688000, 5, 0)
pmap_enter(e599e84, 2108000, 3dc000, 5, 0)
pmap_enter(e599e84, 20e2000, 47c000, 5, 0)
pmap_enter(e599e84, 2042000, 7ee000, 1, 0)
pmap_enter(e5c6084, 3c000, 3be000, 5, 0)
pv_remove_all(3be000)
pmap_remove_range_mmu(e553384, 3c000, 3e000)
pmap_remove_range_mmu(e5c6084, 3c000, 3e000)
pmap_enter(e5c6084, 3c000, 6b2000, 7, 0)
pmap_enter(e5c6084, 18000, 670000, 5, 0)
pmap_enter(e5c6084, 14000, 444000, 5, 0)
pmap_enter(e5c6084, 40000, 746000, 5, 0)
pmap_enter(e5c6084, 2e000, 792000, 5, 0)
pmap_enter(e5c6084, 6000, 2e0000, 5, 0)
pmap_enter(e5c6084, 46000, 6ca000, 5, 0)
pmap_enter(e5c6084, c000, 65c000, 5, 0)
pmap_enter(e5c6084, e000, 7c6000, 5, 0)
pmap_enter(e5c6084, 2000, 75a000, 5, 0)
pmap_enter(e5c6084, 26000, 664000, 5, 0)
pv_remove_all(6ca000)
pmap_remove_range_mmu(e553384, 46000, 48000)
pmap_remove_range_mmu(e5c6084, 46000, 48000)
pmap_enter(e5c6084, 46000, 23c000, 7, 0)
pv_remove_all(746000)
pmap_remove_range_mmu(e553384, 40000~, 42000)
pmap_remove_range_mmu(e5c6084, 40000, 42000)
pmap_enter(e5c6084, 40000, 7a8000, 7, 0)
pmap_enter(e57c984, 28000, 748000, 7, 0)
pv_remove_all(1d0000)
pmap_remove_range_mmu(e553384, 36000, 38000)
pmap_enter(e5c6084, 36000, 47e000, 7, 0)
pv_remove_all(486000)
pmap_remove_range_mmu(e553384, 3e000, 40000)
pmap_enter(e5c6084, 3e000, 2c2000, 7, 0)
pmap_enter(e5c6084, 4a000, 63c000, 5, 0)
pv_remove_all(63c000)
pmap_remove_range_mmu(e553384, 4a000, 4c000)
pmap_remove_range_mmu(e5c6084, 4a000, 4c000)
pmap_enter(e5c6084, 4a000, 60c000, 7, 0)
pmap_enter(e5c6084, 42000, 476000, 5, 0)
pv_remove_all(476000)
pmap_remove_range_mmu(e553384, 42000, 44000)
pmap_remove_.
Disconnected.
latour-[~/port-sun3] mcr 2 >exit
exit

script done on Mon Jun 17 22:53:06 1996