Re: [Gems-users] confused by a comment in the MOESI LogTM code


Date: Tue, 23 Jan 2007 11:22:56 -0600
From: Kevin Moore <kmoore@xxxxxxxxxxx>
Subject: Re: [Gems-users] confused by a comment in the MOESI LogTM code
G.R.,
The livelock mentioned below is an interaction between an aborting transaction and a stalled requester. If the requester is nacked, there is a possibility that time it takes to receive the nack and to retry the request will be longer than the time it takes the aborting transaction to restart and to re-acquire permissions to that block (it's request to that line will hit in the cache). In that case, the same requester will be nacked again despite having a higher priority. That transition was written before the "magic" waiting you ask about in your other email. Both are inelegant solutions to the same problem. We abort transactions only when it's necessary to pass a block from one transaction to another that needs it in order to make progress. Unless the abort succeeds in making that transfer, we risk stopping forward progress.

--Kevin


On Jan 23, 2007, at 10:53 AM, ~{9y~}~{Hq~} wrote:

I find the following comment in the MOESI_SMP_LogTM_directory-cache.sm:
transition(MM, {Fwd_GETS_P, Fwd_GETX_P}) {
// Buffer requests instead of nacking.
// There could be race between
// the retry and restarting
// the transaction, which can
// cause livelock.
// Would be nice to have an extra state
// here. When the abort finishes, the
// block will be in M, but
// transactionally clean. Ideally, we'd
// only buffer the one request that
// caused the abort and nack the rest.
// Not sure how to do that here.
zz_recycleForwardRequestQueue;
}

Firstly, I understand this protocol quite well, and have modified this
protocol to fit my need. But I fail to imagine such a livelock referred by
this comment when using nacking here. Could anybody give me an example?
Thanks in advance!

G.R.

_______________________________________________
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.
[← Prev in Thread] Current Thread [Next in Thread→]