While trying out async i/o with 3.4.1 I found out that samba works synchronous after exactly 100 aio requests. The variable outstanding_aio_calls is never decremented. Since every completion should be signalled through the signal handler I propose to move the backwards counting there. I moved the increment a little bit closer to the real call, in favour not to be signalled before actually being actually incremented. IMHO the variable should be moved out of global.h
Created attachment 4766 [details] proposed patch
Oh this is rather embarrassing :-). It might explain why I never saw the gains in performance from the aio code I expected. I'll evaluate this asap and get a fix into current code as soon as I'm done. Jeremy.
Created attachment 4769 [details] git-am formatted patch that went into master. Volker please review and assign to Karolin for inclusion into 3.4.x if you concur. Jeremy.
Jeremy, there is a merge conflict when applying the patch to v3-4-test. Could you provide an updated version, please? Thanks!
maybe use the original patch I supplied. This was relative to v3-4-test Greetings Olaf
No the original patch misses the read path change to make both read and write paths symmetrical. I'll provide an updated patch later today. Jeremy.
Created attachment 4783 [details] git format patch relative to 3.4.1 test rewritten to match the JA patch
The last patch by Olaf (https://bugzilla.samba.org/attachment.cgi?id=4783) looks good. Karolin, please pull for 3.4.3. Thanks, Volker
Pushed to v3-4-test, will be inlcuded in the next 3.4 bug fix release. Closing out bug report. Thanks!