> On June 25, 2014, 2 p.m., Andreas Hansson wrote: > > Perhaps I am missing something, but why would Ruby forward the packet to > > the iobus in the first place if the address is not valid? > > Steve Reinhardt wrote: > This is an FS thing, where you misspeculate in the kernel and generate a > bogus address in the TLB bypass region, so you have no way of knowing a > priori that it's not valid. Normally what happens is you get a "bad address" > response from the memory bus, which flags the access as a fault, but you > never take the fault because the access gets squashed. Since Ruby doesn't > use the memory bus, but sends all non-cacheable requests to the I/O bus, we > just need to reproduce that behavior there. > > Andreas Hansson wrote: > Thanks for the clarification. Perhaps this is too heavy weight, but is > there any chance Ruby could actually check the address range of the port > connected to the piobus before forwarding the packet? > > Steve Reinhardt wrote: > I suppose anything is possible ;). Is there a reason you'd prefer that > solution? > > Andreas Hansson wrote: > It is mostly down to symmetry. It would be nice to keep things the same > way for the Ruby vs not-Ruby case. If it's more than a few lines of code to > be added to Ruby, then let's go with the original idea.
this is the symmetrical thing to do. For classic it's set on the membus. - Ali ----------------------------------------------------------- This is an automatically generated e-mail. To reply, visit: http://reviews.gem5.org/r/2302/#review5156 ----------------------------------------------------------- On June 21, 2014, 4:53 p.m., Steve Reinhardt wrote: > > ----------------------------------------------------------- > This is an automatically generated e-mail. To reply, visit: > http://reviews.gem5.org/r/2302/ > ----------------------------------------------------------- > > (Updated June 21, 2014, 4:53 p.m.) > > > Review request for Default. > > > Repository: gem5 > > > Description > ------- > > Changeset 10239:ef2bd7e9922c > --------------------------- > x86: make PioBus return BadAddress errors > > Stop setting the use_default_range flag in PioBus in order to > have random bad addresses result in a BadAddress response and > not a gem5 fatal error. This is necessary in Ruby as Ruby is > connected directly to PioBus, so misspeculated addresses will > be sent there directly. For the classic memory system, this > change has no effect, as bad addresses are caught by the > memory bus before being sent to the PioBus. > > This work was done while Binh was an intern at AMD Research. > > > Diffs > ----- > > src/dev/x86/Pc.py b21b3aad6bd1d01ac8a4d8030479bbca417af8d1 > > Diff: http://reviews.gem5.org/r/2302/diff/ > > > Testing > ------- > > > Thanks, > > Steve Reinhardt > > _______________________________________________ gem5-dev mailing list [email protected] http://m5sim.org/mailman/listinfo/gem5-dev
