其他分享
首页 > 其他分享> > VFIO-MDEV driver(virtual device) trigger interrupt to virtual machine

VFIO-MDEV driver(virtual device) trigger interrupt to virtual machine

作者:互联网

Last blog records how to data access between VFIO-MDEV driver(virtual device) to virtual machine. Now this blog records the interrupt from VFIO-MDEV driver(virtual device) to virtual machine.

Host side: 

Actually mtty sample code has the good implementation of VFIO interrupt. The turth is VFIO-MDEV driver sends event to virtual machine.

Here we can see VFIO-MDEV driver will use event to simulate the interrupt -- MSI or legacy.

And the whole flow is about:

1. Virtual machine get interrupt information(how many interrupts in VFIO-MDEV device) from VFIO-MDEV driver by 'VFIO_DEVICE_GET_IRQ_INFO'. 

2. Virtual machine setup the event path by 'VFIO_DEVICE_SET_IRQS'.

So your VFIO-MDEV driver has to implement this two cases in mdev_parent_ops.ioctl(). Please read the mtty.c and you will understand it.

OK, now we can call this trigger function.

On virtual machine:

 I added code the get the irq number and register irq handler to the system.

Here you can see I use legacy interrupt as mtty device's original code setup it.

Result:

On virtual machine:

We can see firstly I got the irq number and then my irq handler was triggered. 

So the interrupt works. 

 

标签:VFIO,driver,virtual,machine,MDEV,interrupt
来源: https://blog.csdn.net/alex_mianmian/article/details/119428351