On Tue, 2007-08-14 at 00:44 -0700, Dor Laor wrote:

> Can you provide performance figures? What’s the tcp/udp between guest & host?

None yet :(  Its pretty much "pseudo code that compiles" at this
point. ;) I still have to work out several issues before I can even
begin testing.  Interrupt management jumps out at me as one of those
issues.

The one saving grace is that I originally developed the ioq.[ch] code in
userspace with a mutex/condvar based ioqmgr.  So in general I know the
queuing code works.  But once I started really coding to the kernel it
became difficult to maintain the test harness so I cut it out and
abandoned it.

> I saw that you use kvm_vcpu_send_interrupt in a comment. Did you actually 
> inject irqs?

Not yet, just a place holder for the real implementation.  Now you know
why I was interested in the lapic project tho ;)

> Through the kernel or userspace?

The thing obviously would prefer an in-kernel injection path, but I
think I might need to talk to you soon about getting the userspace path
working in the interim until the lapic3 branch is merged.

> 
> Also I have some general comments:
> - I like the approach of a general shared memory queue (one can call it dma 
> descriptor 
>   data structure or whatever). Rusty has a similar dma descriptor code that 
> can be generealized
>   easily too.

By all means, point me to the area you think I can contribute here.  One
of the the things I was thinking of as I looked at the two was that
perhaps the code in IOQ could be used to *implement* virtio.  Even if
people don't like having the iterator methods exposed directly to
end-users (e.g. drivers), the stuff I did to generalize the queuing and
to abstract the VMM platform away might be useful.

> - Regarding the virtual bus, I didn't see any use of standard Linux APIs such 
> as 'bus_register' or
>   'driver_register'. Take a look at lguest_bus.c, it is very nice piece of 
> code.

This wasn't on purpose per se.  I will definitely take a look at that.

On that topic, I really see the queuing code as independent from the
pvbus code.  Did you like any of the directions I took things there, or
am I off in the weeds?


> - IMO the ring code lacks lots of memory barrier calls (actually my original 
> implementation 
>   partially suffered from that too ...

Totally agree.  Its on my plate.  I think at the very least I need them
in the ioq_signal() code.  But there are probably other places too, like
before the ownership bit is changed (e.g. desc->sown).

>   Since Rusty has taken care for that in his virtio implementation I think we 
> should base
>   our KVM PV devices over it. I just started porting virtio to KVM and expect 
> to see the first
>   packets coming in today. I'll send initial patches when it be in better 
> shape next week.
>   Nevertheless, any ideas/code are welcomed.

I am looking forward to your patches!

-Greg


-------------------------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc.
Still grepping through log files to find problems?  Stop.
Now Search log events and configuration files using AJAX and a browser.
Download your FREE copy of Splunk now >>  http://get.splunk.com/
_______________________________________________
kvm-devel mailing list
kvm-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/kvm-devel

Reply via email to