Hello,

I am looking into enabling VPP's asynchronous crypto for IPsec in Netgate's
control plane. I was looking at the crypto_sw_scheduler plugin and noticed
that crypto_sw_scheduler_dequeue_aead()
and crypto_sw_scheduler_dequeue_link() each have a loop like this:

      vec_foreach_index (i, cm->per_thread_data)
      {
        ptd = cm->per_thread_data + i;
        q = ptd->queues[async_op_id];
        f = crypto_sw_scheduler_get_pending_frame (q);
        if (f)
          break;
      }

It looks like this loop will iterate the per-thread data of each thread
sequentially starting at thread 0 and try to retrieve a pending frame from
that thread's queue and break the loop if one is retrieved. Will this end
up causing the operations which were queued by the threads with lower
indices to be handled more quickly than operations which were queued by the
threads with higher indices?

E.g. - assume 4 worker threads. The main thread has ID 0 and the workers
have IDs 1 - 4. If thread 1 has 5 frames queued for some crypto operation
and thread 4 has 1 frame queued for the same operation, will all 5 frames
from thread 1 be handled before the 1 frame from thread 4 is? Or am I
misunderstanding something?

Thanks!
-Matt
-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#18413): https://lists.fd.io/g/vpp-dev/message/18413
Mute This Topic: https://lists.fd.io/mt/79156990/21656
Group Owner: vpp-dev+ow...@lists.fd.io
Unsubscribe: https://lists.fd.io/g/vpp-dev/unsub [arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-

Reply via email to