-
Notifications
You must be signed in to change notification settings - Fork 12
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Moved to tick + generation counter to mark in-flight events
Before this commit, the event-id was negated to mark events that became in-flight. Marking each event required a O(n) operation in a critical-section. By using the property that in-flight events must have expired, events do not need to be manually marked, reducing the critical section to a O(1) operation per slot. Unfortunately, relying on the most recent dispatch tick is not sufficient in cases where events post events during the same tick. A simple generation counter was added to avoid this issue. Notable performance impact (make prof): equeue_dispatch_prof: 468 cycles (+20%)
- Loading branch information
Showing
3 changed files
with
137 additions
and
66 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters