Hi, In Alpha SE mode, I made some modifications in tlb.cc for processes running on different processors to share the same physical memory pages.
Is it possible to define inline assembly code to implement atomic operations needed for defining semaphores to synchronize accesses to the shared memory? Does the simulated cpu support atomic instructions? With the help of linux implementations of atomic64_add and atomic64_sub inline functions available at http://lxr.linux.no/#linux+v2.6.32/arch/alpha/include/asm/atomic.h i tried defining similar inline assembly functions in my c program but was getting this error gem5.opt: build/PUSH_ALPHA_SE_MESI_CMP_directory/cpu/simple/timing.cc:458: Fault TimingSimpleCPU::readBytes(Addr, uint8_t*, unsigned int, unsigned int): Assertion `!req->isLLSC() && !req->isSwap()' failed. What is it asserting? atomic.cc does not have this assert statement. Is it that it might work with atomic model of cpu, but as ruby memory model is supported only in timing model i could not use the atomic model. Is there any other way, i could implement/use atomic operations in SE mode mainly for synchronizing accesses to shared memory in a producer consumer environment? -- B Saratchandra Prasanth <http://www.cse.iitd.ernet.in/%7Emcs092094> Graduate-student in Computer Science Dept. of Computer Science & Engineering<http://www.cse.iitd.ac.in/index.shtml> Indian Institute of Technology, Delhi <http://www.iitd.ac.in> New Delhi - 110016 Ph. No. 9555918314
_______________________________________________ gem5-users mailing list [email protected] http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users
