Same here. When replacement policy is FIFO, and once the cache is<br>full, cache_replace_waitforline( ) is the fate of every request. It appears that the<br>cache stops functioning after that; perhaps cache_get_replace_startpoint( ) returns NULL for FIFO when the cache is full.<br><br>Here's some debugging output (cache size 640, FIFO):<br><br>Enter cache_get_block: opid 66, devno 1, blkno 160, bcount 8<br>==> disksim_cachemem.c(314): cachemem_get_cachetype (cache_def *cache)<br>==> disksim_cachemem.c(1892): (**donefunc)(void *, ioreq_event *), void *doneparam)<br>Entered cache_get_block:  totalreqs = 68 cachereadssofar 256<br>Entered cache_get_block: rw 1, devno 1, blkno 160, size 8<br>==> disksim_cachemem.c(1620): cache_read_continue (cache_def *cache, cache_event *readdesc)<br>==> disksim_cachemem.c(412): cache_find_atom (cache_def *cache, int devno, int lbn)<br>==> disksim_cachemem.c(1386): cache_allocate_space (cache_def *cache, int lbn, int size,
 cache_event *rwdesc)<br>==> disksim_cachemem.c(1287): *cache_allocate_space_continue (cache_def *cache, cache_event *allocdesc)<br>==> disksim_cachemem.c(1267): cache_get_free_atom (cache_def *cache, int lbn, cache_atom **ret, cache_event *allocdesc)<br>==> disksim_cachemem.c(1196): cache_replace (cache_def *cache, int set, cache_event *allocdesc)<br>==> disksim_cachemem.c(625): *cache_get_replace_startpoint (cache_def *cache, int set)<br>==> disksim_cachemem.c(607): cache_replace_waitforline (cache_def *cache, cache_event *allocdesc)<br>entered cache_replace_waitforline: linelocked 0<br><br><br>Enter cache_get_block: opid 67, devno 3, blkno 160, bcount 8, mj_lbn 640,<br>==> disksim_cachemem.c(314): cachemem_get_cachetype (cache_def *cache)<br>==> disksim_cachemem.c(1892): (**donefunc)(void *, ioreq_event *), void *doneparam)<br>Entered cache_get_block:  totalreqs = 68 cachereads 256<br>Entered cache_get_block: rw 1, devno 3, blkno 160, size
 8<br>==> disksim_cachemem.c(1620): cache_read_continue (cache_def *cache, cache_event *readdesc)<br><br>(repeats ...)<br><br><br><b><i>Greg Ganger <ganger@ece.cmu.edu></i></b> wrote:<blockquote class="replbq" style="border-left: 2px solid rgb(16, 16, 255); margin-left: 5px; padding-left: 5px;"> <br>hmm, that is strange.  Here is what I get:<br><br>% grep FIFO *<br>grep: CVS: Is a directory<br>disksim_bus.c:#define FIFO_ARB          2<br>disksim_bus.c:      case FIFO_ARB:<br>disksim_cachemem.c:      } else if ((cache->replacepolicy != CACHE_REPLACE_FIFO) && (cache->replacepolicy != CACHE_REPLACE_SLRU)) {<br>disksim_cachemem.h:#define CACHE_REPLACE_FIFO   1<br><br>(The bus stuff is not relevant.)<br><br>Greg<br><br><br>On Thu, 26 Apr 2007, Nobody Nobody Nobody wrote:<br><br>> In fact, a careful reading of the code in disksim_cachemem.c does not reveal any such, let alone grepping.<br>><br>> Greg Ganger <ganger@ece.cmu.edu> wrote:<br>> I'd
 suggest grepping the code for words like FIFO before drawing<br>> that conclusion... there is definitely code there (in disksim_cachemem.c),<br>> but I can't vouch for the implementation's correctness.<br>><br>> Greg<br>><br>><br>> On Thu, 26 Apr 2007, Nobody Nobody Nobody wrote:<br>><br>>> Thanks. I'd go further and hazard a guess that there does not even exist any<br>>> code within DiskSim that implements these (everything except LRU)<br>>> policies although they can be "enabled" through the parameter file.<br>>><br>>> Thanks again.<br>>><br>>><br>>><br>>> ---------------------------------<br>>> Ahhh...imagining that irresistible "new car" smell?<br>>> Check outnew cars at Yahoo! Autos.<br>><br>><br>><br>> ---------------------------------<br>> Ahhh...imagining that irresistible "new car" smell?<br>> Check outnew cars at Yahoo!
 Autos.<br></ganger@ece.cmu.edu></blockquote><br><p>

      <hr size=1>Ahhh...imagining that irresistible "new car" smell?<br> Check out
<a href="http://us.rd.yahoo.com/evt=48245/*http://autos.yahoo.com/new_cars.html;_ylc=X3oDMTE1YW1jcXJ2BF9TAzk3MTA3MDc2BHNlYwNtYWlsdGFncwRzbGsDbmV3LWNhcnM-">new cars at Yahoo! Autos.</a>