All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Dr. David Alan Gilbert" <dgilbert@redhat.com>
To: elena.ufimtseva@oracle.com
Cc: fam@euphon.net, john.g.johnson@oracle.com,
	swapnil.ingle@nutanix.com, mst@redhat.com, qemu-devel@nongnu.org,
	kraxel@redhat.com, jag.raman@oracle.com, quintela@redhat.com,
	armbru@redhat.com, kanth.ghatraju@oracle.com, felipe@nutanix.com,
	thuth@redhat.com, ehabkost@redhat.com, konrad.wilk@oracle.com,
	liran.alon@oracle.com, stefanha@redhat.com,
	thanos.makatos@nutanix.com, rth@twiddle.net, kwolf@redhat.com,
	berrange@redhat.com, mreitz@redhat.com,
	ross.lagerwall@citrix.com, marcandre.lureau@gmail.com,
	pbonzini@redhat.com
Subject: Re: [PATCH v6 16/36] multi-process: remote process initialization
Date: Thu, 9 Apr 2020 19:00:02 +0100	[thread overview]
Message-ID: <20200409180002.GG3065@work-vm> (raw)
In-Reply-To: <73241ca8e613a00d89f86d214bf586cad658a616.1586165556.git.elena.ufimtseva@oracle.com>

* elena.ufimtseva@oracle.com (elena.ufimtseva@oracle.com) wrote:
> From: Jagannathan Raman <jag.raman@oracle.com>
> 
> Adds the handler to process message from QEMU,
> Initialize remote process main loop, handles SYNC_SYSMEM
> message by updating its "system_memory" container using
> shared file descriptors received from QEMU.
> 
> Signed-off-by: John G Johnson <john.g.johnson@oracle.com>
> Signed-off-by: Elena Ufimtseva <elena.ufimtseva@oracle.com>
> Signed-off-by: Jagannathan Raman <jag.raman@oracle.com>
> ---
>  remote/remote-main.c | 87 ++++++++++++++++++++++++++++++++++++++++++++
>  1 file changed, 87 insertions(+)
> 
> diff --git a/remote/remote-main.c b/remote/remote-main.c
> index ecf30e0cba..51595f3141 100644
> --- a/remote/remote-main.c
> +++ b/remote/remote-main.c
> @@ -12,6 +12,7 @@
>  #include "qemu-common.h"
>  
>  #include <stdio.h>
> +#include <unistd.h>
>  
>  #include "qemu/module.h"
>  #include "remote/pcihost.h"
> @@ -19,12 +20,98 @@
>  #include "hw/boards.h"
>  #include "hw/qdev-core.h"
>  #include "qemu/main-loop.h"
> +#include "remote/memory.h"
> +#include "io/mpqemu-link.h"
> +#include "qapi/error.h"
> +#include "qemu/main-loop.h"
> +#include "sysemu/cpus.h"
> +#include "qemu-common.h"
> +#include "hw/pci/pci.h"
> +#include "qemu/thread.h"
> +#include "qemu/main-loop.h"
> +#include "qemu/config-file.h"
> +#include "sysemu/sysemu.h"
> +#include "block/block.h"
> +#include "exec/ramlist.h"
> +
> +static MPQemuLinkState *mpqemu_link;
> +
> +static void process_msg(GIOCondition cond, MPQemuLinkState *link,
> +                        MPQemuChannel *chan)
> +{
> +    MPQemuMsg *msg = NULL;
> +    Error *err = NULL;
> +
> +    if ((cond & G_IO_HUP) || (cond & G_IO_ERR)) {
> +        goto finalize_loop;
> +    }
> +
> +    msg = g_malloc0(sizeof(MPQemuMsg));
> +
> +    if (mpqemu_msg_recv(msg, chan) < 0) {
> +        error_setg(&err, "Failed to receive message");
> +        goto finalize_loop;
> +    }
> +
> +    switch (msg->cmd) {
> +    case INIT:
> +        break;
> +    default:
> +        error_setg(&err, "Unknown command");

Again this doesn't seem to have changed since my 4th March review where
I asked for better error messages.

Dave

> +        goto finalize_loop;
> +    }
> +
> +    g_free(msg->data2);
> +    g_free(msg);
> +
> +    return;
> +
> +finalize_loop:
> +    if (err) {
> +        error_report_err(err);
> +    }
> +    g_free(msg);
> +    mpqemu_link_finalize(mpqemu_link);
> +    mpqemu_link = NULL;
> +}
>  
>  int main(int argc, char *argv[])
>  {
> +    Error *err = NULL;
> +
>      module_call_init(MODULE_INIT_QOM);
>  
> +    bdrv_init_with_whitelist();
> +
> +    if (qemu_init_main_loop(&err)) {
> +        error_report_err(err);
> +        return -EBUSY;
> +    }
> +
> +    qemu_init_cpu_loop();
> +
> +    page_size_init();
> +
> +    qemu_mutex_init(&ram_list.mutex);
> +
>      current_machine = MACHINE(REMOTE_MACHINE(object_new(TYPE_REMOTE_MACHINE)));
>  
> +    mpqemu_link = mpqemu_link_create();
> +    if (!mpqemu_link) {
> +        printf("Could not create MPQemu link\n");
> +        return -1;
> +    }
> +
> +    mpqemu_init_channel(mpqemu_link, &mpqemu_link->com, STDIN_FILENO);
> +
> +    mpqemu_link_set_callback(mpqemu_link, process_msg);
> +
> +    qdev_machine_creation_done();
> +    qemu_mutex_lock_iothread();
> +    qemu_run_machine_init_done_notifiers();
> +    qemu_mutex_unlock_iothread();
> +
> +    mpqemu_start_coms(mpqemu_link, mpqemu_link->com);
> +
>      return 0;
>  }
> -- 
> 2.25.GIT
> 
--
Dr. David Alan Gilbert / dgilbert@redhat.com / Manchester, UK



  reply	other threads:[~2020-04-09 18:01 UTC|newest]

