<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body text="#000000" bgcolor="#FFFFFF">
    <p>Ez relevánsnak tűnik a crypto szempontjából és érdemes figyelembe
      venni a szívások elkerülése végett.</p>
    <p>Üdv.<br>
      S<br>
    </p>
    <div class="moz-forward-container"><br>
      <br>
      -------- Továbbított üzenet --------
      <table class="moz-email-headers-table" cellspacing="0"
        cellpadding="0" border="0">
        <tbody>
          <tr>
            <th valign="BASELINE" nowrap="nowrap" align="RIGHT">Tárgy: </th>
            <td>Re: [dpdk-users] Run-to-completion or Pipe-line for QAT
              PMD in DPDK</td>
          </tr>
          <tr>
            <th valign="BASELINE" nowrap="nowrap" align="RIGHT">Dátum: </th>
            <td>Fri, 18 Jan 2019 13:13:43 +0000</td>
          </tr>
          <tr>
            <th valign="BASELINE" nowrap="nowrap" align="RIGHT">Feladó:
            </th>
            <td>Trahe, Fiona <a class="moz-txt-link-rfc2396E" href="mailto:fiona.trahe@intel.com"><fiona.trahe@intel.com></a></td>
          </tr>
          <tr>
            <th valign="BASELINE" nowrap="nowrap" align="RIGHT">Címzett:
            </th>
            <td>Changchun Zhang <a class="moz-txt-link-rfc2396E" href="mailto:changchun.zhang@oracle.com"><changchun.zhang@oracle.com></a>,
              <a class="moz-txt-link-abbreviated" href="mailto:users@dpdk.org">users@dpdk.org</a> <a class="moz-txt-link-rfc2396E" href="mailto:users@dpdk.org"><users@dpdk.org></a></td>
          </tr>
          <tr>
            <th valign="BASELINE" nowrap="nowrap" align="RIGHT">CC: </th>
            <td>Trahe, Fiona <a class="moz-txt-link-rfc2396E" href="mailto:fiona.trahe@intel.com"><fiona.trahe@intel.com></a></td>
          </tr>
        </tbody>
      </table>
      <br>
      <br>
      Hi Alex,<br>
      <br>
      <blockquote type="cite">-----Original Message-----<br>
        From: users [<a class="moz-txt-link-freetext" href="mailto:users-bounces@dpdk.org">mailto:users-bounces@dpdk.org</a>] On Behalf Of
        Changchun Zhang<br>
        Sent: Thursday, January 17, 2019 11:01 PM<br>
        To: <a class="moz-txt-link-abbreviated" href="mailto:users@dpdk.org">users@dpdk.org</a><br>
        Subject: [dpdk-users] Run-to-completion or Pipe-line for QAT PMD
        in DPDK<br>
        <br>
        Hi,<br>
        <br>
        <br>
        <br>
        I have user question on using the QAT device in the DPDK.<br>
        <br>
        In the real design, after calling enqueuer_burst() on the
        specified queue pair at one of the lcore,<br>
        usually which one is usually done?<br>
        <br>
        1. should we do run-to-completion to call dequeuer_burst()
        waiting for the device finishing the<br>
        crypto operation,<br>
        <br>
        2. or should we do pipe-line, in which we return right after
        enqueuer_burst() and release the CPU.<br>
        And call dequeuer_burst() on other thread function?<br>
        <br>
        Option 1 is more like synchronous and can be seen on all the
        DPDK crypto examples, while option 2 is<br>
        asynchronous which I have never seen in any reference design if
        I missed anything.<br>
      </blockquote>
      [Fiona] Option 2 is not possible with QAT - the dequeue must be
      called in the same thread as the enqueue. This is<br>
      optimised without atomics for best performance - if this is a
      problem let us know. However best performance is not quite using
      option 1 and not a synchronous blocking method. If you enqueue and
      then go straight to dequeue, you're not getting the best advantage
      from the<br>
      cycles freed up by offloading. i.e. best to enqueue a burst, then
      go do some other work, like maybe collecting more requests for
      next enqueue or other processing, then dequeue. Take and process
      whatever ops are dequeued - this<br>
      will not necessarily match up with the number you've enqueued -
      depends on how quickly you call the dequeue.<br>
      Don't wait until all the enqueued ops are dequeued before
      enqueuing the next batch.<br>
      SO it's asynchronous. But in the same thread.<br>
      You'll get best throughput when you keep the input filled up so
      the device has operations to work on and<br>
      regularly dequeue a burst. Dequeuing too often will waste cycles
      in the overhead calling the API, dequeuing too<br>
      slowly will cause the device to back up. Ideally tune for your
      application to find the sweet spot in<br>
      between these 2 extremes. </div>
  <div id="DAB4FAD8-2DD7-40BB-A1B8-4E2AA1F9FDF2"><br /> <table style="border-top: 1px solid #D3D4DE;">
        <tr>
      <td style="width: 55px; padding-top: 18px;"><a href="https://www.avast.com/sig-email?utm_medium=email&utm_source=link&utm_campaign=sig-email&utm_content=emailclient" target="_blank"><img src="https://ipmcdn.avast.com/images/icons/icon-envelope-tick-round-orange-animated-no-repeat-v1.gif" alt="" width="46" height="29" style="width: 46px; height: 29px;" /></a></td>
                <td style="width: 470px; padding-top: 17px; color: #41424e; font-size: 13px; font-family: Arial, Helvetica, sans-serif; line-height: 18px;">Mentes a vírusoktól. <a href="https://www.avast.com/sig-email?utm_medium=email&utm_source=link&utm_campaign=sig-email&utm_content=emailclient" target="_blank" style="color: #4453ea;">www.avast.com</a>            </td>
        </tr>
</table>
<a href="#DAB4FAD8-2DD7-40BB-A1B8-4E2AA1F9FDF2" width="1" height="1"> </a></div></body>
</html>