Sequencer.cc (9224:b0539d08bda8) | Sequencer.cc (9245:e215ee9db617) |
---|---|
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; --- 71 unchanged lines hidden (view full) --- 80 81Sequencer::~Sequencer() 82{ 83} 84 85void 86Sequencer::wakeup() 87{ | 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; --- 71 unchanged lines hidden (view full) --- 80 81Sequencer::~Sequencer() 82{ 83} 84 85void 86Sequencer::wakeup() 87{ |
88 assert(getState() != SimObject::Draining); 89 |
|
88 // Check for deadlock of any of the requests 89 Time current_time = g_system_ptr->getTime(); 90 91 // Check across all outstanding requests 92 int total_outstanding = 0; 93 94 RequestTable::iterator read = m_readRequestTable.begin(); 95 RequestTable::iterator read_end = m_readRequestTable.end(); --- 106 unchanged lines hidden (view full) --- 202// the entry was already present. 203RequestStatus 204Sequencer::insertRequest(PacketPtr pkt, RubyRequestType request_type) 205{ 206 assert(m_outstanding_count == 207 (m_writeRequestTable.size() + m_readRequestTable.size())); 208 209 // See if we should schedule a deadlock check | 90 // Check for deadlock of any of the requests 91 Time current_time = g_system_ptr->getTime(); 92 93 // Check across all outstanding requests 94 int total_outstanding = 0; 95 96 RequestTable::iterator read = m_readRequestTable.begin(); 97 RequestTable::iterator read_end = m_readRequestTable.end(); --- 106 unchanged lines hidden (view full) --- 204// the entry was already present. 205RequestStatus 206Sequencer::insertRequest(PacketPtr pkt, RubyRequestType request_type) 207{ 208 assert(m_outstanding_count == 209 (m_writeRequestTable.size() + m_readRequestTable.size())); 210 211 // See if we should schedule a deadlock check |
210 if (deadlockCheckEvent.scheduled() == false) { | 212 if (!deadlockCheckEvent.scheduled() && getState() != SimObject::Draining) { |
211 schedule(deadlockCheckEvent, 212 g_system_ptr->clockPeriod() * m_deadlock_threshold + curTick()); 213 } 214 215 Address line_addr(pkt->getAddr()); 216 line_addr.makeLineAddress(); 217 // Create a default entry, mapping the address to NULL, the cast is 218 // there to make gcc 4.4 happy --- 519 unchanged lines hidden --- | 213 schedule(deadlockCheckEvent, 214 g_system_ptr->clockPeriod() * m_deadlock_threshold + curTick()); 215 } 216 217 Address line_addr(pkt->getAddr()); 218 line_addr.makeLineAddress(); 219 // Create a default entry, mapping the address to NULL, the cast is 220 // there to make gcc 4.4 happy --- 519 unchanged lines hidden --- |