Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

About Failure-Atomic Segment Split #10

Open
skyelves opened this issue Apr 29, 2021 · 0 comments
Open

About Failure-Atomic Segment Split #10

skyelves opened this issue Apr 29, 2021 · 0 comments

Comments

@skyelves
Copy link

CCEH/src/CCEH_MSB.cpp

Lines 345 to 355 in 46771e3

for(int i=0; i<stride/2; ++i){
dir->_[loc+stride/2+i] = s[1];
}
#ifdef INPLACE
clflush((char*)&dir->_[loc+stride/2], sizeof(void*)*stride/2);
#else
for(int i=0; i<stride/2; ++i){
dir->_[loc+i] = s[0];
}
clflush((char*)&dir->_[loc], sizeof(void*)*stride);
#endif

Hi, I have a question about Failure-Atomic Segment Split. In your paper, you states that
we update the directory entries from right to left. The ordering of these updates must be enforced by inserting an mfence instruction in between each instruction. Also, we must call clflush when it crosses the boundary of cache- lines.

However, here you just update the directory from the left to right without fence and just call clflush at last. I wonder if there is anything wrong about my understanding of your paper or your codes.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant