在 英特尔® Software Guard Extensions (英特尔® SGX) 围圈中使用无交换机 OCALL 时调优工作负载
- 在 linux-sgx/common/inc/sgx_uswitchless.h 中,SL_DEFAULT_FALLBACK_RETRIES设置为 20000。
- 此默认参数会导致执行许多长时间无切换调用的应用程序的性能比禁用无交换机时的性能低。
- 无法验证为何 20000 为默认值。
虽然 SL_DEFAULT_FALLBACK_RETRIES = 20000 的具体原因尚不清楚,但使用无交换机呼叫的工作负载需要精细性能调优。英特尔® Software Guard Extensions (英特尔® SGX) Developer Reference for Linux* 指出:
无交换机呼叫是一项高级功能。它需要额外的工作线程和配置、性能测试和调优。它应该用于需要精细性能调优的工作负载。配置错误可能会导致工作线程未充分利用,从而在未提供任何任务的同时消耗 CPU 时间。
《面向 Linux 英特尔 SGX开发人员参考》位于最新版本的面向 Linux* 的英特尔® Software Guard Extensions SDK 的文档文件夹中。