Subject: Re: Still unable to compile a working kernel on NoName.
To: Jason Thorpe <thorpej@nas.nasa.gov>
From: Michael Graff <explorer@flame.org>
List: port-alpha
Date: 07/31/1997 04:28:27
Jason Thorpe <thorpej@nas.nasa.gov> writes:

> Well, seems like everyone else is having a _very_ hard time reproducing
> this problem...

Yea, I know...  Sucks to be me.  :)

> ...and you're not giving us much to go on :-)  There isn't a kmem_suballoc()
> call anywhere near line 740 of machdep.c.  That line is in identifycpu().

This is what I have at line 740:
	/*
	 * Allocate virtual address space for file I/O buffers.
	 * Note they are different than the array of headers, 'buf',
	 * and usually occupy more virtual memory than physical.
	 */
	size = MAXBSIZE * nbuf;
-->	buffer_map = kmem_suballoc(kernel_map, (vm_offset_t *)&buffers,
	    &maxaddr, size, TRUE);
	minaddr = (vm_offset_t)buffers;
	if (vm_map_find(buffer_map, vm_object_allocate(size), (vm_offset_t)0,
			&minaddr, size, FALSE) != KERN_SUCCESS)
		panic("startup: cannot allocate buffers");

That looks like a call to kmem_suballoc() to me!  :)  Also, I placed a
printf directly below the call to kmem_suballoc and one above it.  The
one above it did print, the one below did not.

> How far into kmem_suballoc() does it get?
> 
> printf() is your friend :-)

That's how I found the bug in the first place :)

BTW, I have not increased NBUF intentionally:

explorer@kechara:/sys/arch/alpha/conf> grep NBUF GESTEN
explorer@kechara:/sys/arch/alpha/conf> 

I have traced the lockup to vm_map_create() currently.  My _guess_ is
that it is locking on the MALLOC call in there...  I'm adding printfs
now and will followup once it compiles and I try it.

--Michael