Andreas, in the file src/mem/protocol/MOESI_hammer-dir.sm, set the access
permission for state WB_E_W to Read_Write, instead of Busy, the current
set permission. See if this helps in removing the error.

--
Nilay

On Mon, January 9, 2012 7:58 am, Andreas Hansson wrote:
> Is your suggestion to live with the failing regression at the moment? To
> put it differently: is there something I can/must do to assist with
> solving this issue or can I keep on going and leave this to a Ruby-expert
> (read Brad or Nilay) to sort out?
>
> Andreas
>
> -----Original Message-----
> From: Beckmann, Brad [mailto:brad.beckm...@amd.com]
> Sent: 06 January 2012 23:58
> To: Nilay Vaish
> Cc: Andreas Hansson; Ali Saidi; gem5 Developer List (gem5-dev@gem5.org)
> Subject: RE: [gem5-dev] One failing Ruby regression after memory-system
> patches
>
>>
>> I think we should try to understand as to why this problem is occurring
>> in first
>> place. Andreas, in one of the earlier emails, mentioned that these
>> memory-
>> system patches do not introduce any timing changes. The only other
>> reason I
>> can think of why this test is failing, is that these accesses did not
>> used to go
>> through Ruby earlier. This seems strange, but may be that is true.
>>
>
> The problem occurs because of a race between timing requests and function
> requests that come an emulated system call that doesn't appear to have
> been modified in years.  I doubt there is anything in Andreas's patches
> that directly cause this problem.  They probably just reorder the requests
> in a particular way that now cause the rare race to occur with the hammer
> protocol.  Having a functional access race with a timing writeback seems
> like a very rare situation.  I'm not surprised we haven't seen this
> before.
>
>> Andreas, is it possible for you to figure out what particular change in
>> the
>> memory system is making this test fail?
>>
>> Whether or not that particular state can have Read_Write permissions
>> depends on the protocol itself. A quick glance tells me that it might be
>> all
>> right to change the permissions in this case. We might want to switch to
>> a
>> single copy of each cache block in order to avoid this problem. Do we
>> really
>> need the data to reside in the interconnection network to carry out a
>> simulation? Can we not have fake data in the network and the actual data
>> always resides at one single place?
>>
> I'd rather not remove data from the interconnect.  That is certainly not
> in the spirit of "execute at execute".  Having data exist in one single
> place is what we do today with Ruby's backing copy of physmem.  If we have
> data always reside in one single place, then we might as well remove all
> of Ruby's functional access support and go back to just sending all
> functional accesses to physmem.
>
> For the particular problem we're seeing today, data is not stuck in the
> interconnection network.  Rather it is just stuck in the DRAM request
> queue that simulates the timing of the DRAM interface.  The data itself
> has already been written to DirectoryMemory.
>
> Overall, I'm not happy with any solution that comes to my mind.  I don't
> like having to deal with these problems one-by-one, nor do I want to
> remove Ruby's functional access support.  I also don't want to have to
> build some sort of complicated mechanism that tries to identify valid data
> floating in any Ruby buffer (network, DRAM, etc.) because I don't see how
> one can do that without putting a lot of burden/restriction on the
> protocol writer.
>
> Brad
>
>
>
>
> -- IMPORTANT NOTICE: The contents of this email and any attachments are
> confidential and may also be privileged. If you are not the intended
> recipient, please notify the sender immediately and do not disclose the
> contents to any other person, use it for any purpose, or store or copy the
> information in any medium.  Thank you.
>
>

_______________________________________________
gem5-dev mailing list
gem5-dev@gem5.org
http://m5sim.org/mailman/listinfo/gem5-dev

Reply via email to