Intel's software guard extensions (SGX) provide hardware enclaves to guarantee confidentiality and integrity for sensitive code and data. However, systems leveraging such security mechanisms must often pay high performance overheads. A major source of this overhead is SGX enclave transitions which induce expensive cross-enclave context switches. The Intel SGX SDK mitigates this with a switchless call mechanism for transitionless cross-enclave calls using worker threads. Intel's SGX switchless call implementation improves performance but provides limited flexibility: developers need to statically fix the system configuration at build time, which is error-prone and misconfigurations lead to performance degradations and waste of CPU resources. ZC-SWITCHLESS is a configless and efficient technique to drive the execution of SGX switchless calls. Its dynamic approach optimises the total switchless worker threads at runtime to minimise CPU waste. The experimental evaluation shows that ZC-SWITCHLESS obviates the performance penalty of misconfigured switchless systems while minimising CPU waste.
翻译:Intel的软件保护扩展(Software Guard Extension, SGX)提供硬件隔离来确保敏感的代码和数据的机密性和完整性。然而,利用这种安全机制的系统通常需要付出高性能开销。其中一个主要开销是SGX信封转换所导致的昂贵跨信封上下文切换。Intel SGX SDK通过使用工作线程来实现无转换跨信封调用的无开关调用机制来缓解这一问题。Intel SGX开关无调用实现提高了性能,但提供了有限的灵活性:开发人员需要在构建时静态修复系统配置,这容易出错,而且配置不当会导致性能下降和CPU资源浪费。ZC-SWITCHLESS是一种无配置且高效的技术,用于驱动SGX开关无调用的执行。其动态方法通过优化运行时总无开关线程来最小化CPU浪费。实验评估表明,ZC-SWITCHLESS免除了无配置开关系统的性能惩罚,同时最小化CPU浪费。