On Mon, Oct 04, 2010 at 09:01:14AM -0500, Anthony Liguori wrote:
On 10/04/2010 03:04 AM, Avi Kivity wrote:
On 10/04/2010 03:18 AM, Anthony Liguori wrote:
On 10/03/2010 09:28 AM, Michael S. Tsirkin wrote:
This is using eventfd as well.
Sorry, I meant irqfd.
I've tried using irqfd in userspace. It hurts performance quite
a bit compared to doing an ioctl so I would suspect this too.
A last_used_idx or similar mechanism should help performance
quite a bit on top of ioeventfd too.
Any idea why? While irqfd does quite a bit of extra locking, it
shouldn't be that bad.
Not really. It was somewhat counter intuitive.
A worthwhile experiment might be to do some layering violations and
have vhost do an irq injection via an ioctl and see what the
performance delta is.
I think you don't even need to try that hard.
Just comment this line:
// proxy->pci_dev.msix_mask_notifier = virtio_pci_mask_notifier;
this is what switches to irqfd when msi vector is unmasked.