Files
document-haness/docs/virtualization/final/assets/diagrams/virtio-balloon-inflate-deflate/virtio-balloon-inflate-deflate.alt.md
T

2.5 KiB
Raw Blame History

balloon target 은 VM Boundary 를 건너 driver 에 닿고 확보한 page 는 같은 경계를 되건너 온다

Alternative text

virtio-balloon Driver, virtqueue, QEMU virtio-balloon Device, Host Memory Management 네 참여자 사이의 순서도. 앞 세 메시지는 오른쪽에서 왼쪽으로 Guest 안으로 들어가고 뒤 세 메시지는 왼쪽에서 오른쪽으로 Host 로 돌아온다.

Long description

참여자는 왼쪽부터 Guest kernel 의 virtio-balloon Driver, virtqueue, QEMU virtio-balloon Device, Host Memory Management 네 개다. 메시지는 위에서 아래로 읽는다. 1번은 Host Memory Management 가 QEMU 쪽 device 에 balloon target 조정을 보내는 것이고, 2번에서 그 요청이 virtqueue 로 내려가면서 VM Boundary 를 넘고, 3번에서 Guest kernel 의 driver 에 balloon target 이 닿는다. 여기서 방향이 바뀐다. 4번에서 driver 가 확보한 Guest page 를 virtqueue 에 올리고, 5번에서 그것이 다시 VM Boundary 를 넘어 QEMU 쪽 device 로 가고, 6번에서 device 가 Host Memory Management 에 회수 가능 backing 으로 넘긴다. target 을 올릴 때와 내릴 때 Guest 가 쓸 수 있는 memory 가 어느 쪽으로 움직이는지는 본문의 표가 맡는다.

Elements and evidence

  • virtio-balloon Driver (driver): Guest kernel 쪽 balloon driver. target 을 받아 Guest page 를 확보한다. Evidence: L3013L3015, L3046L3046.
  • virtqueue (queue): Guest 와 QEMU 가 balloon 요청을 주고받는 공유 큐. VM Boundary 바로 안쪽이다. Evidence: L3017L3017.
  • QEMU virtio-balloon Device (service): Host 쪽 balloon device. 경계를 넘어온 내용을 Host memory management 로 넘긴다. Evidence: L3022L3022, L3037L3041.
  • Host Memory Management (service): balloon target 을 정하는 쪽이자 회수 기회가 생기는 자리. Evidence: L3025L3025, L3034L3037.

Relationships

  • Host Memory Management → QEMU virtio-balloon Device: Balloon target 조정. Evidence: L3034L3041.
  • QEMU virtio-balloon Device → virtqueue: VM Boundary. Evidence: L3017L3022, L3041L3046.
  • virtqueue → virtio-balloon Driver: Balloon target. Evidence: L3013L3017, L3043L3046.
  • virtio-balloon Driver → virtqueue: Guest pages 확보. Evidence: L3046L3050.
  • virtqueue → QEMU virtio-balloon Device: VM Boundary. Evidence: L3017L3025.
  • QEMU virtio-balloon Device → Host Memory Management: 회수 가능 backing. Evidence: L3022L3028, L3077L3079.