Re: RFC/patch portability: split kvm_vm_ioctl v3

Christian Borntraeger
2007-11-05T10:31:18Z

Am Montag, 5. November 2007 schrieb Arnd Bergmann:
> Read again what I wrote above. I'm suggesting to have just one external
> interrupt for virtio and use the generic IRQ abstraction to handle
> everything that comes below that.

So you basically suggest to implement wrapper code around extint and lowcore
memory to be able to use request_irq/free_irq?

> > Plus I don't see a benefit from pretending to have an interrupt
> > controller: virtio abstracts from this, and can well be implemented
> > over extint and hypercall like Christian has done it. What's the
> > problem you're trying to solve?
>
> Sorry, I can't find Christian's code right now, do you have a pointer
> to the patches?

The code was only used for our prototype hypervisor. I never posted these
virtio patches as Rusty was quicker in changing virtio than I was able to
re-add them to our prototype code. ;-)

> I suspect that he has done exactly what I was trying to explain, except
> that the implementation is not using the generic IRQ layer, which means
> you're duplicating some of the code.

I used one external interrupt and I reserved an area in lowcore for a 64bit
extint parameter. (I use the same address as z/VM for the PFAULT token). I
defined a hypercall in which the guest could specify this 64bit value for a
given virtqueue. That allowed me to get the virtqueue pointer without looking
it up in the list of (maybe many) virtqueues.

Christian