All of lore.kernel.org
 help / color / mirror / Atom feed
From: Eric Blake <eblake@redhat.com>
To: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>,
	qemu-devel@nongnu.org
Cc: pbonzini@redhat.com, den@openvz.org
Subject: Re: [Qemu-devel] [PATCH 01/19] nbd/server: get rid of nbd_negotiate_read and friends
Date: Wed, 31 May 2017 09:39:27 -0500	[thread overview]
Message-ID: <e5021317-ec3a-def9-71ea-3dbc947a6e20@redhat.com> (raw)
In-Reply-To: <173a697e-274c-a2a7-63d2-f5dbf93f69e7@virtuozzo.com>

[-- Attachment #1: Type: text/plain, Size: 2364 bytes --]

On 05/31/2017 08:12 AM, Vladimir Sementsov-Ogievskiy wrote:
> 30.05.2017 23:10, Eric Blake wrote:
>> On 05/30/2017 09:30 AM, Vladimir Sementsov-Ogievskiy wrote:
>>> Functions nbd_negotiate_{read,write,drop_sync} were introduced in
>>> 1a6245a5b, when nbd_wr_syncv was working through qemu_co_sendv_recvv,
>> There is no qemu_co_sendv_recvv. Did you mean qemu_co_recv/qemu_co_send?
> 
> qemu_co_recv is a macro, qemu_co_sendv_recvv - is an actual function,
> which do something.

Oh. I see where I went wrong - I was grepping for 'nbd_co_sendv' and
coming up short.

> 
> #define qemu_co_recv(sockfd, buf, bytes) \
>   qemu_co_send_recv(sockfd, buf, bytes, false)
> 
> ssize_t coroutine_fn
> qemu_co_send_recv(int sockfd, void *buf, size_t bytes, bool do_send)
> {
>     struct iovec iov = { .iov_base = buf, .iov_len = bytes };
>     return qemu_co_sendv_recvv(sockfd, &iov, 1, 0, bytes, do_send);
> }

The commit message still makes me chase through several layers of
indirection, so I still wonder if referring to qemu_co_recv/qemu_co_send
(which is what is directly used in that older commit for nbd_wr_syncv)
is any better.  It is probably also worth referring back to commit
ff82911cd as the point in time where we switched to the qio_channel
code, thereby no longer needing to manage coroutine handlers quite as
directly as beforehand.


>>> +int drop_sync(QIOChannel *ioc, size_t size, Error **errp)
>> As part of moving it into nbd/common.c, please rename this function to
>> an nbd_ prefix, since non-static functions are more likely to collide
>> with the rest of the code base if not properly named.  Better yet: do it
>> in multiple patches:
>> - rename the static functions and fallout to callers (all of
>> nbd_drop_sync, nbd_read_sync, and nbd_write_sync)

In fact, does the _sync name buy us anything any more, or can we just go
with the shorter nbd_drop(), nbd_read(), and nbd_write()?

>> - code motion (promote nbd_drop_sync from static in client.c to exported
>> in common.c)
>> - drop nbd_negotiate_ functions in favor of common nbd_*_sync functions
> 
> OK
> 
>>
>> The idea makes sense, but I think there's too much going on in this one
>> commit.
>>
> 

-- 
Eric Blake, Principal Software Engineer
Red Hat, Inc.           +1-919-301-3266
Virtualization:  qemu.org | libvirt.org


[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 604 bytes --]

  reply	other threads:[~2017-05-31 14:39 UTC|newest]

Thread overview: 52+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-05-30 14:30 [Qemu-devel] [PATCH 00/19] nbd errors and traces refactoring Vladimir Sementsov-Ogievskiy
2017-05-30 14:30 ` [Qemu-devel] [PATCH 01/19] nbd/server: get rid of nbd_negotiate_read and friends Vladimir Sementsov-Ogievskiy
2017-05-30 20:10   ` Eric Blake
2017-05-31 13:12     ` Vladimir Sementsov-Ogievskiy
2017-05-31 14:39       ` Eric Blake [this message]
2017-05-31 14:56         ` Vladimir Sementsov-Ogievskiy
2017-05-31 15:48           ` Vladimir Sementsov-Ogievskiy
2017-05-30 14:30 ` [Qemu-devel] [PATCH 02/19] nbd/server: get rid of ssize_t Vladimir Sementsov-Ogievskiy
2017-05-30 20:23   ` Eric Blake
2017-05-30 14:30 ` [Qemu-devel] [PATCH 03/19] nbd/server: refactor nbd_co_send_reply Vladimir Sementsov-Ogievskiy
2017-05-30 20:25   ` Eric Blake
2017-05-30 14:30 ` [Qemu-devel] [PATCH 04/19] nbd/server: get rid of EAGAIN dead code Vladimir Sementsov-Ogievskiy
2017-05-30 21:06   ` Eric Blake
2017-05-30 14:30 ` [Qemu-devel] [PATCH 05/19] nbd/server: refactor nbd_co_receive_request Vladimir Sementsov-Ogievskiy
2017-05-30 21:31   ` Eric Blake
2017-05-30 14:30 ` [Qemu-devel] [PATCH 06/19] nbd/server: remove NBDClientNewData Vladimir Sementsov-Ogievskiy
2017-05-30 22:03   ` Eric Blake
2017-05-30 14:30 ` [Qemu-devel] [PATCH 07/19] nbd/server: nbd_negotiate: fix error path Vladimir Sementsov-Ogievskiy
2017-05-30 21:12   ` Eric Blake
2017-05-30 14:30 ` [Qemu-devel] [PATCH 08/19] nbd/server: get rid of fail: return rc Vladimir Sementsov-Ogievskiy
2017-05-30 22:05   ` Eric Blake
2017-05-30 14:30 ` [Qemu-devel] [PATCH 09/19] nbd/server: rename rc to ret Vladimir Sementsov-Ogievskiy
2017-05-30 22:15   ` Eric Blake
2017-05-30 14:30 ` [Qemu-devel] [PATCH 10/19] nbd/server: refactor nbd_trip Vladimir Sementsov-Ogievskiy
2017-05-30 22:23   ` Eric Blake
2017-05-30 14:30 ` [Qemu-devel] [PATCH 11/19] io/channel-socket: qio_channel_socket_writev handle EPIPE Vladimir Sementsov-Ogievskiy
2017-05-30 15:04   ` Daniel P. Berrange
2017-05-30 15:15     ` Vladimir Sementsov-Ogievskiy
2017-05-30 15:29       ` Daniel P. Berrange
2017-05-30 14:30 ` [Qemu-devel] [PATCH 12/19] nbd/common: nbd_wr_syncv handle QIO_CHANNEL_ERR_EPIPE Vladimir Sementsov-Ogievskiy
2017-06-01 22:13   ` Eric Blake
2017-05-30 14:30 ` [Qemu-devel] [PATCH 13/19] nbd/server: return original error codes Vladimir Sementsov-Ogievskiy
2017-06-01 22:29   ` Eric Blake
2017-06-02 10:00     ` Vladimir Sementsov-Ogievskiy
2017-05-30 14:30 ` [Qemu-devel] [PATCH 14/19] nbd/server: nbd_negotiate: return 1 on NBD_OPT_ABORT Vladimir Sementsov-Ogievskiy
2017-06-01 22:33   ` Eric Blake
2017-06-02 12:55     ` Vladimir Sementsov-Ogievskiy
2017-06-02 13:14       ` Vladimir Sementsov-Ogievskiy
2017-05-30 14:30 ` [Qemu-devel] [PATCH 15/19] nbd/server: use errp instead of LOG Vladimir Sementsov-Ogievskiy
2017-06-03 21:46   ` Eric Blake
2017-06-05  9:33     ` Vladimir Sementsov-Ogievskiy
2017-05-30 14:30 ` [Qemu-devel] [PATCH 16/19] nbd/server: add errp to nbd_send_reply() Vladimir Sementsov-Ogievskiy
2017-06-03 21:50   ` Eric Blake
2017-05-30 14:30 ` [Qemu-devel] [PATCH 17/19] nbd/common: nbd_tls_handshake: use error_reportf_err instead of TRACE Vladimir Sementsov-Ogievskiy
2017-06-03 21:55   ` Eric Blake
2017-05-30 14:30 ` [Qemu-devel] [PATCH 18/19] nbd/client: refactor TRACE of NBD_MAGIC Vladimir Sementsov-Ogievskiy
2017-06-05 15:06   ` Eric Blake
2017-06-06  9:01     ` Vladimir Sementsov-Ogievskiy
2017-05-30 14:30 ` [Qemu-devel] [PATCH 19/19] nbd: use generic trace subsystem instead of TRACE macro Vladimir Sementsov-Ogievskiy
2017-06-05 15:23   ` Eric Blake
2017-06-06  9:10     ` Vladimir Sementsov-Ogievskiy
2017-06-06  9:17     ` Vladimir Sementsov-Ogievskiy

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=e5021317-ec3a-def9-71ea-3dbc947a6e20@redhat.com \
    --to=eblake@redhat.com \
    --cc=den@openvz.org \
    --cc=pbonzini@redhat.com \
    --cc=qemu-devel@nongnu.org \
    --cc=vsementsov@virtuozzo.com \
    /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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.