2010-06-26 18 views
5

Linux'taki virtio mekanizmasını anlamaya çalışıyorum. Tekme işlevinin, yeni yayınlanan arabelleklerle ilgili ana bilgisayarı bilgilendireceğini okudum. Özellikle virtio_net.Once'da bir paket iletim için hazırdır. Tekme işlevi here olarak adlandırılır. Buradan aramayı takip ettim ve sanırım this'a gidiyor. Buradan nereye gidiyor? Hangi kod, virtio'nun arka uç sürücüsünü içerir. Bu vuruşun gerçekleştireceği hiper yönetici kod nerede? BalaKvm'de hiper çağrıların girişi nerede?

cevap

3

IO portu VM destekler QEMU örneği tarafından uygulanan sanal makinenin "donanım" ile iletişim burada erişir ...

Teşekkür, teşekkür ederiz. QEMU kodunda başlanacak yer virtio_ioport_write() in hw/virtio-pci.c.

+0

Çok teşekkür ederim. Bir soru daha. Qemu örneği, guestOS'un kullanıcı alanında mı yoksa HostOS'un kullanıcı alanında mı çalışıyor? – bala1486

+1

Ana bilgisayar işletim sisteminin kullanıcı alanı. Orijinal [kvm kağıdı] okudunuz (http://www.kernel.org/doc/ols/2007/ols2007v1-pages-225-230.pdf)? QEMU, 3.1 ve 5.1 bölümlerinde açıklandığı gibi I/O sanallaştırmayı sağlayan kullanıcı alanıdır. Konuk işletim sistemi, çalışacak özel bir şey içermiyor; ama virtio gibi bir mekanizmanın (misafirin sanallaştırıldığı bilgisine sahip olduğu ve özel destek kullandığı) kullanımı, daha yüksek I/O performansına olanak tanır. (Bu, kağıdın bölüm 8.2'de kısaca açıklandığı gibi "paravirtualizasyon" dur.) –