Hello, On Sun, 11 May 2014 07:53:28 +0000 "Nick Hudson" <sk...@netbsd.org> wrote:
> Module Name: src > Committed By: skrll > Date: Sun May 11 07:53:28 UTC 2014 > > Modified Files: > src/sys/arch/mips/include: pmap.h > src/sys/arch/mips/mips: pmap.c pmap_segtab.c > > Log Message: > Deal with incompatible cache aliases. Specifically, > > - always flush an ephemeral page on unmap > - track unmanaged mappings (mappings entered via pmap_kenter_pa) for > aliases where required and handle appropriately (via pmap_enter_pv) > > Hopefully this (finally) addresses the instability reported in the > following PRs: > > PR/44900 - R5000/Rm5200 mips ports are broken > PR/46890 - upcoming NetBSD 6.0 release is very unstable / unusable on cobalt > qube 2 > PR/48628 - cobalt and hpcmips ports are dead > > > To generate a diff of this commit: > cvs rdiff -u -r1.62 -r1.63 src/sys/arch/mips/include/pmap.h > cvs rdiff -u -r1.213 -r1.214 src/sys/arch/mips/mips/pmap.c > cvs rdiff -u -r1.7 -r1.8 src/sys/arch/mips/mips/pmap_segtab.c My O2's been building stuff from pkgsrc for the last hour without any of the glitches we've seen before ( fingers crossed ) Building perl now, let's see how that goes. I'm using an n32 userland and kernel, with the bus_dma.c changes tsutsui@ mentioned adapted to sgimips/bus.c, gcc 4.5, gmp patched as posted earlier. Here's the dmesg: pmap_steal_memory: seg 0: 0x38 0x38 0x60 0x60 pmap_steal_memory: seg 0: 0x3a 0x3a 0x60 0x60 pmap_steal_memory: seg 0: too small for 1205 pages pmap_steal_memory: seg 1: 0x60 0x60 0x68 0x68 pmap_steal_memory: seg 1: too small for 1205 pages pmap_steal_memory: seg 2: 0x406 0x406 0xd50 0xd50 Copyright (c) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014 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 6.99.41 (O2) #2: Sun May 11 09:38:52 EDT 2014 ml@connemara:/home/build/obj_sgimips64/sys/arch/sgimips/compile/O2 total memory = 256 MB (6848 KB reserved for ARCS) avail memory = 240 MB timecounter: Timecounters tick every 10.000 msec mainbus0 (root): SGI-IP32 [SGI, 4], 1 processor cpu0 at mainbus0: MIPS R5000 CPU (0x2321) Rev. 2.1 with built-in FPU Rev. 1.0 cpu0: 48 TLB entries, 1TB (40-bit) VAs, 64GB (36-bit) PAs, 16MB max page size cpu0: 32KB/32B 2-way set-associative L1 instruction cache cpu0: 32KB/32B 2-way set-associative write-back L1 data cache cpu0: 1024KB/32B direct-mapped write-through L2 unified cache crime0 at mainbus0 addr 0x14000000: rev 1.1 (CRIME_ID: 161) crmfb0 at mainbus0 addr 0x16000000: SGI CRIME Graphics Display Engine crmfb0: initial resolution 1280x1024 crmfb0: allocated 5242880 byte fb @ 0x80060000 (0xa1400000) wsdisplay0 at crmfb0 kbdmux 1: console (default, vt100 emulation) wsmux1: connecting to wsdisplay0 mace0 at mainbus0 addr 0x1f000000 lpt0 at mace0 offset 0x380000 intr 4 intrmask 0xf0000 com0 at mace0 offset 0x390000 intr 4 intrmask 0x3f00000: ns16550a, working fifo com1 at mace0 offset 0x398000 intr 4 intrmask 0xfc000000: ns16550a, working fifo macekbc0 at mace0 offset 0x320000 intr 5 intrmask 0x0: PS2 controller pckbd0 at macekbc0 (kbd slot) wskbd0 at pckbd0: console keyboard, using wsdisplay0 pms0 at macekbc0 (aux slot) wsmouse0 at pms0 mux 0 mcclock0 at mace0 offset 0x3a0000 intrmask 0x0 mec0 at mace0 offset 0x280000 intr 3 intrmask 0x0: MAC-110 Ethernet, rev 1 mec0: Ethernet address 08:00:69:0c:19:d4 nsphy0 at mec0 phy 8: DP83840 10/100 media interface, rev. 1 nsphy0: 10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, auto mavb0 at mace0 offset 0x300000 intr 6 intrmask 0x0: AD1843 rev 1 audio0 at mavb0: full duplex, playback, capture, independent macepci0 at mace0 offset 0x80000 intr 7 intrmask 0x0: rev 1 pci0 at macepci0 bus 0 pci0: i/o space, memory space enabled, rd/line, rd/mult, wr/inv ok ahc0 at pci0 dev 1 function 0: Adaptec aic7880 Ultra SCSI adapter ahc0: interrupting at crime interrupt 8 ahc0: Using left over BIOS settings ahc0: Host Adapter has no SEEPROM. Using default SCSI target parameters ahc0: aic7880: Ultra Wide Channel A, SCSI Id=0, 16/253 SCBs scsibus0 at ahc0: 16 targets, 8 luns per target ahc1 at pci0 dev 2 function 0: Adaptec aic7880 Ultra SCSI adapter ahc1: interrupting at crime interrupt 9 ahc1: Using left over BIOS settings ahc1: Host Adapter has no SEEPROM. Using default SCSI target parameters ahc1: aic7880: Ultra Wide Channel A, SCSI Id=0, 16/253 SCBs scsibus1 at ahc1: 16 targets, 8 luns per target Cirrus Logic CL-GD5446 (VGA display) at pci0 dev 3 function 0 not configured timecounter: Timecounter "clockinterrupt" frequency 100 Hz quality 0 cpu_initclocks timecounter: Timecounter "mips3_cp0_counter" frequency 100235950 Hz quality 100 scsibus0: waiting 2 seconds for devices to settle... scsibus1: waiting 2 seconds for devices to settle... sd0 at scsibus0 target 1 lun 0: <FUJITSU, M2954ESP SUN4.2G, 2848> disk fixed sd0: 4094 MB, 3882 cyl, 16 head, 135 sec, 512 bytes/sect x 8385121 sectors sd0: sync (50.00ns offset 8), 16-bit (40.000MB/s) transfers, tagged queueing sd1 at scsibus0 target 2 lun 0: <IBM-PSG, ST318404LC !#, 3283> disk fixed sd1: 17357 MB, 14384 cyl, 6 head, 411 sec, 512 bytes/sect x 35548320 sectors sd1: sync (50.00ns offset 8), 16-bit (40.000MB/s) transfers, tagged queueing cd0 at scsibus0 target 4 lun 0: <TOSHIBA, CD-ROM XM-5401TA, 3605> cdrom removable cd0: sync (236.00ns offset 15), 8-bit (4.237MB/s) transfers boot device: mec0 root on sd0a dumps on sd0b pid 1(init): ABI set to N32 (e_flags=0x20000027) wsdisplay0: screen 1 added (default, vt100 emulation) wsdisplay0: screen 2 added (default, vt100 emulation) wsdisplay0: screen 3 added (default, vt100 emulation) wsdisplay0: screen 4 added (default, vt100 emulation) Only problem so far: pkgsrc complains about $MACHINE mismatch mipseb vs. mips64eb. Yes I know that's unrelated ;) have fun Michael