On Mon, 24 Feb 2014, Andreas Hansson wrote:

Hi Nilay,

Your last push seems to have broken at least one regression X86, 00.hello, simple-timing-ruby, as it currently segfaults. I suspect it is due to the fact that it tries to forward an address-range change without actually having a pio port connected. Perhaps there are more, this is merely the result of running the quick regressions for a few ISAs.

When looking closer at the code, I am also not sure what about the counting done in recvRangeChange, PioMasterPort in RubyPort.cc. A module may send out many of these updates, so counting does not seem safe to me. Have a look at mem/bus.cc for an example (that is even worse since we also have to deal with the default range).



The problem occurs because I had forgotten that we have interrupt controllers even in the SE mode, but we do not have any piobus. In SE mode also, the interrupt controller ports are connected to the ruby port like in the FS mode. Since there is no piobus, when ruby port tries inform someone about the range change, the simulation results in a segmentation fault. Earlier, the ruby port use to ignore the range change it received.

I'll push a change to rectify this problem.

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

Reply via email to