<div dir="ltr"><div dir="ltr"><div dir="ltr"><div>Hi all,</div><div><br></div><div><span style="white-space:pre-wrap">      </span>Adding more details to the previous mail. We have edited the OpenSSL code for implementing the polling for changed fd's as in OpenSSL speed command. Attached the code snippet of the same along with this mail.</div><div><span style="white-space:pre-wrap">    </span>Mentioned below some observations which found doubtful:</div><div><br></div><div><span style="white-space:pre-wrap"> </span>1) We have got prints in ASYNC_FINISH case, before getting print in ASYNC_PAUSE case. Attaching the log also, so you can understand easily. </div><div><span style="white-space:pre-wrap">    </span>2) Shown below the code snippet which we have written to provide a write on fd.</div><div><br></div><div><span style="white-space:pre-wrap"> </span>if ((waitctx = ASYNC_get_wait_ctx((ASYNC_JOB *)job)) == NULL) {</div><div>        <span style="white-space:pre-wrap">      </span>printf("In dynamic engine | waitctx == NULL : %d\n", __LINE__);</div><div>        <span style="white-space:pre-wrap">    </span>return ret;</div><div>    <span style="white-space:pre-wrap">        </span>}</div><div><br></div><div>    <span style="white-space:pre-wrap"> </span>printf("\n----- In dynamic engine | After pausing | job is %lx |  waitctx in resume job %lx |-----\n", job, waitctx);</div><div><br></div><div>        if ((ret = ASYNC_WAIT_CTX_get_fd(waitctx, engine_id, &efd,</div><div>        <span style="white-space:pre-wrap">   </span>                      &custom)) > 0) {</div><div>        <span style="white-space:pre-wrap">     </span>if (write(efd, &buf, sizeof(uint64_t)) == -1) {</div><div>            <span style="white-space:pre-wrap">            </span>printf("\nFailed to write\n");</div><div>        <span style="white-space:pre-wrap">     </span>}</div><div>    <span style="white-space:pre-wrap">  </span>}</div><div><br></div><div><span style="white-space:pre-wrap">       </span>Here waitctx is getting NULL when we tried to fetch waitctx using ASYNC_get_wait_ctx(). We have printed data of sizeof(ASYNC_JOB) ie.1176 bytes contained in the job address from the engine,  we got correct data before calling ASYNC_pause() and but got half data zero data when we tried to access the same address after ASYNC_pause(). </div><div><br></div><div>Attaching both job structure contents before and after calling ASYNC_pause(). Also, we got the correct data in the same address when we have printed from ssl_start_async_job() before polling starts, where we have started the async_job</div><div>. </div><div><span style="white-space:pre-wrap">     </span>The prints starting with "In dynamic engine" are prints inside the engine, rest prints are from ss/ssl_lib.c. Kindly check this and please point out if anything is wrong somewhere. Thanks in advance.</div><div><br></div></div></div><br><div class="gmail_quote"><div dir="ltr">On Sun, Jan 6, 2019 at 10:30 AM Ananthu Unnikrishnan <<a href="mailto:ananthuu741@gmail.com" target="_blank">ananthuu741@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div dir="ltr"><div>Hi all,<br><br></div>       We have implemented a dynamic engine and tested in the async mode using OpenSSL speed command. But in a real network scenario, we have seen only starting the async_job(in file ssl/ssl_lib.c, function: ssl_start_async_job) in the OpenSSL. We haven't seen polling async_fd's for resuming the job as in apps/speed.c(in speed command case). <br></div><div>        So can anyone please suggest any solution for resuming the async_jobs in real network scenario? Thanks in advance. <br></div><div><br></div><div><br></div><div dir="ltr"><br></div></div>
</blockquote></div><br clear="all"><div><br></div>-- <br><div dir="ltr" class="gmail-m_6137138493349812421gmail_signature"><div dir="ltr"><div>With best Regards, </div><div><br></div>         Ananthu<br><div><br><br></div></div></div>
</div>