안녕하세요.
KVM을 공부하다 이해가 안가는 부분이 있어 문의드립니다.
국내에서 가상화관련해서 여기에 가장 전문가 들이 많은거 같습니다.
Guest os에서 특정 물리번지를 mmio 방식으로 접근해서 read/wrtie할수 없나요?
우선 드는 생각은 Guest에서의 주소는 다시 Host기반의 주소로 변환되기 가능할거 같습니다.
x86기준으로 코드를 보니 x86/kvm/x86.c에 emylator_read_write함수에서 exit_reasson = KVM_EXIT_MMIO
으로 하는 부분이 있습니다.
이 코드를 보니 qemu의 kvm-allc에서 Guest에서 동작하다 Host로 다시 돌아간 경우 reason == KVM_EXIT_MMIO
인경우 cpu_physical_memory_rw()에서 처리하는거 같은데
그렇다면 Guest에서 mmio를 통해 control이 불가능 하여 EXIT_MMIO로 Host로 돌아가면 Host에서 그 부분을 처리하게 되는 건가요?
만약 그렇다면 어떻게 Guest os와 kvm에서 mmio동작임을 알고 EXIT_MMIO로 리턴하게 되는지 아시는분 계실까요?
감사합니다.
댓글 0
.