From: Kevin Wolf <kwolf@redhat.com>
To: Paolo Bonzini <pbonzini@redhat.com>
Cc: qemu-devel@nongnu.org, MORITA Kazutaka <morita.kazutaka@lab.ntt.co.jp>
Subject: Re: [Qemu-devel] [PATCH v2 03/15] sheepdog: move coroutine send/recv function to generic code
Date: Mon, 19 Sep 2011 09:47:53 +0200 [thread overview]
Message-ID: <4E76F3A9.1090902@redhat.com> (raw)
In-Reply-To: <4E74B372.2060505@redhat.com>
Am 17.09.2011 16:49, schrieb Paolo Bonzini:
> On 09/17/2011 08:29 AM, MORITA Kazutaka wrote:
>>>> +#else
>>>> + struct iovec *p = iov;
>>>> + ret = 0;
>>>> + while (iovlen> 0) {
>>>> + int rc;
>>>> + if (do_sendv) {
>>>> + rc = send(sockfd, p->iov_base, p->iov_len, 0);
>>>> + } else {
>>>> + rc = qemu_recv(sockfd, p->iov_base, p->iov_len, 0);
>>>> + }
>>>> + if (rc == -1) {
>>>> + if (errno == EINTR) {
>>>> + continue;
>>>> + }
>>>> + if (ret == 0) {
>>>> + ret = -1;
>>>> + }
>>>> + break;
>>>> + }
>>>> + iovlen--, p++;
>>>> + ret += rc;
>>>> + }
>> This code can be called inside coroutines with a non-blocking fd, so
>> should we avoid busy waiting?
>
> It doesn't busy wait, it exits with EAGAIN. I'll squash in here the
> first hunk of patch 4, which is needed.
>
> qemu_co_recvv already handles reads that return zero, unlike sheepdog's
> do_readv_writev. I probably moved it there inadvertently while moving
> code around to cutils.c, but in order to fix qemu-ga I need to create a
> new file qemu-coroutine-io.c.
>
> Kevin, do you want me to resubmit everything, or are you going to apply
> some more patches to the block branch (5 to 12 should be fine)?
As long as it's clear what the current version is, I don't mind. Do I
understand right that there will be a v3 for patches 3 and 4?
Kevin
next prev parent reply other threads:[~2011-09-19 7:45 UTC|newest]
Thread overview: 24+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-09-16 14:25 [Qemu-devel] [PATCH v2 00/15] nbd improvements Paolo Bonzini
2011-09-16 14:25 ` [Qemu-devel] [PATCH v2 01/15] sheepdog: add coroutine_fn markers Paolo Bonzini
2011-09-17 5:32 ` MORITA Kazutaka
2011-09-16 14:25 ` [Qemu-devel] [PATCH v2 02/15] add socket_set_block Paolo Bonzini
2011-09-17 5:33 ` MORITA Kazutaka
2011-09-16 14:25 ` [Qemu-devel] [PATCH v2 03/15] sheepdog: move coroutine send/recv function to generic code Paolo Bonzini
2011-09-17 6:29 ` MORITA Kazutaka
2011-09-17 14:49 ` Paolo Bonzini
2011-09-17 17:16 ` MORITA Kazutaka
2011-09-19 7:47 ` Kevin Wolf [this message]
2011-09-19 9:34 ` Paolo Bonzini
2011-09-16 14:25 ` [Qemu-devel] [PATCH v2 04/15] coroutine-io: handle zero returns from recv Paolo Bonzini
2011-09-17 6:50 ` MORITA Kazutaka
2011-09-16 14:25 ` [Qemu-devel] [PATCH v2 05/15] block: emulate .bdrv_flush() using .bdrv_aio_flush() Paolo Bonzini
2011-09-16 14:25 ` [Qemu-devel] [PATCH v2 06/15] block: group together the plugging of synchronous IO emulation Paolo Bonzini
2011-09-16 14:25 ` [Qemu-devel] [PATCH v2 07/15] block: add bdrv_co_flush support Paolo Bonzini
2011-09-16 14:25 ` [Qemu-devel] [PATCH v2 08/15] block: add bdrv_co_discard and bdrv_aio_discard support Paolo Bonzini
2011-09-16 14:25 ` [Qemu-devel] [PATCH v2 09/15] nbd: fix error handling in the server Paolo Bonzini
2011-09-16 14:25 ` [Qemu-devel] [PATCH v2 10/15] nbd: add support for NBD_CMD_FLUSH Paolo Bonzini
2011-09-16 14:25 ` [Qemu-devel] [PATCH v2 11/15] nbd: add support for NBD_CMD_FLAG_FUA Paolo Bonzini
2011-09-16 14:25 ` [Qemu-devel] [PATCH v2 12/15] nbd: add support for NBD_CMD_TRIM Paolo Bonzini
2011-09-16 14:25 ` [Qemu-devel] [PATCH v2 13/15] nbd: switch to asynchronous operation Paolo Bonzini
2011-09-16 14:25 ` [Qemu-devel] [PATCH v2 14/15] nbd: split requests Paolo Bonzini
2011-09-16 14:25 ` [Qemu-devel] [PATCH v2 15/15] nbd: allow multiple in-flight requests Paolo Bonzini
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=4E76F3A9.1090902@redhat.com \
--to=kwolf@redhat.com \
--cc=morita.kazutaka@lab.ntt.co.jp \
--cc=pbonzini@redhat.com \
--cc=qemu-devel@nongnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).