-
Notifications
You must be signed in to change notification settings - Fork 9.8k
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
Try make IOQueue auto-parallelizing #21873
Conversation
Applies the technique from dotnet/runtime#35330 to IOQueue.
This is an experiment for benchmarking. I'm not sure what to expect. |
cc @benaadams |
I was thinking about it too :D The other (and most probably a very stupid) idea I had was to try to have a scheduler that in the ctor would use reflection to access the internal field of ThreadPool that stores the work items in a and implement the Again, this is a very dirty idea ;) |
@tmds could you provide the modified |
As an experiment it's totally fine. We will not ship that. |
@aspnet-hello benchmark |
Starting 'Default' pipelined plaintext benchmark with session ID '1279e01068334a1c99e7c62e8b24d597'. This could take up to 30 minutes... |
Baseline
PR
|
TFMS! |
@aspnet-hello benchmark |
Starting 'Default' pipelined plaintext benchmark with session ID 'f4f99e3ddb614ab3ae381a3270183a8d'. This could take up to 30 minutes... |
Baseline
PR
|
Is there a non-pipelined benchmark that can be triggered? |
@adamsitnik here you to: Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets.dll.tar.gz |
@aspnet-hello benchmark json |
Starting 'json' pipelined plaintext benchmark with session ID '09c904d3d164426f9cfde9da065a433f'. This could take up to 30 minutes... |
Baseline
PR
|
I was looking at the traces and sendmsg is very slow (comparatively); so thought it wasn't a good idea to have the sends on the same queue as the receives (thus blocking them). However, didn't have great success in separating them #21981 |
@tmds the results: |
On ARM this gives some nice results. On Citrine, regression. |
An interesting observation:
After we use less CPU. |
Applies the technique from dotnet/runtime#35330 to IOQueue.