Please look at bug 195. http://marcbug.scc-dc.com/bugzilla3/show_bug.cgi?id=19
We are havng difficulty with this flush routine. Our latest version of rckmem.c (called rckmem_005.c) is posted on that bug. We've been testing that and not seeing errors but the latest comment on the bug is discussing a flaw.
You can use the latest version we have by downloading rckmem_005.c from the bug, renaming it to rckmem.c, putting it in your linux src tree, and building a new linux. If you are using the rckmem.c currently in SVN you will see problems.
Ok. Let me try the new rckmem.c over the weekend and test it. In case I am still having some trouble, I'll post my program here and maybe your could try it out as well on another machine.
I am still having trouble with the flush to shared memory after compiling a new image with the modified rckmem.c. But, if I make each core allocate a dummy array in its private memory (of the same size as the shared memory) and then write and read back from this dummy array immediately after changing shared memory and calling RCCE_DCMflush, things are getting properly flushed to the shared memory.
Do you want me to post the program that I am using so that you can try it out as well?
Yes, of course ... but please join the CC group at bug 195 and post there... which is where the real nitty-gritty testing of the flush routine is taking place.
Our latest rckmem_005.c has not been showing errors. But it's possible your test is picking up a test case we missed.