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 Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 9A851F9EDC5 for ; Wed, 22 Apr 2026 12:57:00 +0000 (UTC) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wFX8N-0007FM-IE; Wed, 22 Apr 2026 08:56:51 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wFX8M-0007F6-6G for qemu-devel@nongnu.org; Wed, 22 Apr 2026 08:56:50 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.133.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wFX8H-0007Op-Tm for qemu-devel@nongnu.org; Wed, 22 Apr 2026 08:56:49 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1776862602; 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=eADWk4MN3QfUFDklld/Q0sxClOXHuVkOm7XnFMc5k2M=; b=PSoyR34m2el57Ngy7yCA2QF3Vn+CJIniUbMwT2EWwA+xWnnmFUVYqoTinSjoXJSQ4W3aQq FkBBfg8Ire8VjrVVLALNG1Q9fCmULaLE3sbkottVSEf9SSqam2Vb2FgJaRGfgaY214LTj6 bCX1bNcxFrkpluNKwjIwMyCBUzG/YIk= Received: from mx-prod-mc-03.mail-002.prod.us-west-2.aws.redhat.com (ec2-54-186-198-63.us-west-2.compute.amazonaws.com [54.186.198.63]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-464-Agj219UUMVGtA5dnd5Z5Pw-1; Wed, 22 Apr 2026 08:56:39 -0400 X-MC-Unique: Agj219UUMVGtA5dnd5Z5Pw-1 X-Mimecast-MFC-AGG-ID: Agj219UUMVGtA5dnd5Z5Pw_1776862598 Received: from mx-prod-int-06.mail-002.prod.us-west-2.aws.redhat.com (mx-prod-int-06.mail-002.prod.us-west-2.aws.redhat.com [10.30.177.93]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by mx-prod-mc-03.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS id 42C301955DDB; Wed, 22 Apr 2026 12:56:38 +0000 (UTC) Received: from redhat.com (headnet01.pony-001.prod.iad2.dc.redhat.com [10.2.32.101]) by mx-prod-int-06.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS id 62B3E180047F; Wed, 22 Apr 2026 12:56:36 +0000 (UTC) Date: Wed, 22 Apr 2026 13:56:33 +0100 From: Daniel =?utf-8?B?UC4gQmVycmFuZ8Op?= To: Markus Armbruster Cc: =?utf-8?Q?Marc-Andr=C3=A9?= Lureau , QEMU , John Snow , Paolo Bonzini Subject: Re: About query-qmp-schema Message-ID: References: <87ldefz0qk.fsf@pond.sub.org> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <87ldefz0qk.fsf@pond.sub.org> User-Agent: Mutt/2.2.14 (2025-02-20) X-Scanned-By: MIMEDefang 3.4.1 on 10.30.177.93 Received-SPF: pass client-ip=170.10.133.124; envelope-from=berrange@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, 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_PASS=-0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: Daniel =?utf-8?B?UC4gQmVycmFuZ8Op?= Errors-To: qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Sender: qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org On Wed, Apr 22, 2026 at 01:35:31PM +0200, Markus Armbruster wrote: > Marc-André Lureau writes: > snip > >> and it may be a type that is not even used by > >> qmp commands/events. > > Yes, because query-qmp-schema returns the *QMP* schema. > > >> A quick test shows the current schema is about > >> ~243kb of json. With all types, it grows to ~273kb. Unmask it grows to > >> ~308kb. > >> > >> Could we send the full version? Eventually, we could have a "flavour": > >> "full" argument. > >> > >> Another option is to compress the schema. A "full-gz" in baes64 would be 51kb. > > > - At runtime, query-qmp-schema decompresses it and parses the JSON to > > keep compatibility with existing commands, applying filtering and > > typename substitution > > - Add a query-qmp-schema-data, which returns the unmodified compressed > > JSON schema blob (~35kb in base64) > > If we expose QAPI schema type names externally, they become ABI. The > design decision not to has enabled schema refactorings time and again. > Changing that feels like a bad idea. Yeah the ability to change our type names has been surprisingly useful and common, in fact because it allows more than just type name changes. A single type exposed in QMP can map to multiple types in QAPI, thanks to the inheritance from the 'base' keyword. That inheritance is flattended in what we expose in QMP. With regards, Daniel -- |: https://berrange.com ~~ https://hachyderm.io/@berrange :| |: https://libvirt.org ~~ https://entangle-photo.org :| |: https://pixelfed.art/berrange ~~ https://fstop138.berrange.com :|