From patchwork Fri May 27 12:19:18 2011 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jan Kiszka X-Patchwork-Id: 823652 Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by demeter1.kernel.org (8.14.4/8.14.3) with ESMTP id p4RCJnT2003823 for ; Fri, 27 May 2011 12:19:49 GMT Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753948Ab1E0MTk (ORCPT ); Fri, 27 May 2011 08:19:40 -0400 Received: from goliath.siemens.de ([192.35.17.28]:33025 "EHLO goliath.siemens.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753752Ab1E0MTa (ORCPT ); Fri, 27 May 2011 08:19:30 -0400 Received: from mail1.siemens.de (localhost [127.0.0.1]) by goliath.siemens.de (8.13.6/8.13.6) with ESMTP id p4RCJP7O014792; Fri, 27 May 2011 14:19:25 +0200 Received: from mchn199C.mchp.siemens.de ([139.25.109.49]) by mail1.siemens.de (8.13.6/8.13.6) with ESMTP id p4RCJOKo005557; Fri, 27 May 2011 14:19:25 +0200 From: Jan Kiszka To: Avi Kivity , Marcelo Tosatti Cc: kvm@vger.kernel.org Subject: [PATCH 14/20] qemu-kvm: Move main loop setup code Date: Fri, 27 May 2011 14:19:18 +0200 Message-Id: <8b3fa23016cf64b0acfa0ab7ecd9a14f80055683.1306498737.git.jan.kiszka@siemens.com> X-Mailer: git-send-email 1.7.1 In-Reply-To: References: In-Reply-To: References: Sender: kvm-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: kvm@vger.kernel.org X-Greylist: IP, sender and recipient auto-whitelisted, not delayed by milter-greylist-4.2.6 (demeter1.kernel.org [140.211.167.41]); Fri, 27 May 2011 12:19:49 +0000 (UTC) To prepare using the upstream iothread main loop, push some initialization from kvm_main_loop to qemu_kvm_init_main_loop. Signed-off-by: Jan Kiszka --- cpus.c | 41 +++++++++++++++++++++-------------------- 1 files changed, 21 insertions(+), 20 deletions(-) diff --git a/cpus.c b/cpus.c index 470ab00..0455481 100644 --- a/cpus.c +++ b/cpus.c @@ -1372,28 +1372,9 @@ bool qemu_system_is_ready(void) int kvm_main_loop(void) { - sigset_t mask; - int sigfd, r; + int r; qemu_system_ready = 1; - - sigemptyset(&mask); - sigaddset(&mask, SIGIO); - sigaddset(&mask, SIGALRM); - sigaddset(&mask, SIGBUS); - sigprocmask(SIG_BLOCK, &mask, NULL); - - sigfd = qemu_signalfd(&mask); - if (sigfd == -1) { - fprintf(stderr, "failed to create signalfd\n"); - return -errno; - } - - fcntl(sigfd, F_SETFL, O_NONBLOCK); - - qemu_set_fd_handler2(sigfd, NULL, sigfd_handler, NULL, - (void *)(unsigned long) sigfd); - qemu_cond_broadcast(&qemu_system_cond); while (1) { @@ -1429,6 +1410,26 @@ int kvm_main_loop(void) static void qemu_kvm_init_main_loop(void) { + sigset_t mask; + int sigfd; + + sigemptyset(&mask); + sigaddset(&mask, SIGIO); + sigaddset(&mask, SIGALRM); + sigaddset(&mask, SIGBUS); + sigprocmask(SIG_BLOCK, &mask, NULL); + + sigfd = qemu_signalfd(&mask); + if (sigfd == -1) { + fprintf(stderr, "failed to create signalfd\n"); + exit(1); + } + + fcntl(sigfd, F_SETFL, O_NONBLOCK); + + qemu_set_fd_handler2(sigfd, NULL, sigfd_handler, NULL, + (void *)(unsigned long) sigfd); + qemu_cond_init(&qemu_cpu_cond); qemu_cond_init(&qemu_system_cond); qemu_cond_init(&qemu_pause_cond);