Re: [Gems-users] PRIV_MODE conflict with Store_XACT


Date: Thu, 22 Jan 2009 18:49:50 +0100
From: mlupon@xxxxxxxxxx
Subject: Re: [Gems-users] PRIV_MODE conflict with Store_XACT
Hi Lois,

Memory actions that are performed inside system calls set the PRIV_MODE flag to
true. A cache memory request is an escape action when it executes handler code
inside a transaction (abort recovery) or when a memory instruction has the
PRIV_MODE flag set to true. When an L1 receives an escape action, it generates
a special request message to the directory (GET?_ESCAPE), which forwards the
request to the remote cache. When a remote cache receives the message
(Fwd_GET?_ESCAPE), it generates a non-transactional event (Fwd_GET?), so the
remote cache doesn't check signatures to detect conflicts. I guess that it is
done to avoid aborting or stalling a transaction in the middle of a system
call.

However, a transaction may execute a system call (malloc?), which may produce
some conflict with an existing transaction (some data allocated in the same
line?). In that case, the conflict is not detected by the coherence protocol,
but transactional isolation is broken. That's the reason why an error message
appears.

A correct solution should be to abort the remote transaction and send the old
line to the requester after the abort recovery. But there are more solutions.
You can stall the requester, track the conflict, and abort the transaction (if
it is a transaction) after the system call.

Regards,

Marc

> Hi list,
>
> I'm modifying the logTM protocol, and I have a problem with the escape
> actions. Sometimes escape actions conflicts with store_XACT accesses
> when escape actions are stores in PRIV_MODE. I read in
> https://lists.cs.wisc.edu/archive/gems-users/2008-December/msg00011.shtml
> this:
>
> Finally, Labyrinth (and I think that sometimes other STAMP benchmarks)
> presents
> some conflicts between Escape (stores in PRIV_MODE) and Store_XACT accesses.
> These Escape accesses are treated as non-transactional stores in the
> coherence
> protocol, which may produce inconsistency. I addressed this problem by
> changing
> the coherence protocol and the conflict resolution policy to abort
> transactions
> that conflict with these Escape Actions.
>
>
> Somebody can explain me this a little better? When an Why the PRIV_MODE is
> produced?. I'm using the barnes benchmark. Is a good solution abort
> transactions with this conflicts?
>
>
> Thanks a lot
> Lois
>
[← Prev in Thread] Current Thread [Next in Thread→]