2010-06-26 12 views
5

Próbuję zrozumieć mechanizm virtio w Linuksie. Czytałem, że funkcja kopnięcia powiadomi stronę hosta o nowo opublikowanych buforach. Patrzę szczególnie na virtio_net. Gdy pakiet jest gotowy do transmisji, funkcja kick nazywa się here. Stąd wywnioskowałem połączenie i myślę, że idzie ono do this. Skąd się bierze? Który kod zawiera sterownik backendu virtio. Gdzie jest kod w hiperwizorze, do którego to kopnięcie trafi? Dziękuję ...Gdzie jest wejście hiperłączy w kvm?

Dzięki, Bala

Odpowiedz

3

port IO dostęp tutaj komunikują się z „hardware” maszyny wirtualnej, która jest realizowana przez wystąpienie QEMU który obsługuje maszynę wirtualną. Miejsce do uruchomienia w kodzie QEMU to virtio_ioport_write() in hw/virtio-pci.c.

+0

Dziękuję bardzo. Jeszcze jedno pytanie. Czy instancja qemu działa w przestrzeni użytkownika guestOS lub przestrzeni użytkownika HostOS? – bala1486

+1

Przestrzeń użytkownika systemu hosta. Czy przeczytałeś oryginalny [kvm paper] (http://www.kernel.org/doc/ols/2007/ols2007v1-pages-225-230.pdf)? QEMU to kod przestrzeni użytkownika zapewniający wirtualizację we/wy zgodnie z opisem w sekcjach 3.1 i 5.1. System gościa nie _nie ma nic specjalnego do uruchomienia; ale użycie mechanizmu, takiego jak virtio (gdy gość wie, że jest wirtualizowany i korzysta ze specjalnego wsparcia), pozwala na znacznie wyższą wydajność we/wy. (Jest to "parawirtualizacja", jak opisano krótko w sekcji 8.2 artykułu). –

Powiązane problemy