Toggle menu
Toggle preferences menu
Toggle personal menu
Not logged in
Your IP address will be publicly visible if you make any edits.

Bifrost: Analysis and Optimization of Network I/O Tax in Confidential Virtual Machines

From noriwiki


USENIX ATC 2023
Dingji Li, Zeyu Mi, Chenhui Ji, Yifan Tan, Binyu Zang, Haibing Guan, Haibo Chen

개요

Confidential computing환경에서의 Network overhead를 분석하고 그에 따른 해결책으로 종단간 TLS암호화 그리고 Posted-interrupt를 이용하여 Network overhead문제를 해결하였다.

Motivation

Confidential computing이 중요해지는 컴퓨팅 환경에서 Network performance overhead가 심각한 문제로 대두되고 있다. 특히 기존 Virtualization과 다르게 Confidential computing에서는 추가적인 오버헤드가 (up to 29%) 발생함으로 이 문제를 해결해야 한다.

Importance

기존에는 커널까지 포함하는 Confidential computing 환경이 없었기 때문에 위와 같은 문제가 없었다. 따라서 이 문제에 대한 분석과 해결이 필요한 시점이다.

Main Idea / Challenge

Confidential computing환경에서 발생하는 Network overhead는 다음과 같다.

  • Length VM Exits: 기존 VM에서는 VMEXIT아 1643 cycles인데 CVM에서는 추가적인 protection mechanism때문에 7476 cycles만큼 걸린다.
  • Bounce buffer: Confidential computing에서 사용하는 모든 메모리를 암호화 되기 때문에, private memroy에서 shared memory로 copy하기 위해서 반드시 bounce buffer를 거치게 되고, 이에 따라서 추가적인 buffer copy비용이 든다.
  • Packet processing cost: Packet을 많이 처리할수록 패킷 처리당 필요한 연산이 늘어나 성능 오버헤드가 추가된다. 이는 기존 VM에서도 동일하게 적용가능한 부분이다.

위의 문제를 해결하기 위해서 End-to-end encryption을 통해서 bounce buffer copy를 없애고, Packet processing을 I/O backend로 보내고, Interrupt handler를 exitless interrupt를 이용하여 처리하면 된다.

Design

Zero-copy encryption deduplication
Shared buffer region TLS의 결과를 바로 저장하였다.
One-time trusted read
Guest OS가 처음 read를 할떄, 먼저 header를 copy하도록 하여서 TOCTOU공격을 방어하였다. header크기는 보통 매우 작기 때문에 여기서 드는 copy-cost는 무시할 만한다.
Pre-receiver packet reassembly
Backed network packet으로 패킷 처리를 옮겨서 네트워크 패킷 처리를 머지하고 배칭해서 처리하도록 하였다. Host에서 패킷을 머지해서 CVM으로 보내기 떄문에 불필요한 패킷 하나 처리당 들어가는 비용을 줄일 수 있었다.

Conclusion

Confidential computing에서 네트워크 패킷 오버헤드를 분석하고 해결책을 내놓았다는 점에서, 앞으로 Confidential computing의 어떠한 문제를 연구로써 해결해야 하는지에 대한 좋은 연구자료가 될것이라고 생각하였다. 그러나 모든 결과가 실제 하드웨어가 아닌 대체제로 평가하였고, 아이디어가 어찌보면 기존에도 많이 사용하던 방식이라서, 디자인적으로는 한계가 있다고 생각한다. 또한 Backend로 네트워크 패킷 처리를 넘기면 당연히 속도가 빨라질텐데, 어찌보면 논문에서 보여준 많은 성능 향상이 이 방식 때문은 아닌가라는 생각도 든다.