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

Reply via email to