-
Notifications
You must be signed in to change notification settings - Fork 82
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
ACP Cleaning Policy for Chunk with small dirty cache lines #286
Comments
Not sure whether we need to update function cleaning_policy_acp_perform_cleaning to make it real flush "-b" dirty cache blocks no matter how much dirty blocks are in one chunk. |
I think that the real error here is just wording in CLI. Maybe it should be something like As for ACP policy flushing -b dirty blocks per iteration I that that was not the behavior we were going for. Any comments on that @arutk ? |
I believe the original intention was to have ACP clean exactly "-b" dirty cache lines. I agree with John's analysis - ACP will issue smaller I/O at the end of chunk. So it looks like implementation shortcoming. Possible fix would involve:
|
This doesn't seem to be a noticeable problem, as ACP by design cleans the chunks that are most dirty. Assuming there is some workload LBA locality (which is a reasonable assumption for cache), the core LBA range (chunk) being cleaned has relatively large number of dirty cachelines. So one would need to set very large flush portion to make this problem noticable (i.e. measure reduced cleaner bandwidth). We haven't heard from any user hitting this problem in real life scenarios, so closing this . |
For ACP cleaning policy, there are two parameters which are "-w" and "-b", it means:
But seems there is another factor which may determine the flush speed of ACP:
Here is how the ACP works for every cycle:
Or in other words, with our current coding, here is how ACP works:
The text was updated successfully, but these errors were encountered: