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
