From: Paolo Bonzini <pbonzini@redhat.com>
To: "Daniel P. Berrange" <berrange@redhat.com>
Cc: Gerd Hoffmann <kraxel@redhat.com>,
qemu-devel@nongnu.org,
"Dr. David Alan Gilbert" <dgilbert@redhat.com>
Subject: Re: [Qemu-devel] [PATCH v1 07/16] io: add abstract QIOChannel classes
Date: Tue, 22 Sep 2015 14:28:25 +0200 [thread overview]
Message-ID: <56014969.4070603@redhat.com> (raw)
In-Reply-To: <20150922122452.GN28888@redhat.com>
On 22/09/2015 14:24, Daniel P. Berrange wrote:
> On Tue, Sep 22, 2015 at 02:19:27PM +0200, Paolo Bonzini wrote:
>>
>>
>> On 18/09/2015 15:19, Daniel P. Berrange wrote:
>>> + QIO_CHANNEL_FEATURE_FD_PASS = (1 << 0),
>>> + QIO_CHANNEL_FEATURE_SHUTDOWN = (1 << 1),
>>> + QIO_CHANNEL_FEATURE_DELAY = (1 << 2),
>>> + QIO_CHANNEL_FEATURE_CORK = (1 << 3),
>>
>> TCP_NODELAY and TCP_CORK are just hints; I think it is okay to just
>> ignore them if not supported. You obviously disagree, so the question
>> is why? :)
>
> Well I was just trying not to second guess what future uses we might
> have of the QIOChannel API, so I went for the approach of providing a
> way to probe any optional features upfront. Code doesn't have to use
> this if it doesn't want to - it can just ignore errors from the API
> call later.
Perhaps we can get to a middle ground where you can probe them but no
errors are reported?
Reporting errors is relatively heavyweight (g_new, possibly in a hot
path if the corresponding feature is not supported) and in general QEMU
never checked for the return value of socket_set_cork and
socket_set_nodelay.
The probe, however, should also test if SOL_TCP and TCP_CORK are
defined. I think corking is a Linux-ism.
Paolo
next prev parent reply other threads:[~2015-09-22 12:28 UTC|newest]
Thread overview: 32+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-09-18 13:18 [Qemu-devel] [PATCH v1 00/16] Introduce I/O channels framework Daniel P. Berrange
2015-09-18 13:18 ` [Qemu-devel] [PATCH v1 01/16] sockets: add helpers for creating SocketAddress from a socket Daniel P. Berrange
2015-09-18 13:18 ` [Qemu-devel] [PATCH v1 02/16] sockets: move qapi_copy_SocketAddress into qemu-sockets.c Daniel P. Berrange
2015-09-18 13:18 ` [Qemu-devel] [PATCH v1 03/16] sockets: allow port to be NULL when listening on IP address Daniel P. Berrange
2015-09-18 13:18 ` [Qemu-devel] [PATCH v1 04/16] ui: convert VNC startup code to use SocketAddress Daniel P. Berrange
2015-09-18 13:18 ` [Qemu-devel] [PATCH v1 05/16] osdep: add qemu_fork() wrapper for safely handling signals Daniel P. Berrange
2015-09-18 13:19 ` [Qemu-devel] [PATCH v1 06/16] coroutine: move into libqemuutil.a library Daniel P. Berrange
2015-09-22 12:07 ` Paolo Bonzini
2015-09-24 14:46 ` Daniel P. Berrange
2015-09-18 13:19 ` [Qemu-devel] [PATCH v1 07/16] io: add abstract QIOChannel classes Daniel P. Berrange
2015-09-22 12:19 ` Paolo Bonzini
2015-09-22 12:24 ` Daniel P. Berrange
2015-09-22 12:28 ` Paolo Bonzini [this message]
2015-09-24 14:47 ` Daniel P. Berrange
2015-09-18 13:19 ` [Qemu-devel] [PATCH v1 08/16] io: add helper module for creating watches on FDs Daniel P. Berrange
2015-09-18 13:19 ` [Qemu-devel] [PATCH v1 09/16] io: pull Buffer code out of VNC module Daniel P. Berrange
2015-09-22 12:04 ` Paolo Bonzini
2015-09-22 12:20 ` Daniel P. Berrange
2015-09-22 12:21 ` Paolo Bonzini
2015-09-18 13:19 ` [Qemu-devel] [PATCH v1 10/16] io: add QIOTask class for async operations Daniel P. Berrange
2015-09-18 13:19 ` [Qemu-devel] [PATCH v1 11/16] io: add QIOChannelSocket class Daniel P. Berrange
2015-09-18 13:19 ` [Qemu-devel] [PATCH v1 12/16] io: add QIOChannelFile class Daniel P. Berrange
2015-09-18 13:19 ` [Qemu-devel] [PATCH v1 13/16] io: add QIOChannelTLS class Daniel P. Berrange
2015-09-18 13:19 ` [Qemu-devel] [PATCH v1 14/16] io: add QIOChannelWebsock class Daniel P. Berrange
2015-09-18 13:19 ` [Qemu-devel] [PATCH v1 15/16] io: add QIOChannelCommand class Daniel P. Berrange
2015-09-18 13:19 ` [Qemu-devel] [PATCH v1 16/16] io: add QIOChannelBuffer class Daniel P. Berrange
2015-09-25 10:15 ` Paolo Bonzini
2015-09-25 10:21 ` Daniel P. Berrange
2015-09-22 12:23 ` [Qemu-devel] [PATCH v1 00/16] Introduce I/O channels framework Paolo Bonzini
2015-09-24 14:51 ` Daniel P. Berrange
2015-09-25 10:18 ` Paolo Bonzini
2015-09-25 10:20 ` Daniel P. Berrange
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=56014969.4070603@redhat.com \
--to=pbonzini@redhat.com \
--cc=berrange@redhat.com \
--cc=dgilbert@redhat.com \
--cc=kraxel@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).