> On Aug. 7, 2015, 4:51 a.m., Steve Reinhardt wrote: > > I confess to being confused by this patch---I thought the focus of the > > prior discussion was on all the flags in the Request object, but this > > change doesn't touch Request at all. > > > > Note that, unlike Request flags, MemCmd attributes have no storage > > overhead, as they're just enum values. So I don't think there's much > > savings in getting rid of them. They also enable more orthogonality in the > > cache code. While none of the removed attributes is currently used in more > > than one command, I think it's pretty easy to imagine that the Prefetch > > flags could get reused if we introduced an exclusive prefetch, or > > implemented the MMX non-temporal prefetch instructions, or some other > > variant form of prefetch. It might even be the case that we could > > implement an exclusive prefetch today just by defining a new command that > > has both IsSWPrefetch and NeedsExclusive set. (OK, it's pretty optimistic > > to think that would work out of the box, but that's the kind of thing this > > structure is supposed to enable.) > > > > Now the Request flags are another story in more ways than one... but I'll > > respond to that on the other thread.
This addresses the (5) item in my mail, not any of the other point. I merely wanted to get the discussion going. The point here is not to save storage, but to _not_ convolute how we use the attributes. We can add a "Prefetch" attribute, as you suggest, but no one would currently be using it. Note that the cache checks for _software_ prefetch request. If there is a need for a flag, I'd say let's add it when the need arises. I am in no way against useful attributes. Really I wanted to show that there has been a bunch of cruft added based on copy-paste, and before adding more of the same, I'd rather get to a point where we agree on the usage (and document it :-). I am happy to scrap this patch if there is disagreement. I wanted to highlight what is bugging me... - Andreas ----------------------------------------------------------- This is an automatically generated e-mail. To reply, visit: http://reviews.gem5.org/r/3004/#review6909 ----------------------------------------------------------- On Aug. 6, 2015, 9:41 p.m., Andreas Hansson wrote: > > ----------------------------------------------------------- > This is an automatically generated e-mail. To reply, visit: > http://reviews.gem5.org/r/3004/ > ----------------------------------------------------------- > > (Updated Aug. 6, 2015, 9:41 p.m.) > > > Review request for Default. > > > Repository: gem5 > > > Description > ------- > > Changeset 11004:e6aa2b4cfbef > --------------------------- > mem: Cleanup packet attributes and rely on command type > > This patch takes one step further in cleaning up the use of packet > command attributes, and shifts away from using attributes to > distinguish a single command. The commands affected are software > prefetch requests and flush requests. There is really no use for > attributes, as no other request packets share this property. > > Instead of looking at the attribute, the locations that identified > these packets now check for the actual command. > > > Diffs > ----- > > src/mem/cache/cache_impl.hh 4413195267fd > src/mem/packet.hh 4413195267fd > src/mem/packet.cc 4413195267fd > src/mem/ruby/system/DMASequencer.cc 4413195267fd > src/mem/ruby/system/RubyPort.cc 4413195267fd > src/mem/ruby/system/Sequencer.cc 4413195267fd > > Diff: http://reviews.gem5.org/r/3004/diff/ > > > Testing > ------- > > > Thanks, > > Andreas Hansson > > _______________________________________________ gem5-dev mailing list gem5-dev@gem5.org http://m5sim.org/mailman/listinfo/gem5-dev