summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDerek Hower <drh5@cs.wisc.edu>2009-07-08 08:40:32 -0500
committerDerek Hower <drh5@cs.wisc.edu>2009-07-08 08:40:32 -0500
commit15afc87f7cb5994c308422d2b01e1c0723a07e5e (patch)
tree7993fb61ca8ee4ce54c12854d3ea31a666ab0940
parent6a83bd5a03b7597b04ff447e232166a8afcaf402 (diff)
downloadgem5-15afc87f7cb5994c308422d2b01e1c0723a07e5e.tar.xz
slicc: fixed MI_example bug. The directory wasn't deallocating the TBE, leading to a leak. Also increased the default max TBE size to 256 to allow memtest to pass the regression.
-rw-r--r--src/mem/protocol/MI_example-dir.sm12
-rw-r--r--src/mem/ruby/config/defaults.rb2
2 files changed, 7 insertions, 7 deletions
diff --git a/src/mem/protocol/MI_example-dir.sm b/src/mem/protocol/MI_example-dir.sm
index 29678ffc4..a275e4b8d 100644
--- a/src/mem/protocol/MI_example-dir.sm
+++ b/src/mem/protocol/MI_example-dir.sm
@@ -528,14 +528,15 @@ machine(Directory, "Directory protocol") : LATENCY_TO_MEM_CTRL_LATENCY LATENCY_D
transition(I, DMA_WRITE, ID_W) {
- dw_writeDMAData;
-// da_sendDMAAck;
+ v_allocateTBE;
qw_queueMemoryWBRequest_partial;
p_popIncomingDMARequestQueue;
}
transition(ID_W, Memory_Ack, I) {
+ dwt_writeDMADataFromTBE;
da_sendDMAAck;
+ w_deallocateTBE;
l_popMemQueue;
}
@@ -548,7 +549,7 @@ machine(Directory, "Directory protocol") : LATENCY_TO_MEM_CTRL_LATENCY LATENCY_D
drp_sendDMAData;
c_clearOwner;
a_sendWriteBackAck;
- // d_deallocateDirectory;
+ d_deallocateDirectory;
i_popIncomingRequestQueue;
}
@@ -561,7 +562,6 @@ machine(Directory, "Directory protocol") : LATENCY_TO_MEM_CTRL_LATENCY LATENCY_D
transition(M_DWR, PUTX, M_DWRI) {
qw_queueMemoryWBRequest_partialTBE;
c_clearOwner;
- w_deallocateTBE;
i_popIncomingRequestQueue;
}
@@ -570,6 +570,7 @@ machine(Directory, "Directory protocol") : LATENCY_TO_MEM_CTRL_LATENCY LATENCY_D
l_sendWriteBackAck;
da_sendDMAAck;
w_deallocateTBE;
+ d_deallocateDirectory;
l_popMemQueue;
}
@@ -583,7 +584,6 @@ machine(Directory, "Directory protocol") : LATENCY_TO_MEM_CTRL_LATENCY LATENCY_D
c_clearOwner;
v_allocateTBEFromRequestNet;
l_queueMemoryWBRequest;
- d_deallocateDirectory;
i_popIncomingRequestQueue;
}
@@ -591,6 +591,7 @@ machine(Directory, "Directory protocol") : LATENCY_TO_MEM_CTRL_LATENCY LATENCY_D
w_writeDataToMemoryFromTBE;
l_sendWriteBackAck;
w_deallocateTBE;
+ d_deallocateDirectory;
l_popMemQueue;
}
@@ -601,7 +602,6 @@ machine(Directory, "Directory protocol") : LATENCY_TO_MEM_CTRL_LATENCY LATENCY_D
transition(I, PUTX_NotOwner, I) {
b_sendWriteBackNack;
- d_deallocateDirectory;
i_popIncomingRequestQueue;
}
diff --git a/src/mem/ruby/config/defaults.rb b/src/mem/ruby/config/defaults.rb
index fb7d61060..9143cb21e 100644
--- a/src/mem/ruby/config/defaults.rb
+++ b/src/mem/ruby/config/defaults.rb
@@ -12,7 +12,7 @@ class NetPort < LibRubyObject
default_param :buffer_size, Integer, 32
# added by SS for TBE
- default_param :number_of_TBEs, Integer, 128
+ default_param :number_of_TBEs, Integer, 256
default_param :recycle_latency, Integer, 10
end