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


Date: Wed, 24 Jan 2007 00:53:52 +0800
From: 郭锐 <timmyguo@xxxxxxxxxxxxxxxx>
Subject: [Gems-users] confused by a comment in the MOESI LogTM code
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. 

[← Prev in Thread] Current Thread [Next in Thread→]