Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 31 May 2003 23:48:15 -0400
From:      Mike Makonnen <mtm@identd.net>
To:        Marcel Moolenaar <marcel@xcllnt.net>
Cc:        threads@freebsd.org
Subject:   Re: libthr: thr_create(2): no kernel stack?
Message-ID:  <20030601034817.OXXJ20810.pop015.verizon.net@kokeb.ambesa.net>
In-Reply-To: <20030531072259.GA2408@athlon.pn.xcllnt.net>
References:  <20030531072259.GA2408@athlon.pn.xcllnt.net>

next in thread | previous in thread | raw e-mail | index | archive | help
On Sat, 31 May 2003 00:22:59 -0700
Marcel Moolenaar <marcel@xcllnt.net> wrote:

> Gang,
> 
> I'm porting libthr to ia64 and reached a point where I can actually
> do initial testing. I immediately hit upon a snafu in thr_create(2).
> The second bcopy (ie sys/kern/kern_thr.c:159) is panicing because
> the new thread (td0) does not have a frame (ie td_frame == NULL).
> Creating a frame is obviously the thing to do, but there's no kernel
> stack created for the new thread AFAICT. Without kernel thread.
> cpu_set_upcall() will also fail if we ever reach that point.
> 
> Am I missing something here?

I just took a look at this and it _did_ look funny, but it seems to work on i386
so I did a little more digging and it seems that the stack frame is allocated in
the uma thread initialization routine thread_init(), which calls
cpu_thread_setup().  
This is currently undefined for ia64: ia64/ia64/vm_machdep.c: line 110

Cheers.
-- 
Mike Makonnen  | GPG-KEY: http://www.identd.net/~mtm/mtm.asc
mtm@identd.net | D228 1A6F C64E 120A A1C9  A3AA DAE1 E2AF DBCC 68B9
mtm@FreeBSD.Org| FreeBSD - The Power To Serve



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20030601034817.OXXJ20810.pop015.verizon.net>