接前一篇文章:
从QEMU源码全解析 —— virtio(3)到上一回QEMU源码全解析 —— virtio(16)花了十几个回目讲解了virtio设备的初始化,本回开始讲解virtio驱动的加载。
virtio驱动的加载
前文书讲了每一个virtio设备都有一个对应的virtio PCI代理设备,本回开始来分析虚拟机内部操作系统是如何加载virtio PCI代理设备和virtio设备驱动、以及如何与virtio设备通信的。由于virtio PCI代理设备的存在,PCI进行扫描的时候会扫描到这个设备,并且会调用相应驱动的probe函数。
virtio_pci_driver及其probe回调函数在Linux内核源码/drivers/virtio/virtio_pci_common.c中,如下所示:
- virtio_pci_driver