Re: [PATCH 8/9] kvm: qemu: Drop the mutex while reading from tapfd

Mark McLoughlin
2008-07-25T17:25:53Z

On Fri, 2008-07-25 at 02:33 +0300, Dor Laor wrote:
> Mark McLoughlin wrote:
> > The idea here is that with GSO, packets are much larger
> > and we can allow the vcpu threads to e.g. process irq
> > acks during the window where we're reading these
> > packets from the tapfd.
> >
...
> > diff --git a/qemu/vl.c b/qemu/vl.c
> > index efdaafd..de92848 100644
> > --- a/qemu/vl.c
> > +++ b/qemu/vl.c
> > @@ -4281,7 +4281,9 @@ static void tap_send(void *opaque)
> > sbuf.buf = s->buf;
> > s->size = getmsg(s->fd, NULL, &sbuf, &f) >=0 ? sbuf.len : -1;
> > #else
> >
> Maybe do it only when GSO is actually used by the guest/tap.
> Otherwise it can cause some ctx trashing right?

(Strange habit you have of "top commenting" on patches :-)

I've been meaning to do some profiling of just how long the vcpu thread
spends blocking on the mutex in this case, both before and after the GSO
patches.

i.e. this change may make sense even with smaller buffers ...

> > + kvm_sleep_begin();
> > s->size = read(s->fd, s->buf, sizeof(s->buf));
> > + kvm_sleep_end();

Cheers,
Mark.