What exactly is the problem that you're encountering? Note that syscall emulation only occurs in SE mode (that's what the SE stands for). The file syscall_emul.cc doesn't even get compiled if FULL_SYSTEM is defined.
Steve On Mon, Aug 31, 2009 at 1:20 PM, soumyaroop roy<s...@cse.usf.edu> wrote: > Hello evebody, > > Here's a small observation that I made: > In SMT configurations for ALPHA/Linux, the first workload that finishes > terminates all the other workloads on the CPU because it makes the system > call, exit_group(). This problem, however, does not surface with the "hello" > binary checked into the repository because, I think, it is compiled with an > older compiler toolchain (which was build with linux 2.4.3) and it makes a > call to exit() instead of exit_group(). > > So my question is: > Shouldn't the exit_group() syscall be simulated by the exit() syscall in SE > mode? Here is the diff in the source: > > diff -r e0c1c6d87649 src/sim/syscall_emul.cc > --- a/src/sim/syscall_emul.cc Sun Aug 23 14:19:14 2009 -0700 > +++ b/src/sim/syscall_emul.cc Mon Aug 31 16:18:05 2009 -0400 > @@ -110,12 +110,16 @@ > exitGroupFunc(SyscallDesc *desc, int callnum, LiveProcess *process, > ThreadContext *tc) > { > +#if !FULL_SYSTEM > + return exitFunc(desc, callnum, process, tc); > +#else > // really should just halt all thread contexts belonging to this > // process in case there's another process running... > exitSimLoop("target called exit()", > process->getSyscallArg(tc, 0) & 0xff); > > return 1; > +#endif > } > > regards, > Soumyaroop. > > -- > Soumyaroop Roy > Ph.D. Candidate > Department of Computer Science and Engineering > University of South Florida, Tampa > http://www.csee.usf.edu/~sroy > _______________________________________________ > m5-dev mailing list > m5-dev@m5sim.org > http://m5sim.org/mailman/listinfo/m5-dev > > _______________________________________________ m5-dev mailing list m5-dev@m5sim.org http://m5sim.org/mailman/listinfo/m5-dev