Date: Sat, 15 Nov 2003 10:48:09 -0500 (EST) From: Daniel Eischen <eischen@vigrid.com> To: Marcel Moolenaar <marcel@xcllnt.net> Cc: davidxu@freebsd.org Subject: Re: KSE/ia64 broken Message-ID: <Pine.GSO.4.10.10311151025440.6798-100000@pcnet5.pcnet.com> In-Reply-To: <20031115031906.GA52831@dhcp01.pn.xcllnt.net>
next in thread | previous in thread | raw e-mail | index | archive | help
On Fri, 14 Nov 2003, Marcel Moolenaar wrote: > Gang, > > The following change broke KSE on ia64: > > -------- > revision 1.18 > date: 2003/11/08 06:07:04; author: davidxu; state: Exp; lines: +16 -17 > Use THR lock instead of KSE lock to avoid scheduler be blocked in spinlock. > > Reviewed by: deischen > -------- > > We seem to be clobbering the thread structure instead of writing > to the mailbox. This happens at initialization. Can it be that > the change assumes PER_KSE and doesxn't work for PER_THREAD? I assume this is coming from a malloc() or free() which uses a spinlock. Spinlocks shouldn't be called at initialization; everything using spinlocks should be conditional based on __isthreaded != 0. Also, libpthread shouldn't be calling malloc() or free() after initialization unless it is within the context of a thread. There seems to be a case where the current thread isn't set or it is the fake thread and malloc() or free() is called. Is this repeatable on a simple threaded application (we can reproduce it on plutoX)? -- Dan Eischen
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?Pine.GSO.4.10.10311151025440.6798-100000>