From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-5.3 required=3.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED,HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI,SPF_HELO_NONE, SPF_PASS,URIBL_BLOCKED,USER_AGENT_SANE_1 autolearn=no autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 8A856C433E0 for ; Mon, 3 Aug 2020 09:46:19 +0000 (UTC) Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 59F3420722 for ; Mon, 3 Aug 2020 09:46:19 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (1024-bit key) header.d=redhat.com header.i=@redhat.com header.b="DSpXXYmO" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 59F3420722 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=redhat.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Received: from localhost ([::1]:58852 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1k2X2x-00039c-Dg for qemu-devel@archiver.kernel.org; Mon, 03 Aug 2020 05:46:19 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:43548) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1k2X27-0002bW-EV for qemu-devel@nongnu.org; Mon, 03 Aug 2020 05:45:27 -0400 Received: from us-smtp-1.mimecast.com ([205.139.110.61]:30156 helo=us-smtp-delivery-1.mimecast.com) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.90_1) (envelope-from ) id 1k2X24-0008C6-Ir for qemu-devel@nongnu.org; Mon, 03 Aug 2020 05:45:27 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1596447923; h=from:from:reply-to:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=ohXrcsULRhnX3WYfhRG+lRD6r9wObLB22vq+9NXhWDc=; b=DSpXXYmOft0V3R33prn+cM3m8Ahchg251v6dzU+478sRNJMy0/Scjy5rv+Qe9JmBQc+oM4 HxAVQ7RTf3kBZ2gsvDZIpi3lvPSffEXZSOiEHu3xnn3yKVqLqnbzY3VG7r/wXAPqr/ZkKV ogWmEapCu69Mf3JD1U83q0EeFstUe18= Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-394-z7H0zn9tOd6s79gG9P3liA-1; Mon, 03 Aug 2020 05:44:56 -0400 X-MC-Unique: z7H0zn9tOd6s79gG9P3liA-1 Received: from smtp.corp.redhat.com (int-mx04.intmail.prod.int.phx2.redhat.com [10.5.11.14]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id B2BD7100AA2E; Mon, 3 Aug 2020 09:44:55 +0000 (UTC) Received: from redhat.com (unknown [10.36.110.44]) by smtp.corp.redhat.com (Postfix) with ESMTPS id C0A8A5D9F7; Mon, 3 Aug 2020 09:44:40 +0000 (UTC) Date: Mon, 3 Aug 2020 10:44:37 +0100 From: Daniel =?utf-8?B?UC4gQmVycmFuZ8Op?= To: Paolo Bonzini Subject: Re: [PATCH] schemas: Add vim modeline Message-ID: <20200803094437.GD3670709@redhat.com> References: <87ime52wxd.fsf@dusky.pond.sub.org> <20200730093732.GB3477223@redhat.com> <87k0ylz0ep.fsf@dusky.pond.sub.org> <20200730132446.GL3477223@redhat.com> <875za33ku1.fsf@dusky.pond.sub.org> <20200731150738.GB3660103@redhat.com> <03bb7822-20a0-2945-6c86-1d5f1b2a01d9@redhat.com> <6ceef1ab-5078-d77e-6e6c-4e1bfc01418a@redhat.com> <20200731172010.GG3660103@redhat.com> <4640e038-b0b0-e6f9-24c5-9e2aae7eb4ea@redhat.com> MIME-Version: 1.0 In-Reply-To: <4640e038-b0b0-e6f9-24c5-9e2aae7eb4ea@redhat.com> User-Agent: Mutt/1.14.5 (2020-06-23) X-Scanned-By: MIMEDefang 2.79 on 10.5.11.14 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit Content-Disposition: inline Received-SPF: pass client-ip=205.139.110.61; envelope-from=berrange@redhat.com; helo=us-smtp-delivery-1.mimecast.com X-detected-operating-system: by eggs.gnu.org: First seen = 2020/08/03 02:56:11 X-ACL-Warn: Detected OS = Linux 2.2.x-3.x [generic] [fuzzy] X-Spam_score_int: -30 X-Spam_score: -3.1 X-Spam_bar: --- X-Spam_report: (-3.1 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-1, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001 autolearn=unavailable autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: Daniel =?utf-8?B?UC4gQmVycmFuZ8Op?= Cc: Eduardo Habkost , qemu-block@nongnu.org, "Michael S. Tsirkin" , qemu-devel@nongnu.org, Jason Wang , Juan Quintela , Yuval Shaia , Markus Armbruster , Gerd Hoffmann , Andrea Bolognani , =?utf-8?Q?Marc-Andr=C3=A9?= Lureau , John Snow , Michael Roth , "Dr. David Alan Gilbert" , Stefan Berger Errors-To: qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Sender: "Qemu-devel" On Fri, Jul 31, 2020 at 07:47:01PM +0200, Paolo Bonzini wrote: > On 31/07/20 19:20, Daniel P. Berrangé wrote: > > It also means QMP isn't easily extensible. eg if we used > > HTTP as our base, then we'd get remote TLS support for free from > > whatever library we used. > > ... and we would lose events, unless we do something with HTTP/2 and > streaming responses. We would also have to pass the TLS certificates to > whatever library we used (which might even be using openssl instead of > gnutls). So it's not that simple, and that's why I'm hesitant to see > things as a universal improvement without seeing the code. I didn't mean to suggest that QEMU should use HTTP, I was just comparing QMP use of JSON vs the common webservices using RST with JSON. HTTP/2 streaming is not required for async events though, there's a variety of ways to do that with HTTP/1.1. Open a HTTP connection and issue GET for /events, and the server will then simply not respond until it has an event ready. Once a event is received, that request is complete. With connection reuse enabled though, another GET request can be made to wait for the next event without the overhead of re-establishing the connection. Alternatively a single HTTP request can be used, but with the response using chunked event so that it can send back an arbitrary unbounded amount of data spread over time. The client can receive and process this data on the fly without waiting for the request to complete. Regards, Daniel -- |: https://berrange.com -o- https://www.flickr.com/photos/dberrange :| |: https://libvirt.org -o- https://fstop138.berrange.com :| |: https://entangle-photo.org -o- https://www.instagram.com/dberrange :|