Howdy all,

I'm adding custom system calls to provide inter-processor communication in
a special purpose network processor. However, I'd like emulate
asynchronous/interrupt based communication, so was hoping to represent this
with a blocking system call. However, it appears that gem5 is single
threaded, so there is no way to block in the system call handler without
blocking the entire simulator. Is there some way to "yield" in the system
call handler to allow other processors to continue to be simulated?

Does anyone have a suggestion for how best to achieve this communication? I
could obviously make the system call non-blocking and handle the busy-wait
loop in my simulated code, but I'm afraid that will skew my results, as
potentially most of the simulated instructions will be this loop instead of
the actual code I am interested in.

Also, while on the topic of multiprocess SE simulation, how does "time"
advance between these two processes? I guess since all system calls appear
to return immediately, both will always be in approximately the same cycle,
unless there is indeed some "yield" pathway to allow one processor to
progress while the other is "blocked"?

Thanks for your time and opinions,

-Mark Browning
_______________________________________________
gem5-users mailing list
[email protected]
http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users

Reply via email to