> From: Neo Jia [mailto:cjia@xxxxxxxxxx] > Sent: Tuesday, January 26, 2016 6:21 PM > > 0. High level overview > ===================================================== > ============================= > > > user space: > +-----------+ VFIO IOMMU IOCTLs > +---------| QEMU VFIO |-------------------------+ > VFIO IOCTLs | +-----------+ | > | | > ---------------------|-----------------------------------------------|--------- > | | > kernel space: | +--->----------->---+ (callback) V > | | v +------V-----+ > +----------+ +----V--^--+ +--+--+-----+ | VGPU | > | | | | +----| nvidia.ko +----->-----> TYPE1 IOMMU| > | VFIO Bus <===| VGPU.ko |<----| +-----------+ | +---++-------+ > | | | | | (register) ^ || > +----------+ +-------+--+ | +-----------+ | || > V +----| i915.ko +-----+ +---VV-------+ > | +-----^-----+ | TYPE1 | > | (callback) | | IOMMU | > +-->------------>---+ +------------+ > access flow: > > Guest MMIO / PCI config access > | > ------------------------------------------------- > | > +-----> KVM VM_EXITs (kernel) > | > ------------------------------------------------- > | > +-----> QEMU VFIO driver (user) > | > ------------------------------------------------- > | > +----> VGPU kernel driver (kernel) > | > | > +----> vendor driver callback > > There is one difference between nvidia and intel implementations. We have vgpu device model in kernel, as part of i915.ko. So I/O emulation requests are forwarded directly in kernel side. Thanks Kevin -- To unsubscribe from this list: send the line "unsubscribe kvm" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html