From Volker's mail: The problem is: Before we send out stuff with this nonblocking optimization we start reading the next packet. This never gives tevent_loop_once the chance to even look whether the async code has finished anything. Thus we pull in as long the client sends us stuff before sending anything out. This leads to us going sync because we have too many outstanding requests in the aio queue. Compare straces of just reading a 100MB file with explorer.exe with and without this patchset and aio enabled. Volker Backports to be attached for 3.6.x (from Volker) and for 4.0.0.
Created attachment 8151 [details] git-am fix for 3.6.x. Patch from Metze, back ported by Volker - reviewed by jra.
Created attachment 8152 [details] git-am fix for 4.0.0 containing the code that went into master Fix for 4.0.0.
Added this as a blocker bug on 4.0.0. Should be easy to get this reviewed and into 4-0-0-test (and 3.6.next). Jeremy.
Created attachment 8153 [details] Patches for v3-6-test Jeremy, sorry for sending you a testing version of the patch. This should be the port of what actually went into master.
Comment on attachment 8153 [details] Patches for v3-6-test Looks good
Karolin please pick this to 3.6 and 4.0
Pushed to v3-6-test. Patch does not apply to v4-0-test (Metze is going to provide an updated version).
Created attachment 8155 [details] Patches for v4-0-test
Karolin please push to v4-0-test. -- Thanks
Pushed to autobuild-v4-0-test.
Pushed to v4-0-test. Closing out bug report. Thanks!