Port-pmax archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: Removing options MIPS3 cause DS5000 to loop during boot



2011/4/29 Izumi Tsutsui <tsutsui%ceres.dti.ne.jp@localhost>:
> Could you try this patch?
>
> Index: mips/pmap.c
> ===================================================================
> RCS file: /cvsroot/src/sys/arch/mips/mips/pmap.c,v
> retrieving revision 1.198
> diff -u -p -r1.198 pmap.c
> --- mips/pmap.c 15 Mar 2011 07:31:33 -0000      1.198
> +++ mips/pmap.c 29 Apr 2011 17:10:53 -0000
> @@ -2345,6 +2345,7 @@ pmap_remove_pv(pmap_t pmap, vaddr_t va,
>                        pmap_page_cache(pg, true);
>        }
>  #endif
> +#endif /* MIPS3_PLUS */
>
>        pmap_check_pvlist(md);
>        PG_MD_PVLIST_UNLOCK(md);
> @@ -2371,6 +2372,7 @@ pmap_remove_pv(pmap_t pmap, vaddr_t va,
>                        PMAP_COUNT(exec_synced_remove);
>                }
>        }
> +#ifdef MIPS3_PLUS      /* XXX mmu XXX */
>        if (MIPS_HAS_R4K_MMU && last)   /* XXX why */
>                mips_dcache_wbinv_range_index(va, PAGE_SIZE);
>  #endif /* MIPS3_PLUS */
>
>
> ---
>
> (though I have not tried options DIAGNOSTIC one)


With sources updated about half an hour ago and your patch added to
pmap.c, the situation is:

The S4 kernel (including options MIPS3) continues to work and may boot
to multi-user.

The S5 kernel (S4 but with options MIPS3 line removed) now also boots
into multi-user -- this is the kernel that previously looped
indefinitely.

However the S6 kernel (S5 with options DEBUG and DIAGNOSTIC added) panics:

Boot: 3/rz4/netbsd.s6
3454800+143520 [192208+187028]=0x3cb668
Starting at 0x80030000

mips_fixup_stubs: 6762 fixups done in 0 cycles
Loaded initial symtab at 0x8039e7f0, strtab at 0x803cdbd4, # entries 11992
mcclock: iters 11680 computed MHz 33, instrs per usec=19
segment  0 start 00000000 size 02000000
phys segment: 0x2000000 @ 0
adding 0x402000 @ 0x3fe000 to freelist 1
adding 0x1800000 @ 0x800000 to freelist 0
pmap_steal_memory: seg 0: 0x3fe 0x3fe 0x800 0x800
pmap_steal_memory: seg 0: 0x424 0x424 0x800 0x800
Copyright (c) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005,
    2006, 2007, 2008, 2009, 2010, 2011
    The NetBSD Foundation, Inc.  All rights reserved.
Copyright (c) 1982, 1986, 1989, 1991, 1993
    The Regents of the University of California.  All rights reserved.

NetBSD 5.99.51 (S6) #1: Sun May  1 16:50:49 CEST 2011
        
erik%x8-nb.h.recerik.dk@localhost:/home/NetBSD/crossbuild/obj.pmax/sys/arch/pmax/compile/S6
DECstation 5000/133 (3MIN)
total memory = 32768 KB
avail memory = 27884 KB
mainbus0 (root)
cpu0 at mainbus0: MIPS R3000A CPU (0x230) Rev. 3.0 with MIPS R3010 FPC Rev. 4.0
cpu0: 64KB/4B direct-mapped Instruction cache, 64 TLB entries
cpu0: 128KB/4B direct-mapped write-through Data cache
tc0 at mainbus0: 12.5 MHz clock
ioasic0 at tc0 slot 3 offset 0x0
le0 at ioasic0 offset 0xc0000: address 08:00:2b:32:56:6f
le0: 32 receive buffers, 8 transmit buffers
3MIN: imask 1030, enabling slot 0x2, dev 0xc362ac18 handler 0x80033280
zsc0 at ioasic0 offset 0x100000
vsms0 at zsc0 channel 0
wsmouse0 at vsms0 mux 0
zstty0 at zsc0 channel 1
3MIN: imask 1130, enabling slot 0x0, dev 0xc362ac18 handler 0x802fec3c
zsc1 at ioasic0 offset 0x180000
lkkbd0 at zsc1 channel 0
wskbd0 at lkkbd0 mux 1
zstty1 at zsc1 channel 1 (console i/o)
3MIN: imask 1170, enabling slot 0x1, dev 0xc362ac18 handler 0x802fec3c
mcclock0 at ioasic0 offset 0x200000: mc146818 or compatible
asc0 at ioasic0 offset 0x3000003MIN: imask 11f0, enabling slot 0x3,
dev 0xc362ac18 handler 0x80182d90
: NCR53C94, 25MHz, SCSI ID 7
scsibus0 at asc0: 8 targets, 8 luns per target
scsibus0: waiting 2 seconds for devices to settle...
sd0 at scsibus0 target 4 lun 0: <QUANTUM, QM39100TD-S, N1B0> disk fixed
sd0: 8683 MB, 8057 cyl, 10 head, 220 sec, 512 bytes/sect x 17783249 sectors
sd0: sync (200.00ns offset 15), 8-bit (5.000MB/s) transfers, tagged queueing
boot device: sd0
root on sd0a dumps on sd0b
mountroot: trying nfs...
mountroot: trying lfs...
mountroot: trying ffs...
root file system type: ffs
init: copying out flags `-s' 3
init: copying out path `/sbin/init' 11
pid 1(init): ABI set to O32 (e_flags=0x1007)
panic: tlb_hi (0xc3ec1000) asid (0) != current asid (0x3)
cpu0: Begin traceback...
pid -1007936632 not found
cpu0: End traceback...
0xc3ec1b70: cpu_reboot+3c (104,0,b1,80357858) ra 802242fc sz 24
0xc3ec1b88: panic+258 (104,c3ec1000,0,3) ra 801d5d7c sz 56
0xc3ec1bc0: pmap_tlb_asid_check+4c (104,c3ec1000,0,3) ra 801d65dc sz 24
0xc3ec1bd8: pmap_tlb_update_addr+8c (104,c3ec1000,0,3) ra 801d4a2c sz 40
0xc3ec1c00: pmap_enter+220 (104,c3ec1000,0,3) ra 802a961c sz 72
0xc3ec1c48: uvm_fault_lower+618 (104,c3ec1000,0,3) ra 802aab4c sz 96
0xc3ec1ca8: uvm_fault_internal+834 (81ee5d20,c3ec1000,7de99000,0) ra
80263db4 sz 272
0xc3ec1db8: trap+970 (8,8,7de99000,7de99c08) ra 80176950 sz 400
0xc3ec1f48: mips1_user_gen_exception+e0 (8,8,7de99000,7de99c08) ra 0 sz 0
User-level: pid 2.1

dumping to dev 19,1 offset 1332112
dump 32 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11
10 9 8 7 6 5 4 3 2 1 succeeded


rebooting...

But at least you seem to have identified at least part of the problem.

kind regards
- Erik


Home | Main Index | Thread Index | Old Index