Ack On Tue, Sep 14, 2021 at 8:55 AM Jason Lowe-Power <[email protected]> wrote:
> Hi Gabe, > > It is reasonable to make the page size a parameter to the RubyPrefetcher > (and default to 4KiB). I would hesitate from making the "cross_page" > parameter implicit based on the page size parameter. IMO, that's confusing > and error prone. Also, this is the smallest change with the least chance of > unexpected consequences. > > Cheers, > Jason > > On Tue, Sep 14, 2021 at 2:15 AM Gabe Black via gem5-dev <[email protected]> > wrote: > >> Hi folks. I'm currently looking at getting rid of the arch/page_size.hh >> header file (123 change series for vecregs.hh waiting for review, needs >> attention from ARM next), and I have at least a good game plan to get rid >> of the usage of the PageShift and PageBytes constants in most places. >> >> The one tricky place I'm probably going to have the most trouble with are >> the prefetchers, both Ruby and classic, and in particular the Ruby one. In >> the classic prefetchers, only the queued prefetcher seems to care what the >> page size is. Also it only cares if there is a TLB associated with the >> prefetcher. If there is, then that's a pretty good ISA specific spot to >> feed in the page size information, and if it's missing nobody cares. I can >> handle that without affecting any existing functionality that is at least >> checked in upstream. >> >> On the Ruby side, there are three configs which both use the >> RubyPrefetcher object, and don't have it's "cross_page" property set to >> True, which makes (as far as I can tell) crossing page boundaries >> irrelevant. That one config is configs/ruby/MESI_Two_Level.py. >> >> Is it reasonable to make the page size to respect a config parameter on >> RubyPrefetcher? >> >> There are currently two parameters which are effectively related to page >> size, whether it's ok to cross page boundaries, and the System object which >> is only used to get the page size. Would it be reasonable to make that a >> single page size parameter, which if unset implicitly means page crossing >> is ok? >> >> I think from a configuration perspective this is maybe a little better, >> since maybe you want your prefetcher to work on some non standard page >> boundary for some reason. Maybe you're using lots of large pages or >> something. It is slightly more manual, since the system object is currently >> found automatically, and the page size is implicit with the system object. >> >> This implicitness is precisely the problem we have to fix though, since >> if there isn't an implicit global ISA to use with an implicit (but >> artificially forced) single page size to use, then there is no way for this >> setting to remain implicit. It would really just be a question of where the >> setting was/came from. >> >> Looking for input from Ruby people, and people that work with the memory >> system and setups where the prefetcher is an important consideration in >> that system. >> >> Gabe >> _______________________________________________ >> gem5-dev mailing list -- [email protected] >> To unsubscribe send an email to [email protected] >> %(web_page_url)slistinfo%(cgiext)s/%(_internal_name)s > >
_______________________________________________ gem5-dev mailing list -- [email protected] To unsubscribe send an email to [email protected] %(web_page_url)slistinfo%(cgiext)s/%(_internal_name)s
