KSE/ia64 broken
    Daniel Eischen 
    eischen at vigrid.com
       
    Sat Nov 15 07:48:12 PST 2003
    
    
  
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
    
    
More information about the freebsd-threads
mailing list