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