Subject: Re: Port benchmarks
To: None <port-alpha@netbsd.org>
From: Jason R Thorpe <thorpej@zembu.com>
List: port-alpha
Date: 04/02/2000 13:26:49
On Sun, Apr 02, 2000 at 09:25:54PM +0200, Manuel Bouyer wrote:
> pc = 0xfffffc000039b6fc
> ra = 0xfffffc00004bf498
> panic: trap
> Stopped in at 0xfffffc00004caca4: ret zero,(ra)
> db>
>
> 'tr' doesn't show anything here.
Right, DDB isn't initialized yet, so no symbols are available... and
without symbols, you can't trace back on the Alpha.
> I tried to boot with the 'd' flag, but it gets the kernel trap before
> entering ddb.
> gdb says:
> (gdb) l *0xfffffc00004caca4
> 0xfffffc00004caca4 is in cpu_Debugger (../../../../arch/alpha/alpha/db_interface.c:225).
> 220
> 221 void
> 222 cpu_Debugger()
> 223 {
> 224
> 225 __asm __volatile("call_pal 0x81"); /* bugchk */
> 226 }
Right, well, this part works, at least. The reason you don't get into DDB
with -d is because it'd dying in pmap_bootstrap().
> (gdb) l *0xfffffc000039b6fc
> 0xfffffc000039b6fc is in pool_init (../../../../kern/subr_pool.c:439).
> 434 pp->pr_minitems = 0;
> 435 pp->pr_minpages = 0;
> 436 pp->pr_maxpages = UINT_MAX;
> 437 pp->pr_roflags = flags;
> 438 pp->pr_flags = 0;
> 439 pp->pr_size = ALIGN(size);
Hm... Disassemble that, please :-)
> I also compiled a libc with -mcpu=21264, and now portmap cores dump with an
> Illegal instruction, in libc (_svc_getreqset()). Disassembly around the
> instruction which caused the fault is (fault is at 0x16048d8e0):
> 0x16048d8d0 <_svc_getreqset+80>: ldl s2,0(s4)
> 0x16048d8d4 <_svc_getreqset+84>: addq s4,0x4,s4
> 0x16048d8d8 <_svc_getreqset+88>: zapnot s2,0xf,t1
> 0x16048d8dc <_svc_getreqset+92>: cttz t1,t0
> 0x16048d8e0 <_svc_getreqset+96>: addq t0,0x1,t0
Right, so the PC in the trap frame is the instruction *AFTER* the faulting
instruction. Methinks the `cttz' instruction is what bit you. I'm betting
that the ALIGN() macro above is getting an instruction from the Counting
Extension inserted in there, too.
Those instructions SHOULD be available on the 21264. But I'll add some
code to print out the extensions present on the CPU so we can tell For
Sure.
--
-- Jason R. Thorpe <thorpej@zembu.com>