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
