Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
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
Single epoll thread per 28 cores #35800
Single epoll thread per 28 cores #35800
Changes from 8 commits
386e64d
dc6b496
02092b7
fb1ea27
c8c3fba
3dd7784
b4c61ae
240b5c4
3ad2e28
8fa2222
fe10f44
d85744a
6b45dda
f79e0b6
5cc2452
File filter
Filter by extension
Conversations
Jump to
There are no files selected for viewing
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.
Nit: should this be s_maxEngineCount? We won't always have this many, but we may grow to this many based on the number of concurrent sockets, right?
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.
@stephentoub I've suggested to remove that logic as part of this PR (#35800 (comment)).
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.
@tmds You are most probably right. The only use case for keeping it is a machine with many cores and very few connections. Which should be uncommon.
Would you prefer me to remove it now or would you like to do this in your upcoming PR that is going to enable the "inlining"?
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.
@adamsitnik remove it here, it is unrelated to inlining.
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.
@tmds I am going to merge it as it is right now as I would really love to see the update numbers. I am going to send a PR with MinHandles logic removal today or tomorrow.
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.
The failure in the test
NonDisposedSocket_SafeHandlesCollected
may be because of the extra reference to the context from the wrapper, might need to also docontextWrapper = default
to make the test work in debug builds.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.
That test had been failing since Kount's PR was merged: #35846. The JIT will often make tmp copies such that nulling out is often insufficient for debug builds. Hence my wondering why we were doing so.
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.
In rolling builds the seems to be failing periodically in release builds, seems like it might be something a bit different but needs to be looked into.
I'm also not too happy about nulling out the locals, seems like that's the only way the test would have passed in debug builds before my change. On one hand the test seemed fair in expecting that a non-disposed socket gets finalized. On another hand that may not happen in debuggable code at least, maybe a better approach would be to make sure it can't happen with quick JIT and enable the test only for release builds or something like that, not sure.