Re: [PATCH 5/5] ioeventfd: Introduce KVM_IOEVENTFD_FLAG_SOCKET

Sasha Levin
2011-07-20T06:17:16Z

On Tue, 2011-07-19 at 21:52 -0500, Anthony Liguori wrote:
> On 07/14/2011 08:23 AM, Avi Kivity wrote:
> > On 07/14/2011 04:17 PM, Pekka Enberg wrote:
> >> >
> >> > I still don't follow. The guest oopses? dmesg | less. An issue with
> >> > tools/kvm? gdb -p `pgrep kvm`.
> >>
> >> When I was debugging tools/kvm virtio code, I used to 'instrument' the
> >> guest kernel with printk() calls which helped a lot.
> >>
> >
> > Sure, but do you really need it spewing out the serial port all the time?
> >
> >> Also, a bug in tools/kvm can manifest in many interesting ways in the
> >> guest kernel during boot, for example. You can't do dmesg then and gdb
> >> won't save you. I think you've lived too long in the table KVM and Qemu
> >> land to remember how important reliable printk() is for development.
> >
> > I guess. Also I've switched to trace_printk() since it's much nicer (and
> > intergrates with other ftrace features).
> >
> > And again, I'm not against tools/kvm optimizing serial. I just want
> > better justification for socket-mmio.
>
> Just to be really thorough, the optimization is incorrect for UART
> emulation. Maybe for a simple PIO based console where there were no
> guest visible side effects to a character write, this would be okay, but
> that is not how a UART works.

To be honest, I haven't checked if the implementation we have is correct
- I've just checked that it would benefit from the implementation of
socket ioeventfds.

I'll have to look at it again based on your review and probably fix it
to work correctly :)

>
> Just implement virtio-serial :-) You can move data as fast as you'd
> like through it.
>
> And if virtio-serial is too complicated, make a simpler version that
> doesn't have such crazy semantics.

We do have virtio-serial support in /tools/kvm, you can try it using
'--console virtio'.

Currently I prefer using simple serial most of the time since it's the
most basic and simplest method of getting output from a guest, which is
quite useful when developing the core of /tools/kvm.

--

Sasha.