Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 03 Mar 1999 18:13:43 -0700
From:      "Russell L. Carter" <rcarter@pinyon.org>
To:        current@FreeBSD.ORG
Subject:   Re: SMP and SO5.0 
Message-ID:  <199903040113.SAA17500@psf.Pinyon.ORG>
In-Reply-To: Your message of "Wed, 17 Feb 1999 14:40:38 EST." <199902171940.OAA69973@y.dyson.net> 

next in thread | previous in thread | raw e-mail | index | archive | help

John Dyson extemporised:

%Julian Elischer said:
%> 
%> 
%> On Tue, 16 Feb 1999, Luoqi Chen wrote:
%> > You may try my patch at http://www.freebsd.org/~luoqi, which would allow
%> > linux threads to run on SMP.
%> 
%> I've gone through these patches and I can see that they are really needed
%> for SMP where address spaces are shared.
%> 
%I agree -- a per-cpu page directory per multithreaded process is the way that
%I had implemented.  Excellent!!!
%

So I tried these out.  The examples work in the linuxthreads dir but many
other things do not.  For instance,

Built debug ACE+TAO with egcs-2.91.62, March 2 -current, newest
LinuxThreads port.  Uniprocessor has no errors.  SMP fails, for instance: 

rcarter@mazatzal:~/ace/ACE_wrappers/tests [82] ./TSS_Test 
TSS_Test in malloc(): warning: recursive call.
TSS_Test in malloc(): warning: recursive call.
Abort trap (core dumped)
rcarter@mazatzal:~/ace/ACE_wrappers/tests [83] gdb TSS_Test -core 
TSS_Test.coreGDB is free software and you are welcome to distribute copies of 
it
 under certain conditions; type "show copying" to see the conditions.
There is absolutely no warranty for GDB; type "show warranty" for details.
GDB 4.16 (i386-unknown-freebsd), 
Copyright 1996 Free Software Foundation, Inc...
Core was generated by `TSS_Test'.
Program terminated with signal 6, Abort trap.
Reading symbols from /home/rcarter/ace/ACE_wrappers/ace/libACE.so...done.
Reading symbols from /usr/local/lib/liblthread.so.0...done.
Reading symbols from /usr/lib/libm.so.2...done.
Reading symbols from /usr/lib/libc.so.3...done.
Reading symbols from /usr/libexec/ld-elf.so.1...done.
#0  0x18243bf4 in sched_yield ()
(gdb) where
#0  0x18243bf4 in sched_yield ()
#1  0x181eb051 in sched_yield () at sched.c:58
#2  0x181eac79 in _spinlock (lck=0x18281738) at spinlock.c:88
#3  0x18278a02 in free ()
#4  0x181a8765 in __builtin_delete (ptr=0x8054170)
#5  0x804ada5 in worker (c=0x64) at TSS_Test.cpp:222
#6  0x180fc4e2 in ACE_Thread_Adapter::invoke (this=0x8051540) at OS.cpp:2075
#7  0x180fc556 in ace_thread_adapter (args=0x8051540) at OS.cpp:2194
#8  0x181ebe8c in pthread_start_thread (arg=0xeb5ffd04) at manager.c:160
#9  0x181ec49d in _clone () at clone.S:1
#10 0xffffffff in ?? ()
#11 0x1805ec5c in .curbrk ()
Cannot access memory at address 0xf9dc.
(gdb) 


Russell




To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-current" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199903040113.SAA17500>