'FrontEnd Driver'에 해당되는 글 1건

  1. 2012.05.14 Xen - How I/O-Ring Works (between Domain-0 and Domain-U)

Xen - How I/O-Ring Works (between Domain-0 and Domain-U)

Xen에서 FrontEnd 드라이버와 BackEnd 드라이버 사이에 I/O 작업이 어떻게 이루어지는지 살펴 본다.


사전 정보

  • Native-Device-Driver(Physical-Driver)는 Domain-0에 있다.
  • 아래 그림과 같은 I/O Ring은 Xen-Hypervisor레벨에 하나가 존재 한다. 이 Ring이 모든 I/O에 대한 중계 역할.

Xen's I/O Ring 구성도

I/O 요청 Flow

  1. Domain-U의 App이 I/O 요청을 발생시키면 FrontEnd-Driver가 이를 받아, Xen-Hypervisor에 있는 I/O Ring에 요청 이벤트로 등록.
  2. 이벤트 등록이 완료되면, I/O를 발생시킨 vCPU는 블록상태로 전이 및 응답 대기. (I/O 부하 상태)
  3. Domain-0의 BackEnd-Driver는 Xen-Hypervisor의 I/O Ring에 등록된 I/O요청 이벤트를 읽어, Native-Device-Driver를 통해 실제 물리적 Device로부터 I/O를 수행.

I/O 응답 Flow

  1. Domain-0는 물리적 Device로부터 I/O를 수행한 결과를, 다시 Xen-Hypervisor의 I/O Ring에 응답 이벤트로 등록.
  2. 이벤트 등록이 완료되면, Xen-Hypervisor은 블록상태로 대기중이던 vCPU를 최고 우선순위로 다시 활성화 시킨다.
  3. 블록상태에서 벗어난 vCPU는 FrontEnd-Driver을 통해, I/O 응답 결과를 받아 이후 작업을 처리.

I/O Ring의 권한 중재자 Grant-Table

  • Domain-0, Domain-U, Xen-Hypervisor 모두가 공유하는데, 이 때 제어 권한 처리는 Grant-Table에서 관리 된다.

Posted by 사랑줍는거지
,