> On 2011-03-24 08:58:15, Brad Beckmann wrote:
> > src/mem/ruby/system/Sequencer.cc, line 541
> > <http://reviews.m5sim.org/r/552/diff/6/?file=11209#file11209line541>
> >
> >     I thought we concluded that Flush requests can callback the RubyPort?  
> > As long as needsResponse is set to false, the cpu should never see the 
> > packet which is what we want.  Right now, I think you have a memory leak 
> > because the Flush packets are never deleted.  Please correct me if I'm 
> > missing something.
> 
> Somayeh Sardashti wrote:
>     ruby_hit_callback calls RubyPort::M5Port::hitCallback. Then, as we set 
> accessPhysMem to False for flush requests, it will call         
> pkt->makeResponse(), which should not be called, so its assertion on 
> needsResponse will fail. Should I change this condition (in RubyPort.cc line 
> 365)?
>

Not exactly, we should change the if (accessPhysMem) else statement in 
RubyPort::M5Port::hitCallback, to the following:


    if (accessPhysMem) {
        ruby_port->physMemPort->sendAtomic(pkt);
    } else if (needsResponse) {
        pkt->makeResponse();
    }


> On 2011-03-24 08:58:15, Brad Beckmann wrote:
> > src/mem/ruby/system/Sequencer.cc, line 396
> > <http://reviews.m5sim.org/r/552/diff/6/?file=11209#file11209line396>
> >
> >     I don't think you need to separately handle Flush request.  I believe 
> > the current implmementation of handleLlsc should always return true for 
> > Flush requests.  Please remove this change.
> 
> Somayeh Sardashti wrote:
>     handleLlsc accesses the cache entry ((m_dataCache_ptr->isLocked(address, 
> m_version)), however in case of cache flushes, we keep the line in TBE and 
> deallocate the cache entry. Therefore, regular implementation of handleLlsc 
> does not work properly with Flush requests (gives an error when it tries to 
> access the cache entry as it does not exist). I can add a condition inside 
> this function to return True for Flush requests, what do you think?

Ah, I see.  Yes, we should add a m_dataCache_ptr->isTagPresent() check before 
that m_dataCache_ptr->isLocked(address, m_version) test.


- Brad


-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
http://reviews.m5sim.org/r/552/#review1009
-----------------------------------------------------------


On 2011-03-23 22:28:01, Somayeh Sardashti wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> http://reviews.m5sim.org/r/552/
> -----------------------------------------------------------
> 
> (Updated 2011-03-23 22:28:01)
> 
> 
> Review request for Default and Brad Beckmann.
> 
> 
> Summary
> -------
> 
> my initial implementation of cache flushing
> 
> 
> Diffs
> -----
> 
>   configs/example/ruby_random_test.py baf4b5f6782e 
>   src/cpu/testers/rubytest/Check.hh baf4b5f6782e 
>   src/cpu/testers/rubytest/Check.cc baf4b5f6782e 
>   src/cpu/testers/rubytest/RubyTester.hh baf4b5f6782e 
>   src/cpu/testers/rubytest/RubyTester.cc baf4b5f6782e 
>   src/cpu/testers/rubytest/RubyTester.py baf4b5f6782e 
>   src/mem/packet.hh baf4b5f6782e 
>   src/mem/packet.cc baf4b5f6782e 
>   src/mem/protocol/MOESI_hammer-cache.sm baf4b5f6782e 
>   src/mem/protocol/MOESI_hammer-dir.sm baf4b5f6782e 
>   src/mem/protocol/MOESI_hammer-msg.sm baf4b5f6782e 
>   src/mem/protocol/RubySlicc_Exports.sm baf4b5f6782e 
>   src/mem/ruby/slicc_interface/RubyRequest.hh baf4b5f6782e 
>   src/mem/ruby/slicc_interface/RubyRequest.cc baf4b5f6782e 
>   src/mem/ruby/system/DMASequencer.cc baf4b5f6782e 
>   src/mem/ruby/system/RubyPort.cc baf4b5f6782e 
>   src/mem/ruby/system/Sequencer.cc baf4b5f6782e 
> 
> Diff: http://reviews.m5sim.org/r/552/diff
> 
> 
> Testing
> -------
> 
> This implementation has passed 10,000,000 ruby test cases, and the 
> MOESI_hammer regression tests.
> 
> 
> Thanks,
> 
> Somayeh
> 
>

_______________________________________________
m5-dev mailing list
[email protected]
http://m5sim.org/mailman/listinfo/m5-dev

Reply via email to