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.
翻译:英特尔的软件保护扩展(SGX)提供硬件级飞地,确保敏感代码和数据的机密性与完整性。然而,采用此类安全机制的系统往往需承受高昂的性能开销。该开销的主要来源是SGX飞地转换,其会引发昂贵的跨飞地上下文切换。英特尔SGX SDK通过采用工作线程的无切换调用机制缓解了这一问题,从而实现无转换的跨飞地调用。尽管英特尔SGX无切换调用实现提升了性能,但其灵活性受限:开发者需在构建时静态固定系统配置,这容易引发错误,且错误配置会导致性能下降与CPU资源浪费。ZC-SWITCHLESS是一种无配置的高效技术,用于驱动SGX无切换调用的执行。其动态方法可在运行时优化无切换工作线程总数,从而最小化CPU浪费。实验评估表明,ZC-SWITCHLESS在最小化CPU浪费的同时,消除了错误配置无切换系统带来的性能损失。