Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 23 May 2014 14:52:19 +0200
From:      John Hay <jhay@meraka.org.za>
To:        freebsd-arm@freebsd.org
Subject:   AVILA panic: vm_fault: fault on nofault entry
Message-ID:  <20140523125219.GA60793@zibbi.meraka.csir.co.za>

next in thread | raw e-mail | index | archive | help
Hi Guys,

Rather than abuse Warner's MK_ARM_EABI thread, I thought I'll start a
new one.

It seems that svn r259999 cause a variety of panics. It normally happens
close to the end of the rc scripts or just after login if I do something
like "dhclient npe0".

############
Starting cron.
Segmentation fault

vm_fault(0xc07aa4e4, 0, 2, 0) -> 1
Fatal kernel mode data abort: 'Translation Fault (P)'
trapframe: 0xc091e510
FSR=00000017, FAR=00000000, spsr=a0000013
r0 =40000013, r1 =c0fcc000, r2 =00000000, r3 =00000000
r4 =c0d3e970, r5 =00000000, r6 =c06c5de0, r7 =c06f9140
r8 =c06f9100, r9 =c0d4f6d8, r10=c06c65a8, r11=c091e59c
r12=00000001, ssp=c091e564, slr=c03f9368, pc =c0598cc0

[ thread pid 833 tid 100046 ]
Stopped at      getpbuf+0x110:  str     r2, [r3]
############
dhclient npe0
Segmentation fault
# execve (/sbin/dhclient-script, ...): Exec format error
exiting.
panic: vm_radix_remove: impossible to locate the key
KDB: enter: panic
[ thread pid 12 tid 100008 ]
Stopped at      kdb_enter+0x48: ldrb    r15, [r15, r15, ror r15]!
############
panic: vm_fault: fault on nofault entry, addr: c092e000
KDB: enter: panic
[ thread pid 872 tid 100052 ]
Stopped at      kdb_enter+0x48: ldrb    r15, [r15, r15, ror r15]!
############

The commit was:

r259999 | alc | 2013-12-28 06:28:35 +0200 (Sat, 28 Dec 2013) | 8 lines

MFp4 alc_popmap
  Change the way that reservations keep track of which pages are in use.
  Instead of using the page's PG_CACHED and PG_FREE flags, maintain a bit
  vector within the reservation.  This approach has a couple benefits.
  First, it makes breaking reservations much cheaper because there are
  fewer cache misses to identify the unused pages.  Second, it is a pre-
  requisite for supporting two or more reservation sizes.

The changes was to sys/vm/vm_reserv.c and it does not look like there
was any "fixes" later to that file, just some asserts added. Anyone
have a clue why the AVILAs are so unhappy with this change, while it
seems that all the other archs are ok with it? Or did it need some
change in another file maybe? That commit did not touch other files.

Regards

John
-- 
John Hay -- jhay@meraka.csir.co.za / jhay@meraka.org.za



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20140523125219.GA60793>