-
Notifications
You must be signed in to change notification settings - Fork 4
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
Implement optional flag for rotating index #37
Conversation
Is there some benchmark we can challenge this with? There is every potential for this to make almost negligible difference and be a waste of cpu ops on calculating the rotated idx. |
Potentially could also chuck #24 in there to see if combined there is a significant performance benefit. There is a cost to #24 in that the memory consumption of the Queue increases from 3 pointers (typically 24 bytes) to 3 cachelines (typically 192 bytes). Not a big deal considering the number of instances of the Queue we would actually have. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Why not export loonyNodeAlignment
also? No reason not to merge this.
You can benchmark it, after a fashion, against the insideout tests -- rather stressful but probably not utilizing greater than |
…tate flag is on (default) but loonySlotCount is not a power of 2
…opposed to 64 bytes
Rotating flag is now default. LoonyQueue is now padded to cachelines. Updated readme. |
-d:loonyRotate
This flag indicates that slots are not to be read in sequential order, but rather in a incremental cyclic pattern, stepping over cache lines.
Motivation
Potential reduction in cache coherency overhead from MESI protocol invalidations, false sharing etc