----------------------------------------------------------- This is an automatically generated e-mail. To reply, visit: http://reviews.gem5.org/r/2826/#review6647 -----------------------------------------------------------
Firstly, thanks for this patch, this is really nice work. I have only done a cursory review of this patch so I'm still looking over the code in more detail, but I thought I'd share some of my initial thoughts to get the conversation going on this since it seems to have stagnated. Reiterating Nilay's point: there are a lot of style issues that need to be fixed. It seems like this would be useful for large-scale systems, but could you give some idea how easily one could derive from the multi link/iface objects for use with a multi-threaded aproach, thereby avoiding socket-based communication? E.g., if I wanted to model small/medium scale distributed systems consisting of ~10s of nodes on a single host machine. It would be nice if multi-gem5 and a multi-threaded approached were unified and built off the same base classes. For the TCP server, have you thought about an event-based approach, i.e., libevent or libev as opposed to using poll()? - Tony Gutierrez On June 24, 2015, 4:56 p.m., Curtis Dunham wrote: > > ----------------------------------------------------------- > This is an automatically generated e-mail. To reply, visit: > http://reviews.gem5.org/r/2826/ > ----------------------------------------------------------- > > (Updated June 24, 2015, 4:56 p.m.) > > > Review request for Default. > > > Repository: gem5 > > > Description > ------- > > Multi gem5 is an extension to gem5 to enable parallel simulation of a > distributed system (e.g. simulation of a pool of machines > connected by Ethernet links). A multi gem5 run consists of seperate gem5 > processes running in parallel (potentially on different hosts/slots on > a cluster). Each gem5 process executes the simulation of a component of the > simulated distributed system (e.g. a multi-core board with an Ethernet NIC). > > The patch implements the "distributed" Ethernet link device > (dev/src/multi_etherlink.[hh.cc]). This device will send/receive > (simulated) Ethernet packets to/from peer gem5 processes. The interface > to talk to the peer gem5 processes is defined in dev/src/multi_iface.hh and > in tcp_iface.hh. > > There is also a central message server process (util/multi/tcp_server.[hh,cc]) > which acts like an Ethernet switch and transfers messages among the gem5 > peers. > > A multi gem5 simulations can be kicked off by the util/multi/gem5-multi.sh > wrapper script. > > Checkpoint support will follow in a subsequent patch. > > > Diffs > ----- > > src/dev/Ethernet.py d02b45a554b52c68cce41e1b3895fb8582a639dd > src/dev/SConscript d02b45a554b52c68cce41e1b3895fb8582a639dd > src/dev/etherpkt.hh d02b45a554b52c68cce41e1b3895fb8582a639dd > src/dev/etherpkt.cc d02b45a554b52c68cce41e1b3895fb8582a639dd > src/dev/multi_etherlink.hh PRE-CREATION > src/dev/multi_etherlink.cc PRE-CREATION > src/dev/multi_iface.hh PRE-CREATION > src/dev/multi_iface.cc PRE-CREATION > src/dev/multi_packet.hh PRE-CREATION > src/dev/multi_packet.cc PRE-CREATION > src/dev/tcp_iface.hh PRE-CREATION > src/dev/tcp_iface.cc PRE-CREATION > util/multi/Makefile PRE-CREATION > util/multi/bootscript.rcS PRE-CREATION > util/multi/gem5-multi.sh PRE-CREATION > util/multi/tcp_server.hh PRE-CREATION > util/multi/tcp_server.cc PRE-CREATION > > Diff: http://reviews.gem5.org/r/2826/diff/ > > > Testing > ------- > > > Thanks, > > Curtis Dunham > > _______________________________________________ gem5-dev mailing list [email protected] http://m5sim.org/mailman/listinfo/gem5-dev
