As you wish. But remember that this is not official fix.
This stalls a store_xact until the corresponding log store hits.
It works, but may bring a penalty to the overall performance. Because
the log should only be needed when aborting and should not cause stall
in normal situation.
Index: SimicsProcessor.C
===================================================================
--- SimicsProcessor.C (revision 16)
+++ SimicsProcessor.C (revision 17)
@@ -400,6 +400,7 @@
// update the request status
m_active_requests[idx].status = Serving;
+ int log_hit = 1;
// Log in cache
if(request.m_Type == CacheRequestType_ST_XACT){
@@ -449,6 +450,7 @@
false);
assert(m_sequencer->isReady(logMsg));
m_sequencer->makeRequest(logMsg);
+ log_hit = m_active_requests[log_idx].status == Done;
m_xact_mgr->incrementLogPointer();
} else {
// dup request, do nothing
@@ -461,7 +463,7 @@
//cout << " " << m_xact_mgr->getID() << " issuing: " << request.getType() << endl;
m_sequencer->makeRequest(request);
- if (m_active_requests[idx].status == Done) {
+ if (m_active_requests[idx].status == Done && log_hit) {
// This case is for the fast path. That is, the data is in our
// cache with the correct permissions.
> -----Original Message-----
> From: gems-users-bounces@xxxxxxxxxxx [mailto:gems-users-bounces@xxxxxxxxxxx]
> On Behalf Of yoo@xxxxxxxxxxxxxx
> Sent: Wednesday, January 24, 2007 3:32 AM
> To: Gems Users
> Subject: Re: [Gems-users] LogTM: failed assertion 'isReady(request)'
>
> That I already know of.
>
> Can you be more specific?
> Like which part of the code should be modified how?
>
> I appreciate your help.
>
>
> -Richard
>
>
> On Tue, January 23, 2007 11:47 am, ¹ùÈñ wrote:
> > This is a known issue. But the fix has not been released yet.
> > It's quit easy to fix it on your own. I have succeeded running radix
> > kernel on Ruby. Good luck!
> >
> > Reason:
> > a bug in SimicsProcessor.makeRequest that cause assertion failure when a
> > transaction store hits but the corresponding log store misses. In such a
> > situation, the processor will not stall, and flushes the active request
> > for the log store. When the log store hits later, an assertion failure
> > would arise.
> >
> >> -----Original Message-----
> >> From: gems-users-bounces@xxxxxxxxxxx
> >>
> > [mailto:gems-users-bounces@xxxxxxxxxxx]
> >
> >> On Behalf Of yoo@xxxxxxxxxxxxxx
> >> Sent: Tuesday, January 23, 2007 3:32 AM
> >> To: gems-users@xxxxxxxxxxx
> >> Subject: [Gems-users] LogTM: failed assertion 'isReady(request)'
> >>
> >>
> >> Hi,
> >>
> >>
> >> I've been trying to run SPLASH-2 benchmark suite on LogTM by changing
> >> coarse-grained locks into transactions. However, for most of the
> >> applications I get the following error:
> >>
> >> failed assertion 'isReady(request)' at fn void
> >> Sequencer::makeRequest(const CacheMsg&) in system/Sequencer.C:487
> >> failed assertion 'isReady(request)' at fn void
> >> Sequencer::makeRequest(const CacheMsg&) in system/Sequencer.C:487
> >> At this point you might want to attach a debug to the running and get to
> >>
> > the
> >> crash site; otherwise press enter to continue
> >>
> >> I know this issue has been discussed before, but was the fixed
> >> released? I'm using GEMS release 1.3.1. The above error occurred with
> >> both SIMICS 2.2.19 and 3.0.22.
> >>
> >>
> >> Please let me know
> >>
> >>
> >>
> >> -Richard
> >>
> >>
> >> _______________________________________________
> >> Gems-users mailing list
> >> Gems-users@xxxxxxxxxxx
> >> https://lists.cs.wisc.edu/mailman/listinfo/gems-users
> >> Use Google to search the GEMS Users mailing list by adding
> >> "site:https://lists.cs.wisc.edu/archive/gems-users/" to your search.
> >>
> >
> > _______________________________________________
> > Gems-users mailing list
> > Gems-users@xxxxxxxxxxx
> > https://lists.cs.wisc.edu/mailman/listinfo/gems-users
> > Use Google to search the GEMS Users mailing list by adding
> > "site:https://lists.cs.wisc.edu/archive/gems-users/" to your search.
> >
> >
> >
>
>
> _______________________________________________
> Gems-users mailing list
> Gems-users@xxxxxxxxxxx
> https://lists.cs.wisc.edu/mailman/listinfo/gems-users
> Use Google to search the GEMS Users mailing list by adding
> "site:https://lists.cs.wisc.edu/archive/gems-users/" to your search.
|