在英特尔SGX中实现无交换机呼叫

H. Tian, Qiong Zhang, Shoumeng Yan, Alex Rudnitsky, Liron Shacham, Ron Yariv, Noam Milshten
{"title":"在英特尔SGX中实现无交换机呼叫","authors":"H. Tian, Qiong Zhang, Shoumeng Yan, Alex Rudnitsky, Liron Shacham, Ron Yariv, Noam Milshten","doi":"10.1145/3268935.3268942","DOIUrl":null,"url":null,"abstract":"Intel Software Guard Extensions (SGX) is an extension to x86 architecture that enables user-level code to create trusted memory regions, called enclaves. However, the security provided by enclaves is not free: one primary performance overhead is enclave switches, which are expensive and can be triggered frequently by cross-enclave function calls. Previous works propose a technique named Switchless Calls, which avoids enclave switches by using worker threads/cores to execute function calls asynchronously. But we find this technique is questionable in terms of efficiency: is it always wise to trade extra CPU cores for reduced enclave switches? In this paper, we make Switchless Calls a practical technique by ensuring that it improves performance efficiently. To this end, we investigate on what conditions can Switchless Calls improve performance efficiently by establishing a performance model via both mathematical and simulation analysis. Then, we formulate the notion of worker efficiency and design an efficiency-based scheduling algorithm that can automatically adjust the number of workers in response to changing workloads. Guided by the insights obtained from our performance modeling and worker scheduling, we integrate Switchless Calls into Intel SGX SDK as an official feature. We evaluate the performance of our implementation in various benchmarks and the results demonstrate the practicality of Switchless Calls.","PeriodicalId":142419,"journal":{"name":"Proceedings of the 3rd Workshop on System Software for Trusted Execution","volume":"54 1","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"2018-01-15","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"45","resultStr":"{\"title\":\"Switchless Calls Made Practical in Intel SGX\",\"authors\":\"H. Tian, Qiong Zhang, Shoumeng Yan, Alex Rudnitsky, Liron Shacham, Ron Yariv, Noam Milshten\",\"doi\":\"10.1145/3268935.3268942\",\"DOIUrl\":null,\"url\":null,\"abstract\":\"Intel Software Guard Extensions (SGX) is an extension to x86 architecture that enables user-level code to create trusted memory regions, called enclaves. However, the security provided by enclaves is not free: one primary performance overhead is enclave switches, which are expensive and can be triggered frequently by cross-enclave function calls. Previous works propose a technique named Switchless Calls, which avoids enclave switches by using worker threads/cores to execute function calls asynchronously. But we find this technique is questionable in terms of efficiency: is it always wise to trade extra CPU cores for reduced enclave switches? In this paper, we make Switchless Calls a practical technique by ensuring that it improves performance efficiently. To this end, we investigate on what conditions can Switchless Calls improve performance efficiently by establishing a performance model via both mathematical and simulation analysis. Then, we formulate the notion of worker efficiency and design an efficiency-based scheduling algorithm that can automatically adjust the number of workers in response to changing workloads. Guided by the insights obtained from our performance modeling and worker scheduling, we integrate Switchless Calls into Intel SGX SDK as an official feature. We evaluate the performance of our implementation in various benchmarks and the results demonstrate the practicality of Switchless Calls.\",\"PeriodicalId\":142419,\"journal\":{\"name\":\"Proceedings of the 3rd Workshop on System Software for Trusted Execution\",\"volume\":\"54 1\",\"pages\":\"0\"},\"PeriodicalIF\":0.0000,\"publicationDate\":\"2018-01-15\",\"publicationTypes\":\"Journal Article\",\"fieldsOfStudy\":null,\"isOpenAccess\":false,\"openAccessPdf\":\"\",\"citationCount\":\"45\",\"resultStr\":null,\"platform\":\"Semanticscholar\",\"paperid\":null,\"PeriodicalName\":\"Proceedings of the 3rd Workshop on System Software for Trusted Execution\",\"FirstCategoryId\":\"1085\",\"ListUrlMain\":\"https://doi.org/10.1145/3268935.3268942\",\"RegionNum\":0,\"RegionCategory\":null,\"ArticlePicture\":[],\"TitleCN\":null,\"AbstractTextCN\":null,\"PMCID\":null,\"EPubDate\":\"\",\"PubModel\":\"\",\"JCR\":\"\",\"JCRName\":\"\",\"Score\":null,\"Total\":0}","platform":"Semanticscholar","paperid":null,"PeriodicalName":"Proceedings of the 3rd Workshop on System Software for Trusted Execution","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1145/3268935.3268942","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 45

摘要

Intel Software Guard Extensions (SGX)是对x86架构的扩展,它允许用户级代码创建可信的内存区域,称为enclave。然而,由enclave提供的安全性并不是免费的:一个主要的性能开销是enclave开关,它是昂贵的,并且可以通过跨enclave函数调用频繁触发。先前的工作提出了一种名为“无开关调用”的技术,该技术通过使用工作线程/内核异步执行函数调用来避免飞地切换。但是我们发现这种技术在效率方面是有问题的:用额外的CPU内核换取减少的enclave交换机是否总是明智的?在本文中,我们通过确保它有效地提高性能,使无切换呼叫成为一种实用的技术。为此,我们通过数学和仿真分析建立了性能模型,研究了在什么条件下无切换呼叫可以有效地提高性能。然后,我们提出了工人效率的概念,并设计了一个基于效率的调度算法,该算法可以根据工作负载的变化自动调整工人的数量。通过从我们的性能建模和工人调度中获得的见解,我们将无开关调用集成到英特尔SGX SDK中作为官方功能。我们在各种基准测试中评估了我们的实现性能,结果证明了无切换呼叫的实用性。
本文章由计算机程序翻译,如有差异,请以英文原文为准。
Switchless Calls Made Practical in Intel SGX
Intel Software Guard Extensions (SGX) is an extension to x86 architecture that enables user-level code to create trusted memory regions, called enclaves. However, the security provided by enclaves is not free: one primary performance overhead is enclave switches, which are expensive and can be triggered frequently by cross-enclave function calls. Previous works propose a technique named Switchless Calls, which avoids enclave switches by using worker threads/cores to execute function calls asynchronously. But we find this technique is questionable in terms of efficiency: is it always wise to trade extra CPU cores for reduced enclave switches? In this paper, we make Switchless Calls a practical technique by ensuring that it improves performance efficiently. To this end, we investigate on what conditions can Switchless Calls improve performance efficiently by establishing a performance model via both mathematical and simulation analysis. Then, we formulate the notion of worker efficiency and design an efficiency-based scheduling algorithm that can automatically adjust the number of workers in response to changing workloads. Guided by the insights obtained from our performance modeling and worker scheduling, we integrate Switchless Calls into Intel SGX SDK as an official feature. We evaluate the performance of our implementation in various benchmarks and the results demonstrate the practicality of Switchless Calls.
求助全文
通过发布文献求助,成功后即可免费获取论文全文。 去求助
来源期刊
自引率
0.00%
发文量
0
×
引用
GB/T 7714-2015
复制
MLA
复制
APA
复制
导出至
BibTeX EndNote RefMan NoteFirst NoteExpress
×
提示
您的信息不完整,为了账户安全,请先补充。
现在去补充
×
提示
您因"违规操作"
具体请查看互助需知
我知道了
×
提示
确定
请完成安全验证×
copy
已复制链接
快去分享给好友吧!
我知道了
右上角分享
点击右上角分享
0
联系我们:info@booksci.cn Book学术提供免费学术资源搜索服务,方便国内外学者检索中英文文献。致力于提供最便捷和优质的服务体验。 Copyright © 2023 布克学术 All rights reserved.
京ICP备2023020795号-1
ghs 京公网安备 11010802042870号
Book学术文献互助
Book学术文献互助群
群 号:481959085
Book学术官方微信