intel / intel-ipsec-mb

Intel(R) Multi-Buffer Crypto for IPSec
BSD 3-Clause "New" or "Revised" License
288 stars 88 forks source link

the performance does not scale with the number of cores #112

Closed kojimr closed 1 year ago

kojimr commented 1 year ago

When using intel-ipsec-mb with multiple threads, the performance does not scale with the number of cores. I found that imb_set_errno() is writing to one global variable "imb_errno" from multiple threads, which is causing the store buffer to run out and the CPU to stall.

I am using intel-ipsec-mb from dpdk, each version is DPDK v22.07 and intel-ipsec-mb v1.20. For more information, please see the following post to the DPDK users@dpdk.org mailing list.

https://mails.dpdk.org/archives/users/2022-October/006742.html

tkanteck commented 1 year ago

Thanks. We'll look into it

tkanteck commented 1 year ago

Thanks for flagging it. The fix is on its way.

pablodelara commented 1 year ago

Following commit also fixes this issue (impacting direct API): https://github.com/intel/intel-ipsec-mb/commit/9f5adaebcc3d6deac1ad0ddd10309c74318d7c40