[{"id":3674403,"web_url":"http://patchwork.ozlabs.org/comment/3674403/","msgid":"<CAMxuvaw1Zaui2mSw2o6M6OzC7vnwN8CW1hgnZEtz1BiZmsT1kg@mail.gmail.com>","list_archive_url":null,"date":"2026-04-07T11:00:27","subject":"Re: [PATCH v3 06/10] hw/tpm: Add support for VM migration with TPM\n CRB chunking","submitter":{"id":66774,"url":"http://patchwork.ozlabs.org/api/people/66774/","name":"Marc-André Lureau","email":"marcandre.lureau@redhat.com"},"content":"Hi\n\nOn Mon, Apr 6, 2026 at 6:18 PM Arun Menon <armenon@redhat.com> wrote:\n>\n> From: Arun Menon <armenon@redhat.com>\n>\n> - Add subsection in VMState for TPM CRB with the newly introduced\n>   command and response buffers, along with a needed callback, so that\n>   newer QEMU only sends the buffers if it is necessary.\n> - Add hw_compat blocker because the feature is only supported for\n>   machine type 11.1 and higher.\n> - If the VM has no pending chunked TPM commands in the internal buffers\n>   during a VM migration, or if the machine type does not support newly\n>   introduced buffers, then the needed callback will return false, as it\n>   checks the hw_compat blocker and thus the subsection will not be sent\n>   to the destination host.\n>\n> Signed-off-by: Arun Menon <armenon@redhat.com>\n> ---\n>  hw/core/machine.c |  4 +++-\n>  hw/tpm/tpm_crb.c  | 31 +++++++++++++++++++++++++++++++\n>  2 files changed, 34 insertions(+), 1 deletion(-)\n>\n> diff --git a/hw/core/machine.c b/hw/core/machine.c\n> index 1abc8ae737..fb290c6c53 100644\n> --- a/hw/core/machine.c\n> +++ b/hw/core/machine.c\n> @@ -38,7 +38,9 @@\n>  #include \"hw/acpi/generic_event_device.h\"\n>  #include \"qemu/audio.h\"\n>\n> -GlobalProperty hw_compat_11_0[] = {};\n> +GlobalProperty hw_compat_11_0[] = {\n> +    { \"tpm-crb\", \"migrate-buffers\", \"off\"},\n\nIf this is not intended to be user visible, we should use x- prefix\n\nThe problem is that the previous code changes expose CapChunk to the\nguest unconditionally.\n\nIf running with <=11.0 we should not enable chunk transfer by default\n- or we need to prevent/block migration... otherwise we may lose\nVM/device state, expose a differente device etc.\n\nWhat about having a \"cap-chunk\" property? Enable it by default with >=11.1.\n\nIf enabled when <=11.0, then also disable migration.\n\n> +};\n>  const size_t hw_compat_11_0_len = G_N_ELEMENTS(hw_compat_11_0);\n>\n>  GlobalProperty hw_compat_10_2[] = {\n> diff --git a/hw/tpm/tpm_crb.c b/hw/tpm/tpm_crb.c\n> index b9f295db7a..81471dd9f8 100644\n> --- a/hw/tpm/tpm_crb.c\n> +++ b/hw/tpm/tpm_crb.c\n> @@ -49,6 +49,8 @@ struct CRBState {\n>\n>      bool ppi_enabled;\n>      TPMPPI ppi;\n> +\n> +    bool migrate_buffers;\n>  };\n>  typedef struct CRBState CRBState;\n>\n> @@ -345,18 +347,47 @@ static int tpm_crb_pre_save(void *opaque)\n>      return 0;\n>  }\n>\n> +static bool tpm_crb_chunk_needed(void *opaque)\n> +{\n> +    CRBState *s = opaque;\n> +\n> +    if (!s->migrate_buffers) {\n> +        return false;\n> +    }\n> +\n> +    return ((s->command_buffer && s->command_buffer->len > 0) ||\n> +            (s->response_buffer && s->response_buffer->len > 0));\n> +}\n> +\n> +static const VMStateDescription vmstate_tpm_crb_chunk = {\n> +    .name = \"tpm-crb/chunk\",\n> +    .version_id = 0,\n> +    .needed = tpm_crb_chunk_needed,\n> +    .fields = (const VMStateField[]) {\n> +        VMSTATE_GBYTEARRAY(command_buffer, CRBState, 0),\n> +        VMSTATE_GBYTEARRAY(response_buffer, CRBState, 0),\n> +        VMSTATE_UINT32(response_offset, CRBState),\n> +        VMSTATE_END_OF_LIST()\n> +    }\n> +};\n> +\n>  static const VMStateDescription vmstate_tpm_crb = {\n>      .name = \"tpm-crb\",\n>      .pre_save = tpm_crb_pre_save,\n>      .fields = (const VMStateField[]) {\n>          VMSTATE_UINT32_ARRAY(regs, CRBState, TPM_CRB_R_MAX),\n>          VMSTATE_END_OF_LIST(),\n> +    },\n> +    .subsections = (const VMStateDescription * const []) {\n> +        &vmstate_tpm_crb_chunk,\n> +        NULL,\n>      }\n>  };\n>\n>  static const Property tpm_crb_properties[] = {\n>      DEFINE_PROP_TPMBE(\"tpmdev\", CRBState, tpmbe),\n>      DEFINE_PROP_BOOL(\"ppi\", CRBState, ppi_enabled, true),\n> +    DEFINE_PROP_BOOL(\"migrate-buffers\", CRBState, migrate_buffers, true),\n>  };\n>\n>  static void tpm_crb_reset(void *dev)\n> --\n> 2.53.0\n>","headers":{"Return-Path":"<qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org>","X-Original-To":"incoming@patchwork.ozlabs.org","Delivered-To":"patchwork-incoming@legolas.ozlabs.org","Authentication-Results":["legolas.ozlabs.org;\n\tdkim=pass (1024-bit key;\n unprotected) header.d=redhat.com header.i=@redhat.com header.a=rsa-sha256\n header.s=mimecast20190719 header.b=aFtuflKQ;\n\tdkim=pass (2048-bit key;\n unprotected) header.d=redhat.com header.i=@redhat.com header.a=rsa-sha256\n header.s=google header.b=bcuRLCU+;\n\tdkim-atps=neutral","legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=nongnu.org\n (client-ip=209.51.188.17; helo=lists.gnu.org;\n envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org;\n receiver=patchwork.ozlabs.org)"],"Received":["from lists.gnu.org (lists.gnu.org [209.51.188.17])\n\t(using TLSv1.2 with cipher ECDHE-ECDSA-AES256-GCM-SHA384 (256/256 bits))\n\t(No client certificate requested)\n\tby legolas.ozlabs.org (Postfix) with ESMTPS id 4fqxBJ0Bhlz1xtJ\n\tfor <incoming@patchwork.ozlabs.org>; Wed, 08 Apr 2026 05:30:48 +1000 (AEST)","from localhost ([::1] helo=lists1p.gnu.org)\n\tby lists.gnu.org with esmtp (Exim 4.90_1)\n\t(envelope-from <qemu-devel-bounces@nongnu.org>)\n\tid 1wABW4-0007k2-Dk; Tue, 07 Apr 2026 14:51:12 -0400","from eggs.gnu.org ([2001:470:142:3::10])\n by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)\n (Exim 4.90_1) (envelope-from <mlureau@redhat.com>)\n id 1wABTk-0003Gt-47\n for qemu-devel@nongnu.org; Tue, 07 Apr 2026 14:48:48 -0400","from us-smtp-delivery-124.mimecast.com ([170.10.129.124])\n by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)\n (Exim 4.90_1) (envelope-from <mlureau@redhat.com>)\n id 1wA4Al-0008Fj-PG\n for qemu-devel@nongnu.org; Tue, 07 Apr 2026 07:00:45 -0400","from mail-pg1-f198.google.com (mail-pg1-f198.google.com\n [209.85.215.198]) by relay.mimecast.com with ESMTP with STARTTLS\n (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id\n us-mta-259-XHiVAyqDMVyiKaS0RJMb_A-1; Tue, 07 Apr 2026 07:00:41 -0400","by mail-pg1-f198.google.com with SMTP id\n 41be03b00d2f7-c741c4cebf3so3160350a12.2\n for <qemu-devel@nongnu.org>; Tue, 07 Apr 2026 04:00:40 -0700 (PDT)"],"DKIM-Signature":["v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com;\n s=mimecast20190719; t=1775559642;\n h=from:from:reply-to:subject:subject:date:date:message-id:message-id:\n to:to:cc:cc:mime-version:mime-version:content-type:content-type:\n content-transfer-encoding:content-transfer-encoding:\n in-reply-to:in-reply-to:references:references;\n bh=HuPptOE91voemWPh+8fu0Uj5eLtTbrt9H3+Iyzfqp3U=;\n b=aFtuflKQOU4si09KMMFlFP7dV3835aJ4q8kbR1ZHYTDopW/s9XjU9f9yscrWm2B4jeu2qh\n cQbeEN836jiTaQIrB6ngSlc+C5jZZ3LZa7a6kj2GT/KMR6as8HcLE8wMtXoTs4aX1J5Bdt\n kgomvbhvkSzfQ/yehODl/dKYl7GtC2o=","v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=redhat.com; s=google; t=1775559640; x=1776164440; darn=nongnu.org;\n h=content-transfer-encoding:cc:to:subject:message-id:date:from\n :in-reply-to:references:mime-version:from:to:cc:subject:date\n :message-id:reply-to;\n bh=HuPptOE91voemWPh+8fu0Uj5eLtTbrt9H3+Iyzfqp3U=;\n b=bcuRLCU+0s0KSWZqcnUpNYLqIg1NbTZs3Mhjo45QKH5qqkhS7s9vlO49vJQ7FKEbOT\n 9/p3AeVSz6IlT+l5YzjsMis+xUz0BVmlVdIOIfkWZGi4ihpO9/v6gDxFZymdmJ5EcxA8\n 5aPaeEkCAQCdFGDxXE5iZgm+hEZUX/QksSdco6THZQdPeVhpo1kUcwk1tnhXU2OK7zdI\n bL2Y/oElZpWTf84zanKBo0z2jD2CTs1nu17H8d6PneBX6fA1yGLQStwFnMW980n4903E\n SYZ2PuF1u2rIVI3P17asae27Um+mM3em0L8x1MnzoeUFBEygS1bxJFfxLEIPmpRfM9RB\n wdyw=="],"X-MC-Unique":"XHiVAyqDMVyiKaS0RJMb_A-1","X-Mimecast-MFC-AGG-ID":"XHiVAyqDMVyiKaS0RJMb_A_1775559640","ARC-Seal":"i=1; a=rsa-sha256; t=1775559640; cv=none;\n d=google.com; s=arc-20240605;\n b=jesj1rrtCwTNhJ0xF4iM8tpzJMjGEm0OPH0hV0iLbwPtJpKsi5R5xm/xNrnNOEHAi+\n 0D2wbwesYYM2gHkLa4lf3qCRxEsIYbqjRi+Iy1MigL6QhGDYXlihh9NpmsqlUYaSf76V\n Xy0oaf6hfgsjlc7MewwidbG+HroBb3IL6JPofQmNcfNlab2++HPOaATQRNPF7idOMWyn\n OTYOFfSLh1plZ/qQP+ZyhC5qVF6IABBuSKjcVaE7Adg1svh3xrosjkPsenFS9ufa77OE\n qnPGJdwyjkDutM76ah43XGEUO2YysA1TqjayZs9HUO0OM+wQDk0KPQfL2q8WP1nMxApq\n xymw==","ARC-Message-Signature":"i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com;\n s=arc-20240605;\n h=content-transfer-encoding:cc:to:subject:message-id:date:from\n :in-reply-to:references:mime-version:dkim-signature;\n bh=HuPptOE91voemWPh+8fu0Uj5eLtTbrt9H3+Iyzfqp3U=;\n fh=7VmVtnx17niWKB7xvFxSuDPzFCTtk4tzwtJlwbYBWrw=;\n b=XSAS7bLgXg5HeBRK+TG2IyZjJddohUnRkmD+iTO1YL+NUn21DqkU+0K/C7FK8xE4mt\n MP/5isxoasjIVxb0e/yOhLsfmQgttl/g0dHqAfJr0wRr0qe+CznP4nxbJF81mYCJDScJ\n O7ow1+wWn15cqdekwdpoYQbP/Gap3qcBJKfbDu9K62F1FZJn7QRUlHDp+gme9SDdcxuB\n GlfhJ7QVbU47SsaG4Gy6TI+S/4xVRA1I/qXGkrXt8eFtONRvuHBkDRT9uxxmKVvZ2Yrq\n ZftTcrCn+5WEX0HaH1pIIRDZIRIbqFBtxisHwBOXmCkdHMvVw9uz2BTzYqA3NsYNqMHD\n C77w==; darn=nongnu.org","ARC-Authentication-Results":"i=1; mx.google.com; arc=none","X-Google-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=1e100.net; s=20251104; t=1775559640; x=1776164440;\n h=content-transfer-encoding:cc:to:subject:message-id:date:from\n :in-reply-to:references:mime-version:x-gm-gg:x-gm-message-state:from\n :to:cc:subject:date:message-id:reply-to;\n bh=HuPptOE91voemWPh+8fu0Uj5eLtTbrt9H3+Iyzfqp3U=;\n b=DWU5NjeCQUA9jGe+RVadSwe1GbXDo8CAv5D0j28KBXpXBYSJ8CDByKSvEEyZWit5h3\n AAnr0HgPk1eZND2d41EnStRpFdUNZMEidGmnz7qPEWdyRnxwd+qe8AD0dXmMXtBpyrju\n QKm++jHBo1BNRrORnRfiDrtCgpOJEKMZC7NwpT+guag5+CqO14vClCs2vg5pGQaFzmok\n VyJZz2O4ixxGr6WbwQN3/5L08Xc1VPLn6QrTobmsO0zZRvXQ6eQn86myeNRgwY4SUNVm\n +8F78QKCUjcRJc3UzaN2XJa69lOGo5ZDZkmfUWs0otY07BTEJs4sBMdlGUbyxnPWe6U1\n 1Sog==","X-Gm-Message-State":"AOJu0Yx5ZH3uatYiHyHXbHn1aylMOH194JUbh/co5an2fbfxafEJs34G\n Itl19jkezpLwdYT/nbdb9g9I1aiPLSphLtCsP3V8g+2bf2rEsqkO9KPIMYVBttHiQzSwlbB7UkA\n /HGiKHqMCXoTE9yYeeoicJA5dXim6XCxR/Vmxt6D8WoSX0gwq4rId3MfwjoBLNNf4FA+sUkM6iq\n J9uy0PIAi6j43UIyymSqAVU6O8vsiIb3k=","X-Gm-Gg":"AeBDieu7cV/Hd5FiEX1Q1h7EeYHDoq4L7ykYh+6ej6r6jtrcfZVBzfjW+VIbA3hsWUa\n jkbaSY1L23nIilwC4KH9SzByvBDkpc6Nz0SgqDI/oOAJcDUEIPMsLZ3G7wi9z6eqfZSbLYX8aL4\n FJW82RaEkbiyU4ta7yMZpztpIufKcIVCn2vc1ulev2DTowVaRscz3qIlacdDOD67HbseM+iDGUk\n yfwiWHOTL/1GRuGp7GkqqZ9ldHyRFAMn6CXu90R32USPVftsv2SpjayEsa+pyvYAzj/ZfOF+sBF\n rpE6zJDbaP8g7gYtcbsf8HU=","X-Received":["by 2002:a05:6a20:2586:b0:39f:29ab:b364 with SMTP id\n adf61e73a8af0-39f2ee108c8mr16949708637.22.1775559639397;\n Tue, 07 Apr 2026 04:00:39 -0700 (PDT)","by 2002:a05:6a20:2586:b0:39f:29ab:b364 with SMTP id\n adf61e73a8af0-39f2ee108c8mr16949652637.22.1775559638904; Tue, 07 Apr 2026\n 04:00:38 -0700 (PDT)"],"MIME-Version":"1.0","References":"<20260406141735.25844-1-armenon@redhat.com>\n <20260406141735.25844-7-armenon@redhat.com>","In-Reply-To":"<20260406141735.25844-7-armenon@redhat.com>","From":"=?utf-8?q?Marc-Andr=C3=A9_Lureau?= <marcandre.lureau@redhat.com>","Date":"Tue, 7 Apr 2026 15:00:27 +0400","X-Gm-Features":"AQROBzANbt-uegiHwzUNOGSQsbqiNqPMfs0eDbBf_VSu8HKSXcArX5Ykog9ysQU","Message-ID":"\n <CAMxuvaw1Zaui2mSw2o6M6OzC7vnwN8CW1hgnZEtz1BiZmsT1kg@mail.gmail.com>","Subject":"Re: [PATCH v3 06/10] hw/tpm: Add support for VM migration with TPM\n CRB chunking","To":"Arun Menon <armenon@redhat.com>,\n Stefan Berger <stefanb@linux.vnet.ibm.com>","Cc":"qemu-devel@nongnu.org, Ani Sinha <anisinha@redhat.com>,\n  Laurent Vivier <lvivier@redhat.com>, Zhao Liu <zhao1.liu@intel.com>,\n  Marcel Apfelbaum <marcel.apfelbaum@gmail.com>,\n Paolo Bonzini <pbonzini@redhat.com>,  Fabiano Rosas <farosas@suse.de>,\n \"Michael S. Tsirkin\" <mst@redhat.com>, Yanan Wang <wangyanan55@huawei.com>,\n Igor Mammedov <imammedo@redhat.com>,\n =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= <philmd@linaro.org>","Content-Type":"text/plain; charset=\"UTF-8\"","Content-Transfer-Encoding":"quoted-printable","Received-SPF":"pass client-ip=170.10.129.124; envelope-from=mlureau@redhat.com;\n helo=us-smtp-delivery-124.mimecast.com","X-Spam_score_int":"-25","X-Spam_score":"-2.6","X-Spam_bar":"--","X-Spam_report":"(-2.6 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.54,\n DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1,\n RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H4=0.001, RCVD_IN_MSPIKE_WL=0.001,\n RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.001,\n 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 <qemu-devel.nongnu.org>","List-Unsubscribe":"<https://lists.nongnu.org/mailman/options/qemu-devel>,\n <mailto:qemu-devel-request@nongnu.org?subject=unsubscribe>","List-Archive":"<https://lists.nongnu.org/archive/html/qemu-devel>","List-Post":"<mailto:qemu-devel@nongnu.org>","List-Help":"<mailto:qemu-devel-request@nongnu.org?subject=help>","List-Subscribe":"<https://lists.nongnu.org/mailman/listinfo/qemu-devel>,\n <mailto:qemu-devel-request@nongnu.org?subject=subscribe>","Errors-To":"qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org","Sender":"qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org"}},{"id":3675910,"web_url":"http://patchwork.ozlabs.org/comment/3675910/","msgid":"<adkLu8uBy_Lkfrop@fedora>","list_archive_url":null,"date":"2026-04-10T14:39:55","subject":"Re: [PATCH v3 06/10] hw/tpm: Add support for VM migration with TPM\n CRB chunking","submitter":{"id":91136,"url":"http://patchwork.ozlabs.org/api/people/91136/","name":"Arun Menon","email":"armenon@redhat.com"},"content":"On Tue, Apr 07, 2026 at 03:00:27PM +0400, Marc-André Lureau wrote:\n> Hi\n> \n> On Mon, Apr 6, 2026 at 6:18 PM Arun Menon <armenon@redhat.com> wrote:\n> >\n> > From: Arun Menon <armenon@redhat.com>\n> >\n> > - Add subsection in VMState for TPM CRB with the newly introduced\n> >   command and response buffers, along with a needed callback, so that\n> >   newer QEMU only sends the buffers if it is necessary.\n> > - Add hw_compat blocker because the feature is only supported for\n> >   machine type 11.1 and higher.\n> > - If the VM has no pending chunked TPM commands in the internal buffers\n> >   during a VM migration, or if the machine type does not support newly\n> >   introduced buffers, then the needed callback will return false, as it\n> >   checks the hw_compat blocker and thus the subsection will not be sent\n> >   to the destination host.\n> >\n> > Signed-off-by: Arun Menon <armenon@redhat.com>\n> > ---\n> >  hw/core/machine.c |  4 +++-\n> >  hw/tpm/tpm_crb.c  | 31 +++++++++++++++++++++++++++++++\n> >  2 files changed, 34 insertions(+), 1 deletion(-)\n> >\n> > diff --git a/hw/core/machine.c b/hw/core/machine.c\n> > index 1abc8ae737..fb290c6c53 100644\n> > --- a/hw/core/machine.c\n> > +++ b/hw/core/machine.c\n> > @@ -38,7 +38,9 @@\n> >  #include \"hw/acpi/generic_event_device.h\"\n> >  #include \"qemu/audio.h\"\n> >\n> > -GlobalProperty hw_compat_11_0[] = {};\n> > +GlobalProperty hw_compat_11_0[] = {\n> > +    { \"tpm-crb\", \"migrate-buffers\", \"off\"},\n> \n> If this is not intended to be user visible, we should use x- prefix\n\nYes, I will add x- prefix.\n\n> \n> The problem is that the previous code changes expose CapChunk to the\n> guest unconditionally.\n> \n> If running with <=11.0 we should not enable chunk transfer by default\n> - or we need to prevent/block migration... otherwise we may lose\n> VM/device state, expose a differente device etc.\n> \n> What about having a \"cap-chunk\" property? Enable it by default with >=11.1.\n> \n> If enabled when <=11.0, then also disable migration.\n\nThis is really good insight. Similar to migrate-buffers, I need to make\nsure that the CapCRBChunk bit is set only when we are running the newer\nmachine type.\n\nI shall introduce a new entry in hw_compat array called x-cap-chunk.\nThat means, we should not unconditionally set the CapCRBChunk bit to 1.\nWe should set the bit based on cap_chunk property.\n\nHowever, I am a bit confused on the order of precedence of this variable.\nFrom what I understand, the device initialization happens first ->\nfollowed by the compat properties\n\nSo,\n\"DEFINE_PROP_BOOL(\"migrate-buffers\", CRBState, migrate_buffers, true)\"\ngets executed first setting it to true by default and then, the compat\nproperty is applied,\n\"GlobalProperty hw_compat_11_0[] = {\n    { \"tpm-crb\", \"migrate-buffers\", \"off\"},\n}\"\nsetting it to false.\n\nWhen is the user provided command line argument parsed?\nFor example launching qemu using:\n    -machine pc-11.0 \n    -device tpm-crb,tpmdev=tpm0,cap-chunk=on\n\nIs it set in the end? In the above example, the user explicitly set\ncap-chunk to true whereas the migrate-buffers default value is false.\n\nTherefore we end up with the following scenario.\nSince chunking is supported, the guest writes a large command in the\nbuffer. The user then decides to migrate the VM. QEMU sees that\nmigrate-buffer is off, so it does not migrate the buffers. When the VM\nresumes on the destination host, it will find the buffers empty.\n\nTherefore, we need to stop migration if cap-chunk is enabled but\nmigrate-buffers is disabled. Please guide.\n\n> \n> > +};\n> >  const size_t hw_compat_11_0_len = G_N_ELEMENTS(hw_compat_11_0);\n> >\n> >  GlobalProperty hw_compat_10_2[] = {\n> > diff --git a/hw/tpm/tpm_crb.c b/hw/tpm/tpm_crb.c\n> > index b9f295db7a..81471dd9f8 100644\n> > --- a/hw/tpm/tpm_crb.c\n> > +++ b/hw/tpm/tpm_crb.c\n> > @@ -49,6 +49,8 @@ struct CRBState {\n> >\n> >      bool ppi_enabled;\n> >      TPMPPI ppi;\n> > +\n> > +    bool migrate_buffers;\n> >  };\n> >  typedef struct CRBState CRBState;\n> >\n> > @@ -345,18 +347,47 @@ static int tpm_crb_pre_save(void *opaque)\n> >      return 0;\n> >  }\n> >\n> > +static bool tpm_crb_chunk_needed(void *opaque)\n> > +{\n> > +    CRBState *s = opaque;\n> > +\n> > +    if (!s->migrate_buffers) {\n> > +        return false;\n> > +    }\n> > +\n> > +    return ((s->command_buffer && s->command_buffer->len > 0) ||\n> > +            (s->response_buffer && s->response_buffer->len > 0));\n> > +}\n> > +\n> > +static const VMStateDescription vmstate_tpm_crb_chunk = {\n> > +    .name = \"tpm-crb/chunk\",\n> > +    .version_id = 0,\n> > +    .needed = tpm_crb_chunk_needed,\n> > +    .fields = (const VMStateField[]) {\n> > +        VMSTATE_GBYTEARRAY(command_buffer, CRBState, 0),\n> > +        VMSTATE_GBYTEARRAY(response_buffer, CRBState, 0),\n> > +        VMSTATE_UINT32(response_offset, CRBState),\n> > +        VMSTATE_END_OF_LIST()\n> > +    }\n> > +};\n> > +\n> >  static const VMStateDescription vmstate_tpm_crb = {\n> >      .name = \"tpm-crb\",\n> >      .pre_save = tpm_crb_pre_save,\n> >      .fields = (const VMStateField[]) {\n> >          VMSTATE_UINT32_ARRAY(regs, CRBState, TPM_CRB_R_MAX),\n> >          VMSTATE_END_OF_LIST(),\n> > +    },\n> > +    .subsections = (const VMStateDescription * const []) {\n> > +        &vmstate_tpm_crb_chunk,\n> > +        NULL,\n> >      }\n> >  };\n> >\n> >  static const Property tpm_crb_properties[] = {\n> >      DEFINE_PROP_TPMBE(\"tpmdev\", CRBState, tpmbe),\n> >      DEFINE_PROP_BOOL(\"ppi\", CRBState, ppi_enabled, true),\n> > +    DEFINE_PROP_BOOL(\"migrate-buffers\", CRBState, migrate_buffers, true),\n> >  };\n> >\n> >  static void tpm_crb_reset(void *dev)\n> > --\n> > 2.53.0\n> >\n>\n\nRegards,\nArun Menon","headers":{"Return-Path":"<qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org>","X-Original-To":"incoming@patchwork.ozlabs.org","Delivered-To":"patchwork-incoming@legolas.ozlabs.org","Authentication-Results":["legolas.ozlabs.org;\n\tdkim=pass (1024-bit key;\n unprotected) header.d=redhat.com header.i=@redhat.com header.a=rsa-sha256\n header.s=mimecast20190719 header.b=MPx1HfU9;\n\tdkim=pass (2048-bit key;\n unprotected) header.d=redhat.com header.i=@redhat.com header.a=rsa-sha256\n header.s=google header.b=T4KhN9QU;\n\tdkim-atps=neutral","legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=nongnu.org\n (client-ip=209.51.188.17; helo=lists.gnu.org;\n envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org;\n receiver=patchwork.ozlabs.org)"],"Received":["from lists.gnu.org (lists1p.gnu.org [209.51.188.17])\n\t(using TLSv1.2 with cipher ECDHE-ECDSA-AES256-GCM-SHA384 (256/256 bits))\n\t(No client certificate requested)\n\tby legolas.ozlabs.org (Postfix) with ESMTPS id 4fsfcX3bdlz1y2d\n\tfor <incoming@patchwork.ozlabs.org>; Sat, 11 Apr 2026 00:40:58 +1000 (AEST)","from localhost ([::1] helo=lists1p.gnu.org)\n\tby lists.gnu.org with esmtp (Exim 4.90_1)\n\t(envelope-from <qemu-devel-bounces@nongnu.org>)\n\tid 1wBD1y-0006S9-Ma; Fri, 10 Apr 2026 10:40:22 -0400","from eggs.gnu.org ([2001:470:142:3::10])\n by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)\n (Exim 4.90_1) (envelope-from <armenon@redhat.com>)\n id 1wBD1x-0006RO-1T\n for qemu-devel@nongnu.org; Fri, 10 Apr 2026 10:40:21 -0400","from us-smtp-delivery-124.mimecast.com ([170.10.129.124])\n by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)\n (Exim 4.90_1) (envelope-from <armenon@redhat.com>)\n id 1wBD1u-0002W4-Tm\n for qemu-devel@nongnu.org; Fri, 10 Apr 2026 10:40:20 -0400","from mail-pl1-f200.google.com (mail-pl1-f200.google.com\n [209.85.214.200]) by relay.mimecast.com with ESMTP with STARTTLS\n (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id\n us-mta-287-sbCVmsRqOsuQTPSV8xa_lw-1; Fri, 10 Apr 2026 10:40:09 -0400","by mail-pl1-f200.google.com with SMTP id\n d9443c01a7336-2b241be0126so40039785ad.3\n for <qemu-devel@nongnu.org>; Fri, 10 Apr 2026 07:40:09 -0700 (PDT)","from fedora ([49.36.110.202]) by smtp.gmail.com with ESMTPSA id\n d9443c01a7336-2b2d4e0accbsm30652295ad.33.2026.04.10.07.40.00\n (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);\n Fri, 10 Apr 2026 07:40:07 -0700 (PDT)"],"DKIM-Signature":["v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com;\n s=mimecast20190719; t=1775832011;\n h=from:from:reply-to:subject:subject:date:date:message-id:message-id:\n to:to:cc:cc:mime-version:mime-version:content-type:content-type:\n content-transfer-encoding:content-transfer-encoding:\n in-reply-to:in-reply-to:references:references;\n bh=z+ErbSi1YbiIz+eNhdJc5Xvqs8bktrgmSwgg3fb1rvk=;\n b=MPx1HfU9uOCQLH3m4oV6/vfPxnORucTn7sUYdBcP+3nxOMl7rorqdCKJEVKd71c2JuL6hb\n J1QDKsuT5Wgf1lfhzfO9XXK3HbehVpyfDR1SgNDJAUGQF7K/+3baUg87rRoX5ZubvDN4zu\n QfywQysJb1GnekVdF2pnnDNTPsIB6hE=","v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=redhat.com; s=google; t=1775832009; x=1776436809; darn=nongnu.org;\n h=in-reply-to:content-transfer-encoding:content-disposition\n :mime-version:references:message-id:subject:cc:to:from:date:from:to\n :cc:subject:date:message-id:reply-to;\n bh=z+ErbSi1YbiIz+eNhdJc5Xvqs8bktrgmSwgg3fb1rvk=;\n b=T4KhN9QU7vOXXa7MvpoftVo5W4T4/wPVAiOFik2hptX6V/6rNWZHfThO1UCiM5FHkr\n YeCaQXhEzNd+tnAJBQn2+MK/3vM2Uo0DOM/DbwjAlIhJW9emq1uu5rLC5d7roUlQvTUe\n XTaoczbKNSq1lDJ0VF+bkMOhefXk0l8s98ppKrjlKYvrRgA9sJjDzMq8rRxC6ehxbYO4\n ep4E6w7SUytiOZNfRUNaITdW/O/0++2k3hL0J9rafoagXIw7z48yTzK52Y+7qDKLt3KF\n 8Yi2VMWRN4nPGMMFPx12EiswCSuloCChtTKSIs3aMB6vkk4cQ8Q/Bu4MU3NSeN61rb41\n GyLQ=="],"X-MC-Unique":"sbCVmsRqOsuQTPSV8xa_lw-1","X-Mimecast-MFC-AGG-ID":"sbCVmsRqOsuQTPSV8xa_lw_1775832009","X-Google-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=1e100.net; s=20251104; t=1775832009; x=1776436809;\n h=in-reply-to:content-transfer-encoding:content-disposition\n :mime-version:references:message-id:subject:cc:to:from:date:x-gm-gg\n :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;\n bh=z+ErbSi1YbiIz+eNhdJc5Xvqs8bktrgmSwgg3fb1rvk=;\n b=KD2LF/AcrgiHQGX8WqTGmdqtNe132n+WF/M5Dmz7UdeisNKR+Nw5nHwdEpJJ+qqmQy\n WlR6/aaDs2p2W2DN+4qg9GMmuVN0YZMt1GzVqF4Q7rjm85dfl5/a5w449lzG2Kds2H7C\n +RsceiLpYlKapPtLWBfuibRLgYsAttRfdWGIrTravOVgfNn4oI0Yin02bhyC29ziUW/F\n ETLtestO1z0uMXmM/K91M699+C2Xe1lU98ohMVbNiJ5Y88m2CDenXBTd834gi6LuHz/f\n sIvGzL+MUIhyJrt7qieLNk5f2/DNTGf9b4QqAjTUm2WZD3IQxbpE0ebpT5iMxzAhYqIH\n e3kA==","X-Forwarded-Encrypted":"i=1;\n AJvYcCXF55XdVOOUjnyoIeT3d3nCtFsaKxIKTSgoy4SbDFPzfvnGpz6pgwkXmVtw+sYzeccWvkOmbsq1QCSa@nongnu.org","X-Gm-Message-State":"AOJu0Yx5/sGa3iQhLhqvX4L3/BN7Bi/VbOvLVP4wkbMuJksQDLhr4Bju\n iHm/1s1STitXqRPGepp5QsgvcvQ6f5tP+Z3N2ZSBtJAJ6vNY70RDCPYPVy1TcNF19lT6lfMddsn\n ZDr2Dm0uXL3R3OjIrH0RcgiQNzvgHGoks3qhUKGUXUyuTTFHsh5LScZJS","X-Gm-Gg":"AeBDieu5BikKIx3isKvUB7XEsMxEyDCeMuiZyG7yMhVOm0rapJxrAbyHL7gIHIvBP8E\n coNdKA77wA1aor+eUWHcRdzbWX8slpZev8mQsxULSANsEza/jU8ZihPpOtozVObJnHAxtcLhSKS\n Yk0+r2ZEFci/joWBE1n/lgUmFn8Rg3boG/arpww2yxnSWBiZM5sznMl2E166XdougETBHuZ4HCl\n 4bGWlMUq4927nXkhV8yof0D7TbLHA+95YesykLyY5UgmFhkrP8yBcy/UTkHa83xgm/Ez3fdpZqF\n vgpF3YGML/hE6qP+KbA2u0EERqiAFKVyEzWPJwV190jFe+wTzpMnsgQI3GzKuzHFilavllYhI2B\n acQGHl5yFdch+","X-Received":["by 2002:a17:902:cf05:b0:2b2:42da:25c4 with SMTP id\n d9443c01a7336-2b2d59adee5mr37922125ad.14.1775832008643;\n Fri, 10 Apr 2026 07:40:08 -0700 (PDT)","by 2002:a17:902:cf05:b0:2b2:42da:25c4 with SMTP id\n d9443c01a7336-2b2d59adee5mr37921655ad.14.1775832008084;\n Fri, 10 Apr 2026 07:40:08 -0700 (PDT)"],"Date":"Fri, 10 Apr 2026 20:09:55 +0530","From":"Arun Menon <armenon@redhat.com>","To":"=?iso-8859-1?q?Marc-Andr=E9?= Lureau <marcandre.lureau@redhat.com>","Cc":"Stefan Berger <stefanb@linux.vnet.ibm.com>, qemu-devel@nongnu.org,\n Ani Sinha <anisinha@redhat.com>, Laurent Vivier <lvivier@redhat.com>,\n Zhao Liu <zhao1.liu@intel.com>,\n Marcel Apfelbaum <marcel.apfelbaum@gmail.com>,\n Paolo Bonzini <pbonzini@redhat.com>, Fabiano Rosas <farosas@suse.de>,\n \"Michael S. Tsirkin\" <mst@redhat.com>, Yanan Wang <wangyanan55@huawei.com>,\n Igor Mammedov <imammedo@redhat.com>, Philippe =?iso-8859-1?q?Mathieu-Daud?=\n\t=?iso-8859-1?q?=E9?= <philmd@linaro.org>","Subject":"Re: [PATCH v3 06/10] hw/tpm: Add support for VM migration with TPM\n CRB chunking","Message-ID":"<adkLu8uBy_Lkfrop@fedora>","References":"<20260406141735.25844-1-armenon@redhat.com>\n <20260406141735.25844-7-armenon@redhat.com>\n <CAMxuvaw1Zaui2mSw2o6M6OzC7vnwN8CW1hgnZEtz1BiZmsT1kg@mail.gmail.com>","MIME-Version":"1.0","Content-Type":"text/plain; charset=utf-8","Content-Disposition":"inline","Content-Transfer-Encoding":"8bit","In-Reply-To":"\n <CAMxuvaw1Zaui2mSw2o6M6OzC7vnwN8CW1hgnZEtz1BiZmsT1kg@mail.gmail.com>","Received-SPF":"pass client-ip=170.10.129.124; envelope-from=armenon@redhat.com;\n helo=us-smtp-delivery-124.mimecast.com","X-Spam_score_int":"-25","X-Spam_score":"-2.6","X-Spam_bar":"--","X-Spam_report":"(-2.6 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.54,\n DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1,\n RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H4=0.001, RCVD_IN_MSPIKE_WL=0.001,\n RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.001,\n 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 <qemu-devel.nongnu.org>","List-Unsubscribe":"<https://lists.nongnu.org/mailman/options/qemu-devel>,\n <mailto:qemu-devel-request@nongnu.org?subject=unsubscribe>","List-Archive":"<https://lists.nongnu.org/archive/html/qemu-devel>","List-Post":"<mailto:qemu-devel@nongnu.org>","List-Help":"<mailto:qemu-devel-request@nongnu.org?subject=help>","List-Subscribe":"<https://lists.nongnu.org/mailman/listinfo/qemu-devel>,\n <mailto:qemu-devel-request@nongnu.org?subject=subscribe>","Errors-To":"qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org","Sender":"qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org"}},{"id":3675982,"web_url":"http://patchwork.ozlabs.org/comment/3675982/","msgid":"<CAJ+F1C+fHg8b9-=uWe22ptQNAvyW01ehCpSofoCcMxrJsZ9Dyw@mail.gmail.com>","list_archive_url":null,"date":"2026-04-10T16:39:52","subject":"Re: [PATCH v3 06/10] hw/tpm: Add support for VM migration with TPM\n CRB chunking","submitter":{"id":6442,"url":"http://patchwork.ozlabs.org/api/people/6442/","name":"Marc-André Lureau","email":"marcandre.lureau@gmail.com"},"content":"Hi\n\nOn Fri, Apr 10, 2026 at 6:41 PM Arun Menon <armenon@redhat.com> wrote:\n>\n> However, I am a bit confused on the order of precedence of this variable.\n> From what I understand, the device initialization happens first ->\n> followed by the compat properties\n>\n> So,\n> \"DEFINE_PROP_BOOL(\"migrate-buffers\", CRBState, migrate_buffers, true)\"\n> gets executed first setting it to true by default and then, the compat\n> property is applied,\n> \"GlobalProperty hw_compat_11_0[] = {\n>     { \"tpm-crb\", \"migrate-buffers\", \"off\"},\n> }\"\n> setting it to false.\n>\n> When is the user provided command line argument parsed?\n> For example launching qemu using:\n>     -machine pc-11.0\n>     -device tpm-crb,tpmdev=tpm0,cap-chunk=on\n>\n> Is it set in the end? In the above example, the user explicitly set\n> cap-chunk to true whereas the migrate-buffers default value is false.\n\nIirc, user specified property takes precedence over compat properties.\n\n> Therefore we end up with the following scenario.\n> Since chunking is supported, the guest writes a large command in the\n> buffer. The user then decides to migrate the VM. QEMU sees that\n> migrate-buffer is off, so it does not migrate the buffers. When the VM\n> resumes on the destination host, it will find the buffers empty.\n\n>\n> Therefore, we need to stop migration if cap-chunk is enabled but\n> migrate-buffers is disabled. Please guide.\n\nYes, if cap-chunk is enabled but migrate-buffer is off (compat 11.0),\nthere should be a migration blocker.","headers":{"Return-Path":"<qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org>","X-Original-To":"incoming@patchwork.ozlabs.org","Delivered-To":"patchwork-incoming@legolas.ozlabs.org","Authentication-Results":["legolas.ozlabs.org;\n\tdkim=pass (2048-bit key;\n unprotected) header.d=gmail.com header.i=@gmail.com header.a=rsa-sha256\n header.s=20251104 header.b=QO0vnyN9;\n\tdkim-atps=neutral","legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=nongnu.org\n (client-ip=209.51.188.17; helo=lists.gnu.org;\n envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org;\n receiver=patchwork.ozlabs.org)"],"Received":["from lists.gnu.org (lists1p.gnu.org [209.51.188.17])\n\t(using TLSv1.2 with cipher ECDHE-ECDSA-AES256-GCM-SHA384 (256/256 bits))\n\t(No client certificate requested)\n\tby legolas.ozlabs.org (Postfix) with ESMTPS id 4fsjGr75NCz1y2d\n\tfor <incoming@patchwork.ozlabs.org>; Sat, 11 Apr 2026 02:40:51 +1000 (AEST)","from localhost ([::1] helo=lists1p.gnu.org)\n\tby lists.gnu.org with esmtp (Exim 4.90_1)\n\t(envelope-from <qemu-devel-bounces@nongnu.org>)\n\tid 1wBEtv-0003W4-0R; Fri, 10 Apr 2026 12:40:11 -0400","from eggs.gnu.org ([2001:470:142:3::10])\n by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)\n (Exim 4.90_1) (envelope-from <marcandre.lureau@gmail.com>)\n id 1wBEtt-0003V2-C4\n for qemu-devel@nongnu.org; Fri, 10 Apr 2026 12:40:09 -0400","from mail-dl1-x1229.google.com ([2607:f8b0:4864:20::1229])\n by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128)\n (Exim 4.90_1) (envelope-from <marcandre.lureau@gmail.com>)\n id 1wBEtr-0001UG-Uu\n for qemu-devel@nongnu.org; Fri, 10 Apr 2026 12:40:09 -0400","by mail-dl1-x1229.google.com with SMTP id\n a92af1059eb24-128e4d0cc48so9754901c88.1\n for <qemu-devel@nongnu.org>; Fri, 10 Apr 2026 09:40:07 -0700 (PDT)"],"ARC-Seal":"i=1; a=rsa-sha256; t=1775839206; cv=none;\n d=google.com; s=arc-20240605;\n b=EytdkpRgKzCh4Nvd7uBNRbP3tvqofb3Un6jjUeMWGCUXrL6Rgr+lbuN+zu9TcVFiRL\n ZW9AQVcPIQ26Necq0EmD9g2TVatSWJJKgUG2ds+B31Whf5rUU7ibq6P8h4nKczeCVEv5\n 54Z/RVyaRzzr6cKcdPXCJErpNOHzi7kFCSeout4kp9YjQowi5g1LCE/qovtQI8VxE3ld\n +uVjLS3hg9ItCapURhqdt6K7TAdOaKcsXV2UsIvzP4DYKMEWjn2tIXojgisT5kKJuhQF\n 2xsuJCCNx+AGE+5kPwp1stJMeQ1vK5rN68qFRl0k8BpqOOVcp67Bz2mSD894Wk9X+Tnp\n 0jlg==","ARC-Message-Signature":"i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com;\n s=arc-20240605;\n h=content-transfer-encoding:cc:to:subject:message-id:date:from\n :in-reply-to:references:mime-version:dkim-signature;\n bh=RGq+f38wc8zNWMr6JH5/h+rGv5DrH1N3XDMiUobDA8o=;\n fh=5hm2zad6FptwkTwuMlIAmgfHff93FWjTkPTDKWpG3ZQ=;\n b=PQC2md2N3jtkn2RZnSRd2H2NAtFvMbKIOz2sh87vJlRRoFKpNDwUHyon17JVntdSST\n qOsUwijigCcaJSdzLKu7x8418ZE9WYEBDWFnr+rTDoUYGGMfsP+FTTRvUsK6otbk0sCM\n 2ifAB1nVbvLNkDmmXlI5d+E8MKuh3pfRMPOjwPeDRjvFN7E7Jx13M4sP/csFUiw/zXUJ\n d52WLXsYsRlYxm2lEODQetI+KEcsKX5o1+jXprCQ4u7ZNKOdCW92nsX4WAxp5wbGlsgg\n HONSDyYZRLX5U+FglsrgvbeRx4INcCRUKEYbvaIqMq+Pw8qC4Qlg+Gf01Z3VIsIHUMR/\n oSzQ==; darn=nongnu.org","ARC-Authentication-Results":"i=1; mx.google.com; arc=none","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=gmail.com; s=20251104; t=1775839206; x=1776444006; darn=nongnu.org;\n h=content-transfer-encoding:cc:to:subject:message-id:date:from\n :in-reply-to:references:mime-version:from:to:cc:subject:date\n :message-id:reply-to;\n bh=RGq+f38wc8zNWMr6JH5/h+rGv5DrH1N3XDMiUobDA8o=;\n b=QO0vnyN9H5ZM/arQamHrjOD0J2n7C9CMtqoNJLzuyOjMwA80kXTWm+vO6FON+wF9dL\n ot/wj2M71bC8bZIRK2IshWeP1Xzi0KezI9nQpMdFQrszd49WatjXCzbT4d2pkO/6z7Fy\n /OuwE8za/KXrw57/1xWvO7ChaYX7SAWzhBW7UCvievKnkqsVnStEhJEpPDl1YYyzKQH6\n UvNW4UaEZM6x3a6NnFcJdI+cWkXSqrGcSUShNjDEZetuV2a65D552T9lWHUNJsVzTnv/\n ouW3rHRgeQHLcmRiBzHPnrsUPaKkvK5OdHncjKT6rhonwOFpMMEBp7E495dn4kOePlUM\n xvaw==","X-Google-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=1e100.net; s=20251104; t=1775839206; x=1776444006;\n h=content-transfer-encoding:cc:to:subject:message-id:date:from\n :in-reply-to:references:mime-version:x-gm-gg:x-gm-message-state:from\n :to:cc:subject:date:message-id:reply-to;\n bh=RGq+f38wc8zNWMr6JH5/h+rGv5DrH1N3XDMiUobDA8o=;\n b=SzLpZyL7jPZe1S5Yj6chyUwl+Ym+HJu/BV4/vBKU22htC+UVR23G0XducjjomxuknB\n +0vJ3mLiIImy4r0Yl8rfQl9R2chFR0cDXq+0jGZB/lIviexHq3lOO62OsPKA3yyo6LfT\n 63KiyvV/bEKCgpePEEO6D/0XFA5+/3aeBF1KcG0z2GNAc/+VpycGx1jYwSv3Za7IKwfr\n Sy6EtmavBZ5+sqJGS63ug1GXMSllMfEsLkzZshoqFJ9qjrmhogoadK4IU83Cm31k2A6N\n RAxMsAfGCy2BTgmRL0ULnXYrzIG4pPROf3Wpu8Lm8f+W3b0tOOQxc5o9LbhTyFp668QR\n XLuQ==","X-Forwarded-Encrypted":"i=1;\n AJvYcCUjjAR8IZFaZ7h9QSD6vCr3AFWFK/VJlBR18qmBNW0xIEPdCZbS0ocwGues+//pErhSQ6h4kTpRwlkt@nongnu.org","X-Gm-Message-State":"AOJu0YzhFzSj7F6KX6bQnB3GD7IDPoqnv4hJZhhREJDsILTmompIJnhK\n BmJLept8/DZJhiEuTuvIQx6edhb5jdAjxVhNTdTns1XtuNhFS9XFNjtxuduDd3HW4frpZSn3xcF\n cKOAxN8U75SJ5WbT/zj+jSW0eu0MkkSs=","X-Gm-Gg":"AeBDiesuG4WjGe4KyIWwMCl2O30RfIM3APZF+2NEo7jtIrXbXE1M4/nccMFwHFsZtEZ\n 0RAAnpjFnv9PN8mIVPML1i6r+XoP4EB8Vyw1WRBG7MOUU3xDEWU68w2X2hcgurqSJyYakqZszFx\n z/3hDoVvLz49W29Vh36wpqD1mv0fEqfewdBrhhZNVuPAvU2Ie8I8sUlJ0X2/FvJm2bmlDTZHEUP\n OC2HPrsOLR9w0TRzUFHbV2DMmZ5KL5HdiJnKaNOfL3OFAdBWNOkIuvFpd9OjOJd0WO/vBwUl4U7\n AEj0jrImC7qxHQcVLJfuor/tpEK0s2c7B08OOo4Y","X-Received":"by 2002:a05:7300:d183:b0:2d6:526c:55cc with SMTP id\n 5a478bee46e88-2d6526c5736mr831953eec.6.1775839205757; Fri, 10 Apr 2026\n 09:40:05 -0700 (PDT)","MIME-Version":"1.0","References":"<20260406141735.25844-1-armenon@redhat.com>\n <20260406141735.25844-7-armenon@redhat.com>\n <CAMxuvaw1Zaui2mSw2o6M6OzC7vnwN8CW1hgnZEtz1BiZmsT1kg@mail.gmail.com>\n <adkLu8uBy_Lkfrop@fedora>","In-Reply-To":"<adkLu8uBy_Lkfrop@fedora>","From":"=?utf-8?q?Marc-Andr=C3=A9_Lureau?= <marcandre.lureau@gmail.com>","Date":"Fri, 10 Apr 2026 20:39:52 +0400","X-Gm-Features":"AQROBzAS8AP9d0wjZZK5pETBfJHdET4xg3dAA3jQMRaxQ9bI0yAuMlDJIep-9jM","Message-ID":"\n <CAJ+F1C+fHg8b9-=uWe22ptQNAvyW01ehCpSofoCcMxrJsZ9Dyw@mail.gmail.com>","Subject":"Re: [PATCH v3 06/10] hw/tpm: Add support for VM migration with TPM\n CRB chunking","To":"Arun Menon <armenon@redhat.com>","Cc":"Stefan Berger <stefanb@linux.vnet.ibm.com>, qemu-devel@nongnu.org,\n  Ani Sinha <anisinha@redhat.com>, Laurent Vivier <lvivier@redhat.com>,\n Zhao Liu <zhao1.liu@intel.com>,\n  Marcel Apfelbaum <marcel.apfelbaum@gmail.com>,\n Paolo Bonzini <pbonzini@redhat.com>,  Fabiano Rosas <farosas@suse.de>,\n \"Michael S. Tsirkin\" <mst@redhat.com>, Yanan Wang <wangyanan55@huawei.com>,\n Igor Mammedov <imammedo@redhat.com>,\n =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= <philmd@linaro.org>","Content-Type":"text/plain; charset=\"UTF-8\"","Content-Transfer-Encoding":"quoted-printable","Received-SPF":"pass client-ip=2607:f8b0:4864:20::1229;\n envelope-from=marcandre.lureau@gmail.com; helo=mail-dl1-x1229.google.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, DKIM_SIGNED=0.1,\n DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001,\n RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001,\n 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 <qemu-devel.nongnu.org>","List-Unsubscribe":"<https://lists.nongnu.org/mailman/options/qemu-devel>,\n <mailto:qemu-devel-request@nongnu.org?subject=unsubscribe>","List-Archive":"<https://lists.nongnu.org/archive/html/qemu-devel>","List-Post":"<mailto:qemu-devel@nongnu.org>","List-Help":"<mailto:qemu-devel-request@nongnu.org?subject=help>","List-Subscribe":"<https://lists.nongnu.org/mailman/listinfo/qemu-devel>,\n <mailto:qemu-devel-request@nongnu.org?subject=subscribe>","Errors-To":"qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org","Sender":"qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org"}}]