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=-7.8 required=3.0 tests=BAYES_00,DKIM_ADSP_CUSTOM_MED, DKIM_INVALID,DKIM_SIGNED,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,HTML_MESSAGE,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS 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 DFC72C07E96 for ; Thu, 8 Jul 2021 16:43:34 +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 6DF696145A for ; Thu, 8 Jul 2021 16:43:34 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 6DF696145A Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=gmail.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Received: from localhost ([::1]:37250 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1m1X7d-0006L1-Jw for qemu-devel@archiver.kernel.org; Thu, 08 Jul 2021 12:43:33 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:60916) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1m1WHk-0007aL-K6 for qemu-devel@nongnu.org; Thu, 08 Jul 2021 11:49:56 -0400 Received: from mail-ej1-x62c.google.com ([2a00:1450:4864:20::62c]:35726) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1m1WHa-0001KK-B4 for qemu-devel@nongnu.org; Thu, 08 Jul 2021 11:49:54 -0400 Received: by mail-ej1-x62c.google.com with SMTP id gn32so10478337ejc.2 for ; Thu, 08 Jul 2021 08:49:44 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=KQhDXSoXg95Ck6DKPT/p5oJ1B+Lm3fTBahOCwTlj1Gc=; b=s5KBGxZjZz4seTHHqCkI5yX9iT61akkYWl75SNCfYzoSX5iG8AOMja8KyMlV+ZfH81 li4/Wsqr2Bg4i81391saKs0rkKblC6JbjJPe8Xb3A5BW753Ogiu1f5w720VjD4q/Bt8n clHhdQfxonVn2baRyQgoF+5ft2rSSXfsmSmeoLcTa3lK9SNJJpffoQXm+Kl+vdMxJ16P PkCXdTaMlbVbMqOEzql6UL9vs7Z4JcMShUrCtWsiA7IHlLZUUhOta0S40NekjYnEnjYa HOt+QT8pJKQ8LapZmVosPJ6NHGoz9a2Aw3ZnZF8Ve2cWU0/BzbxtlJTF7TwUrUnQkwjI r1xw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=KQhDXSoXg95Ck6DKPT/p5oJ1B+Lm3fTBahOCwTlj1Gc=; b=rHHantp1Vd4eGj5Lzt6oZNG++Rcw9Bep79h0zLjOkRaHAYbLfftmXEJlM9ONEajZXW APGfBzR7Dybus+cfpJiGX+wsmTfP6TlfGQfgSocVvn/oscHKtJz9rD/zMPrAKOJLpHkf aL+IBc9Klgn+Qq0xRDLl5STQcpk84bnTtAdySdPzDJUk+LbXqvh/6MRIgAAEUfE3uDhH FMjQ2y8/EChjMV2U4NwEMD3yGRLMBrlIFWipxInDE2f+MRHha1pSIW4twcF/gMNIvnwp th22+Dz8Z2q+jtbuD4tzTTXw12J46HslajPPS3Vpxuy4xmpv98ABvdqMF4QenmiZhfu9 cf7Q== X-Gm-Message-State: AOAM5316TFxInui91fsMEtBnFc3s77bUPRjhRwp2P4QW5z/7kULF7mln C5DtjhLfDK85W3doYI8ZirbMRTXDK+MIDxJKwwA= X-Google-Smtp-Source: ABdhPJxFlcvYPrlap0yLhkOjhBUoH1O4k2x9jyz7QsyhhrNwco/1ZBFNlToFcl4QPsPh3aaiCnBts3Eqk5MTC5Bh8t0= X-Received: by 2002:a17:907:ea5:: with SMTP id ho37mr31654222ejc.109.1625759383184; Thu, 08 Jul 2021 08:49:43 -0700 (PDT) MIME-Version: 1.0 References: <1625678434-240960-1-git-send-email-steven.sistare@oracle.com> <1625678434-240960-13-git-send-email-steven.sistare@oracle.com> In-Reply-To: <1625678434-240960-13-git-send-email-steven.sistare@oracle.com> From: =?UTF-8?B?TWFyYy1BbmRyw6kgTHVyZWF1?= Date: Thu, 8 Jul 2021 19:49:30 +0400 Message-ID: Subject: Re: [PATCH V5 12/25] cpr: QMP interfaces for restart To: Steve Sistare Content-Type: multipart/alternative; boundary="000000000000866a2d05c69e9ae7" Received-SPF: pass client-ip=2a00:1450:4864:20::62c; envelope-from=marcandre.lureau@gmail.com; helo=mail-ej1-x62c.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, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=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.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Jason Zeng , Juan Quintela , Eric Blake , "Michael S. Tsirkin" , QEMU , "Dr. David Alan Gilbert" , Alex Williamson , Stefan Hajnoczi , Paolo Bonzini , "Daniel P. Berrange" , =?UTF-8?Q?Philippe_Mathieu=2DDaud=C3=A9?= , =?UTF-8?B?QWxleCBCZW5uw6ll?= , Markus Armbruster Errors-To: qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Sender: "Qemu-devel" --000000000000866a2d05c69e9ae7 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Hi On Wed, Jul 7, 2021 at 9:33 PM Steve Sistare wrote: > cprexec calls cprexec(). Syntax: > { 'command': 'cprexec', 'data': { 'argv': [ 'str' ] } } > > Add the restart mode: > { 'enum': 'CprMode', 'data': [ 'reboot', 'restart' ] } > > Signed-off-by: Steve Sistare > --- > monitor/qmp-cmds.c | 5 +++++ > qapi/cpr.json | 16 +++++++++++++++- > 2 files changed, 20 insertions(+), 1 deletion(-) > > diff --git a/monitor/qmp-cmds.c b/monitor/qmp-cmds.c > index 1128604..7326f7d 100644 > --- a/monitor/qmp-cmds.c > +++ b/monitor/qmp-cmds.c > @@ -179,6 +179,11 @@ void qmp_cprsave(const char *file, CprMode mode, > Error **errp) > cprsave(file, mode, errp); > } > > +void qmp_cprexec(strList *args, Error **errp) > +{ > + cprexec(args, errp); > +} > + > void qmp_cprload(const char *file, Error **errp) > { > cprload(file, errp); > diff --git a/qapi/cpr.json b/qapi/cpr.json > index b6fdc89..2467e48 100644 > --- a/qapi/cpr.json > +++ b/qapi/cpr.json > @@ -16,10 +16,12 @@ > # > # @reboot: checkpoint can be cprload'ed after a host kexec reboot. > # > +# @restart: checkpoint can be cprload'ed after restarting qemu. > +# > # Since: 6.1 > ## > { 'enum': 'CprMode', > - 'data': [ 'reboot' ] } > + 'data': [ 'reboot', 'restart' ] } > > > ## > @@ -61,6 +63,18 @@ > 'mode': 'CprMode' } } > > ## > +# @cprexec: > +# > +# Restart qemu. > +# > +# @argv: arguments to exec > Why is it not then called cpr-restart ? Why does it take the whole argv? Could argv be made optional? +# > +# Since: 6.1 > +## > +{ 'command': 'cprexec', > + 'data': { 'argv': [ 'str' ] } } > + > +## > # @cprload: > # > # Start virtual machine from checkpoint file that was created earlier > using > -- > 1.8.3.1 > > > --=20 Marc-Andr=C3=A9 Lureau --000000000000866a2d05c69e9ae7 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
Hi

On Wed, Jul 7, 2021 at 9:33 PM Stev= e Sistare <steven.sistare@o= racle.com> wrote:
cprexec calls cprexec().=C2=A0 Syntax:
=C2=A0 { 'command': 'cprexec', 'data': { 'argv&= #39;: [ 'str' ] } }

Add the restart mode:
=C2=A0 { 'enum': 'CprMode', 'data': [ 'reboot&#= 39;, 'restart' ] }

Signed-off-by: Steve Sistare <steven.sistare@oracle.com>
---
=C2=A0monitor/qmp-cmds.c |=C2=A0 5 +++++
=C2=A0qapi/cpr.json=C2=A0 =C2=A0 =C2=A0 | 16 +++++++++++++++-
=C2=A02 files changed, 20 insertions(+), 1 deletion(-)

diff --git a/monitor/qmp-cmds.c b/monitor/qmp-cmds.c
index 1128604..7326f7d 100644
--- a/monitor/qmp-cmds.c
+++ b/monitor/qmp-cmds.c
@@ -179,6 +179,11 @@ void qmp_cprsave(const char *file, CprMode mode, Error= **errp)
=C2=A0 =C2=A0 =C2=A0cprsave(file, mode, errp);
=C2=A0}

+void qmp_cprexec(strList *args, Error **errp)
+{
+=C2=A0 =C2=A0 cprexec(args, errp);
+}
+
=C2=A0void qmp_cprload(const char *file, Error **errp)
=C2=A0{
=C2=A0 =C2=A0 =C2=A0cprload(file, errp);
diff --git a/qapi/cpr.json b/qapi/cpr.json
index b6fdc89..2467e48 100644
--- a/qapi/cpr.json
+++ b/qapi/cpr.json
@@ -16,10 +16,12 @@
=C2=A0#
=C2=A0# @reboot: checkpoint can be cprload'ed after a host kexec reboot= .
=C2=A0#
+# @restart: checkpoint can be cprload'ed after restarting qemu.
+#
=C2=A0# Since: 6.1
=C2=A0##
=C2=A0{ 'enum': 'CprMode',
-=C2=A0 'data': [ 'reboot' ] }
+=C2=A0 'data': [ 'reboot', 'restart' ] }


=C2=A0##
@@ -61,6 +63,18 @@
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0'mode': 'CprMod= e' } }

=C2=A0##
+# @cprexec:
+#
+# Restart qemu.
+#
+# @argv: arguments to exec

Why is it n= ot then called cpr-restart ? Why does it take the whole argv? Could argv be= made optional?

+#
+# Since: 6.1
+##
+{ 'command': 'cprexec',
+=C2=A0 'data': { 'argv': [ 'str' ] } }
+
+##
=C2=A0# @cprload:
=C2=A0#
=C2=A0# Start virtual machine from checkpoint file that was created earlier= using
--
1.8.3.1




--
Marc-Andr=C3=A9 Lureau
--000000000000866a2d05c69e9ae7--