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

Dor Laor
2008-07-24T23:34:37Z

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.
>
> Signed-off-by: Mark McLoughlin <markmc@redhat.com>
> ---
> qemu/vl.c | 2 ++
> 1 files changed, 2 insertions(+), 0 deletions(-)
>
> 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?
> + kvm_sleep_begin();
> s->size = read(s->fd, s->buf, sizeof(s->buf));
> + kvm_sleep_end();
> #endif
>
> if (s->size == -1 && errno == EINTR)
>