> 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.

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?


- Andreas


-----------------------------------------------------------
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

Reply via email to