Linux kernel v3.9 ARM에서 KVM 지원

Overview

  • 2013년 4월 29일 Linux kernel 3.9 버전이 릴리즈 됨 - change log 참고
  • ARM 프로세서에서 KVM 가상화 지원 기능이 추가 됨 
  • 이 글에서는 KVM과 관련된 CPU 가상화 지원에 대한 정보들을 간추려 보고자 한다

KVM 이란

  • KVM (Kernel-based Virtual Machine)은 VMware와 같은 가상화를 Linux 커널 모듈에서 제공
  • Intel VT나 AMD-V와 같은 가상화 H/W 지원하는 x86 CPU에서만 동작했으나
  • 3.9 커널 부터는 ARM CPU에서도 동작 가능
  • 그렇다면 ARM CPU도 Intel VT와 같은 가상화 지원을 제공한다는 의미?

Intel VT란

  • Intel VT (Virtualization Technology)는 가상화를 지원하기 위한 VMX (Virtual Machine Extensions)라는 명령어를 제공한다.
    • VMXON - enter VMX operation
    • VMXOFF - leave VMX operation
    • VMREAD - read field from Virtual Machine control structure
    • VMWRITE - write field to Virtual Machine control structure
    • VMPTRLD - load pointer from Virtual Machine control structure
    • VMPTRST - store pointer to Virtual Machine control structure
    • VMLAUNCH - Launch Virtual Machine
    • VMRESUME - Resume Virtual Machine
    • VMCALL - Call to VM Monitor
  • 이 명령어를 이용하여 VMM (Virtual Machine Monitor) S/W는 더 빠른 성능의 가상화 솔루션을 구현할 수 있다. 
  • Intel CPU는 가상화 지원을 위해 EPT (Extended Page Table)도 제공한다.  Extending KVM with new Intel Virtualization technology 자료 참고.
  • 단, 모든 Intel CPU가 VT 및 EPT를 지원하는 것은 아니다. 지원 모델에 대해서는 다음 인텔 페이지를 참고.

ARM processor에서 virtualization 지원


KVM이 ARM 프로세서를 지원하기 위해서는 Intel VT와 비슷한 H/W 기능이 있어야 할 듯. 이에 대해 살펴보자.
  • ARM에서 KVM 지원에 대한 kernel 소스 commit을 보면 현재 지원하는 CPU는 Coretex-A15 뿐이다.
  • ARM Coretex-A15 CPU는 Virtualization Extension과 LPAE (Large Page Addressing Extension)을 지원한다.
  • 자세한 내용은 ARM 프리젠테이션 문서를 참고.
즉, ARM CPU에서도 Intel VT와 유사한 CPU에서의 가상화 지원이 있고 Linux kernel 3.9 버전의 KVM은 아마도 이를 이용하여 ARM에서의 가상화를 지원하는 것으로 보인다. 소스 코드 레벨로 살펴본 것은 아니므로 관련 자료에 근거한 추측이다.

참고

댓글

이 블로그의 인기 게시물

Wireless: HotSpot 2.0 이란?

Apple M1 Mac Mini에서 이더리움 (Ethereum) 채굴하기

Java: Java for Game? Java가 Game 개발에 어울릴까?