On Tue, Jan 26, 2016 at 07:24:52PM +0000, Tian, Kevin wrote: > > 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. Hi Kevin, With the vendor driver callback, it will always forward to the kernel driver. If you are talking about the QEMU VFIO driver (user) part I put on the above diagram, that is how QEMU VFIO handles MMIO or pci config access today, which we don't change anything here in this design. Thanks, Neo > > 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