summaryrefslogtreecommitdiff
path: root/src/mem/ruby
diff options
context:
space:
mode:
authorAndreas Sandberg <andreas.sandberg@arm.com>2015-09-01 15:28:44 +0100
committerAndreas Sandberg <andreas.sandberg@arm.com>2015-09-01 15:28:44 +0100
commit53001e6e09d31063784c408f0f35caad45afeef1 (patch)
treed2ca3f7954966ee5c6b559eacae0eebec6978842 /src/mem/ruby
parent0572dc3c6eca3acd6fc4e2e34607bd5d0ab67829 (diff)
downloadgem5-53001e6e09d31063784c408f0f35caad45afeef1.tar.xz
dev: Remove auto-serialization dependency in EtherLink
EtherLink currently uses a fire-and-forget link delay event that delays sending of packets by a fixed number of ticks. In order to serialize this event, it relies on the event queue's auto serialization support. However, support for event auto serialization has been broken for more than two years, which means that checkpoints of multi-system setups are likely to drop in-flight packets. This changeset the replaces rewrites this part of the EtherLink to use a packet queue instead. The queue contains a (tick, packet) tuple. The tick indicates when the packet will be ready. Instead of relying on event autoserialization, we now explicitly serialize the packet queue in the EhterLink::Link class. Note that this changeset changes the way in-flight packages are serialized. Old checkpoints will still load, but in-flight packets will be dropped (just as before). There has been no attempt to upgrade checkpoints since this would actually change the behavior of existing checkpoints.
Diffstat (limited to 'src/mem/ruby')
0 files changed, 0 insertions, 0 deletions