----------------------------------------------------------- This is an automatically generated e-mail. To reply, visit: http://reviews.gem5.org/r/2320/#review5235 -----------------------------------------------------------
Thanks. I think the non decoder stuff is fine to commit, but I'm not sure how we go about selecting a long term solution src/arch/x86/decoder.cc <http://reviews.gem5.org/r/2320/#comment4782> You've used Mtx and Mutex as a suffix for a lock. I don't know that we have a particular coding style, but in the places we've used a mutex in the code so far we used mutex, so unless there are any strong objections I vote to stick with that src/arch/x86/decoder.cc <http://reviews.gem5.org/r/2320/#comment4781> There is a 5th option: A thread-local instCachMap which is probably superior to #1 assuming you have more that one simulated cpu per physical cpu. There is shared_lock in c++14 and the implementation is pretty simple based on mutex and condition variables: http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2406.html#shared_mutex - Ali Saidi On Aug. 1, 2014, 7:04 p.m., Martin Brown wrote: > > ----------------------------------------------------------- > This is an automatically generated e-mail. To reply, visit: > http://reviews.gem5.org/r/2320/ > ----------------------------------------------------------- > > (Updated Aug. 1, 2014, 7:04 p.m.) > > > Review request for Default. > > > Repository: gem5 > > > Description > ------- > > Changeset 10264:c3977836244e > --------------------------- > sim: stopgap for race-conditions when using multiple EventQueues > > This patch fixes several race conditions that appear in multi- > threaded mode. Currently the decode cache race condition is > fixed only for x86, and in a temporary non-optimal fashion. We > still need to decide on a more optimal solution for the decode > cache and apply it to all the ISAs. > > > Diffs > ----- > > src/arch/x86/decoder.cc c00b5ba43967e7e48a28b7ddc48c9f4afaf2ab76 > src/base/refcnt.hh c00b5ba43967e7e48a28b7ddc48c9f4afaf2ab76 > src/base/trace.cc c00b5ba43967e7e48a28b7ddc48c9f4afaf2ab76 > src/sim/syscall_emul.cc c00b5ba43967e7e48a28b7ddc48c9f4afaf2ab76 > > Diff: http://reviews.gem5.org/r/2320/diff/ > > > Testing > ------- > > - Quick regression tests on x86, arm, alpha > - Made sure that sparc, power, mips can be built with this patch > - Tested using up to 28 EventQueues (28 threads) > > > Thanks, > > Martin Brown > > _______________________________________________ gem5-dev mailing list [email protected] http://m5sim.org/mailman/listinfo/gem5-dev
