Tags: sultatos/shadow
Tags
Tagging pre-release v1.13.1 This release mostly focuses on fixes. It includes improvements to: - network and retransmission - deterministic simulation - performance improvements in epoll - support for shutdown() - support for file reading - bugfix on longest prefix matching - bootstrap mode This is a pre-release and as such, bugs may be present in the code.
Tagging new release v1.12.0 This is the first release in the v1.12.x series and may have bugs. Please use with caution and report bugs if you find them. This release contains a new loader, a new high-performance logging system, and a new event scheduling and load balancing algorithms. New loader ---------- This release contains significant changes to the plug-in build and runtime systems. We introduce a new loader, called elf-loader, that will load plug-ins into their own namespace for each node in the simulation. As a result, applications that are run in Shadow are completely independent of one another, including library dependencies. This should allow for less lock contention: for example, thousands of nodes running Tor+libevent+openssl are no longer sharing libevent and openssl and so no longer need to lock accesses to the corresponsing global variables. High-performance Logging ------------------------ A new logging facility was written to replace the GLib logger, which itself was using a global lock that harms Shadow performance when using multiple Shadow worker threads. The new logger is thread-aware and minimizes thread contention. Scheduling Framework -------------------- A new modular scheduling framework is introduced that allows for the implementation of a variety of scheduling policies. Several policies have been implemented in an attempt to reduce thread contention. One such policy introduces the ability of idle threads to dynamically process work from other busy threads, thanks to plug-in migration support from the new elf-loader. Several other improvements have been made; in particular, several new test cases have been implemented and bugs found using those tests have been fixed. Finally, the project layout has changed a bit to better incorporate the changing codebase.
PreviousNext