Sequencer.cc (8615:e66a566f2cfa) Sequencer.cc (8641:4d3ecac1abec)
1/*
2 * Copyright (c) 1999-2008 Mark D. Hill and David A. Wood
3 * All rights reserved.
4 *
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions are
7 * met: redistributions of source code must retain the above copyright
8 * notice, this list of conditions and the following disclaimer;

--- 207 unchanged lines hidden (view full) ---

216 << " deadlock_threshold: " << m_deadlock_threshold << endl;
217}
218
219// Insert the request on the correct request table. Return true if
220// the entry was already present.
221RequestStatus
222Sequencer::insertRequest(PacketPtr pkt, RubyRequestType request_type)
223{
1/*
2 * Copyright (c) 1999-2008 Mark D. Hill and David A. Wood
3 * All rights reserved.
4 *
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions are
7 * met: redistributions of source code must retain the above copyright
8 * notice, this list of conditions and the following disclaimer;

--- 207 unchanged lines hidden (view full) ---

216 << " deadlock_threshold: " << m_deadlock_threshold << endl;
217}
218
219// Insert the request on the correct request table. Return true if
220// the entry was already present.
221RequestStatus
222Sequencer::insertRequest(PacketPtr pkt, RubyRequestType request_type)
223{
224 int total_outstanding =
225 m_writeRequestTable.size() + m_readRequestTable.size();
224 assert(m_outstanding_count ==
225 (m_writeRequestTable.size() + m_readRequestTable.size()));
226
226
227 assert(m_outstanding_count == total_outstanding);
228
229 // See if we should schedule a deadlock check
230 if (deadlockCheckEvent.scheduled() == false) {
231 schedule(deadlockCheckEvent, m_deadlock_threshold + curTick());
232 }
233
234 Address line_addr(pkt->getAddr());
235 line_addr.makeLineAddress();
236 if ((request_type == RubyRequestType_ST) ||

--- 43 unchanged lines hidden (view full) ---

280 } else {
281 // There is an outstanding read request for the cache line
282 m_load_waiting_on_load_cycles++;
283 return RequestStatus_Aliased;
284 }
285 }
286
287 g_system_ptr->getProfiler()->sequencerRequests(m_outstanding_count);
227 // See if we should schedule a deadlock check
228 if (deadlockCheckEvent.scheduled() == false) {
229 schedule(deadlockCheckEvent, m_deadlock_threshold + curTick());
230 }
231
232 Address line_addr(pkt->getAddr());
233 line_addr.makeLineAddress();
234 if ((request_type == RubyRequestType_ST) ||

--- 43 unchanged lines hidden (view full) ---

278 } else {
279 // There is an outstanding read request for the cache line
280 m_load_waiting_on_load_cycles++;
281 return RequestStatus_Aliased;
282 }
283 }
284
285 g_system_ptr->getProfiler()->sequencerRequests(m_outstanding_count);
288 total_outstanding = m_writeRequestTable.size() + m_readRequestTable.size();
289 assert(m_outstanding_count == total_outstanding);
286 assert(m_outstanding_count ==
287 (m_writeRequestTable.size() + m_readRequestTable.size()));
290
291 return RequestStatus_Ready;
292}
293
294void
295Sequencer::markRemoved()
296{
297 m_outstanding_count--;

--- 429 unchanged lines hidden ---
288
289 return RequestStatus_Ready;
290}
291
292void
293Sequencer::markRemoved()
294{
295 m_outstanding_count--;

--- 429 unchanged lines hidden ---