From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([208.118.235.92]:43200) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1TUDy7-0002LI-7c for qemu-devel@nongnu.org; Fri, 02 Nov 2012 05:55:17 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1TUDy2-0008Af-SG for qemu-devel@nongnu.org; Fri, 02 Nov 2012 05:55:15 -0400 Received: from mail-ea0-f173.google.com ([209.85.215.173]:60676) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1TUDy2-0008AM-MY for qemu-devel@nongnu.org; Fri, 02 Nov 2012 05:55:10 -0400 Received: by mail-ea0-f173.google.com with SMTP id a1so1356489eaa.4 for ; Fri, 02 Nov 2012 02:55:09 -0700 (PDT) Sender: Paolo Bonzini Message-ID: <5093987B.7030201@redhat.com> Date: Fri, 02 Nov 2012 10:55:07 +0100 From: Paolo Bonzini MIME-Version: 1.0 References: <1351697456-16107-1-git-send-email-pbonzini@redhat.com> <1351697456-16107-16-git-send-email-pbonzini@redhat.com> <509375A5.8020000@web.de> In-Reply-To: <509375A5.8020000@web.de> Content-Type: text/plain; charset=ISO-8859-15 Content-Transfer-Encoding: 7bit Subject: Re: [Qemu-devel] [PATCH v2 15/39] vl: init main loop earlier List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Jan Kiszka Cc: aliguori@us.ibm.com, qemu-devel@nongnu.org, stefanha@redhat.com Il 02/11/2012 08:26, Jan Kiszka ha scritto: > Can we move os_daemonize before that, or what are its dependencies? I > have an increasingly bad feeling about this code shuffling. Moving os_daemonize too early ruins error messages. I would just pull qemu_mutex_lock_iothread later, even just before cpu_exec_init_all. Something like this (untested): diff --git a/main-loop.c b/main-loop.c index e43c7c8..07c4b84 100644 --- a/main-loop.c +++ b/main-loop.c @@ -125,7 +125,6 @@ int qemu_init_main_loop(void) init_clocks(); init_timer_alarm(); - qemu_mutex_lock_iothread(); ret = qemu_signal_init(); if (ret) { return ret; diff --git a/vl.c b/vl.c index 99681da..210d525 100644 --- a/vl.c +++ b/vl.c @@ -3631,13 +3631,6 @@ int main(int argc, char **argv, char **envp) } #endif - os_daemonize(); - - if (pid_file && qemu_create_pidfile(pid_file) != 0) { - os_pidfile_error(); - exit(1); - } - /* init the memory */ if (ram_size == 0) { ram_size = DEFAULT_RAM_SIZE * 1024 * 1024; @@ -3682,11 +3675,6 @@ int main(int argc, char **argv, char **envp) os_set_line_buffering(); -#ifdef CONFIG_SPICE - /* spice needs the timers to be initialized by this point */ - qemu_spice_init(); -#endif - if (icount_option && (kvm_enabled() || xen_enabled())) { fprintf(stderr, "-icount is not allowed with kvm or xen\n"); exit(1); @@ -3709,6 +3697,20 @@ int main(int argc, char **argv, char **envp) } } + os_daemonize(); + + if (pid_file && qemu_create_pidfile(pid_file) != 0) { + os_pidfile_error(); + exit(1); + } + + qemu_mutex_lock_iothread(); + +#ifdef CONFIG_SPICE + /* spice needs timers & threads to be initialized by this point */ + qemu_spice_init(); +#endif + cpu_exec_init_all(); bdrv_init_with_whitelist();