Thread overview: 46+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-04-06  9:40 [PATCH v6 00/36] Initial support for multi-process qemu elena.ufimtseva
2020-04-06  9:40 ` [PATCH v6 01/36] memory: alloc RAM from file at offset elena.ufimtseva
2020-04-06  9:40 ` [PATCH v6 02/36] multi-process: Refactor machine_init and exit notifiers elena.ufimtseva
2020-04-06  9:40 ` [PATCH v6 03/36] command-line: refractor parser code elena.ufimtseva
2020-04-06  9:40 ` [PATCH v6 04/36] multi-process: Refactor chardev functions out of vl.c elena.ufimtseva
2020-04-06  9:40 ` [PATCH v6 05/36] multi-process: Refactor monitor " elena.ufimtseva
2020-04-06  9:40 ` [PATCH v6 06/36] monitor: destaticize HMP commands elena.ufimtseva
2020-04-09 17:51   ` Dr. David Alan Gilbert
2020-04-06  9:40 ` [PATCH v6 07/36] multi-process: add a command line option for debug file elena.ufimtseva
2020-04-06  9:40 ` [PATCH v6 08/36] multi-process: Add stub functions to facilate build of multi-process elena.ufimtseva
2020-04-06 13:36   ` Eric Blake
2020-04-06  9:40 ` [PATCH v6 09/36] multi-process: Add config option for multi-process QEMU elena.ufimtseva
2020-04-06  9:41 ` [PATCH v6 10/36] multi-process: build system for remote device process elena.ufimtseva
2020-04-06  9:41 ` [PATCH v6 11/36] multi-process: define mpqemu-link object elena.ufimtseva
2020-04-06  9:41 ` [PATCH v6 12/36] multi-process: add functions to synchronize proxy and remote endpoints elena.ufimtseva
2020-04-09 17:56   ` Dr. David Alan Gilbert
2020-04-06  9:41 ` [PATCH v6 13/36] multi-process: setup PCI host bridge for remote device elena.ufimtseva
2020-04-06  9:41 ` [PATCH v6 14/36] multi-process: setup a machine object for remote device process elena.ufimtseva
2020-04-06  9:41 ` [PATCH v6 15/36] multi-process: setup memory manager for remote device elena.ufimtseva
2020-04-06  9:41 ` [PATCH v6 16/36] multi-process: remote process initialization elena.ufimtseva
2020-04-09 18:00   ` Dr. David Alan Gilbert [this message]
2020-04-10  8:22     ` Elena Ufimtseva
2020-04-06  9:41 ` [PATCH v6 17/36] multi-process: introduce proxy object elena.ufimtseva
2020-04-06  9:41 ` [PATCH v6 18/36] multi-process: Initialize Proxy Object's communication channel elena.ufimtseva
2020-04-06  9:41 ` [PATCH v6 19/36] multi-process: Connect Proxy Object with device in the remote process elena.ufimtseva
2020-04-06  9:41 ` [PATCH v6 20/36] multi-process: Forward PCI config space acceses to " elena.ufimtseva
2020-04-06  9:41 ` [PATCH v6 21/36] multi-process: PCI BAR read/write handling for proxy & remote endpoints elena.ufimtseva
2020-04-09 18:55   ` Dr. David Alan Gilbert
2020-04-06  9:41 ` [PATCH v6 22/36] multi-process: Synchronize remote memory elena.ufimtseva
2020-04-06  9:41 ` [PATCH v6 23/36] multi-process: create IOHUB object to handle irq elena.ufimtseva
2020-04-06  9:41 ` [PATCH v6 24/36] multi-process: Retrieve PCI info from remote process elena.ufimtseva
2020-04-06  9:41 ` [PATCH v6 25/36] multi-process: Introduce build flags to separate remote process code elena.ufimtseva
2020-04-06  9:41 ` [PATCH v6 26/36] multi-process: add parse_cmdline in remote process elena.ufimtseva
2020-04-06  9:41 ` [PATCH v6 27/36] multi-process: add support to parse device option elena.ufimtseva
2020-04-06  9:41 ` [PATCH v6 28/36] multi-process: send heartbeat messages to remote elena.ufimtseva
2020-04-06  9:41 ` [PATCH v6 29/36] multi-process: handle heartbeat messages in remote process elena.ufimtseva
2020-04-06  9:41 ` [PATCH v6 30/36] multi-process: perform device reset in the " elena.ufimtseva
2020-04-06  9:41 ` [PATCH v6 31/36] multi-process/mon: choose HMP commands based on target elena.ufimtseva
2020-04-06  9:41 ` [PATCH v6 32/36] multi-process/mon: stub functions to enable QMP module for remote process elena.ufimtseva
2020-04-06  9:41 ` [PATCH v6 33/36] multi-process/mon: enable QMP module support in the " elena.ufimtseva
2020-04-06  9:41 ` [PATCH v6 34/36] multi-process/mon: Initialize QMP module for remote processes elena.ufimtseva
2020-04-06  9:41 ` [PATCH v6 35/36] multi-process: add the concept description to docs/devel/qemu-multiprocess elena.ufimtseva
2020-04-06  9:41 ` [PATCH v6 36/36] multi-process: add configure and usage information elena.ufimtseva
2020-04-06 10:14 ` [PATCH v6 00/36] Initial support for multi-process qemu no-reply
2020-04-06 16:28   ` Elena Ufimtseva
2020-04-06 10:36 ` no-reply

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=20200409180002.GG3065@work-vm \
    --to=dgilbert@redhat.com \
    --cc=armbru@redhat.com \
    --cc=berrange@redhat.com \
    --cc=ehabkost@redhat.com \
    --cc=elena.ufimtseva@oracle.com \
    --cc=fam@euphon.net \
    --cc=felipe@nutanix.com \
    --cc=jag.raman@oracle.com \
    --cc=john.g.johnson@oracle.com \
    --cc=kanth.ghatraju@oracle.com \
    --cc=konrad.wilk@oracle.com \
    --cc=kraxel@redhat.com \
    --cc=kwolf@redhat.com \
    --cc=liran.alon@oracle.com \
    --cc=marcandre.lureau@gmail.com \
    --cc=mreitz@redhat.com \
    --cc=mst@redhat.com \
    --cc=pbonzini@redhat.com \
    --cc=qemu-devel@nongnu.org \
    --cc=quintela@redhat.com \
    --cc=ross.lagerwall@citrix.com \
    --cc=rth@twiddle.net \
    --cc=stefanha@redhat.com \
    --cc=swapnil.ingle@nutanix.com \
    --cc=thanos.makatos@nutanix.com \
    --cc=thuth@redhat.com \
    /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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.