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

Reply via email to