From patchwork Mon Dec 16 16:27:46 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Paolo Bonzini X-Patchwork-Id: 11294555 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 866071593 for ; Mon, 16 Dec 2019 16:30:19 +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 38E25206D7 for ; Mon, 16 Dec 2019 16:30:18 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="Jec2Sint" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 38E25206D7 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=redhat.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Received: from localhost ([::1]:56574 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1igtGD-0006XW-A7 for patchwork-qemu-devel@patchwork.kernel.org; Mon, 16 Dec 2019 11:30:17 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:56305) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1igtEr-0004am-3m for qemu-devel@nongnu.org; Mon, 16 Dec 2019 11:28:54 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1igtEp-0006nQ-QV for qemu-devel@nongnu.org; Mon, 16 Dec 2019 11:28:53 -0500 Received: from mail-wm1-x331.google.com ([2a00:1450:4864:20::331]:53585) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1igtEp-0006lY-JV for qemu-devel@nongnu.org; Mon, 16 Dec 2019 11:28:51 -0500 Received: by mail-wm1-x331.google.com with SMTP id m24so6034095wmc.3 for ; Mon, 16 Dec 2019 08:28:51 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references; bh=J+zE46psqR1GZS+L/bb3YayL7qrQQaatDScX4KthbS4=; b=Jec2SintNr4xwAauSRLTtsVVllsrpOpePMK7nDBpaXfUG8ekDCh2wlobS+ynwkbCIU rdtU1Fs/U/tMosyzm7gBxAPmznsuahVL613/PQUSFbggfF9ZJMySgpTrslBqdn9d+zQx o91tlShWhBwGwT8UcElNNcuxCxmnOxyam8EoIh9XWjKiL9wt8OXvnGAVqeRSOfnOcplZ qS+8wSYbNx1O8RWnTnSwjABzm9gpsfgxzuK9q5DjpW8mAx6tf/vNBfcV8W3jfW7RXxfj vgla7Vtnd7x+/xPjCVT1b0x0ugxnjRBbebriOUPfuk1Kwvlna7FJXnm4uP3JWAumFhDh BV1Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references; bh=J+zE46psqR1GZS+L/bb3YayL7qrQQaatDScX4KthbS4=; b=dP51Gh3lkop+ovfkc87Ook6+MRfZBI+oCIbY+pvAo2jStL0Y9v2Vbb881hfOhnocPX uazPE/9Fy/ZhGKbvVl/CVvnL7qWIB7Z5OZ0vTEDLv1zfoiE8ufp5iOIWU3ZKNfkh2ra3 Z9nhAIEez5e7ezJrQTVhAKYNG0g6jGzI7AvKPdzSsGvtUqdIsJrjKp1zJsoDSepo4jS6 gtlZes7FOvhWUSGpFdzzVFthVKosSfB8nh7qwKCYCkVNFenhp4eYu/obDv2W8K/wxwgK Aek80Vx1dCDm+WEEbVNn4twuCtlWPBPD3aNT95drIedZmefU3mY3aBlLkCw75djdcES6 5a6Q== X-Gm-Message-State: APjAAAUdPbqLWmjhQjjihYURxmKmpbIsjMi3ZhE3uREZgWOMB7VJwmHI QlurY7xFb6KK7NigAMdZbnHRTrNg X-Google-Smtp-Source: APXvYqxNesnTusSI37ikuQbHRPdBLL/ZlYVUtROHfXJ90lNS+XyVS2KzMptV8Qu9njiNNe+FB6UI2w== X-Received: by 2002:a7b:c38c:: with SMTP id s12mr31375948wmj.96.1576513730304; Mon, 16 Dec 2019 08:28:50 -0800 (PST) Received: from 640k.lan ([93.56.166.5]) by smtp.gmail.com with ESMTPSA id q68sm19962334wme.14.2019.12.16.08.28.49 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 16 Dec 2019 08:28:49 -0800 (PST) From: Paolo Bonzini To: qemu-devel@nongnu.org Subject: [PULL 02/62] migration-test: Create cmd_soure and cmd_target Date: Mon, 16 Dec 2019 17:27:46 +0100 Message-Id: <1576513726-53700-3-git-send-email-pbonzini@redhat.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1576513726-53700-1-git-send-email-pbonzini@redhat.com> References: <1576513726-53700-1-git-send-email-pbonzini@redhat.com> X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2a00:1450:4864:20::331 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: Juan Quintela Errors-To: qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Sender: "Qemu-devel" From: Juan Quintela We are repeating almost everything for each machine while creating the command line for migration. And once for source and another for destination. We start putting there opts_src and opts_dst. Signed-off-by: Juan Quintela Tested-by: Cornelia Huck #s390x Tested-by: Laurent Vivier --- tests/migration-test.c | 44 +++++++++++++++++++++++++------------------- 1 file changed, 25 insertions(+), 19 deletions(-) diff --git a/tests/migration-test.c b/tests/migration-test.c index ebd77a5..9573861 100644 --- a/tests/migration-test.c +++ b/tests/migration-test.c @@ -557,6 +557,7 @@ static int test_migrate_start(QTestState **from, QTestState **to, const char *opts_dst) { gchar *cmd_src, *cmd_dst; + gchar *cmd_source, *cmd_target; char *bootpath = NULL; char *extra_opts = NULL; char *shmem_path = NULL; @@ -584,16 +585,16 @@ static int test_migrate_start(QTestState **from, QTestState **to, cmd_src = g_strdup_printf("-machine accel=%s -m 150M" " -name source,debug-threads=on" " -serial file:%s/src_serial" - " -drive file=%s,format=raw %s %s", + " -drive file=%s,format=raw %s", accel, tmpfs, bootpath, - extra_opts ? extra_opts : "", opts_src); + extra_opts ? extra_opts : ""); cmd_dst = g_strdup_printf("-machine accel=%s -m 150M" " -name target,debug-threads=on" " -serial file:%s/dest_serial" " -drive file=%s,format=raw" - " -incoming %s %s %s", + " -incoming %s %s", accel, tmpfs, bootpath, uri, - extra_opts ? extra_opts : "", opts_dst); + extra_opts ? extra_opts : ""); start_address = X86_TEST_MEM_START; end_address = X86_TEST_MEM_END; } else if (g_str_equal(arch, "s390x")) { @@ -601,15 +602,15 @@ static int test_migrate_start(QTestState **from, QTestState **to, extra_opts = use_shmem ? get_shmem_opts("128M", shmem_path) : NULL; cmd_src = g_strdup_printf("-machine accel=%s -m 128M" " -name source,debug-threads=on" - " -serial file:%s/src_serial -bios %s %s %s", + " -serial file:%s/src_serial -bios %s %s", accel, tmpfs, bootpath, - extra_opts ? extra_opts : "", opts_src); + extra_opts ? extra_opts : ""); cmd_dst = g_strdup_printf("-machine accel=%s -m 128M" " -name target,debug-threads=on" " -serial file:%s/dest_serial -bios %s" - " -incoming %s %s %s", + " -incoming %s %s", accel, tmpfs, bootpath, uri, - extra_opts ? extra_opts : "", opts_dst); + extra_opts ? extra_opts : ""); start_address = S390_TEST_MEM_START; end_address = S390_TEST_MEM_END; } else if (strcmp(arch, "ppc64") == 0) { @@ -620,15 +621,14 @@ static int test_migrate_start(QTestState **from, QTestState **to, " -prom-env 'use-nvramrc?=true' -prom-env " "'nvramrc=hex .\" _\" begin %x %x " "do i c@ 1 + i c! 1000 +loop .\" B\" 0 " - "until' %s %s", accel, tmpfs, end_address, - start_address, extra_opts ? extra_opts : "", - opts_src); + "until' %s", accel, tmpfs, end_address, + start_address, extra_opts ? extra_opts : ""); cmd_dst = g_strdup_printf("-machine accel=%s,vsmt=8 -m 256M" " -name target,debug-threads=on" " -serial file:%s/dest_serial" - " -incoming %s %s %s", + " -incoming %s %s", accel, tmpfs, uri, - extra_opts ? extra_opts : "", opts_dst); + extra_opts ? extra_opts : ""); start_address = PPC_TEST_MEM_START; end_address = PPC_TEST_MEM_END; @@ -638,16 +638,16 @@ static int test_migrate_start(QTestState **from, QTestState **to, cmd_src = g_strdup_printf("-machine virt,accel=%s,gic-version=max " "-name vmsource,debug-threads=on -cpu max " "-m 150M -serial file:%s/src_serial " - "-kernel %s %s %s", + "-kernel %s %s", accel, tmpfs, bootpath, - extra_opts ? extra_opts : "", opts_src); + extra_opts ? extra_opts : ""); cmd_dst = g_strdup_printf("-machine virt,accel=%s,gic-version=max " "-name vmdest,debug-threads=on -cpu max " "-m 150M -serial file:%s/dest_serial " "-kernel %s " - "-incoming %s %s %s", + "-incoming %s %s", accel, tmpfs, bootpath, uri, - extra_opts ? extra_opts : "", opts_dst); + extra_opts ? extra_opts : ""); start_address = ARM_TEST_MEM_START; end_address = ARM_TEST_MEM_END; @@ -671,11 +671,17 @@ static int test_migrate_start(QTestState **from, QTestState **to, cmd_dst = tmp; } - *from = qtest_init(cmd_src); + cmd_source = g_strdup_printf("%s %s", + cmd_src, opts_src); g_free(cmd_src); + *from = qtest_init(cmd_source); + g_free(cmd_source); - *to = qtest_init(cmd_dst); + cmd_target = g_strdup_printf("%s %s", + cmd_dst, opts_dst); g_free(cmd_dst); + *to = qtest_init(cmd_target); + g_free(cmd_target); /* * Remove shmem file immediately to avoid memory leak in test failed case. From patchwork Mon Dec 16 16:27:47 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Paolo Bonzini X-Patchwork-Id: 11294561 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id D3BC56C1 for ; Mon, 16 Dec 2019 16:33:08 +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 A9E3C206D7 for ; Mon, 16 Dec 2019 16:33:08 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="YqhiMz/I" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org A9E3C206D7 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=redhat.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Received: from localhost ([::1]:56616 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1igtIx-0001x6-1O for patchwork-qemu-devel@patchwork.kernel.org; Mon, 16 Dec 2019 11:33:07 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:56331) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1igtEs-0004bc-0O for qemu-devel@nongnu.org; Mon, 16 Dec 2019 11:28:54 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1igtEq-0006oy-KX for qemu-devel@nongnu.org; Mon, 16 Dec 2019 11:28:53 -0500 Received: from mail-wm1-x331.google.com ([2a00:1450:4864:20::331]:53199) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1igtEq-0006nX-E4 for qemu-devel@nongnu.org; Mon, 16 Dec 2019 11:28:52 -0500 Received: by mail-wm1-x331.google.com with SMTP id p9so7441529wmc.2 for ; Mon, 16 Dec 2019 08:28:52 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references; bh=s0NAURmWeAEU0CNcWC+Zic7UHZ5JprIxfB44NlHf3g4=; b=YqhiMz/I/8aUf7t4wF9wYouokdNHO7KPpS11+98zjxDxz1sxqd8asR0DlJ+MgPnyQJ sVTzm++QZSriD1OeetSUW3tMJoHbrvR/k9HfAwQLQNI1ttQg+KPMTgmQnBkQnNmgrbWn pDbK4jcl8EnzQE07stYQ2i5y3eOCGaDooeMubdNz9v1bRjZ26PoU2BpuHKxKAQReyioy d1ap7SOXloHsN76AT9trk+uCjCKvz+R7wWQ52OmxirIWb57qENGHkD4SY5JkBNHWajnm 1G00WCTU26F+f6MC3IJzmFql7XYZ/LWVDn/J8EiXLAQ0MpBTZnyaPh5DjIno+aFVxGKI uYfQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references; bh=s0NAURmWeAEU0CNcWC+Zic7UHZ5JprIxfB44NlHf3g4=; b=pB9r3VFbhnNyw0Ai23OCHxBgP/2QaZqrclgdmWdBMzVjKBrkALQECTuhxQnl2laQMY 5KEv4swz0tgqNoqnYUKjWmm/51iZgvfF+N1jpfdOqxbu4poHNQwFOPmSgl9hLbGfuy5e jjRH8ShT52nHD/5hdgRJGzZKF1GDKeUVHXCskU6JsnWzMWZUVA2svOw7nDmaRwvH7Zlb zIXBmje08KyjuE6t2LDAvauNmOJB6MUerhairoHkW9GtqUbc6NeE+7C6YIK1/sfm/wNF vpNTS98QQ38E5lgZgPd+SZJX6G2f3UKhXLkeGFLa0elePXeQRKDz5Gxr/iHalqqWU2+f OnMg== X-Gm-Message-State: APjAAAWAItefEITM2rwwHKjkQbxkBa57PGbKAv/UhREcaqEiLxPQoGAh 2XmxOEZqr8tKiHEfBKurUwLxVV4b X-Google-Smtp-Source: APXvYqySMmZis8fxBaKOyK3g4TOeUN++ljEO+x6qwbO3J2TV2QliFufjpi5gTtHts1JEmc7sAZ6yAA== X-Received: by 2002:a7b:c001:: with SMTP id c1mr31656447wmb.96.1576513731275; Mon, 16 Dec 2019 08:28:51 -0800 (PST) Received: from 640k.lan ([93.56.166.5]) by smtp.gmail.com with ESMTPSA id q68sm19962334wme.14.2019.12.16.08.28.50 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 16 Dec 2019 08:28:50 -0800 (PST) From: Paolo Bonzini To: qemu-devel@nongnu.org Subject: [PULL 03/62] migration-test: Move hide_stderr to common commandline Date: Mon, 16 Dec 2019 17:27:47 +0100 Message-Id: <1576513726-53700-4-git-send-email-pbonzini@redhat.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1576513726-53700-1-git-send-email-pbonzini@redhat.com> References: <1576513726-53700-1-git-send-email-pbonzini@redhat.com> X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2a00:1450:4864:20::331 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: Juan Quintela Errors-To: qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Sender: "Qemu-devel" From: Juan Quintela Signed-off-by: Juan Quintela Tested-by: Cornelia Huck #s390x Tested-by: Laurent Vivier --- tests/migration-test.c | 20 ++++++++------------ 1 file changed, 8 insertions(+), 12 deletions(-) diff --git a/tests/migration-test.c b/tests/migration-test.c index 9573861..372e66c 100644 --- a/tests/migration-test.c +++ b/tests/migration-test.c @@ -558,6 +558,7 @@ static int test_migrate_start(QTestState **from, QTestState **to, { gchar *cmd_src, *cmd_dst; gchar *cmd_source, *cmd_target; + const gchar *ignore_stderr; char *bootpath = NULL; char *extra_opts = NULL; char *shmem_path = NULL; @@ -661,24 +662,19 @@ static int test_migrate_start(QTestState **from, QTestState **to, g_free(extra_opts); if (hide_stderr) { - gchar *tmp; - tmp = g_strdup_printf("%s 2>/dev/null", cmd_src); - g_free(cmd_src); - cmd_src = tmp; - - tmp = g_strdup_printf("%s 2>/dev/null", cmd_dst); - g_free(cmd_dst); - cmd_dst = tmp; + ignore_stderr = "2>/dev/null"; + } else { + ignore_stderr = ""; } - cmd_source = g_strdup_printf("%s %s", - cmd_src, opts_src); + cmd_source = g_strdup_printf("%s %s %s", + cmd_src, opts_src, ignore_stderr); g_free(cmd_src); *from = qtest_init(cmd_source); g_free(cmd_source); - cmd_target = g_strdup_printf("%s %s", - cmd_dst, opts_dst); + cmd_target = g_strdup_printf("%s %s %s", + cmd_dst, opts_dst, ignore_stderr); g_free(cmd_dst); *to = qtest_init(cmd_target); g_free(cmd_target); From patchwork Mon Dec 16 16:27:48 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Paolo Bonzini X-Patchwork-Id: 11294569 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 546621593 for ; Mon, 16 Dec 2019 16:36:37 +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 299FC206E0 for ; Mon, 16 Dec 2019 16:36:37 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="QdZRFVcd" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 299FC206E0 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=redhat.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Received: from localhost ([::1]:56668 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1igtMJ-0005dv-Ip for patchwork-qemu-devel@patchwork.kernel.org; Mon, 16 Dec 2019 11:36:35 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:56354) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1igtEt-0004cw-6S for qemu-devel@nongnu.org; Mon, 16 Dec 2019 11:28:56 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1igtEr-0006rG-Ln for qemu-devel@nongnu.org; Mon, 16 Dec 2019 11:28:55 -0500 Received: from mail-wm1-x333.google.com ([2a00:1450:4864:20::333]:53201) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1igtEr-0006pK-EY for qemu-devel@nongnu.org; Mon, 16 Dec 2019 11:28:53 -0500 Received: by mail-wm1-x333.google.com with SMTP id p9so7441606wmc.2 for ; Mon, 16 Dec 2019 08:28:53 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references; bh=zxw60BFwP9AwKgv+HLe1mvNusF8kvgQh66UrHOxl68E=; b=QdZRFVcdwMej2Q3oFFPXBHUAvBJ0eSsULRvYcIjxdfkSwXIWicjYGctNQE6UkVDt6x Fbwz9vsvOQ2zoJEMlURkJwgj3Rs4qjg4pFUGrkj28A94IPLwdYpOeo24/pCQmkwY9OHr 7Ff6W+L7KYB5gLY7NQ74KNeMPIz9vyzMUEmf96R7pTleMs8O5gJhiPgtJrTidzYVYCKZ rcu3pAcIoFDkQp3KToOQyOYht4oLDOU4o0d30yoStTpHiX+waCSsPcxMKh1yuVALuK+S kyw6ls7fh9oA/PM5AMfukIzpFYsdvQsOOHl9WS1/ZYjxTxNIShn61cQsWhTj9gkEUCSG nq3g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references; bh=zxw60BFwP9AwKgv+HLe1mvNusF8kvgQh66UrHOxl68E=; b=AC88p/MXirOnruZacNQSRgk7n4VcLXTwzfya5YRGT9uyn1vtylieEavhJSzceHYlBH zqzMc8807plVGj5mVubaN4sidQCWrhK+4izz0F7gV4JN0JgUT1SmRQssSvQ7DUjhol2n jQ9gW2z29WuKe+pvygQK74enLVNXCh6l2bUTnEgXGB1EUASVHj5VTflihiWBqEbtXRwx xnp1ZnScJZDLYibHrnEU2D7Zm4qXSFnUr9DD+nA/+Jiczn4x6upxr9zuNx+3tsLZVX+q ApaehhQAdj6NFy2qXPYfIXP7jZBxipH0P/T2nID7LnzRVqrVDEaU3iXXDzZE5kb08+rA PDfQ== X-Gm-Message-State: APjAAAUSF4hRclorXyIAUDj8LSjrsyrKWoBdUDKDFPPMKod5vVVEBAoI LmzVo2sYdD9BBYZuSt1ljdn+ovA/ X-Google-Smtp-Source: APXvYqxlmTlz99F5WQ+eqvCP9SfD6V9jXzl5mA2E4vdNhlw/lwzipLX035ClCG2OZX/v2wxpGA9heA== X-Received: by 2002:a1c:6308:: with SMTP id x8mr4427109wmb.80.1576513732103; Mon, 16 Dec 2019 08:28:52 -0800 (PST) Received: from 640k.lan ([93.56.166.5]) by smtp.gmail.com with ESMTPSA id q68sm19962334wme.14.2019.12.16.08.28.51 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 16 Dec 2019 08:28:51 -0800 (PST) From: Paolo Bonzini To: qemu-devel@nongnu.org Subject: [PULL 04/62] migration-test: Move -machine to common commandline Date: Mon, 16 Dec 2019 17:27:48 +0100 Message-Id: <1576513726-53700-5-git-send-email-pbonzini@redhat.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1576513726-53700-1-git-send-email-pbonzini@redhat.com> References: <1576513726-53700-1-git-send-email-pbonzini@redhat.com> X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2a00:1450:4864:20::333 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: Juan Quintela Errors-To: qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Sender: "Qemu-devel" From: Juan Quintela Signed-off-by: Juan Quintela Tested-by: Cornelia Huck #s390x Tested-by: Laurent Vivier --- tests/migration-test.c | 51 +++++++++++++++++++++++++++++--------------------- 1 file changed, 30 insertions(+), 21 deletions(-) diff --git a/tests/migration-test.c b/tests/migration-test.c index 372e66c..39203f6 100644 --- a/tests/migration-test.c +++ b/tests/migration-test.c @@ -563,7 +563,8 @@ static int test_migrate_start(QTestState **from, QTestState **to, char *extra_opts = NULL; char *shmem_path = NULL; const char *arch = qtest_get_arch(); - const char *accel = "kvm:tcg"; + const char *machine_type; + const char *machine_args; opts_src = opts_src ? opts_src : ""; opts_dst = opts_dst ? opts_dst : ""; @@ -582,72 +583,78 @@ static int test_migrate_start(QTestState **from, QTestState **to, /* the assembled x86 boot sector should be exactly one sector large */ assert(sizeof(x86_bootsect) == 512); init_bootfile(bootpath, x86_bootsect, sizeof(x86_bootsect)); + machine_type = ""; + machine_args = ""; extra_opts = use_shmem ? get_shmem_opts("150M", shmem_path) : NULL; - cmd_src = g_strdup_printf("-machine accel=%s -m 150M" + cmd_src = g_strdup_printf("-m 150M" " -name source,debug-threads=on" " -serial file:%s/src_serial" " -drive file=%s,format=raw %s", - accel, tmpfs, bootpath, + tmpfs, bootpath, extra_opts ? extra_opts : ""); - cmd_dst = g_strdup_printf("-machine accel=%s -m 150M" + cmd_dst = g_strdup_printf("-m 150M" " -name target,debug-threads=on" " -serial file:%s/dest_serial" " -drive file=%s,format=raw" " -incoming %s %s", - accel, tmpfs, bootpath, uri, + tmpfs, bootpath, uri, extra_opts ? extra_opts : ""); start_address = X86_TEST_MEM_START; end_address = X86_TEST_MEM_END; } else if (g_str_equal(arch, "s390x")) { init_bootfile(bootpath, s390x_elf, sizeof(s390x_elf)); + machine_type = ""; + machine_args = ""; extra_opts = use_shmem ? get_shmem_opts("128M", shmem_path) : NULL; - cmd_src = g_strdup_printf("-machine accel=%s -m 128M" + cmd_src = g_strdup_printf("-m 128M" " -name source,debug-threads=on" " -serial file:%s/src_serial -bios %s %s", - accel, tmpfs, bootpath, + tmpfs, bootpath, extra_opts ? extra_opts : ""); - cmd_dst = g_strdup_printf("-machine accel=%s -m 128M" + cmd_dst = g_strdup_printf("-m 128M" " -name target,debug-threads=on" " -serial file:%s/dest_serial -bios %s" " -incoming %s %s", - accel, tmpfs, bootpath, uri, + tmpfs, bootpath, uri, extra_opts ? extra_opts : ""); start_address = S390_TEST_MEM_START; end_address = S390_TEST_MEM_END; } else if (strcmp(arch, "ppc64") == 0) { + machine_type = ""; + machine_args = ",vsmt=8"; extra_opts = use_shmem ? get_shmem_opts("256M", shmem_path) : NULL; - cmd_src = g_strdup_printf("-machine accel=%s,vsmt=8 -m 256M -nodefaults" + cmd_src = g_strdup_printf("-m 256M -nodefaults" " -name source,debug-threads=on" " -serial file:%s/src_serial" " -prom-env 'use-nvramrc?=true' -prom-env " "'nvramrc=hex .\" _\" begin %x %x " "do i c@ 1 + i c! 1000 +loop .\" B\" 0 " - "until' %s", accel, tmpfs, end_address, + "until' %s", tmpfs, end_address, start_address, extra_opts ? extra_opts : ""); - cmd_dst = g_strdup_printf("-machine accel=%s,vsmt=8 -m 256M" + cmd_dst = g_strdup_printf("-m 256M" " -name target,debug-threads=on" " -serial file:%s/dest_serial" " -incoming %s %s", - accel, tmpfs, uri, + tmpfs, uri, extra_opts ? extra_opts : ""); start_address = PPC_TEST_MEM_START; end_address = PPC_TEST_MEM_END; } else if (strcmp(arch, "aarch64") == 0) { init_bootfile(bootpath, aarch64_kernel, sizeof(aarch64_kernel)); + machine_type = "virt,"; + machine_args = "gic-version=max"; extra_opts = use_shmem ? get_shmem_opts("150M", shmem_path) : NULL; - cmd_src = g_strdup_printf("-machine virt,accel=%s,gic-version=max " - "-name vmsource,debug-threads=on -cpu max " + cmd_src = g_strdup_printf("-name vmsource,debug-threads=on -cpu max " "-m 150M -serial file:%s/src_serial " "-kernel %s %s", - accel, tmpfs, bootpath, + tmpfs, bootpath, extra_opts ? extra_opts : ""); - cmd_dst = g_strdup_printf("-machine virt,accel=%s,gic-version=max " - "-name vmdest,debug-threads=on -cpu max " + cmd_dst = g_strdup_printf("-name vmdest,debug-threads=on -cpu max " "-m 150M -serial file:%s/dest_serial " "-kernel %s " "-incoming %s %s", - accel, tmpfs, bootpath, uri, + tmpfs, bootpath, uri, extra_opts ? extra_opts : ""); start_address = ARM_TEST_MEM_START; @@ -667,13 +674,15 @@ static int test_migrate_start(QTestState **from, QTestState **to, ignore_stderr = ""; } - cmd_source = g_strdup_printf("%s %s %s", + cmd_source = g_strdup_printf("-machine %saccel=kvm:tcg%s %s %s %s", + machine_type, machine_args, cmd_src, opts_src, ignore_stderr); g_free(cmd_src); *from = qtest_init(cmd_source); g_free(cmd_source); - cmd_target = g_strdup_printf("%s %s %s", + cmd_target = g_strdup_printf("-machine %saccel=kvm:tcg%s %s %s %s", + machine_type, machine_args, cmd_dst, opts_dst, ignore_stderr); g_free(cmd_dst); *to = qtest_init(cmd_target); From patchwork Mon Dec 16 16:27:49 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Paolo Bonzini X-Patchwork-Id: 11294557 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id CA96A6C1 for ; Mon, 16 Dec 2019 16:30:22 +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 9FF88206D7 for ; Mon, 16 Dec 2019 16:30:22 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="tRCNwmqe" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 9FF88206D7 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=redhat.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Received: from localhost ([::1]:56588 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1igtGH-0006em-48 for patchwork-qemu-devel@patchwork.kernel.org; Mon, 16 Dec 2019 11:30:21 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:56368) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1igtEt-0004dc-R1 for qemu-devel@nongnu.org; Mon, 16 Dec 2019 11:28:57 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1igtEs-0006tB-Gj for qemu-devel@nongnu.org; Mon, 16 Dec 2019 11:28:55 -0500 Received: from mail-wr1-x435.google.com ([2a00:1450:4864:20::435]:33131) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1igtEs-0006rA-8p for qemu-devel@nongnu.org; Mon, 16 Dec 2019 11:28:54 -0500 Received: by mail-wr1-x435.google.com with SMTP id b6so8070091wrq.0 for ; Mon, 16 Dec 2019 08:28:54 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references; bh=MigzyWj+F7hTHupvGUMkFQy7vhes1xwrq5hfxQuvvdk=; b=tRCNwmqec1PksABPpXFhpmRzE6dkX0FHy9s1IfcFQyGmRI7z9XoJhTKMkPy+Fl/BTA 6gMolq6VOb4AV54un0fJ0w8BkbJFL8ME6M8D+6VQ/AmQBPV7r/xZg65/UT6iLg8ao2+x SR7syR9f/Rs52ih5RJaY56EYFYeU+DwDxIOlZpjFSUcqXc3c4kIHhQTgmreXiqfDbyT1 ZOw7veq0c2C2B5F1J+MS+NeacGa5ZCPbbng0MnfvRlupE43pjE7goQjcJbm/Hw4RwMhS 5UWDGwyXgYsuodz5164oPmlTDGsBAWSTLuYLWf/zuL4pHzGRVXT88wyfeENRwlmBqJjN i9fw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references; bh=MigzyWj+F7hTHupvGUMkFQy7vhes1xwrq5hfxQuvvdk=; b=ouMJlOj078CxhOcKW0Vk+JQesitE2c8m59aQWdbFyGs+pscc6MIr/QRZOdZAJ0iVhb LdZ/h0ZOHjYeNj2FMuujh2E+ohgl/cAz9FJP7B6RbA/W++sF2C8k+NzG35TtyKvSessF dBbUQ0ApTwckIZmPvAm3kF0j6619MOWLIJib5mZQuktssA1rdzjdzxLrk1qINCiQ6/CV AAl1/6BQwEoP4VJs1PWjmbxyAyeR/sgvfeNRHcxRuWZ4QGzXx78tdWmwhJ9byt4kQuBJ 1CkPWw1cZVVXkqu8mxSwJ3I2F4aegV4JWlAJX+XZ6ocKvKPSLIj2PmS+c2Zf+wuV72z1 r0cA== X-Gm-Message-State: APjAAAW08uRuFibn3DwpX2UiWoT4R/NLi4ktVFSQXUNW0RPs12ApgjFE gL4XWS+idhHY1v8TJPI6Vk4cgrky X-Google-Smtp-Source: APXvYqxu4W6COsEZb1Nue9k3E46pUFCYfa+sbPSxVfP0mkR5PtpQhurI4ELDMc7JnCsWO2oIVJ/2pQ== X-Received: by 2002:a5d:4044:: with SMTP id w4mr31114588wrp.322.1576513732953; Mon, 16 Dec 2019 08:28:52 -0800 (PST) Received: from 640k.lan ([93.56.166.5]) by smtp.gmail.com with ESMTPSA id q68sm19962334wme.14.2019.12.16.08.28.52 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 16 Dec 2019 08:28:52 -0800 (PST) From: Paolo Bonzini To: qemu-devel@nongnu.org Subject: [PULL 05/62] migration-test: Move memory size to common commandline Date: Mon, 16 Dec 2019 17:27:49 +0100 Message-Id: <1576513726-53700-6-git-send-email-pbonzini@redhat.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1576513726-53700-1-git-send-email-pbonzini@redhat.com> References: <1576513726-53700-1-git-send-email-pbonzini@redhat.com> X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2a00:1450:4864:20::435 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: Juan Quintela Errors-To: qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Sender: "Qemu-devel" From: Juan Quintela Signed-off-by: Juan Quintela Tested-by: Cornelia Huck #s390x Tested-by: Laurent Vivier --- tests/migration-test.c | 44 +++++++++++++++++++++++++------------------- 1 file changed, 25 insertions(+), 19 deletions(-) diff --git a/tests/migration-test.c b/tests/migration-test.c index 39203f6..18857f0 100644 --- a/tests/migration-test.c +++ b/tests/migration-test.c @@ -565,6 +565,7 @@ static int test_migrate_start(QTestState **from, QTestState **to, const char *arch = qtest_get_arch(); const char *machine_type; const char *machine_args; + const char *memory_size; opts_src = opts_src ? opts_src : ""; opts_dst = opts_dst ? opts_dst : ""; @@ -585,15 +586,14 @@ static int test_migrate_start(QTestState **from, QTestState **to, init_bootfile(bootpath, x86_bootsect, sizeof(x86_bootsect)); machine_type = ""; machine_args = ""; - extra_opts = use_shmem ? get_shmem_opts("150M", shmem_path) : NULL; - cmd_src = g_strdup_printf("-m 150M" - " -name source,debug-threads=on" + memory_size = "150M"; + extra_opts = use_shmem ? get_shmem_opts(memory_size, shmem_path) : NULL; + cmd_src = g_strdup_printf(" -name source,debug-threads=on" " -serial file:%s/src_serial" " -drive file=%s,format=raw %s", tmpfs, bootpath, extra_opts ? extra_opts : ""); - cmd_dst = g_strdup_printf("-m 150M" - " -name target,debug-threads=on" + cmd_dst = g_strdup_printf(" -name target,debug-threads=on" " -serial file:%s/dest_serial" " -drive file=%s,format=raw" " -incoming %s %s", @@ -605,14 +605,13 @@ static int test_migrate_start(QTestState **from, QTestState **to, init_bootfile(bootpath, s390x_elf, sizeof(s390x_elf)); machine_type = ""; machine_args = ""; - extra_opts = use_shmem ? get_shmem_opts("128M", shmem_path) : NULL; - cmd_src = g_strdup_printf("-m 128M" - " -name source,debug-threads=on" + memory_size = "128M"; + extra_opts = use_shmem ? get_shmem_opts(memory_size, shmem_path) : NULL; + cmd_src = g_strdup_printf(" -name source,debug-threads=on" " -serial file:%s/src_serial -bios %s %s", tmpfs, bootpath, extra_opts ? extra_opts : ""); - cmd_dst = g_strdup_printf("-m 128M" - " -name target,debug-threads=on" + cmd_dst = g_strdup_printf(" -name target,debug-threads=on" " -serial file:%s/dest_serial -bios %s" " -incoming %s %s", tmpfs, bootpath, uri, @@ -622,8 +621,9 @@ static int test_migrate_start(QTestState **from, QTestState **to, } else if (strcmp(arch, "ppc64") == 0) { machine_type = ""; machine_args = ",vsmt=8"; - extra_opts = use_shmem ? get_shmem_opts("256M", shmem_path) : NULL; - cmd_src = g_strdup_printf("-m 256M -nodefaults" + memory_size = "256M"; + extra_opts = use_shmem ? get_shmem_opts(memory_size, shmem_path) : NULL; + cmd_src = g_strdup_printf("-nodefaults" " -name source,debug-threads=on" " -serial file:%s/src_serial" " -prom-env 'use-nvramrc?=true' -prom-env " @@ -631,8 +631,7 @@ static int test_migrate_start(QTestState **from, QTestState **to, "do i c@ 1 + i c! 1000 +loop .\" B\" 0 " "until' %s", tmpfs, end_address, start_address, extra_opts ? extra_opts : ""); - cmd_dst = g_strdup_printf("-m 256M" - " -name target,debug-threads=on" + cmd_dst = g_strdup_printf(" -name target,debug-threads=on" " -serial file:%s/dest_serial" " -incoming %s %s", tmpfs, uri, @@ -644,14 +643,15 @@ static int test_migrate_start(QTestState **from, QTestState **to, init_bootfile(bootpath, aarch64_kernel, sizeof(aarch64_kernel)); machine_type = "virt,"; machine_args = "gic-version=max"; - extra_opts = use_shmem ? get_shmem_opts("150M", shmem_path) : NULL; + memory_size = "150M"; + extra_opts = use_shmem ? get_shmem_opts(memory_size, shmem_path) : NULL; cmd_src = g_strdup_printf("-name vmsource,debug-threads=on -cpu max " - "-m 150M -serial file:%s/src_serial " + "-serial file:%s/src_serial " "-kernel %s %s", tmpfs, bootpath, extra_opts ? extra_opts : ""); cmd_dst = g_strdup_printf("-name vmdest,debug-threads=on -cpu max " - "-m 150M -serial file:%s/dest_serial " + "-serial file:%s/dest_serial " "-kernel %s " "-incoming %s %s", tmpfs, bootpath, uri, @@ -674,15 +674,21 @@ static int test_migrate_start(QTestState **from, QTestState **to, ignore_stderr = ""; } - cmd_source = g_strdup_printf("-machine %saccel=kvm:tcg%s %s %s %s", + cmd_source = g_strdup_printf("-machine %saccel=kvm:tcg%s " + "-m %s " + "%s %s %s", machine_type, machine_args, + memory_size, cmd_src, opts_src, ignore_stderr); g_free(cmd_src); *from = qtest_init(cmd_source); g_free(cmd_source); - cmd_target = g_strdup_printf("-machine %saccel=kvm:tcg%s %s %s %s", + cmd_target = g_strdup_printf("-machine %saccel=kvm:tcg%s " + "-m %s " + "%s %s %s", machine_type, machine_args, + memory_size, cmd_dst, opts_dst, ignore_stderr); g_free(cmd_dst); *to = qtest_init(cmd_target); From patchwork Mon Dec 16 16:27:50 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Paolo Bonzini X-Patchwork-Id: 11294559 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 9A3141593 for ; Mon, 16 Dec 2019 16:30:27 +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 700AA2067C for ; Mon, 16 Dec 2019 16:30:27 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="abncX6BJ" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 700AA2067C Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=redhat.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Received: from localhost ([::1]:56590 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1igtGL-0006m1-Gt for patchwork-qemu-devel@patchwork.kernel.org; Mon, 16 Dec 2019 11:30:25 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:56398) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1igtEu-0004fG-VL for qemu-devel@nongnu.org; Mon, 16 Dec 2019 11:28:58 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1igtEt-0006vN-FJ for qemu-devel@nongnu.org; Mon, 16 Dec 2019 11:28:56 -0500 Received: from mail-wr1-x431.google.com ([2a00:1450:4864:20::431]:43813) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1igtEt-0006tJ-89 for qemu-devel@nongnu.org; Mon, 16 Dec 2019 11:28:55 -0500 Received: by mail-wr1-x431.google.com with SMTP id d16so8035154wre.10 for ; Mon, 16 Dec 2019 08:28:55 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references; bh=dZej0VRwucx2cd/XKW6yBntfdbCcru8xsSOweG22Ze0=; b=abncX6BJexU3RZHo5jGnf95aocDIwNmCB9MjGZaK2RXz7vg9HuBLgKxKlYc1KI4Gk0 ZAgNv1tf9yjHwb1rlZsLsNTvmgUnjyr10Cj5fl9lZ6GL7M5rxYclwEAbxor/2q5KtITT ge24YRhZ5Imu28BI6acHS8OUhF2GdN4yweDK3STsdBH5Wpf44GAspXTBcdaHN6k6Z5bV ZwFAABRxyCBP//7oh3GWOzSXhl9EzKqf2Qpdjm/Jw4m8oImU3hPqm4MzYi7HMJX/H/GC KWKUVaj5rQhNca1nsq3JW063zuMS5p9ydLXwxUX8ZGgLetkjNg+KAKHo6ftTcMJHP6qy WoOw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references; bh=dZej0VRwucx2cd/XKW6yBntfdbCcru8xsSOweG22Ze0=; b=VkE6Ke4PITfSZbw0a+wM5JJT1MXCuSUICcCftYWqlALIYWjDaRUkZEe+qO12o5f6Bt vzbpEaiO5WILFLlFY869Pv1e7ZvPaWOO5uqu3RmFMW4bs+7Q5hy8ER7nB1SKc+sc9IoZ tjgxObKUYEsjAmwgf6mOAY3R0Lc+DWArGrM3CoFNS+IMhKjZ0ZXjrulQcbHxxaFPc0tC rVs243e5b95TiKM4BBqEeJWSHGN9s2RNbIoKok/jJArgo7rt4ZITS79QnLW40K9Tgg7G Dh8L2F3i+6GuSZsiF+AXy1lie+A7wxUUovCO0NeBe840uN/dvS6FLOeVL+hwYEOW/Z18 mdfA== X-Gm-Message-State: APjAAAUUkjTsytflprX9oOrwR6GwO5X3n4Fie6XYOJcpgMcnG9tqqBSj jTWoOPhFJgsYkj+thbdUYgkIF4MF X-Google-Smtp-Source: APXvYqw42XUEZtdZU08C7NL0Icu9eI5GEyEyetRBKvzsy0Xo0uwttd2aAK2Nq0NFduR9Waj1W1W24Q== X-Received: by 2002:a05:6000:1052:: with SMTP id c18mr31210745wrx.268.1576513733937; Mon, 16 Dec 2019 08:28:53 -0800 (PST) Received: from 640k.lan ([93.56.166.5]) by smtp.gmail.com with ESMTPSA id q68sm19962334wme.14.2019.12.16.08.28.52 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 16 Dec 2019 08:28:53 -0800 (PST) From: Paolo Bonzini To: qemu-devel@nongnu.org Subject: [PULL 06/62] migration-test: Move shmem handling to common commandline Date: Mon, 16 Dec 2019 17:27:50 +0100 Message-Id: <1576513726-53700-7-git-send-email-pbonzini@redhat.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1576513726-53700-1-git-send-email-pbonzini@redhat.com> References: <1576513726-53700-1-git-send-email-pbonzini@redhat.com> X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2a00:1450:4864:20::431 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: Juan Quintela Errors-To: qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Sender: "Qemu-devel" From: Juan Quintela Signed-off-by: Juan Quintela Tested-by: Cornelia Huck #s390x Tested-by: Laurent Vivier --- tests/migration-test.c | 76 ++++++++++++++++++++++---------------------------- 1 file changed, 34 insertions(+), 42 deletions(-) diff --git a/tests/migration-test.c b/tests/migration-test.c index 18857f0..85c98f0 100644 --- a/tests/migration-test.c +++ b/tests/migration-test.c @@ -380,13 +380,6 @@ static void cleanup(const char *filename) g_free(path); } -static char *get_shmem_opts(const char *mem_size, const char *shmem_path) -{ - return g_strdup_printf("-object memory-backend-file,id=mem0,size=%s" - ",mem-path=%s,share=on -numa node,memdev=mem0", - mem_size, shmem_path); -} - static char *SocketAddress_to_str(SocketAddress *addr) { switch (addr->type) { @@ -560,8 +553,8 @@ static int test_migrate_start(QTestState **from, QTestState **to, gchar *cmd_source, *cmd_target; const gchar *ignore_stderr; char *bootpath = NULL; - char *extra_opts = NULL; - char *shmem_path = NULL; + char *shmem_opts; + char *shmem_path; const char *arch = qtest_get_arch(); const char *machine_type; const char *machine_args; @@ -575,7 +568,6 @@ static int test_migrate_start(QTestState **from, QTestState **to, g_test_skip("/dev/shm is not supported"); return -1; } - shmem_path = g_strdup_printf("/dev/shm/qemu-%d", getpid()); } got_stop = false; @@ -587,18 +579,15 @@ static int test_migrate_start(QTestState **from, QTestState **to, machine_type = ""; machine_args = ""; memory_size = "150M"; - extra_opts = use_shmem ? get_shmem_opts(memory_size, shmem_path) : NULL; cmd_src = g_strdup_printf(" -name source,debug-threads=on" " -serial file:%s/src_serial" - " -drive file=%s,format=raw %s", - tmpfs, bootpath, - extra_opts ? extra_opts : ""); + " -drive file=%s,format=raw", + tmpfs, bootpath); cmd_dst = g_strdup_printf(" -name target,debug-threads=on" " -serial file:%s/dest_serial" " -drive file=%s,format=raw" - " -incoming %s %s", - tmpfs, bootpath, uri, - extra_opts ? extra_opts : ""); + " -incoming %s", + tmpfs, bootpath, uri); start_address = X86_TEST_MEM_START; end_address = X86_TEST_MEM_END; } else if (g_str_equal(arch, "s390x")) { @@ -606,36 +595,31 @@ static int test_migrate_start(QTestState **from, QTestState **to, machine_type = ""; machine_args = ""; memory_size = "128M"; - extra_opts = use_shmem ? get_shmem_opts(memory_size, shmem_path) : NULL; cmd_src = g_strdup_printf(" -name source,debug-threads=on" - " -serial file:%s/src_serial -bios %s %s", - tmpfs, bootpath, - extra_opts ? extra_opts : ""); + " -serial file:%s/src_serial -bios %s", + tmpfs, bootpath); cmd_dst = g_strdup_printf(" -name target,debug-threads=on" " -serial file:%s/dest_serial -bios %s" - " -incoming %s %s", - tmpfs, bootpath, uri, - extra_opts ? extra_opts : ""); + " -incoming %s", + tmpfs, bootpath, uri); start_address = S390_TEST_MEM_START; end_address = S390_TEST_MEM_END; } else if (strcmp(arch, "ppc64") == 0) { machine_type = ""; machine_args = ",vsmt=8"; memory_size = "256M"; - extra_opts = use_shmem ? get_shmem_opts(memory_size, shmem_path) : NULL; cmd_src = g_strdup_printf("-nodefaults" " -name source,debug-threads=on" " -serial file:%s/src_serial" " -prom-env 'use-nvramrc?=true' -prom-env " "'nvramrc=hex .\" _\" begin %x %x " "do i c@ 1 + i c! 1000 +loop .\" B\" 0 " - "until' %s", tmpfs, end_address, - start_address, extra_opts ? extra_opts : ""); + "until'", tmpfs, end_address, + start_address); cmd_dst = g_strdup_printf(" -name target,debug-threads=on" " -serial file:%s/dest_serial" - " -incoming %s %s", - tmpfs, uri, - extra_opts ? extra_opts : ""); + " -incoming %s", + tmpfs, uri); start_address = PPC_TEST_MEM_START; end_address = PPC_TEST_MEM_END; @@ -644,18 +628,15 @@ static int test_migrate_start(QTestState **from, QTestState **to, machine_type = "virt,"; machine_args = "gic-version=max"; memory_size = "150M"; - extra_opts = use_shmem ? get_shmem_opts(memory_size, shmem_path) : NULL; cmd_src = g_strdup_printf("-name vmsource,debug-threads=on -cpu max " "-serial file:%s/src_serial " - "-kernel %s %s", - tmpfs, bootpath, - extra_opts ? extra_opts : ""); + "-kernel %s", + tmpfs, bootpath); cmd_dst = g_strdup_printf("-name vmdest,debug-threads=on -cpu max " "-serial file:%s/dest_serial " "-kernel %s " - "-incoming %s %s", - tmpfs, bootpath, uri, - extra_opts ? extra_opts : ""); + "-incoming %s", + tmpfs, bootpath, uri); start_address = ARM_TEST_MEM_START; end_address = ARM_TEST_MEM_END; @@ -666,7 +647,6 @@ static int test_migrate_start(QTestState **from, QTestState **to, } g_free(bootpath); - g_free(extra_opts); if (hide_stderr) { ignore_stderr = "2>/dev/null"; @@ -674,26 +654,38 @@ static int test_migrate_start(QTestState **from, QTestState **to, ignore_stderr = ""; } + if (use_shmem) { + shmem_path = g_strdup_printf("/dev/shm/qemu-%d", getpid()); + shmem_opts = g_strdup_printf( + "-object memory-backend-file,id=mem0,size=%s" + ",mem-path=%s,share=on -numa node,memdev=mem0", + memory_size, shmem_path); + } else { + shmem_path = NULL; + shmem_opts = g_strdup(""); + } + cmd_source = g_strdup_printf("-machine %saccel=kvm:tcg%s " "-m %s " - "%s %s %s", + "%s %s %s %s", machine_type, machine_args, memory_size, - cmd_src, opts_src, ignore_stderr); + cmd_src, shmem_opts, opts_src, ignore_stderr); g_free(cmd_src); *from = qtest_init(cmd_source); g_free(cmd_source); cmd_target = g_strdup_printf("-machine %saccel=kvm:tcg%s " "-m %s " - "%s %s %s", + "%s %s %s %s", machine_type, machine_args, memory_size, - cmd_dst, opts_dst, ignore_stderr); + cmd_dst, shmem_opts, opts_dst, ignore_stderr); g_free(cmd_dst); *to = qtest_init(cmd_target); g_free(cmd_target); + g_free(shmem_opts); /* * Remove shmem file immediately to avoid memory leak in test failed case. * It's valid becase QEMU has already opened this file From patchwork Mon Dec 16 16:27:51 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Paolo Bonzini X-Patchwork-Id: 11294565 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 324ED1593 for ; Mon, 16 Dec 2019 16:33:13 +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 082C2206D7 for ; Mon, 16 Dec 2019 16:33:13 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="QWZL6Kbq" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 082C2206D7 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=redhat.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Received: from localhost ([::1]:56620 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1igtJ1-00024W-Lb for patchwork-qemu-devel@patchwork.kernel.org; Mon, 16 Dec 2019 11:33:11 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:56419) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1igtEv-0004gG-Gv for qemu-devel@nongnu.org; Mon, 16 Dec 2019 11:28:58 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1igtEu-0006x4-AH for qemu-devel@nongnu.org; Mon, 16 Dec 2019 11:28:57 -0500 Received: from mail-wr1-x42a.google.com ([2a00:1450:4864:20::42a]:42388) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1igtEu-0006vV-3K for qemu-devel@nongnu.org; Mon, 16 Dec 2019 11:28:56 -0500 Received: by mail-wr1-x42a.google.com with SMTP id q6so8016008wro.9 for ; Mon, 16 Dec 2019 08:28:56 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references; bh=TSnXYhqE7z+X9M0OA1mdhorAedFwu58e9uHTbkURf20=; b=QWZL6KbqdXeZ7E/uTHME9OaY8f1QgP9Nd5a0OhnsBcg5ioJ3jzu6dXK427+6ZkZ9lA H0Ln9nnCn8fecLJ6CJbMSoNa+JE2HbISxp5s5IUv0L5eISZsGWIVaS0NOzWXmagA+O/O NTd8OylZPXMv+1JXWHJOVqlwMHwriW8XLptzpypZ/BN9gTg29Kf55gGSWtl38b1amJ91 kV9XaQbMrVubg9EYTjNiD9svnJwtMzM7/kProteGAt/19/0tRZ4qNd0bAau1OE02SqQ+ kKVeQHVEC1qfH2eN+TISDCMM77qoLVOdifmO8LDU3ih+YiMTcS0W3aWiwFHdbo6qmI4H HaUg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references; bh=TSnXYhqE7z+X9M0OA1mdhorAedFwu58e9uHTbkURf20=; b=GQBXv3xV3kBiZ9l3zXRADRfgU87+HEUFxqFvG9sGpnx0Vkwl2O9Nohr8UQCoOXfP0a +1Pg+QK0iQuz2B5WGka1Or/Lp2BBPJ17cdSY1Rt3rfRK8ROgBdVGdGubcD+eRZEhRGB2 1dWqLNF/3h9UDd+92bmY45NHaQmOOBkxDbfh6GJGxZLUDr0cAkFHuhK6Cy2cn2GECt8F lDZaFIpCmTGezmgRR37bYt5ZhiK8YD6tvRdf1wvmEnZomGaEXltF+B0EGnH/WA+LHIHT a5T20tWDP7hVRB7WpE2VShqF7J95jLajQc7mZtGtxQ0P4mg0cbVqoJHii5boJE8at99T 6Xjw== X-Gm-Message-State: APjAAAWqeidgxTS0K0PSwqGqEeTvF6mYZ65yTdrb39ECSCT0yIKIC1Z4 16CdYXtPRrhwrg+i64xhY7YL/mr+ X-Google-Smtp-Source: APXvYqzMnR/QPgRA61pW0lfcqXaHWMrIIFXoNQrJkuDFMqmN+zZHP6JGO+LkZL83+4EpJ44hzgOvMQ== X-Received: by 2002:a5d:4687:: with SMTP id u7mr31139360wrq.176.1576513734936; Mon, 16 Dec 2019 08:28:54 -0800 (PST) Received: from 640k.lan ([93.56.166.5]) by smtp.gmail.com with ESMTPSA id q68sm19962334wme.14.2019.12.16.08.28.53 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 16 Dec 2019 08:28:54 -0800 (PST) From: Paolo Bonzini To: qemu-devel@nongnu.org Subject: [PULL 07/62] migration-test: Move -name handling to common commandline Date: Mon, 16 Dec 2019 17:27:51 +0100 Message-Id: <1576513726-53700-8-git-send-email-pbonzini@redhat.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1576513726-53700-1-git-send-email-pbonzini@redhat.com> References: <1576513726-53700-1-git-send-email-pbonzini@redhat.com> X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2a00:1450:4864:20::42a 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: Juan Quintela Errors-To: qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Sender: "Qemu-devel" From: Juan Quintela Signed-off-by: Juan Quintela Tested-by: Cornelia Huck #s390x Tested-by: Laurent Vivier --- tests/migration-test.c | 22 +++++++++------------- 1 file changed, 9 insertions(+), 13 deletions(-) diff --git a/tests/migration-test.c b/tests/migration-test.c index 85c98f0..a83e43b 100644 --- a/tests/migration-test.c +++ b/tests/migration-test.c @@ -579,12 +579,10 @@ static int test_migrate_start(QTestState **from, QTestState **to, machine_type = ""; machine_args = ""; memory_size = "150M"; - cmd_src = g_strdup_printf(" -name source,debug-threads=on" - " -serial file:%s/src_serial" + cmd_src = g_strdup_printf(" -serial file:%s/src_serial" " -drive file=%s,format=raw", tmpfs, bootpath); - cmd_dst = g_strdup_printf(" -name target,debug-threads=on" - " -serial file:%s/dest_serial" + cmd_dst = g_strdup_printf(" -serial file:%s/dest_serial" " -drive file=%s,format=raw" " -incoming %s", tmpfs, bootpath, uri); @@ -595,11 +593,9 @@ static int test_migrate_start(QTestState **from, QTestState **to, machine_type = ""; machine_args = ""; memory_size = "128M"; - cmd_src = g_strdup_printf(" -name source,debug-threads=on" - " -serial file:%s/src_serial -bios %s", + cmd_src = g_strdup_printf(" -serial file:%s/src_serial -bios %s", tmpfs, bootpath); - cmd_dst = g_strdup_printf(" -name target,debug-threads=on" - " -serial file:%s/dest_serial -bios %s" + cmd_dst = g_strdup_printf(" -serial file:%s/dest_serial -bios %s" " -incoming %s", tmpfs, bootpath, uri); start_address = S390_TEST_MEM_START; @@ -609,15 +605,13 @@ static int test_migrate_start(QTestState **from, QTestState **to, machine_args = ",vsmt=8"; memory_size = "256M"; cmd_src = g_strdup_printf("-nodefaults" - " -name source,debug-threads=on" " -serial file:%s/src_serial" " -prom-env 'use-nvramrc?=true' -prom-env " "'nvramrc=hex .\" _\" begin %x %x " "do i c@ 1 + i c! 1000 +loop .\" B\" 0 " "until'", tmpfs, end_address, start_address); - cmd_dst = g_strdup_printf(" -name target,debug-threads=on" - " -serial file:%s/dest_serial" + cmd_dst = g_strdup_printf(" -serial file:%s/dest_serial" " -incoming %s", tmpfs, uri); @@ -628,11 +622,11 @@ static int test_migrate_start(QTestState **from, QTestState **to, machine_type = "virt,"; machine_args = "gic-version=max"; memory_size = "150M"; - cmd_src = g_strdup_printf("-name vmsource,debug-threads=on -cpu max " + cmd_src = g_strdup_printf("-cpu max " "-serial file:%s/src_serial " "-kernel %s", tmpfs, bootpath); - cmd_dst = g_strdup_printf("-name vmdest,debug-threads=on -cpu max " + cmd_dst = g_strdup_printf("-cpu max " "-serial file:%s/dest_serial " "-kernel %s " "-incoming %s", @@ -666,6 +660,7 @@ static int test_migrate_start(QTestState **from, QTestState **to, } cmd_source = g_strdup_printf("-machine %saccel=kvm:tcg%s " + "-name source,debug-threads=on " "-m %s " "%s %s %s %s", machine_type, machine_args, @@ -676,6 +671,7 @@ static int test_migrate_start(QTestState **from, QTestState **to, g_free(cmd_source); cmd_target = g_strdup_printf("-machine %saccel=kvm:tcg%s " + "-name target,debug-threads=on " "-m %s " "%s %s %s %s", machine_type, machine_args, From patchwork Mon Dec 16 16:27:52 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Paolo Bonzini X-Patchwork-Id: 11294571 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 1D7B66C1 for ; Mon, 16 Dec 2019 16:36:41 +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 E60A0206E0 for ; Mon, 16 Dec 2019 16:36:40 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="aZ+3HaWe" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org E60A0206E0 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=redhat.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Received: from localhost ([::1]:56670 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1igtMN-0005nq-Br for patchwork-qemu-devel@patchwork.kernel.org; Mon, 16 Dec 2019 11:36:39 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:56470) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1igtEx-0004jc-K2 for qemu-devel@nongnu.org; Mon, 16 Dec 2019 11:29:00 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1igtEv-0006zM-A7 for qemu-devel@nongnu.org; Mon, 16 Dec 2019 11:28:59 -0500 Received: from mail-wr1-x42c.google.com ([2a00:1450:4864:20::42c]:45282) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1igtEv-0006xW-2v for qemu-devel@nongnu.org; Mon, 16 Dec 2019 11:28:57 -0500 Received: by mail-wr1-x42c.google.com with SMTP id j42so3844541wrj.12 for ; Mon, 16 Dec 2019 08:28:57 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references; bh=jT9I9Ps2g95xmQ93zjEe27cZoWHjzkat4j8Vl4duSTw=; b=aZ+3HaWeOCiGOrOdWPNbhDMyL7jMBPUlx8Dv1ED6JsFjdQGsbJYGyFH20OJFFaMYje fCjemAxrfgGv9rEp56jae8uUutW6PuywTYNLWZ6084K1bHQC++JkQHDss00EL7DAsqmS b1ylVEmOOi5J2aD4IzooUX/grAuompkjaZD2KziQQGxm7sykkdh+7pFMWXAA670v6H/H UXC97WVRvv6U8OzNSVgOAE2rN7ldZSZlijD0nV6hBxj+lnLQZMXe8OV6nFmnbks7gK+6 6XafnEqB0uMkPLpf6mZ61rYOakO/wwj8v6b9R/7+tiZxJFZxXZlhPZ/h0Y2dEYyGQYYm jeJQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references; bh=jT9I9Ps2g95xmQ93zjEe27cZoWHjzkat4j8Vl4duSTw=; b=nrsDiFOd/o12dVPg3s2sru3lGMzsBMKFWS70bY1tttc9p37HtCoReMo0f3qoPVmyeL Y9pfWBLl32vRWoGCXH0/0/LvxlyMcyWoCcIH/xFcrpxomf4ANaTVBBL445KkXJtrrboq bdSPyhca1rc48ySvTGDmHpsqBZHqRWtkWXbFCtSDAViEGZcgzzfpSIUXiZPg0IqrAh0T ZdlllucD/tQyiFNWr+pykdv6N8n4Hl09MDL+nrqfQEuPMXtVYZO/Pgcjmb+Dy0ZtSxUg TixoRDId60+get3xbBzkJ5hEuukr2A/56cYvIV8jlpeGYIZOJ1zm2cdFWMGSHmlChW0J N8ew== X-Gm-Message-State: APjAAAXNgOkGuI0L4METDaN7OfGYXZUm84ZFKVli+SwNKG9uqjDDguUm R3xDLZXbMdebgGY4DKxj7jJA5by4 X-Google-Smtp-Source: APXvYqyb2A1EPr0b4NAa9FOELWVsP8XWOaCCR0g4/NxnrEswUva/t58xEBsPpQla0gPSUROMKlOigg== X-Received: by 2002:adf:f18b:: with SMTP id h11mr30141404wro.56.1576513735826; Mon, 16 Dec 2019 08:28:55 -0800 (PST) Received: from 640k.lan ([93.56.166.5]) by smtp.gmail.com with ESMTPSA id q68sm19962334wme.14.2019.12.16.08.28.54 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 16 Dec 2019 08:28:55 -0800 (PST) From: Paolo Bonzini To: qemu-devel@nongnu.org Subject: [PULL 08/62] migration-test: Move -serial handling to common commandline Date: Mon, 16 Dec 2019 17:27:52 +0100 Message-Id: <1576513726-53700-9-git-send-email-pbonzini@redhat.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1576513726-53700-1-git-send-email-pbonzini@redhat.com> References: <1576513726-53700-1-git-send-email-pbonzini@redhat.com> X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2a00:1450:4864:20::42c 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: Juan Quintela Errors-To: qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Sender: "Qemu-devel" From: Juan Quintela Signed-off-by: Juan Quintela Tested-by: Cornelia Huck #s390x Tested-by: Laurent Vivier --- tests/migration-test.c | 41 ++++++++++++++++------------------------- 1 file changed, 16 insertions(+), 25 deletions(-) diff --git a/tests/migration-test.c b/tests/migration-test.c index a83e43b..85e270c 100644 --- a/tests/migration-test.c +++ b/tests/migration-test.c @@ -579,13 +579,10 @@ static int test_migrate_start(QTestState **from, QTestState **to, machine_type = ""; machine_args = ""; memory_size = "150M"; - cmd_src = g_strdup_printf(" -serial file:%s/src_serial" - " -drive file=%s,format=raw", - tmpfs, bootpath); - cmd_dst = g_strdup_printf(" -serial file:%s/dest_serial" - " -drive file=%s,format=raw" + cmd_src = g_strdup_printf("-drive file=%s,format=raw", bootpath); + cmd_dst = g_strdup_printf("-drive file=%s,format=raw" " -incoming %s", - tmpfs, bootpath, uri); + bootpath, uri); start_address = X86_TEST_MEM_START; end_address = X86_TEST_MEM_END; } else if (g_str_equal(arch, "s390x")) { @@ -593,28 +590,22 @@ static int test_migrate_start(QTestState **from, QTestState **to, machine_type = ""; machine_args = ""; memory_size = "128M"; - cmd_src = g_strdup_printf(" -serial file:%s/src_serial -bios %s", - tmpfs, bootpath); - cmd_dst = g_strdup_printf(" -serial file:%s/dest_serial -bios %s" + cmd_src = g_strdup_printf("-bios %s", bootpath); + cmd_dst = g_strdup_printf("-bios %s" " -incoming %s", - tmpfs, bootpath, uri); + bootpath, uri); start_address = S390_TEST_MEM_START; end_address = S390_TEST_MEM_END; } else if (strcmp(arch, "ppc64") == 0) { machine_type = ""; machine_args = ",vsmt=8"; memory_size = "256M"; - cmd_src = g_strdup_printf("-nodefaults" - " -serial file:%s/src_serial" - " -prom-env 'use-nvramrc?=true' -prom-env " + cmd_src = g_strdup_printf("-nodefaults " + "-prom-env 'use-nvramrc?=true' -prom-env " "'nvramrc=hex .\" _\" begin %x %x " "do i c@ 1 + i c! 1000 +loop .\" B\" 0 " - "until'", tmpfs, end_address, - start_address); - cmd_dst = g_strdup_printf(" -serial file:%s/dest_serial" - " -incoming %s", - tmpfs, uri); - + "until'", end_address, start_address); + cmd_dst = g_strdup_printf(" -incoming %s", uri); start_address = PPC_TEST_MEM_START; end_address = PPC_TEST_MEM_END; } else if (strcmp(arch, "aarch64") == 0) { @@ -623,14 +614,12 @@ static int test_migrate_start(QTestState **from, QTestState **to, machine_args = "gic-version=max"; memory_size = "150M"; cmd_src = g_strdup_printf("-cpu max " - "-serial file:%s/src_serial " "-kernel %s", - tmpfs, bootpath); + bootpath); cmd_dst = g_strdup_printf("-cpu max " - "-serial file:%s/dest_serial " "-kernel %s " "-incoming %s", - tmpfs, bootpath, uri); + bootpath, uri); start_address = ARM_TEST_MEM_START; end_address = ARM_TEST_MEM_END; @@ -661,10 +650,11 @@ static int test_migrate_start(QTestState **from, QTestState **to, cmd_source = g_strdup_printf("-machine %saccel=kvm:tcg%s " "-name source,debug-threads=on " + "-serial file:%s/src_serial " "-m %s " "%s %s %s %s", machine_type, machine_args, - memory_size, + tmpfs, memory_size, cmd_src, shmem_opts, opts_src, ignore_stderr); g_free(cmd_src); *from = qtest_init(cmd_source); @@ -673,9 +663,10 @@ static int test_migrate_start(QTestState **from, QTestState **to, cmd_target = g_strdup_printf("-machine %saccel=kvm:tcg%s " "-name target,debug-threads=on " "-m %s " + "-serial file:%s/dest_serial " "%s %s %s %s", machine_type, machine_args, - memory_size, + tmpfs, memory_size, cmd_dst, shmem_opts, opts_dst, ignore_stderr); g_free(cmd_dst); *to = qtest_init(cmd_target); From patchwork Mon Dec 16 16:27:53 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Paolo Bonzini X-Patchwork-Id: 11294609 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 471306C1 for ; Mon, 16 Dec 2019 16:39:30 +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 1D691206E0 for ; Mon, 16 Dec 2019 16:39:30 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="hxbOI9WP" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 1D691206E0 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=redhat.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Received: from localhost ([::1]:56700 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1igtP6-0001Al-Qc for patchwork-qemu-devel@patchwork.kernel.org; Mon, 16 Dec 2019 11:39:28 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:56461) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1igtEx-0004iz-7l for qemu-devel@nongnu.org; Mon, 16 Dec 2019 11:29:00 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1igtEw-00070w-2w for qemu-devel@nongnu.org; Mon, 16 Dec 2019 11:28:59 -0500 Received: from mail-wm1-x32c.google.com ([2a00:1450:4864:20::32c]:53581) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1igtEv-0006z7-Sa for qemu-devel@nongnu.org; Mon, 16 Dec 2019 11:28:58 -0500 Received: by mail-wm1-x32c.google.com with SMTP id m24so6034546wmc.3 for ; Mon, 16 Dec 2019 08:28:57 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references; bh=3ihEo7p0QbN2mTro2zOBTwTmqJafQZGvJFrYh7PK3bc=; b=hxbOI9WPbLZK3RpWV7/cYjs31honWKW26bVGaTJjdKcdsZBZiwnZNezCWQBNqb2Uib lQRX8ADfKJ6851sOu2vZO4U+ueDjpZtinr39JJPpfC+FsJzrCApqXlIRSpX8ldRw8TgY FvFcVdLAlQDrWofyhhEc9ylwB9PLD47zoPV3ywRtHQn0Rd47UVprp4r7VpAgVSZ5ahWU NC+Odwl3ioIOLUNXbx7HoVUtQbMaLYbbEhc0EohZi2EM436SJYZUTKAMphzE7zGp12/1 RDfPCu+w6qlop6/vAsUPYgaXPTpB/yInDEINVlhAWx7SLQgbi7bUaKs+2cPi8xqDgoOi fHPQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references; bh=3ihEo7p0QbN2mTro2zOBTwTmqJafQZGvJFrYh7PK3bc=; b=XYfqbAEX6av8Qz6TjAguDwxQ8ZWtNyuzlnSe2o0zMS8MmhiYSwMEBVveVlzeeQXn+m 1cO3Y6DFQAvYtgDOCiI5JnbDp+ZMBCFrdnuEt1ttO/3/84BMcEtCQS6734VzFoys5GQ6 B+8iTvPq4kVq63SJDG2fXJ273W20meWjIyBvqnZWb+KdLbzocnkNkiVKA3HTmgHJcDbe lPWMTh6JVdN2XwY6IPizL2qw/kCR6K7aVj0+fxJ/olLygaEm/EUqHg02DTGZXzqd10MR jAb0IwB4O/NelLL66DnynsC3KT8k6IkjMNqhcwgVjVg32+5JHrup3UQD4GWjIThXpGk9 xmBQ== X-Gm-Message-State: APjAAAUhTJQ97unFE443fbCmcuPHFSmGDjXdzSox5wTZCVQtGpRyWO6o gci4tYoVjE+ZgpsU5SOVPGpa15E/ X-Google-Smtp-Source: APXvYqxJw2EVkh/w9RmOma6rBmNuN1jS8omOA0WJsb8y5SH0Ohmi0V+ByvfN1j1RbdWnWHzfRcaebg== X-Received: by 2002:a1c:9d8b:: with SMTP id g133mr30263697wme.27.1576513736631; Mon, 16 Dec 2019 08:28:56 -0800 (PST) Received: from 640k.lan ([93.56.166.5]) by smtp.gmail.com with ESMTPSA id q68sm19962334wme.14.2019.12.16.08.28.55 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 16 Dec 2019 08:28:56 -0800 (PST) From: Paolo Bonzini To: qemu-devel@nongnu.org Subject: [PULL 09/62] migration-test: Move -incomming handling to common commandline Date: Mon, 16 Dec 2019 17:27:53 +0100 Message-Id: <1576513726-53700-10-git-send-email-pbonzini@redhat.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1576513726-53700-1-git-send-email-pbonzini@redhat.com> References: <1576513726-53700-1-git-send-email-pbonzini@redhat.com> X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2a00:1450:4864:20::32c 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: Juan Quintela Errors-To: qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Sender: "Qemu-devel" From: Juan Quintela Signed-off-by: Juan Quintela Tested-by: Cornelia Huck #s390x Tested-by: Laurent Vivier --- tests/migration-test.c | 23 ++++++++--------------- 1 file changed, 8 insertions(+), 15 deletions(-) diff --git a/tests/migration-test.c b/tests/migration-test.c index 85e270c..5ab8cfd 100644 --- a/tests/migration-test.c +++ b/tests/migration-test.c @@ -580,9 +580,7 @@ static int test_migrate_start(QTestState **from, QTestState **to, machine_args = ""; memory_size = "150M"; cmd_src = g_strdup_printf("-drive file=%s,format=raw", bootpath); - cmd_dst = g_strdup_printf("-drive file=%s,format=raw" - " -incoming %s", - bootpath, uri); + cmd_dst = g_strdup(cmd_src); start_address = X86_TEST_MEM_START; end_address = X86_TEST_MEM_END; } else if (g_str_equal(arch, "s390x")) { @@ -591,9 +589,7 @@ static int test_migrate_start(QTestState **from, QTestState **to, machine_args = ""; memory_size = "128M"; cmd_src = g_strdup_printf("-bios %s", bootpath); - cmd_dst = g_strdup_printf("-bios %s" - " -incoming %s", - bootpath, uri); + cmd_dst = g_strdup(cmd_src); start_address = S390_TEST_MEM_START; end_address = S390_TEST_MEM_END; } else if (strcmp(arch, "ppc64") == 0) { @@ -605,7 +601,7 @@ static int test_migrate_start(QTestState **from, QTestState **to, "'nvramrc=hex .\" _\" begin %x %x " "do i c@ 1 + i c! 1000 +loop .\" B\" 0 " "until'", end_address, start_address); - cmd_dst = g_strdup_printf(" -incoming %s", uri); + cmd_dst = g_strdup(""); start_address = PPC_TEST_MEM_START; end_address = PPC_TEST_MEM_END; } else if (strcmp(arch, "aarch64") == 0) { @@ -616,11 +612,7 @@ static int test_migrate_start(QTestState **from, QTestState **to, cmd_src = g_strdup_printf("-cpu max " "-kernel %s", bootpath); - cmd_dst = g_strdup_printf("-cpu max " - "-kernel %s " - "-incoming %s", - bootpath, uri); - + cmd_dst = g_strdup(cmd_src); start_address = ARM_TEST_MEM_START; end_address = ARM_TEST_MEM_END; @@ -650,11 +642,11 @@ static int test_migrate_start(QTestState **from, QTestState **to, cmd_source = g_strdup_printf("-machine %saccel=kvm:tcg%s " "-name source,debug-threads=on " - "-serial file:%s/src_serial " "-m %s " + "-serial file:%s/src_serial " "%s %s %s %s", machine_type, machine_args, - tmpfs, memory_size, + memory_size, tmpfs, cmd_src, shmem_opts, opts_src, ignore_stderr); g_free(cmd_src); *from = qtest_init(cmd_source); @@ -664,9 +656,10 @@ static int test_migrate_start(QTestState **from, QTestState **to, "-name target,debug-threads=on " "-m %s " "-serial file:%s/dest_serial " + "-incoming %s " "%s %s %s %s", machine_type, machine_args, - tmpfs, memory_size, + memory_size, tmpfs, uri, cmd_dst, shmem_opts, opts_dst, ignore_stderr); g_free(cmd_dst); *to = qtest_init(cmd_target); From patchwork Mon Dec 16 16:27:54 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Paolo Bonzini X-Patchwork-Id: 11294617 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 8FDA5930 for ; Mon, 16 Dec 2019 16:42:11 +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 6503C206EC for ; Mon, 16 Dec 2019 16:42:11 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="Oq0aGq9b" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 6503C206EC Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=redhat.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Received: from localhost ([::1]:56744 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1igtRh-0004yV-Uo for patchwork-qemu-devel@patchwork.kernel.org; Mon, 16 Dec 2019 11:42:09 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:56489) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1igtEy-0004kn-Cb for qemu-devel@nongnu.org; Mon, 16 Dec 2019 11:29:01 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1igtEx-00072W-1R for qemu-devel@nongnu.org; Mon, 16 Dec 2019 11:29:00 -0500 Received: from mail-wm1-x32f.google.com ([2a00:1450:4864:20::32f]:35818) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1igtEw-000716-Qv for qemu-devel@nongnu.org; Mon, 16 Dec 2019 11:28:58 -0500 Received: by mail-wm1-x32f.google.com with SMTP id p17so7413115wmb.0 for ; Mon, 16 Dec 2019 08:28:58 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references; bh=cNBpnObxWBVztSPS/48mA1SEs15cBP9TJArik3nLB+U=; b=Oq0aGq9bW19PtQ1OcuJdaJQlHoYPpS+i3IJ60/IrMscJAHHZBgPPsrwUgFSJMg9OWf Fpk95fhVTZR4rkJYfgmw/N52yTszBpCJ642CEgAtRcrvpaaPpqhnkpfi6vaenHgk2rVS 0NR2zgQZS7xjEB87ty3gYDkNUh6dBg0vDMkbPu8L+rj6Qy2gXw+4xK4DD/Jt74z9Y4x/ tP7OVClOiMdwH3SXdwxaggynI+EqWiRPbmEqLmHYK1+5MY4dZ/PSRQU0PlMqMeiMDMpU 4bPHOnXoBlC4wCArPyI4d5gFUfyU0Z0qyyj0756/HU2kVTcIsFtfMCTUyiD0xXSkd96C /Z4Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references; bh=cNBpnObxWBVztSPS/48mA1SEs15cBP9TJArik3nLB+U=; b=gLBZWFFtXUgSFSJ0eVQihhGS0GWg90qIa0k6IFTlvixU5QLuJtTmmXiqXedM7LQqxB 8yQaDjkfHepHYMPIR3DNZhezBkiF2LF+H+u7FEnoUba9WuOj3tZVJsRdL1s4W1OcN8yX yBOltcy7PolsP0NOLUTGDyKxhtpV66f6u0EbCPVq49FfSn2sGrTBh/yNqIA/8ieyhwrM eysebi1jf0KDdEE3i0UcSbtYn0hGVDV1//bNGBjH9KTtH4kR3Ux9CruFKFIgDmY5iYHL CiUH2BCfkJ6AkI1ri3Vl+uUpEOJFAfKb9wEweuP0bBXLNC/AvynX3l82vLZU8y9wN0P2 rEpQ== X-Gm-Message-State: APjAAAWtWvQPRBwPPUVRNAgDXoxYffBRvfwu8+023Gj0BAcG86DNAPh5 1a4UfnqpZoAwze5afvo/Nwaqy52a X-Google-Smtp-Source: APXvYqy7nobk8PMef4mwNyz7lwt1sP2c6Aa6ZRGWmccFaQLstd5uePvRJU7DnH7NaE56jnKA6JNn1g== X-Received: by 2002:a1c:486:: with SMTP id 128mr32218822wme.163.1576513737600; Mon, 16 Dec 2019 08:28:57 -0800 (PST) Received: from 640k.lan ([93.56.166.5]) by smtp.gmail.com with ESMTPSA id q68sm19962334wme.14.2019.12.16.08.28.56 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 16 Dec 2019 08:28:56 -0800 (PST) From: Paolo Bonzini To: qemu-devel@nongnu.org Subject: [PULL 10/62] migration-test: Rename cmd_src/dst to arch_source/arch_target Date: Mon, 16 Dec 2019 17:27:54 +0100 Message-Id: <1576513726-53700-11-git-send-email-pbonzini@redhat.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1576513726-53700-1-git-send-email-pbonzini@redhat.com> References: <1576513726-53700-1-git-send-email-pbonzini@redhat.com> X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2a00:1450:4864:20::32f 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: Juan Quintela Errors-To: qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Sender: "Qemu-devel" From: Juan Quintela This explains better what they do and avoid confussino with command_src/target. Signed-off-by: Juan Quintela Tested-by: Cornelia Huck #s390x Tested-by: Laurent Vivier --- tests/migration-test.c | 40 +++++++++++++++++++++------------------- 1 file changed, 21 insertions(+), 19 deletions(-) diff --git a/tests/migration-test.c b/tests/migration-test.c index 5ab8cfd..6c7c416 100644 --- a/tests/migration-test.c +++ b/tests/migration-test.c @@ -549,7 +549,7 @@ static int test_migrate_start(QTestState **from, QTestState **to, bool use_shmem, const char *opts_src, const char *opts_dst) { - gchar *cmd_src, *cmd_dst; + gchar *arch_source, *arch_target; gchar *cmd_source, *cmd_target; const gchar *ignore_stderr; char *bootpath = NULL; @@ -579,8 +579,8 @@ static int test_migrate_start(QTestState **from, QTestState **to, machine_type = ""; machine_args = ""; memory_size = "150M"; - cmd_src = g_strdup_printf("-drive file=%s,format=raw", bootpath); - cmd_dst = g_strdup(cmd_src); + arch_source = g_strdup_printf("-drive file=%s,format=raw", bootpath); + arch_target = g_strdup(arch_source); start_address = X86_TEST_MEM_START; end_address = X86_TEST_MEM_END; } else if (g_str_equal(arch, "s390x")) { @@ -588,20 +588,20 @@ static int test_migrate_start(QTestState **from, QTestState **to, machine_type = ""; machine_args = ""; memory_size = "128M"; - cmd_src = g_strdup_printf("-bios %s", bootpath); - cmd_dst = g_strdup(cmd_src); + arch_source = g_strdup_printf("-bios %s", bootpath); + arch_target = g_strdup(arch_source); start_address = S390_TEST_MEM_START; end_address = S390_TEST_MEM_END; } else if (strcmp(arch, "ppc64") == 0) { machine_type = ""; machine_args = ",vsmt=8"; memory_size = "256M"; - cmd_src = g_strdup_printf("-nodefaults " - "-prom-env 'use-nvramrc?=true' -prom-env " - "'nvramrc=hex .\" _\" begin %x %x " - "do i c@ 1 + i c! 1000 +loop .\" B\" 0 " - "until'", end_address, start_address); - cmd_dst = g_strdup(""); + arch_source = g_strdup_printf("-nodefaults " + "-prom-env 'use-nvramrc?=true' -prom-env " + "'nvramrc=hex .\" _\" begin %x %x " + "do i c@ 1 + i c! 1000 +loop .\" B\" 0 " + "until'", end_address, start_address); + arch_target = g_strdup(""); start_address = PPC_TEST_MEM_START; end_address = PPC_TEST_MEM_END; } else if (strcmp(arch, "aarch64") == 0) { @@ -609,10 +609,10 @@ static int test_migrate_start(QTestState **from, QTestState **to, machine_type = "virt,"; machine_args = "gic-version=max"; memory_size = "150M"; - cmd_src = g_strdup_printf("-cpu max " - "-kernel %s", - bootpath); - cmd_dst = g_strdup(cmd_src); + arch_source = g_strdup_printf("-cpu max " + "-kernel %s", + bootpath); + arch_target = g_strdup(arch_source); start_address = ARM_TEST_MEM_START; end_address = ARM_TEST_MEM_END; @@ -647,8 +647,9 @@ static int test_migrate_start(QTestState **from, QTestState **to, "%s %s %s %s", machine_type, machine_args, memory_size, tmpfs, - cmd_src, shmem_opts, opts_src, ignore_stderr); - g_free(cmd_src); + arch_source, shmem_opts, opts_src, + ignore_stderr); + g_free(arch_source); *from = qtest_init(cmd_source); g_free(cmd_source); @@ -660,8 +661,9 @@ static int test_migrate_start(QTestState **from, QTestState **to, "%s %s %s %s", machine_type, machine_args, memory_size, tmpfs, uri, - cmd_dst, shmem_opts, opts_dst, ignore_stderr); - g_free(cmd_dst); + arch_target, shmem_opts, opts_dst, + ignore_stderr); + g_free(arch_target); *to = qtest_init(cmd_target); g_free(cmd_target); From patchwork Mon Dec 16 16:27:55 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Paolo Bonzini X-Patchwork-Id: 11294573 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 0E8CA6C1 for ; Mon, 16 Dec 2019 16:37:35 +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 C6D91206E0 for ; Mon, 16 Dec 2019 16:37:34 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="SkqWDkei" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org C6D91206E0 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=redhat.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Received: from localhost ([::1]:56674 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1igtNF-0006xn-1u for patchwork-qemu-devel@patchwork.kernel.org; Mon, 16 Dec 2019 11:37:33 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:56520) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1igtEz-0004nA-PA for qemu-devel@nongnu.org; Mon, 16 Dec 2019 11:29:03 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1igtEx-00074j-Ut for qemu-devel@nongnu.org; Mon, 16 Dec 2019 11:29:01 -0500 Received: from mail-wm1-x341.google.com ([2a00:1450:4864:20::341]:37905) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1igtEx-00072j-NE for qemu-devel@nongnu.org; Mon, 16 Dec 2019 11:28:59 -0500 Received: by mail-wm1-x341.google.com with SMTP id u2so7395786wmc.3 for ; Mon, 16 Dec 2019 08:28:59 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references; bh=kuFJ06m8230IZLOlFpe0Wx+0CVcGflWlaDOeFRs7UF0=; b=SkqWDkeijfEb6ps7+R8O9MJUMHvRuXde+JS1CH+Z38vUgUfGh3Q/yVqVGQHVNkK5/X +vXyGp6wvfmfkOtcbEaO9d3iQhW6dgMbr6N0yMl66UNcxN9k5ML9ORtB/+viBuFaoHFT Jw4vddOp0vTGnlIaV9V2dojQ76y3xe8BkY6HA2KYE09KOHQ/iI0BKyG8jjZG0RzmoWZ6 KX0jlf0BgPPEL89JOGMaTfq3X+ec0HgLH8Kjt2Qj+HGXbCBFgrQATd8uY7y7beC38U0c pAyXUZIKmwMTmQVPfUW+bCIS0ZRpeY4HXA+4BLn2MvhIljQ09SDE7C3y6XTvGiEdmIGG WtGw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references; bh=kuFJ06m8230IZLOlFpe0Wx+0CVcGflWlaDOeFRs7UF0=; b=UXndmUxvTeqUmbRluvwKecRh4nv/F8oSGa1puPTF8B0GcJSHBb6VrG0lftPNRyoTGG mbJ8UL5U8tlMQBXR5/n32E1zlJzwwWfELcN7oGkcqp15v0JK0G63UZycNzisK8A4dWp/ tuV+3G8H+YYobQ8RWQxwXy1q/J7RDd8ucLbOesO8U5FC+LoTYJzh6YQZGJWvTL0vJ7Yl j90UFdi02XMHgC/45eXa6a9sYeQ9F+LRB4W3pOkruC9KoG5HaoIPRzrt+jMmOBKCoAa2 zLge+mEg+0vguEJUOpmcN2fVpj0wx3q3A/DWfMyIjBLQPp491FX+FfInT74zb1Y0qzM2 Q5YQ== X-Gm-Message-State: APjAAAXkW6IQc+Cqv/79byJUw7VIPI9BRwzKr4qLg73domj3T3+yNtHF O9eQUCUKLo+cOX1cfr0ritgsmFIu X-Google-Smtp-Source: APXvYqzeBVlGS9WBvuFAFrRVpZyofewMDAQtMqDGWPF0zC/XJaHDZAzBhzMlunSh5QCblM37YbfH4Q== X-Received: by 2002:a1c:3c45:: with SMTP id j66mr12982765wma.2.1576513738436; Mon, 16 Dec 2019 08:28:58 -0800 (PST) Received: from 640k.lan ([93.56.166.5]) by smtp.gmail.com with ESMTPSA id q68sm19962334wme.14.2019.12.16.08.28.57 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 16 Dec 2019 08:28:57 -0800 (PST) From: Paolo Bonzini To: qemu-devel@nongnu.org Subject: [PULL 11/62] migration-test: Use a struct for test_migrate_start parameters Date: Mon, 16 Dec 2019 17:27:55 +0100 Message-Id: <1576513726-53700-12-git-send-email-pbonzini@redhat.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1576513726-53700-1-git-send-email-pbonzini@redhat.com> References: <1576513726-53700-1-git-send-email-pbonzini@redhat.com> X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2a00:1450:4864:20::341 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: Juan Quintela Errors-To: qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Sender: "Qemu-devel" From: Juan Quintela It has two bools and two strings, it is very difficult to remember which does what. And it makes very difficult to add new parameters as we need to modify all the callers. Signed-off-by: Juan Quintela Tested-by: Cornelia Huck #s390x Tested-by: Laurent Vivier --- tests/migration-test.c | 118 ++++++++++++++++++++++++++++++++----------------- 1 file changed, 78 insertions(+), 40 deletions(-) diff --git a/tests/migration-test.c b/tests/migration-test.c index 6c7c416..4a19211 100644 --- a/tests/migration-test.c +++ b/tests/migration-test.c @@ -544,10 +544,31 @@ static void migrate_postcopy_start(QTestState *from, QTestState *to) qtest_qmp_eventwait(to, "RESUME"); } +typedef struct { + bool hide_stderr; + bool use_shmem; + char *opts_source; + char *opts_target; +} MigrateStart; + +static MigrateStart *migrate_start_new(void) +{ + MigrateStart *args = g_new0(MigrateStart, 1); + + args->opts_source = g_strdup(""); + args->opts_target = g_strdup(""); + return args; +} + +static void migrate_start_destroy(MigrateStart *args) +{ + g_free(args->opts_source); + g_free(args->opts_target); + g_free(args); +} + static int test_migrate_start(QTestState **from, QTestState **to, - const char *uri, bool hide_stderr, - bool use_shmem, const char *opts_src, - const char *opts_dst) + const char *uri, MigrateStart *args) { gchar *arch_source, *arch_target; gchar *cmd_source, *cmd_target; @@ -560,10 +581,7 @@ static int test_migrate_start(QTestState **from, QTestState **to, const char *machine_args; const char *memory_size; - opts_src = opts_src ? opts_src : ""; - opts_dst = opts_dst ? opts_dst : ""; - - if (use_shmem) { + if (args->use_shmem) { if (!g_file_test("/dev/shm", G_FILE_TEST_IS_DIR)) { g_test_skip("/dev/shm is not supported"); return -1; @@ -623,13 +641,13 @@ static int test_migrate_start(QTestState **from, QTestState **to, g_free(bootpath); - if (hide_stderr) { + if (args->hide_stderr) { ignore_stderr = "2>/dev/null"; } else { ignore_stderr = ""; } - if (use_shmem) { + if (args->use_shmem) { shmem_path = g_strdup_printf("/dev/shm/qemu-%d", getpid()); shmem_opts = g_strdup_printf( "-object memory-backend-file,id=mem0,size=%s" @@ -647,7 +665,7 @@ static int test_migrate_start(QTestState **from, QTestState **to, "%s %s %s %s", machine_type, machine_args, memory_size, tmpfs, - arch_source, shmem_opts, opts_src, + arch_source, shmem_opts, args->opts_source, ignore_stderr); g_free(arch_source); *from = qtest_init(cmd_source); @@ -661,18 +679,19 @@ static int test_migrate_start(QTestState **from, QTestState **to, "%s %s %s %s", machine_type, machine_args, memory_size, tmpfs, uri, - arch_target, shmem_opts, opts_dst, - ignore_stderr); + arch_target, shmem_opts, + args->opts_target, ignore_stderr); g_free(arch_target); *to = qtest_init(cmd_target); g_free(cmd_target); + migrate_start_destroy(args); g_free(shmem_opts); /* * Remove shmem file immediately to avoid memory leak in test failed case. * It's valid becase QEMU has already opened this file */ - if (use_shmem) { + if (args->use_shmem) { unlink(shmem_path); g_free(shmem_path); } @@ -762,13 +781,13 @@ static void test_deprecated(void) } static int migrate_postcopy_prepare(QTestState **from_ptr, - QTestState **to_ptr, - bool hide_error) + QTestState **to_ptr, + MigrateStart *args) { char *uri = g_strdup_printf("unix:%s/migsocket", tmpfs); QTestState *from, *to; - if (test_migrate_start(&from, &to, uri, hide_error, false, NULL, NULL)) { + if (test_migrate_start(&from, &to, uri, args)) { return -1; } @@ -813,9 +832,10 @@ static void migrate_postcopy_complete(QTestState *from, QTestState *to) static void test_postcopy(void) { + MigrateStart *args = migrate_start_new(); QTestState *from, *to; - if (migrate_postcopy_prepare(&from, &to, false)) { + if (migrate_postcopy_prepare(&from, &to, args)) { return; } migrate_postcopy_start(from, to); @@ -824,10 +844,13 @@ static void test_postcopy(void) static void test_postcopy_recovery(void) { + MigrateStart *args = migrate_start_new(); QTestState *from, *to; char *uri; - if (migrate_postcopy_prepare(&from, &to, true)) { + args->hide_stderr = true; + + if (migrate_postcopy_prepare(&from, &to, args)) { return; } @@ -910,9 +933,12 @@ static void wait_for_migration_fail(QTestState *from, bool allow_active) static void test_baddest(void) { + MigrateStart *args = migrate_start_new(); QTestState *from, *to; - if (test_migrate_start(&from, &to, "tcp:0:0", true, false, NULL, NULL)) { + args->hide_stderr = true; + + if (test_migrate_start(&from, &to, "tcp:0:0", args)) { return; } migrate(from, "tcp:0:0", "{}"); @@ -923,9 +949,10 @@ static void test_baddest(void) static void test_precopy_unix(void) { char *uri = g_strdup_printf("unix:%s/migsocket", tmpfs); + MigrateStart *args = migrate_start_new(); QTestState *from, *to; - if (test_migrate_start(&from, &to, uri, false, false, NULL, NULL)) { + if (test_migrate_start(&from, &to, uri, args)) { return; } @@ -1001,9 +1028,10 @@ static void test_ignore_shared(void) static void test_xbzrle(const char *uri) { + MigrateStart *args = migrate_start_new(); QTestState *from, *to; - if (test_migrate_start(&from, &to, uri, false, false, NULL, NULL)) { + if (test_migrate_start(&from, &to, uri, args)) { return; } @@ -1052,11 +1080,11 @@ static void test_xbzrle_unix(void) static void test_precopy_tcp(void) { + MigrateStart *args = migrate_start_new(); char *uri; QTestState *from, *to; - if (test_migrate_start(&from, &to, "tcp:127.0.0.1:0", false, false, - NULL, NULL)) { + if (test_migrate_start(&from, &to, "tcp:127.0.0.1:0", args)) { return; } @@ -1096,13 +1124,14 @@ static void test_precopy_tcp(void) static void test_migrate_fd_proto(void) { + MigrateStart *args = migrate_start_new(); QTestState *from, *to; int ret; int pair[2]; QDict *rsp; const char *error_desc; - if (test_migrate_start(&from, &to, "defer", false, false, NULL, NULL)) { + if (test_migrate_start(&from, &to, "defer", args)) { return; } @@ -1178,15 +1207,12 @@ static void test_migrate_fd_proto(void) test_migrate_end(from, to, true); } -static void do_test_validate_uuid(const char *uuid_arg_src, - const char *uuid_arg_dst, - bool should_fail, bool hide_stderr) +static void do_test_validate_uuid(MigrateStart *args, bool should_fail) { char *uri = g_strdup_printf("unix:%s/migsocket", tmpfs); QTestState *from, *to; - if (test_migrate_start(&from, &to, uri, hide_stderr, false, - uuid_arg_src, uuid_arg_dst)) { + if (test_migrate_start(&from, &to, uri, args)) { return; } @@ -1216,33 +1242,45 @@ static void do_test_validate_uuid(const char *uuid_arg_src, static void test_validate_uuid(void) { - do_test_validate_uuid("-uuid 11111111-1111-1111-1111-111111111111", - "-uuid 11111111-1111-1111-1111-111111111111", - false, false); + MigrateStart *args = migrate_start_new(); + + args->opts_source = g_strdup("-uuid 11111111-1111-1111-1111-111111111111"); + args->opts_target = g_strdup("-uuid 11111111-1111-1111-1111-111111111111"); + do_test_validate_uuid(args, false); } static void test_validate_uuid_error(void) { - do_test_validate_uuid("-uuid 11111111-1111-1111-1111-111111111111", - "-uuid 22222222-2222-2222-2222-222222222222", - true, true); + MigrateStart *args = migrate_start_new(); + + args->opts_source = g_strdup("-uuid 11111111-1111-1111-1111-111111111111"); + args->opts_target = g_strdup("-uuid 22222222-2222-2222-2222-222222222222"); + args->hide_stderr = true; + do_test_validate_uuid(args, true); } static void test_validate_uuid_src_not_set(void) { - do_test_validate_uuid(NULL, "-uuid 11111111-1111-1111-1111-111111111111", - false, true); + MigrateStart *args = migrate_start_new(); + + args->opts_target = g_strdup("-uuid 22222222-2222-2222-2222-222222222222"); + args->hide_stderr = true; + do_test_validate_uuid(args, false); } static void test_validate_uuid_dst_not_set(void) { - do_test_validate_uuid("-uuid 11111111-1111-1111-1111-111111111111", NULL, - false, true); + MigrateStart *args = migrate_start_new(); + + args->opts_source = g_strdup("-uuid 11111111-1111-1111-1111-111111111111"); + args->hide_stderr = true; + do_test_validate_uuid(args, false); } static void test_migrate_auto_converge(void) { char *uri = g_strdup_printf("unix:%s/migsocket", tmpfs); + MigrateStart *args = migrate_start_new(); QTestState *from, *to; int64_t remaining, percentage; @@ -1261,7 +1299,7 @@ static void test_migrate_auto_converge(void) */ const int64_t expected_threshold = max_bandwidth * downtime_limit / 1000; - if (test_migrate_start(&from, &to, uri, false, false, NULL, NULL)) { + if (test_migrate_start(&from, &to, uri, args)) { return; } From patchwork Mon Dec 16 16:27:56 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Paolo Bonzini X-Patchwork-Id: 11294625 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id BDB0C138D for ; Mon, 16 Dec 2019 16:45:02 +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 86C96205ED for ; Mon, 16 Dec 2019 16:45:00 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="scAMYkAd" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 86C96205ED Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=redhat.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Received: from localhost ([::1]:56776 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1igtUQ-00008r-Cw for patchwork-qemu-devel@patchwork.kernel.org; Mon, 16 Dec 2019 11:44:58 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:56526) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1igtF0-0004nW-2f for qemu-devel@nongnu.org; Mon, 16 Dec 2019 11:29:03 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1igtEz-00077m-0P for qemu-devel@nongnu.org; Mon, 16 Dec 2019 11:29:01 -0500 Received: from mail-wm1-x332.google.com ([2a00:1450:4864:20::332]:40442) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1igtEy-00075p-OG for qemu-devel@nongnu.org; Mon, 16 Dec 2019 11:29:00 -0500 Received: by mail-wm1-x332.google.com with SMTP id t14so7384320wmi.5 for ; Mon, 16 Dec 2019 08:29:00 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=aB/U/Tf7guynfrwJbWpfYI+QRcweDccxGqmzLn8iwE8=; b=scAMYkAdJXxiRlfDh0u5udZNzctVpxvA1sYs2ON/nEpP/Ot+1weZ4Ocs53II+ZPGhv yYxtme4eBWPdx8A2MEqBAenJf46C450guJRWXlgaecJ1yb48mvifwFlOpSrop4FbV+a5 Z59/5wx+Yt83c1vhQ8KMC3ZSyQ7YcBr2lD+1H76FUEApSY9eVO14Sp1wtwVmvcK6dcYy pb9Rw0Qcl7CVy9tmgaiWsTYqCjpdrOwovetn1SyOPjly1+LYYbbEcOK7Izv4Ptix4BxK 77WAr5WkCS9DW2/i/RxD25tMuZ4xd5KiqsDnFyZZUKhHy+AaiP5TWCpGrr8JCzaCeAjc Aj3g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:subject:date:message-id :in-reply-to:references:mime-version:content-transfer-encoding; bh=aB/U/Tf7guynfrwJbWpfYI+QRcweDccxGqmzLn8iwE8=; b=O3WPqzxgzxF5gZ5s1iiblnYb21k5wizD7eCv0xKDVsieWcUMSMt8uMzyGw2GxhBfSC Ut5cAKMu91bQV2u8xCw86h6U1tCVE1BCd3jcVpGobyPkmPcNkQwVmwGCo6+riDnio5Ug NYtMRyLjDa7sTZnM9EfEaaFuVtRcvr29eQPVcczNyxw4T+y7UONjHOBMv2qs/6oGxrl6 wd2vCjVReOPUXoH9EeLag5leHm6/d95mrBCcnJH8D4ImZpAQoFvemr2Cnyx0oVp+LXzM Ylc2eE8sX5vyqHOaZUGgWJoJLiMJsqYYUHTOYOKKDsBfnNc7SFSMoIULsi39dTrkmjrT EMvA== X-Gm-Message-State: APjAAAVT3eB+TGwh4VPI2/S3f1zqdbSXLGNUmiG8NFuRC/a/8fHEYxnq 7YPWZl/9mgxlGuSVi/qhUHkop2IT X-Google-Smtp-Source: APXvYqwfzzFLEKUntLhHIG3Slg0P9gtg9WBEpb13U+wqrNUlfBm9KrHSdb5LPHeypPULt6dnO846yQ== X-Received: by 2002:a1c:1f51:: with SMTP id f78mr29872958wmf.60.1576513739538; Mon, 16 Dec 2019 08:28:59 -0800 (PST) Received: from 640k.lan ([93.56.166.5]) by smtp.gmail.com with ESMTPSA id q68sm19962334wme.14.2019.12.16.08.28.58 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 16 Dec 2019 08:28:58 -0800 (PST) From: Paolo Bonzini To: qemu-devel@nongnu.org Subject: [PULL 12/62] memory: do not look at current_machine->accel Date: Mon, 16 Dec 2019 17:27:56 +0100 Message-Id: <1576513726-53700-13-git-send-email-pbonzini@redhat.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1576513726-53700-1-git-send-email-pbonzini@redhat.com> References: <1576513726-53700-1-git-send-email-pbonzini@redhat.com> MIME-Version: 1.0 X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2a00:1450:4864:20::332 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: , Errors-To: qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Sender: "Qemu-devel" "info mtree -f" prints the wrong accelerator name if used with for example "-machine accel=kvm:tcg". The right thing to do is to fetch the name from the AccelClass, which will also work nicely once current_machine->accel stops existing. Tested-by: Thomas Huth Reviewed-by: Marc-André Lureau Signed-off-by: Paolo Bonzini --- memory.c | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/memory.c b/memory.c index 06484c2..6d79cf1 100644 --- a/memory.c +++ b/memory.c @@ -2979,7 +2979,6 @@ struct FlatViewInfo { bool dispatch_tree; bool owner; AccelClass *ac; - const char *ac_name; }; static void mtree_print_flatview(gpointer key, gpointer value, @@ -3049,7 +3048,7 @@ static void mtree_print_flatview(gpointer key, gpointer value, if (fvi->ac->has_memory(current_machine, as, int128_get64(range->addr.start), MR_SIZE(range->addr.size) + 1)) { - qemu_printf(" %s", fvi->ac_name); + qemu_printf(" %s", fvi->ac->name); } } } @@ -3097,8 +3096,6 @@ void mtree_info(bool flatview, bool dispatch_tree, bool owner) if (ac->has_memory) { fvi.ac = ac; - fvi.ac_name = current_machine->accel ? current_machine->accel : - object_class_get_name(OBJECT_CLASS(ac)); } /* Gather all FVs in one table */ From patchwork Mon Dec 16 16:27:57 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Paolo Bonzini X-Patchwork-Id: 11294563 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 51E916C1 for ; Mon, 16 Dec 2019 16:33:10 +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 28597206D7 for ; Mon, 16 Dec 2019 16:33:10 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="L0BClAhC" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 28597206D7 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=redhat.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Received: from localhost ([::1]:56618 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1igtIy-00020I-RV for patchwork-qemu-devel@patchwork.kernel.org; Mon, 16 Dec 2019 11:33:08 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:56547) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1igtF0-0004p4-W9 for qemu-devel@nongnu.org; Mon, 16 Dec 2019 11:29:04 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1igtEz-00079j-Sn for qemu-devel@nongnu.org; Mon, 16 Dec 2019 11:29:02 -0500 Received: from mail-wr1-x443.google.com ([2a00:1450:4864:20::443]:35180) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1igtEz-00077r-MK for qemu-devel@nongnu.org; Mon, 16 Dec 2019 11:29:01 -0500 Received: by mail-wr1-x443.google.com with SMTP id g17so8052716wro.2 for ; Mon, 16 Dec 2019 08:29:01 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=yver+z01Ad2CgxbNm/G/S9DVzSw0YehnxQ3kmcrkoVo=; b=L0BClAhCSyj7NiBVh0sMJtEzUFZK85VVU38/wYVKdDVdhefHQdGIwh4rx0mkP8Z435 YVPr0/E1lSVvG0ITpi4dQ0sklCvSDcEZLGEhxVj2At6co0fWAE1IEBOq819Jy/NhpPc9 d/09MU5QfXvaUcG+Fv+hrrEv1jYHzzJOl4pESWPTgGKejsd5AZYZ+pCJS1GwprghIDIn e8OhJca5F04yHXVOgqci/m2jZvBEg00Noi2MBscFo9UX6cdYmqgGsCurf/wSfFgcI6LE hbNrF9jYz4Txu2GddjtIRRC40SIiv2tMIA4cJnQZsWs3RUvOcEH6vcesthRlqAtFJjIt KqFg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:subject:date:message-id :in-reply-to:references:mime-version:content-transfer-encoding; bh=yver+z01Ad2CgxbNm/G/S9DVzSw0YehnxQ3kmcrkoVo=; b=d79YdxFTFSA09wmmeoFp0Gy9HufjGty77kxAsv4X1ySR2UAaZOdjxtzrHtYazizZm3 F9fVoe6BMlS7UjuIhQVqJpM/OHH+2uBLWJK+KHLYzv+TrfUTH6oNnJfCNor7IMKiusuY PHNSPuVNhwam8cNP13VhdLyiHYYV0UNc05rf8j291kFHbZ7Gm7MysWQosOXphd+0d6fJ /SqW5NaeMe5XUxxs4VCVUGB9sSr/zcS7KaEzT3K2bcgLxhrCNuKp7Xa2H5q3GTE/kLdq DwhqMvLgidQEpyZolh05DObwn9/CA0lIYqjPvsgZ3BeODigB7VnTmmpIjZlSJPLxxINF iMdA== X-Gm-Message-State: APjAAAUXYXZ3VRO+rVqctJp9HM3Wu4Fq758kcGwFF3nFAQ8/1BQgCb7c IYUjKkXLOBbNWwpYT6TyWevG3DRg X-Google-Smtp-Source: APXvYqzMAmaYY5Cenkkd+eTM7OvEIdizsYVw28ZUq6Et4+ethQ/b4Kl8bFhSVSjrxZ6uZzZi89qtlQ== X-Received: by 2002:a5d:6206:: with SMTP id y6mr30349052wru.130.1576513740437; Mon, 16 Dec 2019 08:29:00 -0800 (PST) Received: from 640k.lan ([93.56.166.5]) by smtp.gmail.com with ESMTPSA id q68sm19962334wme.14.2019.12.16.08.28.59 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 16 Dec 2019 08:28:59 -0800 (PST) From: Paolo Bonzini To: qemu-devel@nongnu.org Subject: [PULL 13/62] vl: move icount configuration earlier Date: Mon, 16 Dec 2019 17:27:57 +0100 Message-Id: <1576513726-53700-14-git-send-email-pbonzini@redhat.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1576513726-53700-1-git-send-email-pbonzini@redhat.com> References: <1576513726-53700-1-git-send-email-pbonzini@redhat.com> MIME-Version: 1.0 X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2a00:1450:4864:20::443 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: , Errors-To: qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Sender: "Qemu-devel" Once qemu_tcg_configure is turned into a QOM property setter, it will not be able to set a default value for mttcg_enabled. Setting the default will move to the TCG instance_init function, which currently runs before "-icount" is processed. However, it is harmless to do configure_icount for all accelerators; we will just fail later if a non-TCG accelerator is selected. So do that. Reviewed-by: Marc-André Lureau Signed-off-by: Paolo Bonzini --- vl.c | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/vl.c b/vl.c index c0904b3..60353dc 100644 --- a/vl.c +++ b/vl.c @@ -2825,6 +2825,12 @@ static void user_register_global_props(void) global_init_func, NULL, NULL); } +static int do_configure_icount(void *opaque, QemuOpts *opts, Error **errp) +{ + configure_icount(opts, errp); + return 0; +} + int main(int argc, char **argv, char **envp) { int i; @@ -4142,6 +4148,8 @@ int main(int argc, char **argv, char **envp) * Note: uses machine properties such as kernel-irqchip, must run * after machine_set_property(). */ + qemu_opts_foreach(qemu_find_opts("icount"), + do_configure_icount, NULL, &error_fatal); configure_accelerator(current_machine, argv[0]); /* @@ -4227,13 +4235,9 @@ int main(int argc, char **argv, char **envp) qemu_spice_init(); cpu_ticks_init(); - if (icount_opts) { - if (!tcg_enabled()) { - error_report("-icount is not allowed with hardware virtualization"); - exit(1); - } - configure_icount(icount_opts, &error_abort); - qemu_opts_del(icount_opts); + if (use_icount && !(tcg_enabled() || qtest_enabled())) { + error_report("-icount is not allowed with hardware virtualization"); + exit(1); } if (tcg_enabled()) { From patchwork Mon Dec 16 16:27:58 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Paolo Bonzini X-Patchwork-Id: 11294613 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 924F96C1 for ; Mon, 16 Dec 2019 16:40:18 +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 672C1206E0 for ; Mon, 16 Dec 2019 16:40:18 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="pfgQLdwn" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 672C1206E0 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=redhat.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Received: from localhost ([::1]:56712 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1igtPt-0002Yq-B8 for patchwork-qemu-devel@patchwork.kernel.org; Mon, 16 Dec 2019 11:40:17 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:56592) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1igtF2-0004rS-L0 for qemu-devel@nongnu.org; Mon, 16 Dec 2019 11:29:06 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1igtF0-0007Bq-VL for qemu-devel@nongnu.org; Mon, 16 Dec 2019 11:29:04 -0500 Received: from mail-wr1-x429.google.com ([2a00:1450:4864:20::429]:37488) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1igtF0-0007AC-Nc for qemu-devel@nongnu.org; Mon, 16 Dec 2019 11:29:02 -0500 Received: by mail-wr1-x429.google.com with SMTP id w15so8063669wru.4 for ; Mon, 16 Dec 2019 08:29:02 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:subject:date:message-id:in-reply-to:references; bh=u7/VzsObPJenJKrRI20Is7W11ftIW2OHO+f1XruWVNs=; b=pfgQLdwnFYrkzaiYGxfdRwIky1EAG7S3mqN3ciPQpL+fR/r/ILW/Dw1tG+D+7/VcuQ mvDaD3lBIR6EFTIvlbH4faSSFpbpYIn9UeJGLwxWbPFcGVSc+R0jCLk55q/nwYOr1cOG 8jvbJ5/tl/d8nTH8tUzcNoa13xyELjVH4YSztEmXSDzXV0JuhTQBfjOouWfrS0n2mEvJ Hpp/1A7E/3Hi92RO9eNjsjJPQYufgl6B3z9PSsuYXT0pRLsoVEqkFGgFONLjI0hsd+WH m0SP1hhDcVJqbEHMYa2s0tY98cLdthRLuwTrLpd/63No/J/Wp6ZpQlR8pkBsJktPX+u0 nwxA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:subject:date:message-id :in-reply-to:references; bh=u7/VzsObPJenJKrRI20Is7W11ftIW2OHO+f1XruWVNs=; b=ZEQV5kJT8fWAsmfmg6qVz6SWX6AHge+oZ9h7XaotSc5MOuBu8Tl9zG+h4zTgeJ+Ako S3bneqmlFz97ANvdM6CDPovFLWwp8aHTCd8alYEQv/CN51a87hx/+mNoOJBnMBM42Itz b7v6MNFgBqcJZs5rbnn/pZHSmFz3BoVaPwPKPRKANSteZLvqVV/eA+WjLZO3gTmItrSr yj8VPY9Tk6D6TdIrU6tZfroiXrmtLWPI1jMd7duubzqfNIZ/4quvXi3IsIX48qzQ5O0z +vR2rizz3fiyV9m/3BqElZrs6iKVVYtghWpe4xHqA1w68zfJkfbGTcm7hmDqqccPQv2b xnDg== X-Gm-Message-State: APjAAAWjTX75jsQb76Fw1PvX3Jd1IoX9CfqEirWFTnC/+hyrMsyVHUTP DMdr82yhdHaFJ4AFe6NXR28FMGjW X-Google-Smtp-Source: APXvYqzzFVJd9gvjEZgK1WF8+IDkz7bVJypw5mk5AeFu/AAhw2KXh0D2O6/c5DgeqYzMFEn3rFVBQQ== X-Received: by 2002:a5d:4c8c:: with SMTP id z12mr30893270wrs.222.1576513741413; Mon, 16 Dec 2019 08:29:01 -0800 (PST) Received: from 640k.lan ([93.56.166.5]) by smtp.gmail.com with ESMTPSA id q68sm19962334wme.14.2019.12.16.08.29.00 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 16 Dec 2019 08:29:00 -0800 (PST) From: Paolo Bonzini To: qemu-devel@nongnu.org Subject: [PULL 14/62] tcg: move qemu_tcg_configure to accel/tcg/tcg-all.c Date: Mon, 16 Dec 2019 17:27:58 +0100 Message-Id: <1576513726-53700-15-git-send-email-pbonzini@redhat.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1576513726-53700-1-git-send-email-pbonzini@redhat.com> References: <1576513726-53700-1-git-send-email-pbonzini@redhat.com> X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2a00:1450:4864:20::429 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: , Errors-To: qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Sender: "Qemu-devel" Move everything related to mttcg_enabled in accel/tcg/tcg-all.c, which will make even more sense when "thread" becomes a QOM property. For now, initializing mttcg_enabled in the instance_init function prepares for the next patch, which will only invoke qemu_tcg_configure when the command line includes a -accel option. Signed-off-by: Paolo Bonzini --- accel/tcg/tcg-all.c | 83 +++++++++++++++++++++++++++++++++++++++++++++++++++++ cpus.c | 72 ---------------------------------------------- 2 files changed, 83 insertions(+), 72 deletions(-) diff --git a/accel/tcg/tcg-all.c b/accel/tcg/tcg-all.c index c59d5b0..6b000f0 100644 --- a/accel/tcg/tcg-all.c +++ b/accel/tcg/tcg-all.c @@ -30,6 +30,11 @@ #include "cpu.h" #include "sysemu/cpus.h" #include "qemu/main-loop.h" +#include "tcg/tcg.h" +#include "include/qapi/error.h" +#include "include/qemu/error-report.h" +#include "include/hw/boards.h" +#include "qemu/option.h" unsigned long tcg_tb_size; @@ -58,6 +63,53 @@ static void tcg_handle_interrupt(CPUState *cpu, int mask) } } +/* + * We default to false if we know other options have been enabled + * which are currently incompatible with MTTCG. Otherwise when each + * guest (target) has been updated to support: + * - atomic instructions + * - memory ordering primitives (barriers) + * they can set the appropriate CONFIG flags in ${target}-softmmu.mak + * + * Once a guest architecture has been converted to the new primitives + * there are two remaining limitations to check. + * + * - The guest can't be oversized (e.g. 64 bit guest on 32 bit host) + * - The host must have a stronger memory order than the guest + * + * It may be possible in future to support strong guests on weak hosts + * but that will require tagging all load/stores in a guest with their + * implicit memory order requirements which would likely slow things + * down a lot. + */ + +static bool check_tcg_memory_orders_compatible(void) +{ +#if defined(TCG_GUEST_DEFAULT_MO) && defined(TCG_TARGET_DEFAULT_MO) + return (TCG_GUEST_DEFAULT_MO & ~TCG_TARGET_DEFAULT_MO) == 0; +#else + return false; +#endif +} + +static bool default_mttcg_enabled(void) +{ + if (use_icount || TCG_OVERSIZED_GUEST) { + return false; + } else { +#ifdef TARGET_SUPPORTS_MTTCG + return check_tcg_memory_orders_compatible(); +#else + return false; +#endif + } +} + +static void tcg_accel_instance_init(Object *obj) +{ + mttcg_enabled = default_mttcg_enabled(); +} + static int tcg_init(MachineState *ms) { tcg_exec_init(tcg_tb_size * 1024 * 1024); @@ -65,6 +117,36 @@ static int tcg_init(MachineState *ms) return 0; } +void qemu_tcg_configure(QemuOpts *opts, Error **errp) +{ + const char *t = qemu_opt_get(opts, "thread"); + if (!t) { + return; + } + if (strcmp(t, "multi") == 0) { + if (TCG_OVERSIZED_GUEST) { + error_setg(errp, "No MTTCG when guest word size > hosts"); + } else if (use_icount) { + error_setg(errp, "No MTTCG when icount is enabled"); + } else { +#ifndef TARGET_SUPPORTS_MTTCG + warn_report("Guest not yet converted to MTTCG - " + "you may get unexpected results"); +#endif + if (!check_tcg_memory_orders_compatible()) { + warn_report("Guest expects a stronger memory ordering " + "than the host provides"); + error_printf("This may cause strange/hard to debug errors\n"); + } + mttcg_enabled = true; + } + } else if (strcmp(t, "single") == 0) { + mttcg_enabled = false; + } else { + error_setg(errp, "Invalid 'thread' setting %s", t); + } +} + static void tcg_accel_class_init(ObjectClass *oc, void *data) { AccelClass *ac = ACCEL_CLASS(oc); @@ -78,6 +160,7 @@ static void tcg_accel_class_init(ObjectClass *oc, void *data) static const TypeInfo tcg_accel_type = { .name = TYPE_TCG_ACCEL, .parent = TYPE_ACCEL, + .instance_init = tcg_accel_instance_init, .class_init = tcg_accel_class_init, }; diff --git a/cpus.c b/cpus.c index 63bda15..b472378 100644 --- a/cpus.c +++ b/cpus.c @@ -166,78 +166,6 @@ typedef struct TimersState { static TimersState timers_state; bool mttcg_enabled; -/* - * We default to false if we know other options have been enabled - * which are currently incompatible with MTTCG. Otherwise when each - * guest (target) has been updated to support: - * - atomic instructions - * - memory ordering primitives (barriers) - * they can set the appropriate CONFIG flags in ${target}-softmmu.mak - * - * Once a guest architecture has been converted to the new primitives - * there are two remaining limitations to check. - * - * - The guest can't be oversized (e.g. 64 bit guest on 32 bit host) - * - The host must have a stronger memory order than the guest - * - * It may be possible in future to support strong guests on weak hosts - * but that will require tagging all load/stores in a guest with their - * implicit memory order requirements which would likely slow things - * down a lot. - */ - -static bool check_tcg_memory_orders_compatible(void) -{ -#if defined(TCG_GUEST_DEFAULT_MO) && defined(TCG_TARGET_DEFAULT_MO) - return (TCG_GUEST_DEFAULT_MO & ~TCG_TARGET_DEFAULT_MO) == 0; -#else - return false; -#endif -} - -static bool default_mttcg_enabled(void) -{ - if (use_icount || TCG_OVERSIZED_GUEST) { - return false; - } else { -#ifdef TARGET_SUPPORTS_MTTCG - return check_tcg_memory_orders_compatible(); -#else - return false; -#endif - } -} - -void qemu_tcg_configure(QemuOpts *opts, Error **errp) -{ - const char *t = qemu_opt_get(opts, "thread"); - if (t) { - if (strcmp(t, "multi") == 0) { - if (TCG_OVERSIZED_GUEST) { - error_setg(errp, "No MTTCG when guest word size > hosts"); - } else if (use_icount) { - error_setg(errp, "No MTTCG when icount is enabled"); - } else { -#ifndef TARGET_SUPPORTS_MTTCG - warn_report("Guest not yet converted to MTTCG - " - "you may get unexpected results"); -#endif - if (!check_tcg_memory_orders_compatible()) { - warn_report("Guest expects a stronger memory ordering " - "than the host provides"); - error_printf("This may cause strange/hard to debug errors\n"); - } - mttcg_enabled = true; - } - } else if (strcmp(t, "single") == 0) { - mttcg_enabled = false; - } else { - error_setg(errp, "Invalid 'thread' setting %s", t); - } - } else { - mttcg_enabled = default_mttcg_enabled(); - } -} /* The current number of executed instructions is based on what we * originally budgeted minus the current state of the decrementing From patchwork Mon Dec 16 16:27:59 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Paolo Bonzini X-Patchwork-Id: 11294633 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id EB8BA138D for ; Mon, 16 Dec 2019 16:48:15 +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 C0F34206EC for ; Mon, 16 Dec 2019 16:48:15 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="psRbTFj9" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org C0F34206EC Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=redhat.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Received: from localhost ([::1]:56820 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1igtXa-0003w6-Bx for patchwork-qemu-devel@patchwork.kernel.org; Mon, 16 Dec 2019 11:48:14 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:56599) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1igtF2-0004rs-Pr for qemu-devel@nongnu.org; Mon, 16 Dec 2019 11:29:05 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1igtF1-0007DK-Nx for qemu-devel@nongnu.org; Mon, 16 Dec 2019 11:29:04 -0500 Received: from mail-wm1-x343.google.com ([2a00:1450:4864:20::343]:36834) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1igtF1-0007Bl-Gz for qemu-devel@nongnu.org; Mon, 16 Dec 2019 11:29:03 -0500 Received: by mail-wm1-x343.google.com with SMTP id p17so7400379wma.1 for ; Mon, 16 Dec 2019 08:29:03 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:subject:date:message-id:in-reply-to:references; bh=tgCWtVszcmkUTZes5hNTdRfGQJONI7o50A2SQs9WeBs=; b=psRbTFj90D0xFF6yfGLiDV6LIbtQ89yNB8aIJ/NLNfnh84Kp0ZDF3GIKruJvO63Xrl +t7i95trFJHJ0R6cHLhq/RSSSGoCckhw7be40I3RjQ+1XGe0y9uXgX8nAk5I8pdjrxEr f1lY5DVw526wErplO5m3JQF+6iJSsCsgnmC3ls9/DA8ja+QV8cH3Olq5j+tSiniZqqJ/ mVlHvqkaXIdfWTm2CA2oyzT9+xNXx5fuHP46R0j1bCpQ4PThOwllCzBlO1M2BG0JH7zz BR3qRBRJ0DXf8k9TxSWaRAqjxyh/Jy4Qc9JO1v8DDjpZsKj2SHdBQLQWtigMTOC5rxuN 1JHg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:subject:date:message-id :in-reply-to:references; bh=tgCWtVszcmkUTZes5hNTdRfGQJONI7o50A2SQs9WeBs=; b=MVLfaA2Slkjtz1BeD92xcApu/O9/K3WJkSAOV+jIaS9WcpDUVWbBJPaE73mZdTrXNq j4qJmul7uXYrPia7sIIaAR7gdV1/A2pcXkGmXsv6E5F/M7u5Xxsj2eGUAX2Fl+ZRCi3V fc8VgGflP3fWFgNqP2eKSybV0Bf4aG/Ho0DY6U0OLrhpsIXeNLsQ2CF5EpVtsn7eMUKz tX1BdJ0q4kdccOIcVPKIbqWpQ4C9JwsfkMA/6KzEz8mbv/GH1PmpLUV+o/HXalAJSsUx maaI/TNb46Iiau319dyIatqQ8wNrPBz6yVe1KOQOvMFh+8USjzm1iLdiWK1w0KyBnNJ2 eBtw== X-Gm-Message-State: APjAAAX/ps+fOt1duuu3WbVEO3mGj0g/T/y5SSo4eY82ofBE77OpjZQO UtNcuaud/ODB1WQotkurGR1lN4E2 X-Google-Smtp-Source: APXvYqwWx/TtM87dPnDtCmP+sWuQo8V+aLJKSh+Gsc0UZH+yB5MmAsYn2xgFoY6TZ+b4MBl2JmmSfg== X-Received: by 2002:a7b:c38c:: with SMTP id s12mr31376999wmj.96.1576513742303; Mon, 16 Dec 2019 08:29:02 -0800 (PST) Received: from 640k.lan ([93.56.166.5]) by smtp.gmail.com with ESMTPSA id q68sm19962334wme.14.2019.12.16.08.29.01 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 16 Dec 2019 08:29:01 -0800 (PST) From: Paolo Bonzini To: qemu-devel@nongnu.org Subject: [PULL 15/62] vl: extract accelerator option processing to a separate function Date: Mon, 16 Dec 2019 17:27:59 +0100 Message-Id: <1576513726-53700-16-git-send-email-pbonzini@redhat.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1576513726-53700-1-git-send-email-pbonzini@redhat.com> References: <1576513726-53700-1-git-send-email-pbonzini@redhat.com> X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2a00:1450:4864:20::343 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: , Errors-To: qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Sender: "Qemu-devel" As a first step towards supporting multiple "-accel" options, push the late processing of -icount and -accel into a new function, and use qemu_opts_foreach to retrieve -accel options instead of stashing them into globals. Signed-off-by: Paolo Bonzini --- vl.c | 28 ++++++++++++++++++++-------- 1 file changed, 20 insertions(+), 8 deletions(-) diff --git a/vl.c b/vl.c index 60353dc..6e454a0 100644 --- a/vl.c +++ b/vl.c @@ -2831,6 +2831,25 @@ static int do_configure_icount(void *opaque, QemuOpts *opts, Error **errp) return 0; } +static int do_configure_accelerator(void *opaque, QemuOpts *opts, Error **errp) +{ + if (tcg_enabled()) { + qemu_tcg_configure(opts, &error_fatal); + } + return 0; +} + +static void configure_accelerators(void) +{ + qemu_opts_foreach(qemu_find_opts("accel"), + do_configure_accelerator, NULL, &error_fatal); + + if (use_icount && !(tcg_enabled() || qtest_enabled())) { + error_report("-icount is not allowed with hardware virtualization"); + exit(1); + } +} + int main(int argc, char **argv, char **envp) { int i; @@ -4235,14 +4254,7 @@ int main(int argc, char **argv, char **envp) qemu_spice_init(); cpu_ticks_init(); - if (use_icount && !(tcg_enabled() || qtest_enabled())) { - error_report("-icount is not allowed with hardware virtualization"); - exit(1); - } - - if (tcg_enabled()) { - qemu_tcg_configure(accel_opts, &error_fatal); - } + configure_accelerators(); if (default_net) { QemuOptsList *net = qemu_find_opts("net"); From patchwork Mon Dec 16 16:28:00 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Paolo Bonzini X-Patchwork-Id: 11294621 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 04BC8930 for ; Mon, 16 Dec 2019 16:42:57 +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 CE0A6206E0 for ; Mon, 16 Dec 2019 16:42:56 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="naRdg8t1" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org CE0A6206E0 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=redhat.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Received: from localhost ([::1]:56748 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1igtSR-0006Jo-KM for patchwork-qemu-devel@patchwork.kernel.org; Mon, 16 Dec 2019 11:42:55 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:56641) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1igtF4-0004v3-UG for qemu-devel@nongnu.org; Mon, 16 Dec 2019 11:29:08 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1igtF3-0007HZ-BL for qemu-devel@nongnu.org; Mon, 16 Dec 2019 11:29:06 -0500 Received: from mail-wm1-x32f.google.com ([2a00:1450:4864:20::32f]:51968) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1igtF3-0007F3-3p for qemu-devel@nongnu.org; Mon, 16 Dec 2019 11:29:05 -0500 Received: by mail-wm1-x32f.google.com with SMTP id d73so7440962wmd.1 for ; Mon, 16 Dec 2019 08:29:05 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=/Fn/zzlT03nOmdiYOhDzmLdgNJP3vAWSij9EwHSCsuo=; b=naRdg8t1jrPnMawR0oslRcVD9W4oxD+k+EzyckXp2+BPC9qQTFvKwLvS6fwh9RDQid sovQfgGdgd2BHSBZ7c9ElMnDEfQiovwSSSESBQftIvU06e/qBOb7fIHgDjxGmHnw0lme 00YKwGpEXuPoV7IojlWMMa+GjtneynRVEQYEIwDvBS5TVqGoclmX08Bmp4MzQz7954Hd UGqHTha+dnt2r/EgCahEYZVyaiGXnq1PJMuUvedAJrSjajFVGeO1529a1rU+qpmju8J1 zepbc8U/XN4ltukEM7tpUZrHxnGrMIscjNCJ+kHKp8kVCOThjI8WZddo8G683SY2RHBB +hTQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:subject:date:message-id :in-reply-to:references:mime-version:content-transfer-encoding; bh=/Fn/zzlT03nOmdiYOhDzmLdgNJP3vAWSij9EwHSCsuo=; b=ISu5SSZELqKKJz4WgnI/oOupuwCUviN0z/LQQNQI0Zeeo2M28RU6ifhhHj1FicKAqn vpcXKMl7AV/ocJ4TKMzmgzbATpnPKo0ojYhZ2vdmksAw3mKxg9cnue1zNV9L+vkVhnfL UpsDK4T2528V6AjdPkit6zqrwJ9kkXKigcOIVMLBtQivnBMdTasoztHlipRvvto8+xre pd/Ag+rkRlPJnw2SYiFym3+yP1eit7rY+S2vbPaGhxBB7VnASj7sJcrq7H5EYQzd36TN Th45IFkLVn4DW1qGoJfH7rrRUX2BpvarjeggWJbmHLfQLr3/ThAhakattzwbAGXiNxdr 6k+w== X-Gm-Message-State: APjAAAXJNm1wNG2gkezHiiDchyDqK9ytqUX51OoAndsoLtFdlazCxNt+ XF5bz0X3VoJB8t83m5I3MQ5qvmuh X-Google-Smtp-Source: APXvYqxB84VqkxAMEGgHstnt9oZEITxxkRbWT1TUKAccQ6rxHxtMRoSmCe0q/nbRb7jADwgLkFZLMw== X-Received: by 2002:a7b:c10f:: with SMTP id w15mr21464955wmi.69.1576513743262; Mon, 16 Dec 2019 08:29:03 -0800 (PST) Received: from 640k.lan ([93.56.166.5]) by smtp.gmail.com with ESMTPSA id q68sm19962334wme.14.2019.12.16.08.29.02 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 16 Dec 2019 08:29:02 -0800 (PST) From: Paolo Bonzini To: qemu-devel@nongnu.org Subject: [PULL 16/62] vl: merge -accel processing into configure_accelerators Date: Mon, 16 Dec 2019 17:28:00 +0100 Message-Id: <1576513726-53700-17-git-send-email-pbonzini@redhat.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1576513726-53700-1-git-send-email-pbonzini@redhat.com> References: <1576513726-53700-1-git-send-email-pbonzini@redhat.com> MIME-Version: 1.0 X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2a00:1450:4864:20::32f 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: , Errors-To: qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Sender: "Qemu-devel" The next step is to move the parsing of "-machine accel=..." into vl.c, unifying it with the configure_accelerators() function that has just been introduced. This way, we will be able to desugar it into multiple "-accel" options, without polluting accel/accel.c. The CONFIG_TCG and CONFIG_KVM symbols are not available in vl.c, but we can use accel_find instead to find their value at runtime. Once we know that the binary has one of TCG or KVM, the default accelerator can be expressed simply as "tcg:kvm", because TCG never fails to initialize. Reviewed-by: Marc-André Lureau Signed-off-by: Paolo Bonzini --- accel/accel.c | 69 ++------------------------------------------------ include/sysemu/accel.h | 4 ++- vl.c | 64 ++++++++++++++++++++++++++++++++++++++++++---- 3 files changed, 64 insertions(+), 73 deletions(-) diff --git a/accel/accel.c b/accel/accel.c index 5fa3171..60c3827 100644 --- a/accel/accel.c +++ b/accel/accel.c @@ -28,13 +28,7 @@ #include "hw/boards.h" #include "sysemu/arch_init.h" #include "sysemu/sysemu.h" -#include "sysemu/kvm.h" -#include "sysemu/qtest.h" -#include "hw/xen/xen.h" #include "qom/object.h" -#include "qemu/error-report.h" -#include "qemu/option.h" -#include "qapi/error.h" static const TypeInfo accel_type = { .name = TYPE_ACCEL, @@ -44,7 +38,7 @@ static const TypeInfo accel_type = { }; /* Lookup AccelClass from opt_name. Returns NULL if not found */ -static AccelClass *accel_find(const char *opt_name) +AccelClass *accel_find(const char *opt_name) { char *class_name = g_strdup_printf(ACCEL_CLASS_NAME("%s"), opt_name); AccelClass *ac = ACCEL_CLASS(object_class_by_name(class_name)); @@ -52,7 +46,7 @@ static AccelClass *accel_find(const char *opt_name) return ac; } -static int accel_init_machine(AccelClass *acc, MachineState *ms) +int accel_init_machine(AccelClass *acc, MachineState *ms) { ObjectClass *oc = OBJECT_CLASS(acc); const char *cname = object_class_get_name(oc); @@ -71,65 +65,6 @@ static int accel_init_machine(AccelClass *acc, MachineState *ms) return ret; } -void configure_accelerator(MachineState *ms, const char *progname) -{ - const char *accel; - char **accel_list, **tmp; - int ret; - bool accel_initialised = false; - bool init_failed = false; - AccelClass *acc = NULL; - - accel = qemu_opt_get(qemu_get_machine_opts(), "accel"); - if (accel == NULL) { - /* Select the default accelerator */ - int pnlen = strlen(progname); - if (pnlen >= 3 && g_str_equal(&progname[pnlen - 3], "kvm")) { - /* If the program name ends with "kvm", we prefer KVM */ - accel = "kvm:tcg"; - } else { -#if defined(CONFIG_TCG) - accel = "tcg"; -#elif defined(CONFIG_KVM) - accel = "kvm"; -#else - error_report("No accelerator selected and" - " no default accelerator available"); - exit(1); -#endif - } - } - - accel_list = g_strsplit(accel, ":", 0); - - for (tmp = accel_list; !accel_initialised && tmp && *tmp; tmp++) { - acc = accel_find(*tmp); - if (!acc) { - continue; - } - ret = accel_init_machine(acc, ms); - if (ret < 0) { - init_failed = true; - error_report("failed to initialize %s: %s", - acc->name, strerror(-ret)); - } else { - accel_initialised = true; - } - } - g_strfreev(accel_list); - - if (!accel_initialised) { - if (!init_failed) { - error_report("-machine accel=%s: No accelerator found", accel); - } - exit(1); - } - - if (init_failed) { - error_report("Back to %s accelerator", acc->name); - } -} - void accel_setup_post(MachineState *ms) { AccelState *accel = ms->accelerator; diff --git a/include/sysemu/accel.h b/include/sysemu/accel.h index 8eb60b8..90b6213 100644 --- a/include/sysemu/accel.h +++ b/include/sysemu/accel.h @@ -66,7 +66,9 @@ typedef struct AccelClass { extern unsigned long tcg_tb_size; -void configure_accelerator(MachineState *ms, const char *progname); +AccelClass *accel_find(const char *opt_name); +int accel_init_machine(AccelClass *acc, MachineState *ms); + /* Called just before os_setup_post (ie just before drop OS privs) */ void accel_setup_post(MachineState *ms); diff --git a/vl.c b/vl.c index 6e454a0..14c78bc 100644 --- a/vl.c +++ b/vl.c @@ -2839,8 +2839,65 @@ static int do_configure_accelerator(void *opaque, QemuOpts *opts, Error **errp) return 0; } -static void configure_accelerators(void) +static void configure_accelerators(const char *progname) { + const char *accel; + char **accel_list, **tmp; + int ret; + bool accel_initialised = false; + bool init_failed = false; + AccelClass *acc = NULL; + + qemu_opts_foreach(qemu_find_opts("icount"), + do_configure_icount, NULL, &error_fatal); + + accel = qemu_opt_get(qemu_get_machine_opts(), "accel"); + if (accel == NULL) { + /* Select the default accelerator */ + if (!accel_find("tcg") && !accel_find("kvm")) { + error_report("No accelerator selected and" + " no default accelerator available"); + exit(1); + } else { + int pnlen = strlen(progname); + if (pnlen >= 3 && g_str_equal(&progname[pnlen - 3], "kvm")) { + /* If the program name ends with "kvm", we prefer KVM */ + accel = "kvm:tcg"; + } else { + accel = "tcg:kvm"; + } + } + } + + accel_list = g_strsplit(accel, ":", 0); + + for (tmp = accel_list; !accel_initialised && tmp && *tmp; tmp++) { + acc = accel_find(*tmp); + if (!acc) { + continue; + } + ret = accel_init_machine(acc, current_machine); + if (ret < 0) { + init_failed = true; + error_report("failed to initialize %s: %s", + acc->name, strerror(-ret)); + } else { + accel_initialised = true; + } + } + g_strfreev(accel_list); + + if (!accel_initialised) { + if (!init_failed) { + error_report("-machine accel=%s: No accelerator found", accel); + } + exit(1); + } + + if (init_failed) { + error_report("Back to %s accelerator", acc->name); + } + qemu_opts_foreach(qemu_find_opts("accel"), do_configure_accelerator, NULL, &error_fatal); @@ -4167,9 +4224,7 @@ int main(int argc, char **argv, char **envp) * Note: uses machine properties such as kernel-irqchip, must run * after machine_set_property(). */ - qemu_opts_foreach(qemu_find_opts("icount"), - do_configure_icount, NULL, &error_fatal); - configure_accelerator(current_machine, argv[0]); + configure_accelerators(argv[0]); /* * Beware, QOM objects created before this point miss global and @@ -4254,7 +4309,6 @@ int main(int argc, char **argv, char **envp) qemu_spice_init(); cpu_ticks_init(); - configure_accelerators(); if (default_net) { QemuOptsList *net = qemu_find_opts("net"); From patchwork Mon Dec 16 16:28:01 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Paolo Bonzini X-Patchwork-Id: 11294611 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id D2B671593 for ; Mon, 16 Dec 2019 16:39:32 +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 A868A206E0 for ; Mon, 16 Dec 2019 16:39:32 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="AkFijDCa" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org A868A206E0 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=redhat.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Received: from localhost ([::1]:56702 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1igtP9-0001E2-7D for patchwork-qemu-devel@patchwork.kernel.org; Mon, 16 Dec 2019 11:39:31 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:56639) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1igtF4-0004uc-LF for qemu-devel@nongnu.org; Mon, 16 Dec 2019 11:29:07 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1igtF3-0007Hz-JT for qemu-devel@nongnu.org; Mon, 16 Dec 2019 11:29:06 -0500 Received: from mail-wm1-x32b.google.com ([2a00:1450:4864:20::32b]:37138) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1igtF3-0007G8-DO for qemu-devel@nongnu.org; Mon, 16 Dec 2019 11:29:05 -0500 Received: by mail-wm1-x32b.google.com with SMTP id f129so7407976wmf.2 for ; Mon, 16 Dec 2019 08:29:05 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:subject:date:message-id:in-reply-to:references; bh=VmTQcO7MS7thh5/mwSJ+9wNSUM+noesb+aFJvdPNQwo=; b=AkFijDCaa/Q26zrXhS21VfPc6nNLDsZotA24/i1fiF28r2R1//Mtpw2rfLsGle3PZR NG9E6rBdwRrzesfuznQdCJIKZz0/uA82vO+gljUs+NyZEO0OByhhRxK449oB0Sl/BexM Gt0jL8GpDf0uRYV7MulVZMSktS1M8dJpqLGBM3BsZco8muwQz2SVJsi0zSO0rkt0jEDp xTMmHbGUkVs9BUFEM5yG8RnxbgHvOr9WIlwUwr6AFRuCYHxi7N+hjYzO6DI7ZP877S0/ gig1SRDAiW6fXgpykDIr1ASfeVIN5P3bW3R1KeAZmWelbwsCTAYwkM4aGenQv909EE7D xxfQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:subject:date:message-id :in-reply-to:references; bh=VmTQcO7MS7thh5/mwSJ+9wNSUM+noesb+aFJvdPNQwo=; b=rSbEedW+eLPpTRUNTka05UkNuBt26HU4GOjD+iGpoAvBQ2fzQS1pgI6VYb+bUBVtSV HDFr74m5eQV6KxBEqInf5PnvHyQ392ri/daE1CmBK4BWe2egJJZecAxXB8BU9hsCH4xg yoBfeqls5dA3zOiZZe5kBMXNkIAumDiyn74NIjtYQ3kpIPf1e+G1uBBOmPylhilRKNIv pAMsMVDQKvPdsRIGKC1GPwjE6dGu/7hxJniBhvfdUpy1D1ymOFkQtzbqNBkBo0Tjl8uN IOlpj/03LaxbyT4+xTWQdXx37GbPNoz266fUx14xvB7FXY+edSkgZ7Cvfz/UQpjgjcVh aRvw== X-Gm-Message-State: APjAAAWXRKEiHiJEPp73nb9E9GTi0H1eFaQgVvDMFE86vw03QrZ1UlEM xX0I+HfsRn2zu6MTtJeYI7eDEa0/ X-Google-Smtp-Source: APXvYqw+1A+gX82rQSgp+AT2jtknR7jP4WTq1iwvUb0btvaNXdxpc0X4G8QbwvtY2P6nJMIFeaC49A== X-Received: by 2002:a7b:c183:: with SMTP id y3mr5083413wmi.45.1576513744041; Mon, 16 Dec 2019 08:29:04 -0800 (PST) Received: from 640k.lan ([93.56.166.5]) by smtp.gmail.com with ESMTPSA id q68sm19962334wme.14.2019.12.16.08.29.03 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 16 Dec 2019 08:29:03 -0800 (PST) From: Paolo Bonzini To: qemu-devel@nongnu.org Subject: [PULL 17/62] accel: compile accel/accel.c just once Date: Mon, 16 Dec 2019 17:28:01 +0100 Message-Id: <1576513726-53700-18-git-send-email-pbonzini@redhat.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1576513726-53700-1-git-send-email-pbonzini@redhat.com> References: <1576513726-53700-1-git-send-email-pbonzini@redhat.com> X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2a00:1450:4864:20::32b 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: , Errors-To: qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Sender: "Qemu-devel" Now that accel/accel.c does not use CONFIG_TCG or CONFIG_KVM anymore, it need not be compiled once for every softmmu target. Signed-off-by: Paolo Bonzini --- Makefile.objs | 1 + accel/Makefile.objs | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/Makefile.objs b/Makefile.objs index 11ba1a3..b6fcbac 100644 --- a/Makefile.objs +++ b/Makefile.objs @@ -55,6 +55,7 @@ common-obj-$(CONFIG_POSIX) += os-posix.o common-obj-$(CONFIG_LINUX) += fsdev/ +common-obj-y += accel/ common-obj-y += migration/ common-obj-y += audio/ diff --git a/accel/Makefile.objs b/accel/Makefile.objs index 8b498d3..17e5ac6 100644 --- a/accel/Makefile.objs +++ b/accel/Makefile.objs @@ -1,4 +1,4 @@ -obj-$(CONFIG_SOFTMMU) += accel.o +common-obj-$(CONFIG_SOFTMMU) += accel.o obj-$(call land,$(CONFIG_SOFTMMU),$(CONFIG_POSIX)) += qtest.o obj-$(CONFIG_KVM) += kvm/ obj-$(CONFIG_TCG) += tcg/ From patchwork Mon Dec 16 16:28:02 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Paolo Bonzini X-Patchwork-Id: 11294575 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 1F0326C1 for ; Mon, 16 Dec 2019 16:37:47 +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 E97FA206E0 for ; Mon, 16 Dec 2019 16:37:46 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="LBGyytqP" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org E97FA206E0 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=redhat.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Received: from localhost ([::1]:56676 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1igtNN-00075h-MN for patchwork-qemu-devel@patchwork.kernel.org; Mon, 16 Dec 2019 11:37:44 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:56670) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1igtF6-0004xO-Fe for qemu-devel@nongnu.org; Mon, 16 Dec 2019 11:29:09 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1igtF5-0007LU-CF for qemu-devel@nongnu.org; Mon, 16 Dec 2019 11:29:08 -0500 Received: from mail-wr1-x432.google.com ([2a00:1450:4864:20::432]:43815) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1igtF5-0007JX-5c for qemu-devel@nongnu.org; Mon, 16 Dec 2019 11:29:07 -0500 Received: by mail-wr1-x432.google.com with SMTP id d16so8035923wre.10 for ; Mon, 16 Dec 2019 08:29:07 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:subject:date:message-id:in-reply-to:references; bh=YxoUvt3Ps00ZPMRYsL2yZ0hkryLbuyO6moys9UaojTo=; b=LBGyytqPFmYvd7qfKp/kzjUZ++0fxnh0bwCn81ZOtAtX9xcL+hH27ZE4c9oNjGfyzN Nf9CSowaA2axFHVFe6EDYLfGTELyKo5Io6oLbdzdx720u4pUCtFwnvmZV3fZLTVaWLlV 08QFn+tfy1UAn1zW7EPywE8h5Ic5dYNDAVj+DjaxPwyA+NqkcJRPXWzEM2B9zgo3/sD8 WGMH3hSUXxoKWTSe9mfoMThK4SIL3i+jvLZprRa24XVyt+/2S9rLga7zKw7yuAoVio0v e63k0cHEFnlEvyvUeWGr/upHMZwLtz2kuMkDPYQclh/KE1o8bpG+STtcWxvAaSC5bF5M B2Cw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:subject:date:message-id :in-reply-to:references; bh=YxoUvt3Ps00ZPMRYsL2yZ0hkryLbuyO6moys9UaojTo=; b=lQuzY2mEtzjQ4fVPffppzcjRVPxov0Xk78C2zyZ+0LK27EfPj1KCFqYPvH7EFduiri UjEHlVtAQFJL+5mNj7qcH2Rtcv021UoRHaUdzFxiSyt4smRY3WcNjQOhmxXykirGvedE AytSVsmmBoMvVgW4IuXrSc+z9hLRL0dhDa+o+UmOQRCxC/GjFW1krPqgeSAvbWotEEO+ Co4MGKXBykiLej5A1Jfe5JfOIDjc0dZ7C1iYHugIMvkLS8aIcEC09uXFYALkTZ9oWSCe W1aldLmf48QhRZMGgLhkrmonQNvRTTYsh88UrpAZmCT1pLiHGH00fzu5ejk0iCQimxBk Kbzg== X-Gm-Message-State: APjAAAVXfwxJIrZmT+1tt3hS1l3gc5JPSYz9g0ViJfbW1claUYET4k9f e4IFXl21SZ2gzpdCbJ+psyFNJqNZ X-Google-Smtp-Source: APXvYqzQAHlgYUKzYuAa/zn4Ln+fPDJv7vTq2RZb7uMjPVBt/FwidpuhhZMQf6xH7paWP5AdvO4Eig== X-Received: by 2002:adf:f885:: with SMTP id u5mr31958112wrp.359.1576513745888; Mon, 16 Dec 2019 08:29:05 -0800 (PST) Received: from 640k.lan ([93.56.166.5]) by smtp.gmail.com with ESMTPSA id q68sm19962334wme.14.2019.12.16.08.29.04 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 16 Dec 2019 08:29:04 -0800 (PST) From: Paolo Bonzini To: qemu-devel@nongnu.org Subject: [PULL 18/62] vl: introduce object_parse_property_opt Date: Mon, 16 Dec 2019 17:28:02 +0100 Message-Id: <1576513726-53700-19-git-send-email-pbonzini@redhat.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1576513726-53700-1-git-send-email-pbonzini@redhat.com> References: <1576513726-53700-1-git-send-email-pbonzini@redhat.com> X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2a00:1450:4864:20::432 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: , Errors-To: qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Sender: "Qemu-devel" We will reuse the parsing loop of machine_set_property soon for "-accel", but we do not want the "_" -> "-" conversion since "-accel" can just standardize on dashes. We will also add a bunch of legacy option handling to keep the QOM machine object clean. Extract the loop into a separate function, and keep the legacy handling in machine_set_property. Signed-off-by: Paolo Bonzini --- vl.c | 35 ++++++++++++++++++++--------------- 1 file changed, 20 insertions(+), 15 deletions(-) diff --git a/vl.c b/vl.c index 14c78bc..2f6b0dd 100644 --- a/vl.c +++ b/vl.c @@ -2615,27 +2615,17 @@ static MachineClass *select_machine(void) return machine_class; } -static int machine_set_property(void *opaque, - const char *name, const char *value, - Error **errp) +static int object_parse_property_opt(Object *obj, + const char *name, const char *value, + const char *skip, Error **errp) { - Object *obj = OBJECT(opaque); Error *local_err = NULL; - char *p, *qom_name; - if (strcmp(name, "type") == 0) { + if (g_str_equal(name, skip)) { return 0; } - qom_name = g_strdup(name); - for (p = qom_name; *p; p++) { - if (*p == '_') { - *p = '-'; - } - } - - object_property_parse(obj, value, qom_name, &local_err); - g_free(qom_name); + object_property_parse(obj, value, name, &local_err); if (local_err) { error_propagate(errp, local_err); @@ -2645,6 +2635,21 @@ static int machine_set_property(void *opaque, return 0; } +static int machine_set_property(void *opaque, + const char *name, const char *value, + Error **errp) +{ + g_autofree char *qom_name = g_strdup(name); + char *p; + + for (p = qom_name; *p; p++) { + if (*p == '_') { + *p = '-'; + } + } + + return object_parse_property_opt(opaque, name, value, "type", errp); +} /* * Initial object creation happens before all other From patchwork Mon Dec 16 16:28:03 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Paolo Bonzini X-Patchwork-Id: 11294615 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id EDF0317F0 for ; Mon, 16 Dec 2019 16:40:18 +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 B4094206E0 for ; Mon, 16 Dec 2019 16:40:18 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="HHV42kkd" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org B4094206E0 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=redhat.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Received: from localhost ([::1]:56714 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1igtPt-0002ZH-E7 for patchwork-qemu-devel@patchwork.kernel.org; Mon, 16 Dec 2019 11:40:17 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:56734) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1igtF9-00052K-Af for qemu-devel@nongnu.org; Mon, 16 Dec 2019 11:29:13 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1igtF6-0007O0-P6 for qemu-devel@nongnu.org; Mon, 16 Dec 2019 11:29:11 -0500 Received: from mail-wm1-x32f.google.com ([2a00:1450:4864:20::32f]:39549) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1igtF6-0007Mf-En for qemu-devel@nongnu.org; Mon, 16 Dec 2019 11:29:08 -0500 Received: by mail-wm1-x32f.google.com with SMTP id b72so5374516wme.4 for ; Mon, 16 Dec 2019 08:29:08 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:subject:date:message-id:in-reply-to:references; bh=c33Vy+gSy0BQfnMrdNTPn+iZ4SZhWxCKgMAwbd7J4Uw=; b=HHV42kkdfnP48tg+i3B+3MY1JcfNmpukYAed7LJOHdymHNwzke2ZrwpP+zLWW2WEzi RFRWBXDqgGEvYOUkj25Q7TIl6TvfRR6DRCtuReiUOpLtJW9pgJJO2PwCghtasPPt5EVD NqF+fybBqnaEVG1+VQAGeZ0Wa3L1iFf/JMkFe79h/7XnqFJs0VLaDgn7+YzhqYm4dEpA YPq+elQgqgA1GRX4hr0a2ZlhuaLkFqRBj060OIb2qxRrlx9L8/fJ5XDmUy4B5sQxVoiM rLqsoGeS3MTEOcAYeEguwuuxbRcTxsJvAjNoe6Pu+u2/vxgGDXHC3M7LmaE9ukNFO8Ho Duxw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:subject:date:message-id :in-reply-to:references; bh=c33Vy+gSy0BQfnMrdNTPn+iZ4SZhWxCKgMAwbd7J4Uw=; b=TcGRVSKlwwxXFncjQpScUKO/RK1Z/qM6gFsNiQDsmg5XOv8kH1lEsoEzw1mSOtLzma b8LBh4X0+vi8JkZmvyUkStV39hMh/o2HKpbtBFXLGZDR9d6Yt3ri3xazxqvj3jDwailA 7iYkGbbo/3lYX8xZOrB1mYpIeQ9NyPdEFxZs5bGQWySA/YQ+DzPcV6JGtOGiPW4B9j4Y 5xFt+VHkGqwha2und6cwsshLcycb0naNJl6Ykcwoi8ka1zDDZgbngJdR++NnYv+TfDoc A9rwRrnWuXOYXE2qk0PiEqMu/MmtYG98zgl/TxmtG3ArNML1ueWLZ8ygC66772WCqEVN LxwA== X-Gm-Message-State: APjAAAWLuOX+CsWE1grT5ZrvjcBQXL6HqT9uHo2cOPFvUjw1NXsJTa5+ l/wKlLb4R/KGJQgs/p6gmrcqgrxk X-Google-Smtp-Source: APXvYqyxaiRs/Y9zfxVgmvz7Zvbz9B4V6ypwiYUp3+b2ntL1TTMvIRmHQan+vudrK2XT9s/xi/1Z6Q== X-Received: by 2002:a1c:486:: with SMTP id 128mr32219688wme.163.1576513746850; Mon, 16 Dec 2019 08:29:06 -0800 (PST) Received: from 640k.lan ([93.56.166.5]) by smtp.gmail.com with ESMTPSA id q68sm19962334wme.14.2019.12.16.08.29.05 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 16 Dec 2019 08:29:06 -0800 (PST) From: Paolo Bonzini To: qemu-devel@nongnu.org Subject: [PULL 19/62] vl: configure accelerators from -accel options Date: Mon, 16 Dec 2019 17:28:03 +0100 Message-Id: <1576513726-53700-20-git-send-email-pbonzini@redhat.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1576513726-53700-1-git-send-email-pbonzini@redhat.com> References: <1576513726-53700-1-git-send-email-pbonzini@redhat.com> X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2a00:1450:4864:20::32f 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: , Errors-To: qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Sender: "Qemu-devel" Drop the "accel" property from MachineState, and instead desugar "-machine accel=" to a list of "-accel" options. This has a semantic change due to removing merge_lists from -accel. For example: - "-accel kvm -accel tcg" all but ignored "-accel kvm". This is a bugfix. - "-accel kvm -accel thread=single" ignored "thread=single", since it applied the option to KVM. Now it fails due to not specifying the accelerator on "-accel thread=single". - "-accel tcg -accel thread=single" chose single-threaded TCG, while now it will fail due to not specifying the accelerator on "-accel thread=single". Also, "-machine accel" and "-accel" become incompatible. Signed-off-by: Paolo Bonzini --- hw/core/machine.c | 21 ----------- include/hw/boards.h | 1 - tests/arm-cpu-features.c | 4 +- tests/bios-tables-test.c | 16 ++++---- tests/boot-serial-test.c | 4 +- tests/cdrom-test.c | 2 +- tests/libqtest.c | 4 +- tests/migration-test.c | 23 +++++------- tests/pflash-cfi02-test.c | 4 +- tests/pnv-xscom-test.c | 4 +- tests/prom-env-test.c | 2 +- tests/pxe-test.c | 2 +- tests/vmgenid-test.c | 2 +- vl.c | 93 +++++++++++++++++++++++++++-------------------- 14 files changed, 85 insertions(+), 97 deletions(-) diff --git a/hw/core/machine.c b/hw/core/machine.c index 023548b..e661fa6 100644 --- a/hw/core/machine.c +++ b/hw/core/machine.c @@ -178,21 +178,6 @@ GlobalProperty hw_compat_2_1[] = { }; const size_t hw_compat_2_1_len = G_N_ELEMENTS(hw_compat_2_1); -static char *machine_get_accel(Object *obj, Error **errp) -{ - MachineState *ms = MACHINE(obj); - - return g_strdup(ms->accel); -} - -static void machine_set_accel(Object *obj, const char *value, Error **errp) -{ - MachineState *ms = MACHINE(obj); - - g_free(ms->accel); - ms->accel = g_strdup(value); -} - static void machine_set_kernel_irqchip(Object *obj, Visitor *v, const char *name, void *opaque, Error **errp) @@ -813,11 +798,6 @@ static void machine_class_init(ObjectClass *oc, void *data) mc->numa_mem_align_shift = 23; mc->numa_auto_assign_ram = numa_default_auto_assign_ram; - object_class_property_add_str(oc, "accel", - machine_get_accel, machine_set_accel, &error_abort); - object_class_property_set_description(oc, "accel", - "Accelerator list", &error_abort); - object_class_property_add(oc, "kernel-irqchip", "on|off|split", NULL, machine_set_kernel_irqchip, NULL, NULL, &error_abort); @@ -976,7 +956,6 @@ static void machine_finalize(Object *obj) { MachineState *ms = MACHINE(obj); - g_free(ms->accel); g_free(ms->kernel_filename); g_free(ms->initrd_filename); g_free(ms->kernel_cmdline); diff --git a/include/hw/boards.h b/include/hw/boards.h index 24cbeec..96f2084 100644 --- a/include/hw/boards.h +++ b/include/hw/boards.h @@ -275,7 +275,6 @@ struct MachineState { /*< public >*/ - char *accel; bool kernel_irqchip_allowed; bool kernel_irqchip_required; bool kernel_irqchip_split; diff --git a/tests/arm-cpu-features.c b/tests/arm-cpu-features.c index 6e99aa9..bef3ed2 100644 --- a/tests/arm-cpu-features.c +++ b/tests/arm-cpu-features.c @@ -20,8 +20,8 @@ */ #define SVE_MAX_VQ 16 -#define MACHINE "-machine virt,gic-version=max,accel=tcg " -#define MACHINE_KVM "-machine virt,gic-version=max,accel=kvm:tcg " +#define MACHINE "-machine virt,gic-version=max -accel tcg " +#define MACHINE_KVM "-machine virt,gic-version=max -accel kvm -accel tcg " #define QUERY_HEAD "{ 'execute': 'query-cpu-model-expansion', " \ " 'arguments': { 'type': 'full', " #define QUERY_TAIL "}}" diff --git a/tests/bios-tables-test.c b/tests/bios-tables-test.c index 79f5da0..bc0ad59 100644 --- a/tests/bios-tables-test.c +++ b/tests/bios-tables-test.c @@ -51,7 +51,7 @@ #define ACPI_REBUILD_EXPECTED_AML "TEST_ACPI_REBUILD_AML" typedef struct { - const char *accel; + bool tcg_only; const char *machine; const char *variant; const char *uefi_fl1; @@ -607,19 +607,19 @@ static void test_acpi_one(const char *params, test_data *data) * TODO: convert '-drive if=pflash' to new syntax (see e33763be7cd3) * when arm/virt boad starts to support it. */ - args = g_strdup_printf("-machine %s,accel=%s -nodefaults -nographic " + args = g_strdup_printf("-machine %s %s -accel tcg -nodefaults -nographic " "-drive if=pflash,format=raw,file=%s,readonly " "-drive if=pflash,format=raw,file=%s,snapshot=on -cdrom %s %s", - data->machine, data->accel ? data->accel : "kvm:tcg", + data->machine, data->tcg_only ? "" : "-accel kvm", data->uefi_fl1, data->uefi_fl2, data->cd, params ? params : ""); } else { /* Disable kernel irqchip to be able to override apic irq0. */ - args = g_strdup_printf("-machine %s,accel=%s,kernel-irqchip=off " + args = g_strdup_printf("-machine %s,kernel-irqchip=off %s -accel tcg " "-net none -display none %s " "-drive id=hd0,if=none,file=%s,format=raw " "-device ide-hd,drive=hd0 ", - data->machine, data->accel ? data->accel : "kvm:tcg", + data->machine, data->tcg_only ? "" : "-accel kvm", params ? params : "", disk); } @@ -904,7 +904,7 @@ static void test_acpi_virt_tcg_memhp(void) { test_data data = { .machine = "virt", - .accel = "tcg", + .tcg_only = true, .uefi_fl1 = "pc-bios/edk2-aarch64-code.fd", .uefi_fl2 = "pc-bios/edk2-arm-vars.fd", .cd = "tests/data/uefi-boot-images/bios-tables-test.aarch64.iso.qcow2", @@ -929,7 +929,7 @@ static void test_acpi_virt_tcg_numamem(void) { test_data data = { .machine = "virt", - .accel = "tcg", + .tcg_only = true, .uefi_fl1 = "pc-bios/edk2-aarch64-code.fd", .uefi_fl2 = "pc-bios/edk2-arm-vars.fd", .cd = "tests/data/uefi-boot-images/bios-tables-test.aarch64.iso.qcow2", @@ -951,7 +951,7 @@ static void test_acpi_virt_tcg(void) { test_data data = { .machine = "virt", - .accel = "tcg", + .tcg_only = true, .uefi_fl1 = "pc-bios/edk2-aarch64-code.fd", .uefi_fl2 = "pc-bios/edk2-arm-vars.fd", .cd = "tests/data/uefi-boot-images/bios-tables-test.aarch64.iso.qcow2", diff --git a/tests/boot-serial-test.c b/tests/boot-serial-test.c index d3a54a0..05c7f44 100644 --- a/tests/boot-serial-test.c +++ b/tests/boot-serial-test.c @@ -215,9 +215,9 @@ static void test_machine(const void *data) * Make sure that this test uses tcg if available: It is used as a * fast-enough smoketest for that. */ - qts = qtest_initf("%s %s -M %s,accel=tcg:kvm -no-shutdown " + qts = qtest_initf("%s %s -M %s -no-shutdown " "-chardev file,id=serial0,path=%s " - "-serial chardev:serial0 %s", + "-serial chardev:serial0 -accel tcg -accel kvm %s", codeparam, code ? codetmp : "", test->machine, serialtmp, test->extra); if (code) { diff --git a/tests/cdrom-test.c b/tests/cdrom-test.c index 34e9974..67635e3 100644 --- a/tests/cdrom-test.c +++ b/tests/cdrom-test.c @@ -120,7 +120,7 @@ static void test_cdboot(gconstpointer data) { QTestState *qts; - qts = qtest_initf("-M accel=kvm:tcg -no-shutdown %s%s", (const char *)data, + qts = qtest_initf("-accel kvm -accel tcg -no-shutdown %s%s", (const char *)data, isoimage); boot_sector_test(qts); qtest_quit(qts); diff --git a/tests/libqtest.c b/tests/libqtest.c index 91e9cb2..a17391d 100644 --- a/tests/libqtest.c +++ b/tests/libqtest.c @@ -241,9 +241,9 @@ QTestState *qtest_init_without_qmp_handshake(const char *extra_args) "-qtest-log %s " "-chardev socket,path=%s,id=char0 " "-mon chardev=char0,mode=control " - "-accel qtest " "-display none " - "%s", qemu_binary, socket_path, + "%s" + " -accel qtest", qemu_binary, socket_path, getenv("QTEST_LOG") ? "/dev/fd/2" : "/dev/null", qmp_socket_path, extra_args ?: ""); diff --git a/tests/migration-test.c b/tests/migration-test.c index 4a19211..9b1b6fd 100644 --- a/tests/migration-test.c +++ b/tests/migration-test.c @@ -577,8 +577,7 @@ static int test_migrate_start(QTestState **from, QTestState **to, char *shmem_opts; char *shmem_path; const char *arch = qtest_get_arch(); - const char *machine_type; - const char *machine_args; + const char *machine_opts = NULL; const char *memory_size; if (args->use_shmem) { @@ -594,8 +593,6 @@ static int test_migrate_start(QTestState **from, QTestState **to, /* the assembled x86 boot sector should be exactly one sector large */ assert(sizeof(x86_bootsect) == 512); init_bootfile(bootpath, x86_bootsect, sizeof(x86_bootsect)); - machine_type = ""; - machine_args = ""; memory_size = "150M"; arch_source = g_strdup_printf("-drive file=%s,format=raw", bootpath); arch_target = g_strdup(arch_source); @@ -603,16 +600,13 @@ static int test_migrate_start(QTestState **from, QTestState **to, end_address = X86_TEST_MEM_END; } else if (g_str_equal(arch, "s390x")) { init_bootfile(bootpath, s390x_elf, sizeof(s390x_elf)); - machine_type = ""; - machine_args = ""; memory_size = "128M"; arch_source = g_strdup_printf("-bios %s", bootpath); arch_target = g_strdup(arch_source); start_address = S390_TEST_MEM_START; end_address = S390_TEST_MEM_END; } else if (strcmp(arch, "ppc64") == 0) { - machine_type = ""; - machine_args = ",vsmt=8"; + machine_opts = "vsmt=8"; memory_size = "256M"; arch_source = g_strdup_printf("-nodefaults " "-prom-env 'use-nvramrc?=true' -prom-env " @@ -624,8 +618,7 @@ static int test_migrate_start(QTestState **from, QTestState **to, end_address = PPC_TEST_MEM_END; } else if (strcmp(arch, "aarch64") == 0) { init_bootfile(bootpath, aarch64_kernel, sizeof(aarch64_kernel)); - machine_type = "virt,"; - machine_args = "gic-version=max"; + machine_opts = "virt,gic-version=max"; memory_size = "150M"; arch_source = g_strdup_printf("-cpu max " "-kernel %s", @@ -658,12 +651,13 @@ static int test_migrate_start(QTestState **from, QTestState **to, shmem_opts = g_strdup(""); } - cmd_source = g_strdup_printf("-machine %saccel=kvm:tcg%s " + cmd_source = g_strdup_printf("-accel kvm -accel tcg%s%s " "-name source,debug-threads=on " "-m %s " "-serial file:%s/src_serial " "%s %s %s %s", - machine_type, machine_args, + machine_opts ? " -machine " : "", + machine_opts ? machine_opts : "", memory_size, tmpfs, arch_source, shmem_opts, args->opts_source, ignore_stderr); @@ -671,13 +665,14 @@ static int test_migrate_start(QTestState **from, QTestState **to, *from = qtest_init(cmd_source); g_free(cmd_source); - cmd_target = g_strdup_printf("-machine %saccel=kvm:tcg%s " + cmd_target = g_strdup_printf("-accel kvm -accel tcg%s%s " "-name target,debug-threads=on " "-m %s " "-serial file:%s/dest_serial " "-incoming %s " "%s %s %s %s", - machine_type, machine_args, + machine_opts ? " -machine " : "", + machine_opts ? machine_opts : "", memory_size, tmpfs, uri, arch_target, shmem_opts, args->opts_target, ignore_stderr); diff --git a/tests/pflash-cfi02-test.c b/tests/pflash-cfi02-test.c index d3b23f4..17aa669 100644 --- a/tests/pflash-cfi02-test.c +++ b/tests/pflash-cfi02-test.c @@ -260,7 +260,7 @@ static void test_geometry(const void *opaque) { const FlashConfig *config = opaque; QTestState *qtest; - qtest = qtest_initf("-M musicpal,accel=qtest" + qtest = qtest_initf("-M musicpal" " -drive if=pflash,file=%s,format=raw,copy-on-read" /* Device geometry properties. */ " -global driver=cfi.pflash02," @@ -580,7 +580,7 @@ static void test_cfi_in_autoselect(const void *opaque) { const FlashConfig *config = opaque; QTestState *qtest; - qtest = qtest_initf("-M musicpal,accel=qtest" + qtest = qtest_initf("-M musicpal" " -drive if=pflash,file=%s,format=raw,copy-on-read", image_path); FlashConfig explicit_config = expand_config_defaults(config); diff --git a/tests/pnv-xscom-test.c b/tests/pnv-xscom-test.c index 9fddc7d..2c46d5c 100644 --- a/tests/pnv-xscom-test.c +++ b/tests/pnv-xscom-test.c @@ -84,7 +84,7 @@ static void test_cfam_id(const void *data) machine = "powernv9"; } - qts = qtest_initf("-M %s,accel=tcg -cpu %s", + qts = qtest_initf("-M %s -accel tcg -cpu %s", machine, chip->cpu_model); test_xscom_cfam_id(qts, chip); qtest_quit(qts); @@ -125,7 +125,7 @@ static void test_core(const void *data) machine = "powernv9"; } - qts = qtest_initf("-M %s,accel=tcg -cpu %s", + qts = qtest_initf("-M %s -accel tcg -cpu %s", machine, chip->cpu_model); test_xscom_core(qts, chip); qtest_quit(qts); diff --git a/tests/prom-env-test.c b/tests/prom-env-test.c index 61bc1d1..9be52c7 100644 --- a/tests/prom-env-test.c +++ b/tests/prom-env-test.c @@ -57,7 +57,7 @@ static void test_machine(const void *machine) " -machine cap-cfpc=broken,cap-sbbc=broken,cap-ibs=broken"; } - qts = qtest_initf("-M %s,accel=tcg %s -prom-env 'use-nvramrc?=true' " + qts = qtest_initf("-M %s -accel tcg %s -prom-env 'use-nvramrc?=true' " "-prom-env 'nvramrc=%x %x l!' ", (const char *)machine, extra_args, MAGIC, ADDRESS); check_guest_memory(qts); diff --git a/tests/pxe-test.c b/tests/pxe-test.c index aaae54f..f68d0aa 100644 --- a/tests/pxe-test.c +++ b/tests/pxe-test.c @@ -74,7 +74,7 @@ static void test_pxe_one(const testdef_t *test, bool ipv6) } args = g_strdup_printf( - "-machine %s,accel=kvm:tcg -nodefaults -boot order=n " + "-accel kvm -accel tcg -machine %s -nodefaults -boot order=n " "-netdev user,id=" NETNAME ",tftp=./,bootfile=%s,ipv4=%s,ipv6=%s " "-device %s,bootindex=1,netdev=" NETNAME " %s", test->machine, disk, ipv6 ? "off" : "on", ipv6 ? "on" : "off", diff --git a/tests/vmgenid-test.c b/tests/vmgenid-test.c index 85d8e64..efba76e 100644 --- a/tests/vmgenid-test.c +++ b/tests/vmgenid-test.c @@ -109,7 +109,7 @@ static void read_guid_from_monitor(QTestState *qts, QemuUUID *guid) static char disk[] = "tests/vmgenid-test-disk-XXXXXX"; #define GUID_CMD(guid) \ - "-machine accel=kvm:tcg " \ + "-accel kvm -accel tcg " \ "-device vmgenid,id=testvgid,guid=%s " \ "-drive id=hd0,if=none,file=%s,format=raw " \ "-device ide-hd,drive=hd0 ", guid, disk diff --git a/vl.c b/vl.c index 2f6b0dd..9bd27e1 100644 --- a/vl.c +++ b/vl.c @@ -294,7 +294,6 @@ static QemuOptsList qemu_accel_opts = { .name = "accel", .implied_opt_name = "accel", .head = QTAILQ_HEAD_INITIALIZER(qemu_accel_opts.head), - .merge_lists = true, .desc = { { .name = "accel", @@ -2648,6 +2647,11 @@ static int machine_set_property(void *opaque, } } + /* Legacy options do not correspond to MachineState properties. */ + if (g_str_equal(qom_name, "accel")) { + return 0; + } + return object_parse_property_opt(opaque, name, value, "type", errp); } @@ -2838,74 +2842,88 @@ static int do_configure_icount(void *opaque, QemuOpts *opts, Error **errp) static int do_configure_accelerator(void *opaque, QemuOpts *opts, Error **errp) { + bool *p_init_failed = opaque; + const char *acc = qemu_opt_get(opts, "accel"); + AccelClass *ac = accel_find(acc); + int ret; + + if (!ac) { + return 0; + } + ret = accel_init_machine(ac, current_machine); + if (ret < 0) { + *p_init_failed = true; + error_report("failed to initialize %s: %s", + acc, strerror(-ret)); + return 0; + } + if (tcg_enabled()) { qemu_tcg_configure(opts, &error_fatal); } - return 0; + return 1; } static void configure_accelerators(const char *progname) { const char *accel; char **accel_list, **tmp; - int ret; bool accel_initialised = false; bool init_failed = false; - AccelClass *acc = NULL; qemu_opts_foreach(qemu_find_opts("icount"), do_configure_icount, NULL, &error_fatal); accel = qemu_opt_get(qemu_get_machine_opts(), "accel"); - if (accel == NULL) { - /* Select the default accelerator */ - if (!accel_find("tcg") && !accel_find("kvm")) { - error_report("No accelerator selected and" - " no default accelerator available"); - exit(1); - } else { - int pnlen = strlen(progname); - if (pnlen >= 3 && g_str_equal(&progname[pnlen - 3], "kvm")) { - /* If the program name ends with "kvm", we prefer KVM */ - accel = "kvm:tcg"; + if (QTAILQ_EMPTY(&qemu_accel_opts.head)) { + if (accel == NULL) { + /* Select the default accelerator */ + if (!accel_find("tcg") && !accel_find("kvm")) { + error_report("No accelerator selected and" + " no default accelerator available"); + exit(1); } else { - accel = "tcg:kvm"; + int pnlen = strlen(progname); + if (pnlen >= 3 && g_str_equal(&progname[pnlen - 3], "kvm")) { + /* If the program name ends with "kvm", we prefer KVM */ + accel = "kvm:tcg"; + } else { + accel = "tcg:kvm"; + } } } - } - accel_list = g_strsplit(accel, ":", 0); + accel_list = g_strsplit(accel, ":", 0); - for (tmp = accel_list; !accel_initialised && tmp && *tmp; tmp++) { - acc = accel_find(*tmp); - if (!acc) { - continue; + for (tmp = accel_list; !accel_initialised && tmp && *tmp; tmp++) { + /* + * Filter invalid accelerators here, to prevent obscenities + * such as "-machine accel=tcg,,thread=single". + */ + if (accel_find(*tmp)) { + qemu_opts_parse_noisily(qemu_find_opts("accel"), *tmp, true); + } } - ret = accel_init_machine(acc, current_machine); - if (ret < 0) { - init_failed = true; - error_report("failed to initialize %s: %s", - acc->name, strerror(-ret)); - } else { - accel_initialised = true; + } else { + if (accel != NULL) { + error_report("The -accel and \"-machine accel=\" options are incompatible"); + exit(1); } } - g_strfreev(accel_list); - if (!accel_initialised) { + if (!qemu_opts_foreach(qemu_find_opts("accel"), + do_configure_accelerator, &init_failed, &error_fatal)) { if (!init_failed) { - error_report("-machine accel=%s: No accelerator found", accel); + error_report("no accelerator found"); } exit(1); } if (init_failed) { - error_report("Back to %s accelerator", acc->name); + AccelClass *ac = ACCEL_GET_CLASS(current_machine->accelerator); + error_report("Back to %s accelerator", ac->name); } - qemu_opts_foreach(qemu_find_opts("accel"), - do_configure_accelerator, NULL, &error_fatal); - if (use_icount && !(tcg_enabled() || qtest_enabled())) { error_report("-icount is not allowed with hardware virtualization"); exit(1); @@ -3593,9 +3611,6 @@ int main(int argc, char **argv, char **envp) "use -M accel=... for now instead"); exit(1); } - opts = qemu_opts_create(qemu_find_opts("machine"), NULL, - false, &error_abort); - qemu_opt_set(opts, "accel", optarg, &error_abort); break; case QEMU_OPTION_usb: olist = qemu_find_opts("machine"); From patchwork Mon Dec 16 16:28:04 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Paolo Bonzini X-Patchwork-Id: 11294641 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id E62A8138D for ; Mon, 16 Dec 2019 16:51:47 +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 BC818206D7 for ; Mon, 16 Dec 2019 16:51:47 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="Y8IFiy+e" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org BC818206D7 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=redhat.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Received: from localhost ([::1]:56862 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1igtb0-0007TN-AV for patchwork-qemu-devel@patchwork.kernel.org; Mon, 16 Dec 2019 11:51:46 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:56703) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1igtF7-0004zx-Ta for qemu-devel@nongnu.org; Mon, 16 Dec 2019 11:29:10 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1igtF6-0007Oa-Te for qemu-devel@nongnu.org; Mon, 16 Dec 2019 11:29:09 -0500 Received: from mail-wr1-x443.google.com ([2a00:1450:4864:20::443]:33011) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1igtF6-0007N0-NR for qemu-devel@nongnu.org; Mon, 16 Dec 2019 11:29:08 -0500 Received: by mail-wr1-x443.google.com with SMTP id b6so8071166wrq.0 for ; Mon, 16 Dec 2019 08:29:08 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=pjbTZJVQkWoecdrgqsxX2UzKvVamT9j+zNM3ivmXyv0=; b=Y8IFiy+eT1SteUHtWczyl6GHl2CI3iEysPHnG5JRyIpsM6WMrQVhuohLDzlFnhCV62 dg6izOUGj3fzHCLh/mcGRQm+YXu9J7MEK+CjbeG19NZ3j4ngGMyPtR4sN4NZ0kEWGukX eg7S1h/iH2A5vHZ2lqpnG5NtXDislmFyOujAS5p/vqFFe9w9T+WOeEiFylTJbRVfzuwp cQT6ToUv2VMK5fPmyHGjGHVBcxovnCJcgkEoE641gDBJffeJzqZrPIYUo56+pXozGidC D4FmmcPClXeU4W4vrk/VGaBtsE4KWcN8c7EszCRzMguasuJGdbqCnYgTz/KnHPsYAd83 heMw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:subject:date:message-id :in-reply-to:references:mime-version:content-transfer-encoding; bh=pjbTZJVQkWoecdrgqsxX2UzKvVamT9j+zNM3ivmXyv0=; b=bDP3wNWUHbpW1+RaRlg9CXWwPb+5Ln4bO2rDSHDAa5nW/knkdKhhaU5CpeRItK/1/2 Zq3k+AD+hm5vJdqD0XG3kgtu2qzJ5+dX701upp21z0D0VhW75fpygTtkvwQtfgK6sZfs +AK24XOnZ2GMRALF7JskSHrTavXwof6KcLT9wHmjG5Pn3rKoU0fIGAMFeTh1WP6xr5M7 YTL9HQJgHYO8uPixC2XqZsYXKyTT6E+HEjEUFOLvKETIIdqFDa1FW5wH4jU3yEsqxsaV HQ06+e0lThEI3zFPUUyqiq9p097i/A9lsOlPSqVkL3ZMDODDFBRIuza48Slv0Jm8iXtS s7eQ== X-Gm-Message-State: APjAAAUVEDuq50tgzF7atRJOJ2qc61o5FhdTTzB6mi7oCm2oqHMHT5GE 5Ubsb3Yuao4f08H+DHZ9Z+ov4Ibz X-Google-Smtp-Source: APXvYqxFzQz3KzrPXQa+UM1slSEDO1diog/8M6VnDnnhX3qo6PMbkYitU/G0OovAiGTFGAGlgdj8zg== X-Received: by 2002:adf:f20b:: with SMTP id p11mr30482915wro.195.1576513747579; Mon, 16 Dec 2019 08:29:07 -0800 (PST) Received: from 640k.lan ([93.56.166.5]) by smtp.gmail.com with ESMTPSA id q68sm19962334wme.14.2019.12.16.08.29.06 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 16 Dec 2019 08:29:07 -0800 (PST) From: Paolo Bonzini To: qemu-devel@nongnu.org Subject: [PULL 20/62] vl: warn for unavailable accelerators, clarify messages Date: Mon, 16 Dec 2019 17:28:04 +0100 Message-Id: <1576513726-53700-21-git-send-email-pbonzini@redhat.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1576513726-53700-1-git-send-email-pbonzini@redhat.com> References: <1576513726-53700-1-git-send-email-pbonzini@redhat.com> MIME-Version: 1.0 X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2a00:1450:4864:20::443 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: , Errors-To: qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Sender: "Qemu-devel" So far, specifying an accelerator that was not compiled in did not result in an error; fix that. While at it, clarify the mysterious "Back to TCG" message. Reviewed-by: Marc-André Lureau Signed-off-by: Paolo Bonzini --- vl.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/vl.c b/vl.c index 9bd27e1..46e4ec3 100644 --- a/vl.c +++ b/vl.c @@ -2848,6 +2848,8 @@ static int do_configure_accelerator(void *opaque, QemuOpts *opts, Error **errp) int ret; if (!ac) { + *p_init_failed = true; + error_report("invalid accelerator %s", acc); return 0; } ret = accel_init_machine(ac, current_machine); @@ -2902,6 +2904,9 @@ static void configure_accelerators(const char *progname) */ if (accel_find(*tmp)) { qemu_opts_parse_noisily(qemu_find_opts("accel"), *tmp, true); + } else { + init_failed = true; + error_report("invalid accelerator %s", *tmp); } } } else { @@ -2921,7 +2926,7 @@ static void configure_accelerators(const char *progname) if (init_failed) { AccelClass *ac = ACCEL_GET_CLASS(current_machine->accelerator); - error_report("Back to %s accelerator", ac->name); + error_report("falling back to %s", ac->name); } if (use_icount && !(tcg_enabled() || qtest_enabled())) { From patchwork Mon Dec 16 16:28:05 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Paolo Bonzini X-Patchwork-Id: 11294619 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id B223617F0 for ; Mon, 16 Dec 2019 16:42:11 +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 8864520717 for ; Mon, 16 Dec 2019 16:42:11 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="hMvrIc+0" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 8864520717 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=redhat.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Received: from localhost ([::1]:56746 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1igtRi-0004zt-6j for patchwork-qemu-devel@patchwork.kernel.org; Mon, 16 Dec 2019 11:42:10 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:56728) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1igtF9-00051x-39 for qemu-devel@nongnu.org; Mon, 16 Dec 2019 11:29:12 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1igtF7-0007QQ-Tn for qemu-devel@nongnu.org; Mon, 16 Dec 2019 11:29:10 -0500 Received: from mail-wr1-x433.google.com ([2a00:1450:4864:20::433]:43816) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1igtF7-0007P2-My for qemu-devel@nongnu.org; Mon, 16 Dec 2019 11:29:09 -0500 Received: by mail-wr1-x433.google.com with SMTP id d16so8036079wre.10 for ; Mon, 16 Dec 2019 08:29:09 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:subject:date:message-id:in-reply-to:references; bh=2Jpvl6A6XndxsapCWSE4YM+0B7PHr4ZqWFQfh1tgXgQ=; b=hMvrIc+0hz8mVr4QHU8g/SqwDmg0ziUUwgvNqmamNbUkF7Yq5qa91BBJJw88xe+cgr W5D5LPCqVK9UXSD8JPMm+lqPGY2kXi2JO8MeKIO8zl/7oQviF7UDmIH/1HKjxgk5rPMK MU8Mg7hjannvjRkJmM4Prbm+rShfyIpT54E7uV9p6so6bf/YcBYgdzKMkhL5SAZhL+e8 d2C4ZtMB2d2DHsD9ko6CU01xB9b5+dEsex1vcZ9KZku1LkOgU+h5lfJOTAmdXKBB3LM0 BMIuLsQFRWO1sDFyWIB5CbKjqql9qPH5gSzpJmxMAvXSd+/ta9PnoHHYkHomtlrsQ7ms ZAFg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:subject:date:message-id :in-reply-to:references; bh=2Jpvl6A6XndxsapCWSE4YM+0B7PHr4ZqWFQfh1tgXgQ=; b=eu+FV5sN5rQim3w6BkmxZnafxEKHyv/1MdeBRZsyN7ZK1R6fm25rnu339jYVdJ8ygy e7lJEfKPIVlXnecnMx1OXt86ITYo8UGoZH7Qeu2ps+FXttpxZt+RqmbA078I8eonn2KI ekPR5ykk3fNj2/MGgi5oyex0Yd+ZR0qIcmwoJorzOmoW/3aRcc30g6cejXaRD52rF7Mo he1Gt0J0sv+LtYVxQTfijNBEIqa5lnRQeGVKxIc/38KMcSI/xnL7MDPNl9iB/tsVAa0P Nv+Bo8Xb1kXGrssGgZK4iYb/7MJVvRK6vIXab2Q3unZ4W3bznwFEFI7hsch/ltfOABXn KBIQ== X-Gm-Message-State: APjAAAUZICsgupHwkAhQf6jwtWzvBxZnzvCDHmsnWOnImalcYkK3/beC VhupZxtrePTGt62LuGq9BK+6l9zE X-Google-Smtp-Source: APXvYqzPp3WMsbru66CDyEB+NgGYinW8kf6kNmhZ0Cwlt6dMPNDK/X2X+MaVIdCZVxFheATZNWoLfA== X-Received: by 2002:adf:f508:: with SMTP id q8mr31430013wro.334.1576513748462; Mon, 16 Dec 2019 08:29:08 -0800 (PST) Received: from 640k.lan ([93.56.166.5]) by smtp.gmail.com with ESMTPSA id q68sm19962334wme.14.2019.12.16.08.29.07 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 16 Dec 2019 08:29:07 -0800 (PST) From: Paolo Bonzini To: qemu-devel@nongnu.org Subject: [PULL 21/62] qom: introduce object_register_sugar_prop Date: Mon, 16 Dec 2019 17:28:05 +0100 Message-Id: <1576513726-53700-22-git-send-email-pbonzini@redhat.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1576513726-53700-1-git-send-email-pbonzini@redhat.com> References: <1576513726-53700-1-git-send-email-pbonzini@redhat.com> X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2a00:1450:4864:20::433 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: , Errors-To: qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Sender: "Qemu-devel" Similar to the existing "-rtc driftfix" option, we will convert some legacy "-machine" command line options to global properties on accelerators. Because accelerators are not devices, we cannot use qdev_prop_register_global. Instead, provide a slot in the generic object_compat_props arrays for command line syntactic sugar. Signed-off-by: Paolo Bonzini --- include/qom/object.h | 1 + qom/object.c | 23 +++++++++++++++++++++-- vl.c | 10 +++------- 3 files changed, 25 insertions(+), 9 deletions(-) diff --git a/include/qom/object.h b/include/qom/object.h index 128d00c..230b18f 100644 --- a/include/qom/object.h +++ b/include/qom/object.h @@ -679,6 +679,7 @@ void object_apply_global_props(Object *obj, const GPtrArray *props, Error **errp); void object_set_machine_compat_props(GPtrArray *compat_props); void object_set_accelerator_compat_props(GPtrArray *compat_props); +void object_register_sugar_prop(const char *driver, const char *prop, const char *value); void object_apply_compat_props(Object *obj); /** diff --git a/qom/object.c b/qom/object.c index d51b57f..bfb4413 100644 --- a/qom/object.c +++ b/qom/object.c @@ -414,10 +414,29 @@ void object_apply_global_props(Object *obj, const GPtrArray *props, Error **errp * Global property defaults * Slot 0: accelerator's global property defaults * Slot 1: machine's global property defaults + * Slot 2: global properties from legacy command line option * Each is a GPtrArray of of GlobalProperty. * Applied in order, later entries override earlier ones. */ -static GPtrArray *object_compat_props[2]; +static GPtrArray *object_compat_props[3]; + +/* + * Retrieve @GPtrArray for global property defined with options + * other than "-global". These are generally used for syntactic + * sugar and legacy command line options. + */ +void object_register_sugar_prop(const char *driver, const char *prop, const char *value) +{ + GlobalProperty *g; + if (!object_compat_props[2]) { + object_compat_props[2] = g_ptr_array_new(); + } + g = g_new(GlobalProperty, 1); + g->driver = g_strdup(driver); + g->property = g_strdup(prop); + g->value = g_strdup(value); + g_ptr_array_add(object_compat_props[2], g); +} /* * Set machine's global property defaults to @compat_props. @@ -445,7 +464,7 @@ void object_apply_compat_props(Object *obj) for (i = 0; i < ARRAY_SIZE(object_compat_props); i++) { object_apply_global_props(obj, object_compat_props[i], - &error_abort); + i == 2 ? &error_fatal : &error_abort); } } diff --git a/vl.c b/vl.c index 46e4ec3..be3f51c 100644 --- a/vl.c +++ b/vl.c @@ -897,13 +897,9 @@ static void configure_rtc(QemuOpts *opts) value = qemu_opt_get(opts, "driftfix"); if (value) { if (!strcmp(value, "slew")) { - static GlobalProperty slew_lost_ticks = { - .driver = "mc146818rtc", - .property = "lost_tick_policy", - .value = "slew", - }; - - qdev_prop_register_global(&slew_lost_ticks); + object_register_sugar_prop("mc146818rtc", + "lost_tick_policy", + "slew"); } else if (!strcmp(value, "none")) { /* discard is default */ } else { From patchwork Mon Dec 16 16:28:06 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Paolo Bonzini X-Patchwork-Id: 11294651 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id BC33D138D for ; Mon, 16 Dec 2019 16:54:17 +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 910DB206D7 for ; Mon, 16 Dec 2019 16:54:17 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="Qgwc764+" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 910DB206D7 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=redhat.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Received: from localhost ([::1]:56890 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1igtdQ-0002Mj-AV for patchwork-qemu-devel@patchwork.kernel.org; Mon, 16 Dec 2019 11:54:16 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:56751) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1igtFA-000546-BM for qemu-devel@nongnu.org; Mon, 16 Dec 2019 11:29:13 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1igtF8-0007Ri-RW for qemu-devel@nongnu.org; Mon, 16 Dec 2019 11:29:12 -0500 Received: from mail-wr1-x42b.google.com ([2a00:1450:4864:20::42b]:34489) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1igtF8-0007Qh-KD for qemu-devel@nongnu.org; Mon, 16 Dec 2019 11:29:10 -0500 Received: by mail-wr1-x42b.google.com with SMTP id t2so8067845wrr.1 for ; Mon, 16 Dec 2019 08:29:10 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=6TyA/+5V+DxLz28FUTU191tVzWRi5eFH4NrfOHyckas=; b=Qgwc764+1pvO3QBnWdhQRDqAatDJr+NOKvVtr7f+pAEA2VGoQl+5GMV/UTF4TEFURm ilYlMhxHR5cwgOQUbe6dNvHRL5wnQWw347O9dNWckY2fqtcQso/9L3/NrUc3h98hybV3 jfMUme+R62jX06H0DDts93NZNrKXpmCmrLVHYxU6NgrvzY+jjyFZncSbuPhXjS8FbF8M dijdsXTfNCAWLklNN4LOa9NMCCn0Qp1D+zMvlDyW+KFhfBa19uaooRUet98RXdsHnVe9 PDFUXFNP2XGzuVaD9K84rTj7lJD9lhUh+mNdoOovr0P9Fv5QrAG5Z796WmShm50uzk0l IisA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:subject:date:message-id :in-reply-to:references:mime-version:content-transfer-encoding; bh=6TyA/+5V+DxLz28FUTU191tVzWRi5eFH4NrfOHyckas=; b=saE0XPAgTqeL2GT2tNuIUsVqP0Lr4RrMXez7X22FwO3I4wOvmXZRapLJJjgIX7xcwz JK2GT2xcRtzkm0LF6Y8t2mpDGcFMK11cSTK22LpD/s5vsKW97yz7UrYKwyAUE1iZAir9 NX6cc542JC+4aURLtqj8kKBd6Xx9WFbQFTWwnVvrGasUDHtuKR6vZd0kCFfn3Grffyad MU58hhLFHXFwDiedcTdGYIKfBU/QzUYRNh+nwXFxXvtwFlvnIASQ641t8nNjbE2TYuwt Mg85KnxBJA4ou84Nhxn2z8Rkt3BZCSHIjGcRZDn2edV7kkDjlJ2EWY4jOchVJ+vc3EWe C5Xg== X-Gm-Message-State: APjAAAUHQ8nbc5u/ZQyyUziah6zLhiMx3h9wkVMMhlT82ZJQtPRPemc4 cHIqm/Ar9QBNQzLmvHLbTejc8SW1 X-Google-Smtp-Source: APXvYqw8fyg9kA686vubJlX5DtvYN6AD/yEOisaHCiBOAkQTaHsFN8qbbkKc2P90wJJJGpCIlZQxiw== X-Received: by 2002:a5d:50cf:: with SMTP id f15mr31528076wrt.381.1576513749432; Mon, 16 Dec 2019 08:29:09 -0800 (PST) Received: from 640k.lan ([93.56.166.5]) by smtp.gmail.com with ESMTPSA id q68sm19962334wme.14.2019.12.16.08.29.08 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 16 Dec 2019 08:29:08 -0800 (PST) From: Paolo Bonzini To: qemu-devel@nongnu.org Subject: [PULL 22/62] qom: add object_new_with_class Date: Mon, 16 Dec 2019 17:28:06 +0100 Message-Id: <1576513726-53700-23-git-send-email-pbonzini@redhat.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1576513726-53700-1-git-send-email-pbonzini@redhat.com> References: <1576513726-53700-1-git-send-email-pbonzini@redhat.com> MIME-Version: 1.0 X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2a00:1450:4864:20::42b 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: , Errors-To: qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Sender: "Qemu-devel" Similar to CPU and machine classes, "-accel" class names are mangled, so we have to first get a class via accel_find and then instantiate it. Provide a new function to instantiate a class without going through object_class_get_name, and use it for CPUs and machines already. Reviewed-by: Marc-André Lureau Signed-off-by: Paolo Bonzini --- accel/accel.c | 4 +--- include/qom/object.h | 12 ++++++++++++ qom/object.c | 5 +++++ target/i386/cpu.c | 8 ++++---- target/s390x/cpu_models.c | 4 ++-- vl.c | 3 +-- 6 files changed, 25 insertions(+), 11 deletions(-) diff --git a/accel/accel.c b/accel/accel.c index 60c3827..dd38a46 100644 --- a/accel/accel.c +++ b/accel/accel.c @@ -48,9 +48,7 @@ AccelClass *accel_find(const char *opt_name) int accel_init_machine(AccelClass *acc, MachineState *ms) { - ObjectClass *oc = OBJECT_CLASS(acc); - const char *cname = object_class_get_name(oc); - AccelState *accel = ACCEL(object_new(cname)); + AccelState *accel = ACCEL(object_new_with_class(OBJECT_CLASS(acc))); int ret; ms->accelerator = accel; *(acc->allowed) = true; diff --git a/include/qom/object.h b/include/qom/object.h index 230b18f..f9ad692 100644 --- a/include/qom/object.h +++ b/include/qom/object.h @@ -593,6 +593,18 @@ struct InterfaceClass __FILE__, __LINE__, __func__)) /** + * object_new_with_class: + * @klass: The class to instantiate. + * + * This function will initialize a new object using heap allocated memory. + * The returned object has a reference count of 1, and will be freed when + * the last reference is dropped. + * + * Returns: The newly allocated and instantiated object. + */ +Object *object_new_with_class(ObjectClass *klass); + +/** * object_new: * @typename: The name of the type of the object to instantiate. * diff --git a/qom/object.c b/qom/object.c index bfb4413..bc444d3 100644 --- a/qom/object.c +++ b/qom/object.c @@ -658,6 +658,11 @@ static Object *object_new_with_type(Type type) return obj; } +Object *object_new_with_class(ObjectClass *klass) +{ + return object_new_with_type(klass->type); +} + Object *object_new(const char *typename) { TypeImpl *ti = type_get_by_name(typename); diff --git a/target/i386/cpu.c b/target/i386/cpu.c index 69f518a..a044078 100644 --- a/target/i386/cpu.c +++ b/target/i386/cpu.c @@ -4640,7 +4640,7 @@ static void x86_cpu_class_check_missing_features(X86CPUClass *xcc, return; } - xc = X86_CPU(object_new(object_class_get_name(OBJECT_CLASS(xcc)))); + xc = X86_CPU(object_new_with_class(OBJECT_CLASS(xcc))); x86_cpu_expand_features(xc, &err); if (err) { @@ -4711,7 +4711,7 @@ static GSList *get_sorted_cpu_model_list(void) static char *x86_cpu_class_get_model_id(X86CPUClass *xc) { - Object *obj = object_new(object_class_get_name(OBJECT_CLASS(xc))); + Object *obj = object_new_with_class(OBJECT_CLASS(xc)); char *r = object_property_get_str(obj, "model-id", &error_abort); object_unref(obj); return r; @@ -5092,7 +5092,7 @@ static X86CPU *x86_cpu_from_model(const char *model, QDict *props, Error **errp) goto out; } - xc = X86_CPU(object_new(object_class_get_name(OBJECT_CLASS(xcc)))); + xc = X86_CPU(object_new_with_class(OBJECT_CLASS(xcc))); if (props) { object_apply_props(OBJECT(xc), props, &err); if (err) { @@ -5936,7 +5936,7 @@ static void x86_cpu_apic_create(X86CPU *cpu, Error **errp) APICCommonState *apic; ObjectClass *apic_class = OBJECT_CLASS(apic_get_class()); - cpu->apic_state = DEVICE(object_new(object_class_get_name(apic_class))); + cpu->apic_state = DEVICE(object_new_with_class(apic_class)); object_property_add_child(OBJECT(cpu), "lapic", OBJECT(cpu->apic_state), &error_abort); diff --git a/target/s390x/cpu_models.c b/target/s390x/cpu_models.c index 7e92fb2..72cf48b 100644 --- a/target/s390x/cpu_models.c +++ b/target/s390x/cpu_models.c @@ -440,7 +440,7 @@ static void create_cpu_model_list(ObjectClass *klass, void *opaque) if (cpu_list_data->model) { Object *obj; S390CPU *sc; - obj = object_new(object_class_get_name(klass)); + obj = object_new_with_class(klass); sc = S390_CPU(obj); if (sc->model) { info->has_unavailable_features = true; @@ -501,7 +501,7 @@ static void cpu_model_from_info(S390CPUModel *model, const CpuModelInfo *info, error_setg(errp, "The CPU definition '%s' requires KVM", info->name); return; } - obj = object_new(object_class_get_name(oc)); + obj = object_new_with_class(oc); cpu = S390_CPU(obj); if (!cpu->model) { diff --git a/vl.c b/vl.c index be3f51c..dab6001 100644 --- a/vl.c +++ b/vl.c @@ -3966,8 +3966,7 @@ int main(int argc, char **argv, char **envp) cleanup_add_fd, NULL, &error_fatal); #endif - current_machine = MACHINE(object_new(object_class_get_name( - OBJECT_CLASS(machine_class)))); + current_machine = MACHINE(object_new_with_class(OBJECT_CLASS(machine_class))); if (machine_help_func(qemu_get_machine_opts(), current_machine)) { exit(0); } From patchwork Mon Dec 16 16:28:07 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Paolo Bonzini X-Patchwork-Id: 11294659 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id B8B0713B6 for ; Mon, 16 Dec 2019 16:57:06 +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 8D063206D7 for ; Mon, 16 Dec 2019 16:57:06 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="Sl5Yi/S/" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 8D063206D7 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=redhat.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Received: from localhost ([::1]:56926 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1igtg9-0006N7-7m for patchwork-qemu-devel@patchwork.kernel.org; Mon, 16 Dec 2019 11:57:05 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:56779) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1igtFB-000560-EI for qemu-devel@nongnu.org; Mon, 16 Dec 2019 11:29:14 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1igtFA-0007VH-91 for qemu-devel@nongnu.org; Mon, 16 Dec 2019 11:29:13 -0500 Received: from mail-wr1-x433.google.com ([2a00:1450:4864:20::433]:41945) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1igtFA-0007TJ-22 for qemu-devel@nongnu.org; Mon, 16 Dec 2019 11:29:12 -0500 Received: by mail-wr1-x433.google.com with SMTP id c9so8037595wrw.8 for ; Mon, 16 Dec 2019 08:29:11 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=E/1LFy6wDBBmXAA/JB6bEc3nrfnmKGczXUnvs9Wqjvo=; b=Sl5Yi/S/arVByrSgAAyiJc7DBwNpLYpoK+646OGHYRnSUIZwRDryf584Ubn3gZCzKl zlP8FTGFurRvgfmCvC3GCuiFJuCLTCNES3rtpU2ruNsW7KD1IdfZqojp86ULLYhlTwM7 aCh/WVYg349ft5RdUbhRTyxejgtt6Fhgxm4N2XLSrbwQyMFV0c2A9CMB8TRiZ/AXluV0 8vgs8MXrIjSbrcF/2epq44Ez/iWcQlVqPjnnZGJARvHx//lIFOsfv8Ft9kZR1Mp8yB5K 3MqlLw98wR+fzT04LKbZ73+jY68mr9v94suRhM9f/kDg5DT5IlI40/mx/EV4Y5gYdXyH 88/A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:subject:date:message-id :in-reply-to:references:mime-version:content-transfer-encoding; bh=E/1LFy6wDBBmXAA/JB6bEc3nrfnmKGczXUnvs9Wqjvo=; b=erC19hdtx/WQjikFIHzpY6zZkmUgVdB6NVRaPnSGyB1aoTTmDWzSdLVjC+j9zgv81j EwDFp6h7SXgpQHBhdHWYHb1uYoEIs0vyxaoOAQAOW9GnSPITatqSCB+tvECTKMOW6FtK 8tk2QHilEQFpWjASSxmmkgaa9pj7BZkJac0SSzJ05B33eWLcdwutx7I1L1FdS4jQp4cM +ceSPTDE/lVGeKf2AihvaiIRPqYMi5Xc6IEFM/r7IGZfY8SonC2fQyvyDzCPQkJUGH3f ldmhwPV+4gvwiJscV7w7YS/tw6Bn2m4t0h/Tm1x97BOfKxWs41uRxcv5zy4MdDg45E4m lXQQ== X-Gm-Message-State: APjAAAXHHx6E/DXtOqEhjYSLXhRDSf6h7DON8pHzAnhkgC3Fy4PRFrJx lIzcFshjAQyDJzlMbcCSfOPd82Mn X-Google-Smtp-Source: APXvYqxWXAJRzppdYxpHkehM90HuzpIHn2yxPAAHF3WVnIIavosVsKoGE1gjjqq5Mp5u/XdeXdflwQ== X-Received: by 2002:a5d:4044:: with SMTP id w4mr31116335wrp.322.1576513750735; Mon, 16 Dec 2019 08:29:10 -0800 (PST) Received: from 640k.lan ([93.56.166.5]) by smtp.gmail.com with ESMTPSA id q68sm19962334wme.14.2019.12.16.08.29.09 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 16 Dec 2019 08:29:10 -0800 (PST) From: Paolo Bonzini To: qemu-devel@nongnu.org Subject: [PULL 23/62] accel: pass object to accel_init_machine Date: Mon, 16 Dec 2019 17:28:07 +0100 Message-Id: <1576513726-53700-24-git-send-email-pbonzini@redhat.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1576513726-53700-1-git-send-email-pbonzini@redhat.com> References: <1576513726-53700-1-git-send-email-pbonzini@redhat.com> MIME-Version: 1.0 X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2a00:1450:4864:20::433 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: , Errors-To: qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Sender: "Qemu-devel" We will have to set QOM properties before accel_init_machine, based on the options provided to -accel. Construct the object outside it so that it will be possible to iterate on properties between object_new_with_class and accel_init_machine. Reviewed-by: Marc-André Lureau Signed-off-by: Paolo Bonzini --- accel/accel.c | 4 ++-- include/sysemu/accel.h | 2 +- vl.c | 4 +++- 3 files changed, 6 insertions(+), 4 deletions(-) diff --git a/accel/accel.c b/accel/accel.c index dd38a46..1c5c3a6 100644 --- a/accel/accel.c +++ b/accel/accel.c @@ -46,9 +46,9 @@ AccelClass *accel_find(const char *opt_name) return ac; } -int accel_init_machine(AccelClass *acc, MachineState *ms) +int accel_init_machine(AccelState *accel, MachineState *ms) { - AccelState *accel = ACCEL(object_new_with_class(OBJECT_CLASS(acc))); + AccelClass *acc = ACCEL_GET_CLASS(accel); int ret; ms->accelerator = accel; *(acc->allowed) = true; diff --git a/include/sysemu/accel.h b/include/sysemu/accel.h index 90b6213..22cac0f 100644 --- a/include/sysemu/accel.h +++ b/include/sysemu/accel.h @@ -67,7 +67,7 @@ typedef struct AccelClass { extern unsigned long tcg_tb_size; AccelClass *accel_find(const char *opt_name); -int accel_init_machine(AccelClass *acc, MachineState *ms); +int accel_init_machine(AccelState *accel, MachineState *ms); /* Called just before os_setup_post (ie just before drop OS privs) */ void accel_setup_post(MachineState *ms); diff --git a/vl.c b/vl.c index dab6001..0378b90 100644 --- a/vl.c +++ b/vl.c @@ -2841,6 +2841,7 @@ static int do_configure_accelerator(void *opaque, QemuOpts *opts, Error **errp) bool *p_init_failed = opaque; const char *acc = qemu_opt_get(opts, "accel"); AccelClass *ac = accel_find(acc); + AccelState *accel; int ret; if (!ac) { @@ -2848,7 +2849,8 @@ static int do_configure_accelerator(void *opaque, QemuOpts *opts, Error **errp) error_report("invalid accelerator %s", acc); return 0; } - ret = accel_init_machine(ac, current_machine); + accel = ACCEL(object_new_with_class(OBJECT_CLASS(ac))); + ret = accel_init_machine(accel, current_machine); if (ret < 0) { *p_init_failed = true; error_report("failed to initialize %s: %s", From patchwork Mon Dec 16 16:28:08 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Paolo Bonzini X-Patchwork-Id: 11294623 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 1383E1593 for ; Mon, 16 Dec 2019 16:42:59 +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 DDAC7206E0 for ; Mon, 16 Dec 2019 16:42:58 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="vCBAvyjb" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org DDAC7206E0 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=redhat.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Received: from localhost ([::1]:56750 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1igtST-0006Ms-K2 for patchwork-qemu-devel@patchwork.kernel.org; Mon, 16 Dec 2019 11:42:57 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:56808) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1igtFC-00057x-Kc for qemu-devel@nongnu.org; Mon, 16 Dec 2019 11:29:15 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1igtFB-0007Xr-4l for qemu-devel@nongnu.org; Mon, 16 Dec 2019 11:29:14 -0500 Received: from mail-wm1-x343.google.com ([2a00:1450:4864:20::343]:37045) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1igtFA-0007VW-TN for qemu-devel@nongnu.org; Mon, 16 Dec 2019 11:29:13 -0500 Received: by mail-wm1-x343.google.com with SMTP id f129so7408548wmf.2 for ; Mon, 16 Dec 2019 08:29:12 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=p7o2n9/PzTThkUIGsul6JE1J+WZ+8RW0aju3sT2a0oM=; b=vCBAvyjbdXIsq3RG5Fxsj80UJgX0iVv0CRKMWQturGfUPTIvVzSv7By86SyicoXUd1 tltWjeanfs40KqQjaFYR9UezDJixjB0xMg5clNbf6/aHpX7zMaytviRRyLEQUFOiCusJ M5CXQWBZq+6OZsAIMcwV0dr7+4oLyal4UsHub9M7OX2RN6ij9OEmo0NwUf8SUWLd7Rqz fveeZWLAsTRpH0zJvDgKKJPFpc40t+E1HAByLht/n03VVLRoj8Np1DfzL7tvcAQkAaAL G+f42pPka33CWoZNoXRt5WKhQKyA9nZRK449hMDhhQhWLEFtMs7XUP9Ma4cRuD+f5dgZ tNEg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:subject:date:message-id :in-reply-to:references:mime-version:content-transfer-encoding; bh=p7o2n9/PzTThkUIGsul6JE1J+WZ+8RW0aju3sT2a0oM=; b=gaJJifC2HMOS3FBEDaW4C3FKomqAjUN9A6YKrLH3FvaCPz2kzSwWMaU8Q0zHLxYAgF 6iEcz5YSTmtyxdd7IJvndi3V8F++oXH8Fq20f/8j4L336+FfWciG0dH17Ay5ucSDdzB5 QaG4mjckvTMRROu/a+N3AB9iV3xXuHsmmcCxulkAcvx1PLOdx6FKvGxYfihh1ZfK9tN4 dSJYkDGw0cHNIqqcsanQkBBTYIsR0IoUR+rSA7DJ5uKweM+59SLXeAVVpaMC1WKbktPO U6u/L93xQHAq+6F3Yy/znjjbET0aUlp34cg7kcPjgTA4UdrbQ1ODdjfuNHaYS3rzElDE qAyQ== X-Gm-Message-State: APjAAAWrTgDdqLjv2KKChr7a4xNwhePc3hhQwbJVC3vdHP8znglrA0oN RoZui74l6DukDRGquKonkKkMHOG4 X-Google-Smtp-Source: APXvYqx5ZiEbEwVYqoOYAY8yR7pqoD8frrMmNrpzpwxpcL/qLSxl2wJ6gta/KNR2FzdQcX1u9gnDZQ== X-Received: by 2002:a1c:740b:: with SMTP id p11mr33183560wmc.78.1576513751689; Mon, 16 Dec 2019 08:29:11 -0800 (PST) Received: from 640k.lan ([93.56.166.5]) by smtp.gmail.com with ESMTPSA id q68sm19962334wme.14.2019.12.16.08.29.10 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 16 Dec 2019 08:29:11 -0800 (PST) From: Paolo Bonzini To: qemu-devel@nongnu.org Subject: [PULL 24/62] tcg: convert "-accel threads" to a QOM property Date: Mon, 16 Dec 2019 17:28:08 +0100 Message-Id: <1576513726-53700-25-git-send-email-pbonzini@redhat.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1576513726-53700-1-git-send-email-pbonzini@redhat.com> References: <1576513726-53700-1-git-send-email-pbonzini@redhat.com> MIME-Version: 1.0 X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2a00:1450:4864:20::343 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: , Errors-To: qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Sender: "Qemu-devel" Replace the ad-hoc qemu_tcg_configure with generic code invoking QOM property getters and setters. More properties (and thus more valid -accel suboptions) will be added in the next patches, which will move accelerator-related "-machine" options to accelerators. Reviewed-by: Marc-André Lureau Signed-off-by: Paolo Bonzini --- accel/tcg/tcg-all.c | 52 +++++++++++++++++++++++++++++++++++++-------------- include/sysemu/cpus.h | 2 -- vl.c | 32 ++++++++++++++++--------------- 3 files changed, 55 insertions(+), 31 deletions(-) diff --git a/accel/tcg/tcg-all.c b/accel/tcg/tcg-all.c index 6b000f0..7829f02 100644 --- a/accel/tcg/tcg-all.c +++ b/accel/tcg/tcg-all.c @@ -34,7 +34,17 @@ #include "include/qapi/error.h" #include "include/qemu/error-report.h" #include "include/hw/boards.h" -#include "qemu/option.h" + +typedef struct TCGState { + AccelState parent_obj; + + bool mttcg_enabled; +} TCGState; + +#define TYPE_TCG_ACCEL ACCEL_CLASS_NAME("tcg") + +#define TCG_STATE(obj) \ + OBJECT_CHECK(TCGState, (obj), TYPE_TCG_ACCEL) unsigned long tcg_tb_size; @@ -107,23 +117,33 @@ static bool default_mttcg_enabled(void) static void tcg_accel_instance_init(Object *obj) { - mttcg_enabled = default_mttcg_enabled(); + TCGState *s = TCG_STATE(obj); + + s->mttcg_enabled = default_mttcg_enabled(); } static int tcg_init(MachineState *ms) { + TCGState *s = TCG_STATE(current_machine->accelerator); + tcg_exec_init(tcg_tb_size * 1024 * 1024); cpu_interrupt_handler = tcg_handle_interrupt; + mttcg_enabled = s->mttcg_enabled; return 0; } -void qemu_tcg_configure(QemuOpts *opts, Error **errp) +static char *tcg_get_thread(Object *obj, Error **errp) { - const char *t = qemu_opt_get(opts, "thread"); - if (!t) { - return; - } - if (strcmp(t, "multi") == 0) { + TCGState *s = TCG_STATE(obj); + + return g_strdup(s->mttcg_enabled ? "multi" : "single"); +} + +static void tcg_set_thread(Object *obj, const char *value, Error **errp) +{ + TCGState *s = TCG_STATE(obj); + + if (strcmp(value, "multi") == 0) { if (TCG_OVERSIZED_GUEST) { error_setg(errp, "No MTTCG when guest word size > hosts"); } else if (use_icount) { @@ -138,12 +158,12 @@ void qemu_tcg_configure(QemuOpts *opts, Error **errp) "than the host provides"); error_printf("This may cause strange/hard to debug errors\n"); } - mttcg_enabled = true; + s->mttcg_enabled = true; } - } else if (strcmp(t, "single") == 0) { - mttcg_enabled = false; + } else if (strcmp(value, "single") == 0) { + s->mttcg_enabled = false; } else { - error_setg(errp, "Invalid 'thread' setting %s", t); + error_setg(errp, "Invalid 'thread' setting %s", value); } } @@ -153,15 +173,19 @@ static void tcg_accel_class_init(ObjectClass *oc, void *data) ac->name = "tcg"; ac->init_machine = tcg_init; ac->allowed = &tcg_allowed; -} -#define TYPE_TCG_ACCEL ACCEL_CLASS_NAME("tcg") + object_class_property_add_str(oc, "thread", + tcg_get_thread, + tcg_set_thread, + NULL); +} static const TypeInfo tcg_accel_type = { .name = TYPE_TCG_ACCEL, .parent = TYPE_ACCEL, .instance_init = tcg_accel_instance_init, .class_init = tcg_accel_class_init, + .instance_size = sizeof(TCGState), }; static void register_accel_types(void) diff --git a/include/sysemu/cpus.h b/include/sysemu/cpus.h index 32c05f2..3c1da6a 100644 --- a/include/sysemu/cpus.h +++ b/include/sysemu/cpus.h @@ -40,6 +40,4 @@ extern int smp_threads; void list_cpus(const char *optarg); -void qemu_tcg_configure(QemuOpts *opts, Error **errp); - #endif diff --git a/vl.c b/vl.c index 0378b90..d581f11 100644 --- a/vl.c +++ b/vl.c @@ -295,17 +295,12 @@ static QemuOptsList qemu_accel_opts = { .implied_opt_name = "accel", .head = QTAILQ_HEAD_INITIALIZER(qemu_accel_opts.head), .desc = { - { - .name = "accel", - .type = QEMU_OPT_STRING, - .help = "Select the type of accelerator", - }, - { - .name = "thread", - .type = QEMU_OPT_STRING, - .help = "Enable/disable multi-threaded TCG", - }, - { /* end of list */ } + /* + * no elements => accept any + * sanity checking will happen later + * when setting accelerator properties + */ + { } }, }; @@ -2836,6 +2831,13 @@ static int do_configure_icount(void *opaque, QemuOpts *opts, Error **errp) return 0; } +static int accelerator_set_property(void *opaque, + const char *name, const char *value, + Error **errp) +{ + return object_parse_property_opt(opaque, name, value, "accel", errp); +} + static int do_configure_accelerator(void *opaque, QemuOpts *opts, Error **errp) { bool *p_init_failed = opaque; @@ -2850,6 +2852,10 @@ static int do_configure_accelerator(void *opaque, QemuOpts *opts, Error **errp) return 0; } accel = ACCEL(object_new_with_class(OBJECT_CLASS(ac))); + qemu_opt_foreach(opts, accelerator_set_property, + accel, + &error_fatal); + ret = accel_init_machine(accel, current_machine); if (ret < 0) { *p_init_failed = true; @@ -2857,10 +2863,6 @@ static int do_configure_accelerator(void *opaque, QemuOpts *opts, Error **errp) acc, strerror(-ret)); return 0; } - - if (tcg_enabled()) { - qemu_tcg_configure(opts, &error_fatal); - } return 1; } From patchwork Mon Dec 16 16:28:09 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Paolo Bonzini X-Patchwork-Id: 11294667 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id AE3A3930 for ; Mon, 16 Dec 2019 16:59:32 +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 843AC206D7 for ; Mon, 16 Dec 2019 16:59:32 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="ji6J7r7h" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 843AC206D7 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=redhat.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Received: from localhost ([::1]:56962 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1igtiV-0001aR-H5 for patchwork-qemu-devel@patchwork.kernel.org; Mon, 16 Dec 2019 11:59:31 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:56840) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1igtFD-0005AC-TR for qemu-devel@nongnu.org; Mon, 16 Dec 2019 11:29:17 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1igtFC-0007aG-94 for qemu-devel@nongnu.org; Mon, 16 Dec 2019 11:29:15 -0500 Received: from mail-wm1-x335.google.com ([2a00:1450:4864:20::335]:39555) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1igtFC-0007YD-1p for qemu-devel@nongnu.org; Mon, 16 Dec 2019 11:29:14 -0500 Received: by mail-wm1-x335.google.com with SMTP id b72so5374865wme.4 for ; Mon, 16 Dec 2019 08:29:13 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:subject:date:message-id:in-reply-to:references; bh=0Cpi1287GGWHvyBNy+vGPxUf2GO/p5HLXKTXJOTnAF8=; b=ji6J7r7hiL1P2RQcCPyB5YOci6KhAmtK5h0roh8/2Er04fSjXUuwjA6Xqyqa/UrJQP co/XPYNBbgd41qH+0LYMYHYvzCAw5XGn/7Nv2FHv+X8Jjg4mPrG7PJl7V05qWw29p/Oc 5/azRwWQNnAzYmwU8aiadmeZVgiBUjHoJiSg5e2hK0tg7spBr3fEYhAIA58egzCO6zcn OpqAnTRspyShBZ15Zx6dNLjJnQvR/2j2mxW6QEmEPjEI2dh9OA5ScC4qvPwJdE37LDAU 5NZ3S6jAbf5tI4Wit9omk6uBNvow0dHe+pIbEKZFR4MYNeYO3+PBcq9LOlmb0gOhqiSb ZAWA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:subject:date:message-id :in-reply-to:references; bh=0Cpi1287GGWHvyBNy+vGPxUf2GO/p5HLXKTXJOTnAF8=; b=TJ7V3pFIRA80Vl1Nl58dUQpo6Kb2c+qDl0RBLVaIUK2ifGMeHKCIJ4snRJbJCPNz8n X0a2Iiv3PrO8OraVxwS63MbUkBCiybdawLd4rvjxzu9MIMr0M+6nNoTFAyCiAJDmdIM/ 83TvWuPcxnQ7hej6+NTrVAiGxN4ZjvoItevaQZyz6cuMXA3hbhlmIMrkXfLeXLcctfhT YumCaISwTEM2GYVJ7CdKNgACNGAQf4JqOJqBnC4skdYrYs0xqeW67IlxyHxGw/vok324 tyTyeungV68HIN9HK3fmkLOgz7QhrH3MyLUx+2s5LRpaAS28MyAU/Youf8YyI3P+nkZb Jnkg== X-Gm-Message-State: APjAAAWkUsJ+qUOUARLZzoA8Mjn83r5KESnaieujBKEGsoIaOQLCiSVe WBqljQShhZhB2RiwpMXxfY68ftaQ X-Google-Smtp-Source: APXvYqxyWbVJWEU7QBkOL6o8/IRh+DIiZCp8H5PHMfGQVyG1pLywGey2i3h9r6K77INmBfOLALI6RQ== X-Received: by 2002:a1c:ed0e:: with SMTP id l14mr30230489wmh.74.1576513752708; Mon, 16 Dec 2019 08:29:12 -0800 (PST) Received: from 640k.lan ([93.56.166.5]) by smtp.gmail.com with ESMTPSA id q68sm19962334wme.14.2019.12.16.08.29.11 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 16 Dec 2019 08:29:11 -0800 (PST) From: Paolo Bonzini To: qemu-devel@nongnu.org Subject: [PULL 25/62] tcg: add "-accel tcg,tb-size" and deprecate "-tb-size" Date: Mon, 16 Dec 2019 17:28:09 +0100 Message-Id: <1576513726-53700-26-git-send-email-pbonzini@redhat.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1576513726-53700-1-git-send-email-pbonzini@redhat.com> References: <1576513726-53700-1-git-send-email-pbonzini@redhat.com> X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2a00:1450:4864:20::335 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: , Errors-To: qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Sender: "Qemu-devel" -tb-size fits nicely in the new framework for accelerator-specific options. It is a very niche option, so insta-deprecate it. Signed-off-by: Paolo Bonzini --- accel/tcg/tcg-all.c | 40 +++++++++++++++++++++++++++++++++++++--- include/sysemu/accel.h | 2 -- qemu-deprecated.texi | 6 ++++++ qemu-options.hx | 8 ++++++-- vl.c | 8 ++++---- 5 files changed, 53 insertions(+), 11 deletions(-) diff --git a/accel/tcg/tcg-all.c b/accel/tcg/tcg-all.c index 7829f02..1dc384c 100644 --- a/accel/tcg/tcg-all.c +++ b/accel/tcg/tcg-all.c @@ -34,11 +34,13 @@ #include "include/qapi/error.h" #include "include/qemu/error-report.h" #include "include/hw/boards.h" +#include "qapi/qapi-builtin-visit.h" typedef struct TCGState { AccelState parent_obj; bool mttcg_enabled; + unsigned long tb_size; } TCGState; #define TYPE_TCG_ACCEL ACCEL_CLASS_NAME("tcg") @@ -46,8 +48,6 @@ typedef struct TCGState { #define TCG_STATE(obj) \ OBJECT_CHECK(TCGState, (obj), TYPE_TCG_ACCEL) -unsigned long tcg_tb_size; - /* mask must never be zero, except for A20 change call */ static void tcg_handle_interrupt(CPUState *cpu, int mask) { @@ -126,7 +126,7 @@ static int tcg_init(MachineState *ms) { TCGState *s = TCG_STATE(current_machine->accelerator); - tcg_exec_init(tcg_tb_size * 1024 * 1024); + tcg_exec_init(s->tb_size * 1024 * 1024); cpu_interrupt_handler = tcg_handle_interrupt; mttcg_enabled = s->mttcg_enabled; return 0; @@ -167,6 +167,33 @@ static void tcg_set_thread(Object *obj, const char *value, Error **errp) } } +static void tcg_get_tb_size(Object *obj, Visitor *v, + const char *name, void *opaque, + Error **errp) +{ + TCGState *s = TCG_STATE(obj); + uint32_t value = s->tb_size; + + visit_type_uint32(v, name, &value, errp); +} + +static void tcg_set_tb_size(Object *obj, Visitor *v, + const char *name, void *opaque, + Error **errp) +{ + TCGState *s = TCG_STATE(obj); + Error *error = NULL; + uint32_t value; + + visit_type_uint32(v, name, &value, &error); + if (error) { + error_propagate(errp, error); + return; + } + + s->tb_size = value; +} + static void tcg_accel_class_init(ObjectClass *oc, void *data) { AccelClass *ac = ACCEL_CLASS(oc); @@ -178,6 +205,13 @@ static void tcg_accel_class_init(ObjectClass *oc, void *data) tcg_get_thread, tcg_set_thread, NULL); + + object_class_property_add(oc, "tb-size", "int", + tcg_get_tb_size, tcg_set_tb_size, + NULL, NULL, &error_abort); + object_class_property_set_description(oc, "tb-size", + "TCG translation block cache size", &error_abort); + } static const TypeInfo tcg_accel_type = { diff --git a/include/sysemu/accel.h b/include/sysemu/accel.h index 22cac0f..d4c1429 100644 --- a/include/sysemu/accel.h +++ b/include/sysemu/accel.h @@ -64,8 +64,6 @@ typedef struct AccelClass { #define ACCEL_GET_CLASS(obj) \ OBJECT_GET_CLASS(AccelClass, (obj), TYPE_ACCEL) -extern unsigned long tcg_tb_size; - AccelClass *accel_find(const char *opt_name); int accel_init_machine(AccelState *accel, MachineState *ms); diff --git a/qemu-deprecated.texi b/qemu-deprecated.texi index 8471eef..958d9f1 100644 --- a/qemu-deprecated.texi +++ b/qemu-deprecated.texi @@ -142,6 +142,12 @@ QEMU 4.1 has three options, please migrate to one of these three: to do is specify the kernel they want to boot with the -kernel option 3. ``-bios `` - Tells QEMU to load the specified file as the firmwrae. +@subsection -tb-size option (since 5.0) + +QEMU 5.0 introduced an alternative syntax to specify the size of the translation +block cache, @option{-accel tcg,tb-size=}. The new syntax deprecates the +previously available @option{-tb-size} option. + @section QEMU Machine Protocol (QMP) commands @subsection change (since 2.5.0) diff --git a/qemu-options.hx b/qemu-options.hx index 3ff8c4e..6cd61dd 100644 --- a/qemu-options.hx +++ b/qemu-options.hx @@ -118,8 +118,9 @@ Select CPU model (@code{-cpu help} for list and additional feature selection) ETEXI DEF("accel", HAS_ARG, QEMU_OPTION_accel, - "-accel [accel=]accelerator[,thread=single|multi]\n" + "-accel [accel=]accelerator[,prop[=value][,...]]\n" " select accelerator (kvm, xen, hax, hvf, whpx or tcg; use 'help' for a list)\n" + " tb-size=n (TCG translation block cache size)\n" " thread=single|multi (enable multi-threaded TCG)\n", QEMU_ARCH_ALL) STEXI @item -accel @var{name}[,prop=@var{value}[,...]] @@ -129,6 +130,8 @@ kvm, xen, hax, hvf, whpx or tcg can be available. By default, tcg is used. If th more than one accelerator specified, the next one is used if the previous one fails to initialize. @table @option +@item tb-size=@var{n} +Controls the size (in MiB) of the TCG translation block cache. @item thread=single|multi Controls number of TCG threads. When the TCG is multi-threaded there will be one thread per vCPU therefor taking advantage of additional host cores. The default @@ -4002,7 +4005,8 @@ DEF("tb-size", HAS_ARG, QEMU_OPTION_tb_size, \ STEXI @item -tb-size @var{n} @findex -tb-size -Set TB size. +Set TCG translation block cache size. Deprecated, use @samp{-accel tcg,tb-size=@var{n}} +instead. ETEXI DEF("incoming", HAS_ARG, QEMU_OPTION_incoming, \ diff --git a/vl.c b/vl.c index d581f11..6eb885b 100644 --- a/vl.c +++ b/vl.c @@ -2852,6 +2852,7 @@ static int do_configure_accelerator(void *opaque, QemuOpts *opts, Error **errp) return 0; } accel = ACCEL(object_new_with_class(OBJECT_CLASS(ac))); + object_apply_compat_props(OBJECT(accel)); qemu_opt_foreach(opts, accelerator_set_property, accel, &error_fatal); @@ -2863,6 +2864,7 @@ static int do_configure_accelerator(void *opaque, QemuOpts *opts, Error **errp) acc, strerror(-ret)); return 0; } + return 1; } @@ -3722,10 +3724,8 @@ int main(int argc, char **argv, char **envp) error_report("TCG is disabled"); exit(1); #endif - if (qemu_strtoul(optarg, NULL, 0, &tcg_tb_size) < 0) { - error_report("Invalid argument to -tb-size"); - exit(1); - } + warn_report("The -tb-size option is deprecated, use -accel tcg,tb-size instead"); + object_register_sugar_prop(ACCEL_CLASS_NAME("tcg"), "tb-size", optarg); break; case QEMU_OPTION_icount: icount_opts = qemu_opts_parse_noisily(qemu_find_opts("icount"), From patchwork Mon Dec 16 16:28:10 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Paolo Bonzini X-Patchwork-Id: 11294675 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 4B0F11580 for ; Mon, 16 Dec 2019 17:03:21 +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 20476206D7 for ; Mon, 16 Dec 2019 17:03:21 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="bgD8GBdh" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 20476206D7 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=redhat.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Received: from localhost ([::1]:57012 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1igtmB-0005Qu-Qp for patchwork-qemu-devel@patchwork.kernel.org; Mon, 16 Dec 2019 12:03:19 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:56861) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1igtFE-0005By-Tc for qemu-devel@nongnu.org; Mon, 16 Dec 2019 11:29:18 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1igtFD-0007dG-BI for qemu-devel@nongnu.org; Mon, 16 Dec 2019 11:29:16 -0500 Received: from mail-wm1-x344.google.com ([2a00:1450:4864:20::344]:53507) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1igtFD-0007av-3u for qemu-devel@nongnu.org; Mon, 16 Dec 2019 11:29:15 -0500 Received: by mail-wm1-x344.google.com with SMTP id m24so6035390wmc.3 for ; Mon, 16 Dec 2019 08:29:15 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:subject:date:message-id:in-reply-to:references; bh=NVo33N0FsKPj4cNIkeQafvuALm/KQiBH5T2GSzmJXco=; b=bgD8GBdhRu825gSUvICJw/RmoPcpgFYWFfUg46yXL0Xt9dErQuc3sRCvAJFrdJLCjC G4yX8O7+5B/+BU3Q0Qwst5e9fDYjrgtCSrujTrGE9yVVZsu9FNufLoeiMfGh36gkNZIm 3jnzluz+cGoAwmdgVi4A+vmYjoIZiSDlRNmjv+VAKiVZwSyDheQCGEA+rgB5dn4GqKXC N97vToH2BwT7nkFmcmWlvDdw+cgDHfnfRqZzb8O0sdSb1+0xzmeAtgHSV+0/1mABBhCS /Sihs80pJ4CIbb/OF7DStu3qaqcjpOPvtYbUpTHyj8KXFQAZVYttYU9AJUBnQt737Idz jssQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:subject:date:message-id :in-reply-to:references; bh=NVo33N0FsKPj4cNIkeQafvuALm/KQiBH5T2GSzmJXco=; b=Iiu6fo/9CTHoSPJAWGmy97oKgEaOjbT+KwCsvIrRgATbezIJwgFDjVqTQbH0y2mJGj /qXWzcC+/G3oCBcHgRRBMYXZgw9ptktcWSwWV1mG4cIGg/PN4XwmfLU0qaac/Zwrt/vr BBEIo6NQdB6hJWioxsibFZYmG6XvjEW909/D1Y4FfvARFgdZ58zY9XGGxcZFYkPTWL9Q MWdsjFQu24v9aJzwis+cATqiKBytXz++fv0vl/1h6i48x1Z6wGx2qqERrlQG1VbkebAw 10umq3BtAVGfpqFd86juHXvxJPW8sy32BnKlQ3gHhphuRslf4hTb3iqakDTxr50215qc nJuQ== X-Gm-Message-State: APjAAAWe6x2C7sJUmb0MULAu24nv/ENsEo3cfNq5ueAC1uLjsyqqj0Ut pvqwlVpKtweBr5eigG63jMu5AJ0d X-Google-Smtp-Source: APXvYqxZfivsH4Tq2WFSXZF0iwy+lQRXaZVg4J+DkYPGMdu6SoD25rTC6YZXZVZip+izMwcgC3tULQ== X-Received: by 2002:a7b:c001:: with SMTP id c1mr31658408wmb.96.1576513753709; Mon, 16 Dec 2019 08:29:13 -0800 (PST) Received: from 640k.lan ([93.56.166.5]) by smtp.gmail.com with ESMTPSA id q68sm19962334wme.14.2019.12.16.08.29.12 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 16 Dec 2019 08:29:12 -0800 (PST) From: Paolo Bonzini To: qemu-devel@nongnu.org Subject: [PULL 26/62] xen: convert "-machine igd-passthru" to an accelerator property Date: Mon, 16 Dec 2019 17:28:10 +0100 Message-Id: <1576513726-53700-27-git-send-email-pbonzini@redhat.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1576513726-53700-1-git-send-email-pbonzini@redhat.com> References: <1576513726-53700-1-git-send-email-pbonzini@redhat.com> X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2a00:1450:4864:20::344 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: , Errors-To: qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Sender: "Qemu-devel" The first machine property to fall is Xen's Intel integrated graphics passthrough. The "-machine igd-passthru" option does not set anymore a property on the machine object, but desugars to a GlobalProperty on accelerator objects. The setter is very simple, since the value ends up in a global variable, so this patch also provides an example before the more complicated cases that follow it. Signed-off-by: Paolo Bonzini --- hw/core/machine.c | 20 -------------------- hw/xen/xen-common.c | 18 ++++++++++++++++++ hw/xen/xen_pt.c | 2 ++ include/hw/boards.h | 1 - qemu-options.hx | 7 ++++--- vl.c | 14 ++++---------- 6 files changed, 28 insertions(+), 34 deletions(-) diff --git a/hw/core/machine.c b/hw/core/machine.c index e661fa6..05cea3a 100644 --- a/hw/core/machine.c +++ b/hw/core/machine.c @@ -417,20 +417,6 @@ static void machine_set_graphics(Object *obj, bool value, Error **errp) ms->enable_graphics = value; } -static bool machine_get_igd_gfx_passthru(Object *obj, Error **errp) -{ - MachineState *ms = MACHINE(obj); - - return ms->igd_gfx_passthru; -} - -static void machine_set_igd_gfx_passthru(Object *obj, bool value, Error **errp) -{ - MachineState *ms = MACHINE(obj); - - ms->igd_gfx_passthru = value; -} - static char *machine_get_firmware(Object *obj, Error **errp) { MachineState *ms = MACHINE(obj); @@ -867,12 +853,6 @@ static void machine_class_init(ObjectClass *oc, void *data) object_class_property_set_description(oc, "graphics", "Set on/off to enable/disable graphics emulation", &error_abort); - object_class_property_add_bool(oc, "igd-passthru", - machine_get_igd_gfx_passthru, machine_set_igd_gfx_passthru, - &error_abort); - object_class_property_set_description(oc, "igd-passthru", - "Set on/off to enable/disable igd passthrou", &error_abort); - object_class_property_add_str(oc, "firmware", machine_get_firmware, machine_set_firmware, &error_abort); diff --git a/hw/xen/xen-common.c b/hw/xen/xen-common.c index 5284b0d..15650d7 100644 --- a/hw/xen/xen-common.c +++ b/hw/xen/xen-common.c @@ -11,7 +11,9 @@ #include "qemu/osdep.h" #include "qemu/error-report.h" #include "qemu/module.h" +#include "qapi/error.h" #include "hw/xen/xen-legacy-backend.h" +#include "hw/xen/xen_pt.h" #include "chardev/char.h" #include "sysemu/accel.h" #include "sysemu/runstate.h" @@ -124,6 +126,16 @@ static void xen_change_state_handler(void *opaque, int running, } } +static bool xen_get_igd_gfx_passthru(Object *obj, Error **errp) +{ + return has_igd_gfx_passthru; +} + +static void xen_set_igd_gfx_passthru(Object *obj, bool value, Error **errp) +{ + has_igd_gfx_passthru = value; +} + static void xen_setup_post(MachineState *ms, AccelState *accel) { int rc; @@ -177,6 +189,12 @@ static void xen_accel_class_init(ObjectClass *oc, void *data) ac->compat_props = g_ptr_array_new(); compat_props_add(ac->compat_props, compat, G_N_ELEMENTS(compat)); + + object_class_property_add_bool(oc, "igd-passthru", + xen_get_igd_gfx_passthru, xen_set_igd_gfx_passthru, + &error_abort); + object_class_property_set_description(oc, "igd-passthru", + "Set on/off to enable/disable igd passthrou", &error_abort); } #define TYPE_XEN_ACCEL ACCEL_CLASS_NAME("xen") diff --git a/hw/xen/xen_pt.c b/hw/xen/xen_pt.c index 8fbaf2e..9e767d4 100644 --- a/hw/xen/xen_pt.c +++ b/hw/xen/xen_pt.c @@ -65,6 +65,8 @@ #include "qemu/range.h" #include "exec/address-spaces.h" +bool has_igd_gfx_passthru; + #define XEN_PT_NR_IRQS (256) static uint8_t xen_pt_mapped_machine_irq[XEN_PT_NR_IRQS] = {0}; diff --git a/include/hw/boards.h b/include/hw/boards.h index 96f2084..5025c1a 100644 --- a/include/hw/boards.h +++ b/include/hw/boards.h @@ -287,7 +287,6 @@ struct MachineState { bool mem_merge; bool usb; bool usb_disabled; - bool igd_gfx_passthru; char *firmware; bool iommu; bool suppress_vmdesc; diff --git a/qemu-options.hx b/qemu-options.hx index 6cd61dd..7278e59 100644 --- a/qemu-options.hx +++ b/qemu-options.hx @@ -37,7 +37,6 @@ DEF("machine", HAS_ARG, QEMU_OPTION_machine, \ " kvm_shadow_mem=size of KVM shadow MMU in bytes\n" " dump-guest-core=on|off include guest memory in a core dump (default=on)\n" " mem-merge=on|off controls memory merge support (default: on)\n" - " igd-passthru=on|off controls IGD GFX passthrough support (default=off)\n" " aes-key-wrap=on|off controls support for AES key wrapping (default=on)\n" " dea-key-wrap=on|off controls support for DEA key wrapping (default=on)\n" " suppress-vmdesc=on|off disables self-describing migration (default=off)\n" @@ -71,8 +70,6 @@ more than one accelerator specified, the next one is used if the previous one fails to initialize. @item kernel_irqchip=on|off Controls in-kernel irqchip support for the chosen accelerator when available. -@item gfx_passthru=on|off -Enables IGD GFX passthrough support for the chosen machine when available. @item vmport=on|off|auto Enables emulation of VMWare IO port, for vmmouse etc. auto says to select the value based on accel. For accel=xen the default is off otherwise the default @@ -120,6 +117,7 @@ ETEXI DEF("accel", HAS_ARG, QEMU_OPTION_accel, "-accel [accel=]accelerator[,prop[=value][,...]]\n" " select accelerator (kvm, xen, hax, hvf, whpx or tcg; use 'help' for a list)\n" + " igd-passthru=on|off (enable Xen integrated Intel graphics passthrough, default=off)\n" " tb-size=n (TCG translation block cache size)\n" " thread=single|multi (enable multi-threaded TCG)\n", QEMU_ARCH_ALL) STEXI @@ -130,6 +128,9 @@ kvm, xen, hax, hvf, whpx or tcg can be available. By default, tcg is used. If th more than one accelerator specified, the next one is used if the previous one fails to initialize. @table @option +@item igd-passthru=on|off +When Xen is in use, this option controls whether Intel integrated graphics +devices can be passed through to the guest (default=off) @item tb-size=@var{n} Controls the size (in MiB) of the TCG translation block cache. @item thread=single|multi diff --git a/vl.c b/vl.c index 6eb885b..c02d486 100644 --- a/vl.c +++ b/vl.c @@ -1257,13 +1257,6 @@ static void configure_msg(QemuOpts *opts) } -/* Now we still need this for compatibility with XEN. */ -bool has_igd_gfx_passthru; -static void igd_gfx_passthru(void) -{ - has_igd_gfx_passthru = current_machine->igd_gfx_passthru; -} - /***********************************************************/ /* USB devices */ @@ -2642,6 +2635,10 @@ static int machine_set_property(void *opaque, if (g_str_equal(qom_name, "accel")) { return 0; } + if (g_str_equal(qom_name, "igd-passthru")) { + object_register_sugar_prop(ACCEL_CLASS_NAME("xen"), qom_name, value); + return 0; + } return object_parse_property_opt(opaque, name, value, "type", errp); } @@ -4433,9 +4430,6 @@ int main(int argc, char **argv, char **envp) exit(1); } - /* Check if IGD GFX passthrough. */ - igd_gfx_passthru(); - /* init generic devices */ rom_set_order_override(FW_CFG_ORDER_OVERRIDE_DEVICE); qemu_opts_foreach(qemu_find_opts("device"), From patchwork Mon Dec 16 16:28:11 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Paolo Bonzini X-Patchwork-Id: 11294629 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 5DE13138D for ; Mon, 16 Dec 2019 16:46:11 +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 31316206E0 for ; Mon, 16 Dec 2019 16:46:11 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="qERlu/aE" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 31316206E0 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=redhat.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Received: from localhost ([::1]:56798 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1igtVZ-0001T2-Py for patchwork-qemu-devel@patchwork.kernel.org; Mon, 16 Dec 2019 11:46:09 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:56885) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1igtFG-0005Dw-2n for qemu-devel@nongnu.org; Mon, 16 Dec 2019 11:29:19 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1igtFE-0007fG-91 for qemu-devel@nongnu.org; Mon, 16 Dec 2019 11:29:17 -0500 Received: from mail-wr1-x431.google.com ([2a00:1450:4864:20::431]:33130) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1igtFE-0007dl-1M for qemu-devel@nongnu.org; Mon, 16 Dec 2019 11:29:16 -0500 Received: by mail-wr1-x431.google.com with SMTP id b6so8071668wrq.0 for ; Mon, 16 Dec 2019 08:29:15 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:subject:date:message-id:in-reply-to:references; bh=Q1WAo2yDT486jlycXTa/AgcK9zOn2J/g65TvltkYtYk=; b=qERlu/aElfl7BbCt4LHH99SvnRrn+xYPy1rrpRW6BVMJzaxjpJykf0ShJBonatBqGX IPNMSIGsXFEEbadTZ1k4DUU3kxbDdPRK+YPD3WlTqoxyTUSkH5GoXZcUr7g8ac5xoiy3 G87aWfWybg8clyT1UoRVBcWOcJ/SCVvdwadzl58vXACyyQxnoRDLIEzEIGfTw3ISS4Ja N3AUPkYupFlQbXdnxFsSaF9LWH7aTj2fgh6IEMMu2cUfUWRMJULImb7TvIWqWjHOJJnP GW9CX5JdVTUdzx5TbXURGWXN2/4M1yGC8xWa3Ewo3quh4jPDIVa9aal+prC3HapK3Xpw h42w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:subject:date:message-id :in-reply-to:references; bh=Q1WAo2yDT486jlycXTa/AgcK9zOn2J/g65TvltkYtYk=; b=dM6ZPV/0MCwbtcn2DgMqpDmMCo5KaYKR3D16CthRjbye71LFXY6CHprkinVjCGtGxi bHqefqs0LUkAkjdRqWpLHVVmZlvYis0HPsE9vedZBLXzT4yN2Q7rUj4r+yuUCOVNAZXe EyDuAJrQx7WtPlkkQPq/TQfmKa3LZZmewmKmhQXCoCBjIVcAUGlZkhrJI03W1798PvAa VK/3egDXoseK+eeHDQrjFSOw7Rj63pdjtHPfd1VPpUB0wETPL/yVJOU7kxzfsn/1lLq4 aydxxRPkVtU17raa4Pc4zjQaadSVjmqhJ/L2cXf59lP0uXNm3GU46Ywg/LTOkIAwLM2N pZVg== X-Gm-Message-State: APjAAAUfL8dP5r1G4esRuhLvlyfjjvJvWacE05D236+WjU95l8O0ghxV eV/jD2Ktxw+gWCnYXZsDyC/r8VG0 X-Google-Smtp-Source: APXvYqwhRPTt4pcKTXHqSa260gqGksyBXaCREACymZdXGtzygPDnDqTE4llClq89LgvesvDzen+9aQ== X-Received: by 2002:a5d:53c1:: with SMTP id a1mr30043998wrw.373.1576513754804; Mon, 16 Dec 2019 08:29:14 -0800 (PST) Received: from 640k.lan ([93.56.166.5]) by smtp.gmail.com with ESMTPSA id q68sm19962334wme.14.2019.12.16.08.29.13 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 16 Dec 2019 08:29:13 -0800 (PST) From: Paolo Bonzini To: qemu-devel@nongnu.org Subject: [PULL 27/62] kvm: convert "-machine kvm_shadow_mem" to an accelerator property Date: Mon, 16 Dec 2019 17:28:11 +0100 Message-Id: <1576513726-53700-28-git-send-email-pbonzini@redhat.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1576513726-53700-1-git-send-email-pbonzini@redhat.com> References: <1576513726-53700-1-git-send-email-pbonzini@redhat.com> X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2a00:1450:4864:20::431 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: , Errors-To: qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Sender: "Qemu-devel" Signed-off-by: Paolo Bonzini --- accel/kvm/kvm-all.c | 43 +++++++++++++++++++++++++++++++++++++++++++ hw/core/machine.c | 39 --------------------------------------- include/hw/boards.h | 2 -- qemu-options.hx | 6 +++--- target/i386/kvm.c | 2 +- vl.c | 4 ++++ 6 files changed, 51 insertions(+), 45 deletions(-) diff --git a/accel/kvm/kvm-all.c b/accel/kvm/kvm-all.c index 7b9f92d..4770dd8 100644 --- a/accel/kvm/kvm-all.c +++ b/accel/kvm/kvm-all.c @@ -41,6 +41,7 @@ #include "hw/irq.h" #include "sysemu/sev.h" #include "sysemu/balloon.h" +#include "qapi/visitor.h" #include "hw/boards.h" @@ -92,6 +93,7 @@ struct KVMState int max_nested_state_len; int many_ioeventfds; int intx_set_mask; + int kvm_shadow_mem; bool sync_mmu; bool manual_dirty_log_protect; /* The man page (and posix) say ioctl numbers are signed int, but @@ -2954,6 +2956,40 @@ static bool kvm_accel_has_memory(MachineState *ms, AddressSpace *as, return false; } +static void kvm_get_kvm_shadow_mem(Object *obj, Visitor *v, + const char *name, void *opaque, + Error **errp) +{ + KVMState *s = KVM_STATE(obj); + int64_t value = s->kvm_shadow_mem; + + visit_type_int(v, name, &value, errp); +} + +static void kvm_set_kvm_shadow_mem(Object *obj, Visitor *v, + const char *name, void *opaque, + Error **errp) +{ + KVMState *s = KVM_STATE(obj); + Error *error = NULL; + int64_t value; + + visit_type_int(v, name, &value, &error); + if (error) { + error_propagate(errp, error); + return; + } + + s->kvm_shadow_mem = value; +} + +static void kvm_accel_instance_init(Object *obj) +{ + KVMState *s = KVM_STATE(obj); + + s->kvm_shadow_mem = -1; +} + static void kvm_accel_class_init(ObjectClass *oc, void *data) { AccelClass *ac = ACCEL_CLASS(oc); @@ -2961,11 +2997,18 @@ static void kvm_accel_class_init(ObjectClass *oc, void *data) ac->init_machine = kvm_init; ac->has_memory = kvm_accel_has_memory; ac->allowed = &kvm_allowed; + + object_class_property_add(oc, "kvm-shadow-mem", "int", + kvm_get_kvm_shadow_mem, kvm_set_kvm_shadow_mem, + NULL, NULL, &error_abort); + object_class_property_set_description(oc, "kvm-shadow-mem", + "KVM shadow MMU size", &error_abort); } static const TypeInfo kvm_accel_type = { .name = TYPE_KVM_ACCEL, .parent = TYPE_ACCEL, + .instance_init = kvm_accel_instance_init, .class_init = kvm_accel_class_init, .instance_size = sizeof(KVMState), }; diff --git a/hw/core/machine.c b/hw/core/machine.c index 05cea3a..9c93353 100644 --- a/hw/core/machine.c +++ b/hw/core/machine.c @@ -216,33 +216,6 @@ static void machine_set_kernel_irqchip(Object *obj, Visitor *v, } } -static void machine_get_kvm_shadow_mem(Object *obj, Visitor *v, - const char *name, void *opaque, - Error **errp) -{ - MachineState *ms = MACHINE(obj); - int64_t value = ms->kvm_shadow_mem; - - visit_type_int(v, name, &value, errp); -} - -static void machine_set_kvm_shadow_mem(Object *obj, Visitor *v, - const char *name, void *opaque, - Error **errp) -{ - MachineState *ms = MACHINE(obj); - Error *error = NULL; - int64_t value; - - visit_type_int(v, name, &value, &error); - if (error) { - error_propagate(errp, error); - return; - } - - ms->kvm_shadow_mem = value; -} - static char *machine_get_kernel(Object *obj, Error **errp) { MachineState *ms = MACHINE(obj); @@ -790,12 +763,6 @@ static void machine_class_init(ObjectClass *oc, void *data) object_class_property_set_description(oc, "kernel-irqchip", "Configure KVM in-kernel irqchip", &error_abort); - object_class_property_add(oc, "kvm-shadow-mem", "int", - machine_get_kvm_shadow_mem, machine_set_kvm_shadow_mem, - NULL, NULL, &error_abort); - object_class_property_set_description(oc, "kvm-shadow-mem", - "KVM shadow MMU size", &error_abort); - object_class_property_add_str(oc, "kernel", machine_get_kernel, machine_set_kernel, &error_abort); object_class_property_set_description(oc, "kernel", @@ -897,7 +864,6 @@ static void machine_initfn(Object *obj) ms->kernel_irqchip_allowed = true; ms->kernel_irqchip_split = mc->default_kernel_irqchip_split; - ms->kvm_shadow_mem = -1; ms->dump_guest_core = true; ms->mem_merge = true; ms->enable_graphics = true; @@ -968,11 +934,6 @@ bool machine_kernel_irqchip_split(MachineState *machine) return machine->kernel_irqchip_split; } -int machine_kvm_shadow_mem(MachineState *machine) -{ - return machine->kvm_shadow_mem; -} - int machine_phandle_start(MachineState *machine) { return machine->phandle_start; diff --git a/include/hw/boards.h b/include/hw/boards.h index 5025c1a..6084e61 100644 --- a/include/hw/boards.h +++ b/include/hw/boards.h @@ -66,7 +66,6 @@ bool machine_usb(MachineState *machine); bool machine_kernel_irqchip_allowed(MachineState *machine); bool machine_kernel_irqchip_required(MachineState *machine); bool machine_kernel_irqchip_split(MachineState *machine); -int machine_kvm_shadow_mem(MachineState *machine); int machine_phandle_start(MachineState *machine); bool machine_dump_guest_core(MachineState *machine); bool machine_mem_merge(MachineState *machine); @@ -278,7 +277,6 @@ struct MachineState { bool kernel_irqchip_allowed; bool kernel_irqchip_required; bool kernel_irqchip_split; - int kvm_shadow_mem; char *dtb; char *dumpdtb; int phandle_start; diff --git a/qemu-options.hx b/qemu-options.hx index 7278e59..80546e0 100644 --- a/qemu-options.hx +++ b/qemu-options.hx @@ -34,7 +34,6 @@ DEF("machine", HAS_ARG, QEMU_OPTION_machine, \ " supported accelerators are kvm, xen, hax, hvf, whpx or tcg (default: tcg)\n" " kernel_irqchip=on|off|split controls accelerated irqchip support (default=off)\n" " vmport=on|off|auto controls emulation of vmport (default: auto)\n" - " kvm_shadow_mem=size of KVM shadow MMU in bytes\n" " dump-guest-core=on|off include guest memory in a core dump (default=on)\n" " mem-merge=on|off controls memory merge support (default: on)\n" " aes-key-wrap=on|off controls support for AES key wrapping (default=on)\n" @@ -74,8 +73,6 @@ Controls in-kernel irqchip support for the chosen accelerator when available. Enables emulation of VMWare IO port, for vmmouse etc. auto says to select the value based on accel. For accel=xen the default is off otherwise the default is on. -@item kvm_shadow_mem=size -Defines the size of the KVM shadow MMU. @item dump-guest-core=on|off Include guest memory in a core dump. The default is on. @item mem-merge=on|off @@ -118,6 +115,7 @@ DEF("accel", HAS_ARG, QEMU_OPTION_accel, "-accel [accel=]accelerator[,prop[=value][,...]]\n" " select accelerator (kvm, xen, hax, hvf, whpx or tcg; use 'help' for a list)\n" " igd-passthru=on|off (enable Xen integrated Intel graphics passthrough, default=off)\n" + " kvm-shadow-mem=size of KVM shadow MMU in bytes\n" " tb-size=n (TCG translation block cache size)\n" " thread=single|multi (enable multi-threaded TCG)\n", QEMU_ARCH_ALL) STEXI @@ -131,6 +129,8 @@ fails to initialize. @item igd-passthru=on|off When Xen is in use, this option controls whether Intel integrated graphics devices can be passed through to the guest (default=off) +@item kvm-shadow-mem=size +Defines the size of the KVM shadow MMU. @item tb-size=@var{n} Controls the size (in MiB) of the TCG translation block cache. @item thread=single|multi diff --git a/target/i386/kvm.c b/target/i386/kvm.c index 1d10046..62ce681 100644 --- a/target/i386/kvm.c +++ b/target/i386/kvm.c @@ -2163,7 +2163,7 @@ int kvm_arch_init(MachineState *ms, KVMState *s) } qemu_register_reset(kvm_unpoison_all, NULL); - shadow_mem = machine_kvm_shadow_mem(ms); + shadow_mem = object_property_get_int(OBJECT(s), "kvm-shadow-mem", &error_abort); if (shadow_mem != -1) { shadow_mem /= 4096; ret = kvm_vm_ioctl(s, KVM_SET_NR_MMU_PAGES, shadow_mem); diff --git a/vl.c b/vl.c index c02d486..efe59e3 100644 --- a/vl.c +++ b/vl.c @@ -2639,6 +2639,10 @@ static int machine_set_property(void *opaque, object_register_sugar_prop(ACCEL_CLASS_NAME("xen"), qom_name, value); return 0; } + if (g_str_equal(qom_name, "kvm-shadow-mem")) { + object_register_sugar_prop(ACCEL_CLASS_NAME("kvm"), qom_name, value); + return 0; + } return object_parse_property_opt(opaque, name, value, "type", errp); } From patchwork Mon Dec 16 16:28:12 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Paolo Bonzini X-Patchwork-Id: 11294627 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 85277930 for ; Mon, 16 Dec 2019 16:46:07 +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 58FCE206E0 for ; Mon, 16 Dec 2019 16:46:07 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="uBoLN2Uw" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 58FCE206E0 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=redhat.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Received: from localhost ([::1]:56796 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1igtVV-0001P0-W7 for patchwork-qemu-devel@patchwork.kernel.org; Mon, 16 Dec 2019 11:46:06 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:56907) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1igtFH-0005Fk-3l for qemu-devel@nongnu.org; Mon, 16 Dec 2019 11:29:20 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1igtFF-0007i7-Ec for qemu-devel@nongnu.org; Mon, 16 Dec 2019 11:29:19 -0500 Received: from mail-wr1-x432.google.com ([2a00:1450:4864:20::432]:35076) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1igtFF-0007g9-6o for qemu-devel@nongnu.org; Mon, 16 Dec 2019 11:29:17 -0500 Received: by mail-wr1-x432.google.com with SMTP id g17so8053667wro.2 for ; Mon, 16 Dec 2019 08:29:17 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:subject:date:message-id:in-reply-to:references; bh=I/fcWdzj1xHfk1SVVMZ05ZGlnMoxP5II4qfCSvXSpyc=; b=uBoLN2UwP2kh58Thr8gn7Tp7dYNtJIEmNsET7se6lBSUc5z+HGEqkpSksTwvdV25HW qTS+JwLsOKPEzBevBmfEtNR9T/6VzvrptpFi6POdyCw1c0srvwcl+XhzOhm1p95cRdyo 4Ks3oZr6sMQfrnIQBuUgmNbIqul0cmtJGi7dGZQFkCTV6tOPpPymcGgMKohE0I220qCn WKPib7jjISXKHEzNd0ElUNYMxCqtEN1oVz9q1D5gCY4oXpDaZRlmjsCNV7MN7/Zivxy8 ULnR5dOR/diTOcBS3CQG3PygQRVUTMikOShtKDHPyjhhYI81PIVGNuL0frWP+et5TgBE FPJg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:subject:date:message-id :in-reply-to:references; bh=I/fcWdzj1xHfk1SVVMZ05ZGlnMoxP5II4qfCSvXSpyc=; b=Zh+0lNDxipP+LAKriVDuxuWOxUR5iazgcweE/UllSObIKl/fGhsfmtRtIGfUXFP6wP QBKg/lVxrbc5x4T44RmsMN70RmZ0rIXfcdh/+zTx8J/pirgPwnyiHK7oST9+oZKRxAVz nbYrEQJX80wbo17TUZ5CNMaB7igGWEj9bEqcSJsO32RIL4xTrjiFYcjriU2kWCmP2HoD 6a44BLbcLKWn+LT51zEoyvAjhL//O5ukjvGXFpI6cA0hTjtVMjG2/3YliLZ7ahxoLsia 7VZsfX3GbmzQug33BHsvOuQQfwGW8BTOvqbKWSZnwEmxdH6g5ljS6ysrsUoDzRexWXCc gAvw== X-Gm-Message-State: APjAAAWhivctyNUmgFldDW2DfGoV7funoEw2iUkFHlFgHlDEH7EBL8IN d7jm6ubMTwjvaCmkLghsjAg13THz X-Google-Smtp-Source: APXvYqyRNytPsD99f/8uj3pF2dekxA7HOl7wLIhuGd4Bm8R1dHTQsRGukfd6aHYgOPByghMTXzxkkw== X-Received: by 2002:a5d:494b:: with SMTP id r11mr31616508wrs.184.1576513755966; Mon, 16 Dec 2019 08:29:15 -0800 (PST) Received: from 640k.lan ([93.56.166.5]) by smtp.gmail.com with ESMTPSA id q68sm19962334wme.14.2019.12.16.08.29.14 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 16 Dec 2019 08:29:15 -0800 (PST) From: Paolo Bonzini To: qemu-devel@nongnu.org Subject: [PULL 28/62] kvm: introduce kvm_kernel_irqchip_* functions Date: Mon, 16 Dec 2019 17:28:12 +0100 Message-Id: <1576513726-53700-29-git-send-email-pbonzini@redhat.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1576513726-53700-1-git-send-email-pbonzini@redhat.com> References: <1576513726-53700-1-git-send-email-pbonzini@redhat.com> X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2a00:1450:4864:20::432 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: , Errors-To: qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Sender: "Qemu-devel" The KVMState struct is opaque, so provide accessors for the fields that will be moved from current_machine to the accelerator. For now they just forward to the machine object, but this will change. Signed-off-by: Paolo Bonzini --- accel/kvm/kvm-all.c | 23 +++++++++++++++++++---- hw/ppc/e500.c | 5 ++--- hw/ppc/spapr_irq.c | 16 ++++------------ include/sysemu/kvm.h | 7 +++++-- target/arm/kvm.c | 8 ++++---- target/i386/kvm.c | 4 ++-- target/mips/kvm.c | 2 +- target/ppc/kvm.c | 2 +- target/s390x/kvm.c | 2 +- 9 files changed, 39 insertions(+), 30 deletions(-) diff --git a/accel/kvm/kvm-all.c b/accel/kvm/kvm-all.c index 4770dd8..34e8f26 100644 --- a/accel/kvm/kvm-all.c +++ b/accel/kvm/kvm-all.c @@ -1774,7 +1774,7 @@ void kvm_irqchip_set_qemuirq_gsi(KVMState *s, qemu_irq irq, int gsi) g_hash_table_insert(s->gsimap, irq, GINT_TO_POINTER(gsi)); } -static void kvm_irqchip_create(MachineState *machine, KVMState *s) +static void kvm_irqchip_create(KVMState *s) { int ret; @@ -1792,9 +1792,9 @@ static void kvm_irqchip_create(MachineState *machine, KVMState *s) /* First probe and see if there's a arch-specific hook to create the * in-kernel irqchip for us */ - ret = kvm_arch_irqchip_create(machine, s); + ret = kvm_arch_irqchip_create(s); if (ret == 0) { - if (machine_kernel_irqchip_split(machine)) { + if (kvm_kernel_irqchip_split()) { perror("Split IRQ chip mode not supported."); exit(1); } else { @@ -2066,7 +2066,7 @@ static int kvm_init(MachineState *ms) } if (machine_kernel_irqchip_allowed(ms)) { - kvm_irqchip_create(ms, s); + kvm_irqchip_create(s); } if (kvm_eventfds_allowed) { @@ -2983,6 +2983,21 @@ static void kvm_set_kvm_shadow_mem(Object *obj, Visitor *v, s->kvm_shadow_mem = value; } +bool kvm_kernel_irqchip_allowed(void) +{ + return machine_kernel_irqchip_allowed(current_machine); +} + +bool kvm_kernel_irqchip_required(void) +{ + return machine_kernel_irqchip_required(current_machine); +} + +bool kvm_kernel_irqchip_split(void) +{ + return machine_kernel_irqchip_split(current_machine); +} + static void kvm_accel_instance_init(Object *obj) { KVMState *s = KVM_STATE(obj); diff --git a/hw/ppc/e500.c b/hw/ppc/e500.c index 91cd4c2..12b6a5b 100644 --- a/hw/ppc/e500.c +++ b/hw/ppc/e500.c @@ -793,7 +793,6 @@ static DeviceState *ppce500_init_mpic(PPCE500MachineState *pms, MemoryRegion *ccsr, IrqLines *irqs) { - MachineState *machine = MACHINE(pms); const PPCE500MachineClass *pmc = PPCE500_MACHINE_GET_CLASS(pms); DeviceState *dev = NULL; SysBusDevice *s; @@ -801,10 +800,10 @@ static DeviceState *ppce500_init_mpic(PPCE500MachineState *pms, if (kvm_enabled()) { Error *err = NULL; - if (machine_kernel_irqchip_allowed(machine)) { + if (kvm_kernel_irqchip_allowed()) { dev = ppce500_init_mpic_kvm(pmc, irqs, &err); } - if (machine_kernel_irqchip_required(machine) && !dev) { + if (kvm_kernel_irqchip_required() && !dev) { error_reportf_err(err, "kernel_irqchip requested but unavailable: "); exit(1); diff --git a/hw/ppc/spapr_irq.c b/hw/ppc/spapr_irq.c index d6bb7fd..15c3dd4 100644 --- a/hw/ppc/spapr_irq.c +++ b/hw/ppc/spapr_irq.c @@ -74,12 +74,11 @@ int spapr_irq_init_kvm(int (*fn)(SpaprInterruptController *, Error **), SpaprInterruptController *intc, Error **errp) { - MachineState *machine = MACHINE(qdev_get_machine()); Error *local_err = NULL; - if (kvm_enabled() && machine_kernel_irqchip_allowed(machine)) { + if (kvm_enabled() && kvm_kernel_irqchip_allowed()) { if (fn(intc, &local_err) < 0) { - if (machine_kernel_irqchip_required(machine)) { + if (kvm_kernel_irqchip_required()) { error_prepend(&local_err, "kernel_irqchip requested but unavailable: "); error_propagate(errp, local_err); @@ -184,7 +183,7 @@ static int spapr_irq_check(SpaprMachineState *spapr, Error **errp) */ if (kvm_enabled() && spapr->irq == &spapr_irq_dual && - machine_kernel_irqchip_required(machine) && + kvm_kernel_irqchip_required() && xics_kvm_has_broken_disconnect(spapr)) { error_setg(errp, "KVM is too old to support ic-mode=dual,kernel-irqchip=on"); return -1; @@ -287,20 +286,13 @@ uint32_t spapr_irq_nr_msis(SpaprMachineState *spapr) void spapr_irq_init(SpaprMachineState *spapr, Error **errp) { - MachineState *machine = MACHINE(spapr); SpaprMachineClass *smc = SPAPR_MACHINE_GET_CLASS(spapr); - if (machine_kernel_irqchip_split(machine)) { + if (kvm_enabled() && kvm_kernel_irqchip_split()) { error_setg(errp, "kernel_irqchip split mode not supported on pseries"); return; } - if (!kvm_enabled() && machine_kernel_irqchip_required(machine)) { - error_setg(errp, - "kernel_irqchip requested but only available with KVM"); - return; - } - if (spapr_irq_check(spapr, errp) < 0) { return; } diff --git a/include/sysemu/kvm.h b/include/sysemu/kvm.h index 9fe233b..aaf2a50 100644 --- a/include/sysemu/kvm.h +++ b/include/sysemu/kvm.h @@ -519,10 +519,13 @@ void kvm_pc_gsi_handler(void *opaque, int n, int level); void kvm_pc_setup_irq_routing(bool pci_enabled); void kvm_init_irq_routing(KVMState *s); +bool kvm_kernel_irqchip_allowed(void); +bool kvm_kernel_irqchip_required(void); +bool kvm_kernel_irqchip_split(void); + /** * kvm_arch_irqchip_create: * @KVMState: The KVMState pointer - * @MachineState: The MachineState pointer * * Allow architectures to create an in-kernel irq chip themselves. * @@ -530,7 +533,7 @@ void kvm_init_irq_routing(KVMState *s); * 0: irq chip was not created * > 0: irq chip was created */ -int kvm_arch_irqchip_create(MachineState *ms, KVMState *s); +int kvm_arch_irqchip_create(KVMState *s); /** * kvm_set_one_reg - set a register value in KVM via KVM_SET_ONE_REG ioctl diff --git a/target/arm/kvm.c b/target/arm/kvm.c index 5b82cef..b87b59a 100644 --- a/target/arm/kvm.c +++ b/target/arm/kvm.c @@ -741,11 +741,11 @@ void kvm_arch_init_irq_routing(KVMState *s) { } -int kvm_arch_irqchip_create(MachineState *ms, KVMState *s) +int kvm_arch_irqchip_create(KVMState *s) { - if (machine_kernel_irqchip_split(ms)) { - perror("-machine kernel_irqchip=split is not supported on ARM."); - exit(1); + if (kvm_kernel_irqchip_split()) { + perror("-machine kernel_irqchip=split is not supported on ARM."); + exit(1); } /* If we can create the VGIC using the newer device control API, we diff --git a/target/i386/kvm.c b/target/i386/kvm.c index 62ce681..ef63f3a 100644 --- a/target/i386/kvm.c +++ b/target/i386/kvm.c @@ -4494,10 +4494,10 @@ void kvm_arch_init_irq_routing(KVMState *s) } } -int kvm_arch_irqchip_create(MachineState *ms, KVMState *s) +int kvm_arch_irqchip_create(KVMState *s) { int ret; - if (machine_kernel_irqchip_split(ms)) { + if (kvm_kernel_irqchip_split()) { ret = kvm_vm_enable_cap(s, KVM_CAP_SPLIT_IRQCHIP, 0, 24); if (ret) { error_report("Could not enable split irqchip mode: %s", diff --git a/target/mips/kvm.c b/target/mips/kvm.c index 578bc14..de3e26e 100644 --- a/target/mips/kvm.c +++ b/target/mips/kvm.c @@ -57,7 +57,7 @@ int kvm_arch_init(MachineState *ms, KVMState *s) return 0; } -int kvm_arch_irqchip_create(MachineState *ms, KVMState *s) +int kvm_arch_irqchip_create(KVMState *s) { return 0; } diff --git a/target/ppc/kvm.c b/target/ppc/kvm.c index c77f984..461dc6d 100644 --- a/target/ppc/kvm.c +++ b/target/ppc/kvm.c @@ -152,7 +152,7 @@ int kvm_arch_init(MachineState *ms, KVMState *s) return 0; } -int kvm_arch_irqchip_create(MachineState *ms, KVMState *s) +int kvm_arch_irqchip_create(KVMState *s) { return 0; } diff --git a/target/s390x/kvm.c b/target/s390x/kvm.c index 0c9d14b..f3a742b 100644 --- a/target/s390x/kvm.c +++ b/target/s390x/kvm.c @@ -374,7 +374,7 @@ int kvm_arch_init(MachineState *ms, KVMState *s) return 0; } -int kvm_arch_irqchip_create(MachineState *ms, KVMState *s) +int kvm_arch_irqchip_create(KVMState *s) { return 0; } From patchwork Mon Dec 16 16:28:13 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Paolo Bonzini X-Patchwork-Id: 11294639 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 37316138D for ; Mon, 16 Dec 2019 16:49:40 +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 EFEDF205C9 for ; Mon, 16 Dec 2019 16:49:39 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="TXfVaptc" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org EFEDF205C9 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=redhat.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Received: from localhost ([::1]:56830 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1igtYw-0005Hx-F6 for patchwork-qemu-devel@patchwork.kernel.org; Mon, 16 Dec 2019 11:49:38 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:56942) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1igtFI-0005Hw-FA for qemu-devel@nongnu.org; Mon, 16 Dec 2019 11:29:22 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1igtFG-0007kg-Et for qemu-devel@nongnu.org; Mon, 16 Dec 2019 11:29:20 -0500 Received: from mail-wr1-x42b.google.com ([2a00:1450:4864:20::42b]:45006) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1igtFG-0007iY-6Y for qemu-devel@nongnu.org; Mon, 16 Dec 2019 11:29:18 -0500 Received: by mail-wr1-x42b.google.com with SMTP id q10so8017049wrm.11 for ; Mon, 16 Dec 2019 08:29:18 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:subject:date:message-id:in-reply-to:references; bh=YgfAz3xU98o1TlBJ1PXzXoDwd780u6EjlswuhsV3pJc=; b=TXfVaptcR5Mm3LZI3WO8aMOw9NTbHASJ4HOdJE4EVmRZCV6KwSFkLt2oyZ0QgIqTAM ZlCjksQaZNyiqlNb9JyvHN/MR6qcqXeo6T8WpVbp55LWbfuoKECVcoDF/uYR8DdWn1bq 2pgxGFqRCSuUsb2B8r672h6ofPDuYxiX6JcC4ktY7/7PwYRVJLGaX0QdEylRD5YtytpQ HO02vAaZi0D3rx2AgPdpB1jdz/Vlv4mPUCVbdXHiL7AjWtv6uyhE1y9vLNaEabHyJNVM qBi2+lNXWHoHQWIJaigjDGNVm8Fci/3y8AiROMeAgoCILE5FkawVhGGjTbQ+DkXKs2tD RDQw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:subject:date:message-id :in-reply-to:references; bh=YgfAz3xU98o1TlBJ1PXzXoDwd780u6EjlswuhsV3pJc=; b=idBILPTZCMkNIdRZA4FlHWuc70R61aNAGX/FzyMFZprsJIo0cr6Z6jnDjZ21o0c4J4 kM4u8h6s4wSp7t0EXfjLpBA0sjUFMPGsLsCOCs9vopB+1LwUi2ACgVG1Cwjm9Z2O1BFj JLorRbJ4y1CCcFz2n7awcp2yrnRvxnFTRyXg2bNWdXfRnH78yCqDl1IO2uSGJnNla8fg +0QANdEix42wzIl90WMvXo2A5zEZBNMAHiYjtSxsRtKV4ZIwXLn8e88ueQR7FcVawv22 /OSGRmCR2W9YsL9d1MzlXjLv8u4mYn0mQelljq9n6Axz7tB+U79JpFjvh3jXDIffClX4 LjQg== X-Gm-Message-State: APjAAAVqrlK+ar0WlY0r5bDPCUwESko4CA7OSsneCjPWBVyk3cmXPrc3 3gL8zSxzBAU/xaBcuCTLHn7XNUQ4 X-Google-Smtp-Source: APXvYqy8mv2nG4RyV/TJXuukgA9iR9h4OReqdUFV+i3E7GB12ZPGa0vlVrDRZeJxOCAdH3L58VhzGQ== X-Received: by 2002:adf:d4ca:: with SMTP id w10mr8529107wrk.53.1576513756922; Mon, 16 Dec 2019 08:29:16 -0800 (PST) Received: from 640k.lan ([93.56.166.5]) by smtp.gmail.com with ESMTPSA id q68sm19962334wme.14.2019.12.16.08.29.16 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 16 Dec 2019 08:29:16 -0800 (PST) From: Paolo Bonzini To: qemu-devel@nongnu.org Subject: [PULL 29/62] kvm: convert "-machine kernel_irqchip" to an accelerator property Date: Mon, 16 Dec 2019 17:28:13 +0100 Message-Id: <1576513726-53700-30-git-send-email-pbonzini@redhat.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1576513726-53700-1-git-send-email-pbonzini@redhat.com> References: <1576513726-53700-1-git-send-email-pbonzini@redhat.com> X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2a00:1450:4864:20::42b 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: , Errors-To: qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Sender: "Qemu-devel" Signed-off-by: Paolo Bonzini --- accel/kvm/kvm-all.c | 59 ++++++++++++++++++++++++++++++++++++++++++++++----- hw/core/machine.c | 61 ----------------------------------------------------- include/hw/boards.h | 3 --- qemu-options.hx | 9 +++++--- vl.c | 3 ++- 5 files changed, 62 insertions(+), 73 deletions(-) diff --git a/accel/kvm/kvm-all.c b/accel/kvm/kvm-all.c index 34e8f26..b2f1a5b 100644 --- a/accel/kvm/kvm-all.c +++ b/accel/kvm/kvm-all.c @@ -42,6 +42,8 @@ #include "sysemu/sev.h" #include "sysemu/balloon.h" #include "qapi/visitor.h" +#include "qapi/qapi-types-common.h" +#include "qapi/qapi-visit-common.h" #include "hw/boards.h" @@ -94,6 +96,9 @@ struct KVMState int many_ioeventfds; int intx_set_mask; int kvm_shadow_mem; + bool kernel_irqchip_allowed; + bool kernel_irqchip_required; + bool kernel_irqchip_split; bool sync_mmu; bool manual_dirty_log_protect; /* The man page (and posix) say ioctl numbers are signed int, but @@ -1794,7 +1799,7 @@ static void kvm_irqchip_create(KVMState *s) * in-kernel irqchip for us */ ret = kvm_arch_irqchip_create(s); if (ret == 0) { - if (kvm_kernel_irqchip_split()) { + if (s->kernel_irqchip_split) { perror("Split IRQ chip mode not supported."); exit(1); } else { @@ -2065,7 +2070,7 @@ static int kvm_init(MachineState *ms) goto err; } - if (machine_kernel_irqchip_allowed(ms)) { + if (s->kernel_irqchip_allowed) { kvm_irqchip_create(s); } @@ -2983,19 +2988,57 @@ static void kvm_set_kvm_shadow_mem(Object *obj, Visitor *v, s->kvm_shadow_mem = value; } +static void kvm_set_kernel_irqchip(Object *obj, Visitor *v, + const char *name, void *opaque, + Error **errp) +{ + Error *err = NULL; + KVMState *s = KVM_STATE(obj); + OnOffSplit mode; + + visit_type_OnOffSplit(v, name, &mode, &err); + if (err) { + error_propagate(errp, err); + return; + } else { + switch (mode) { + case ON_OFF_SPLIT_ON: + s->kernel_irqchip_allowed = true; + s->kernel_irqchip_required = true; + s->kernel_irqchip_split = false; + break; + case ON_OFF_SPLIT_OFF: + s->kernel_irqchip_allowed = false; + s->kernel_irqchip_required = false; + s->kernel_irqchip_split = false; + break; + case ON_OFF_SPLIT_SPLIT: + s->kernel_irqchip_allowed = true; + s->kernel_irqchip_required = true; + s->kernel_irqchip_split = true; + break; + default: + /* The value was checked in visit_type_OnOffSplit() above. If + * we get here, then something is wrong in QEMU. + */ + abort(); + } + } +} + bool kvm_kernel_irqchip_allowed(void) { - return machine_kernel_irqchip_allowed(current_machine); + return kvm_state->kernel_irqchip_allowed; } bool kvm_kernel_irqchip_required(void) { - return machine_kernel_irqchip_required(current_machine); + return kvm_state->kernel_irqchip_required; } bool kvm_kernel_irqchip_split(void) { - return machine_kernel_irqchip_split(current_machine); + return kvm_state->kernel_irqchip_split; } static void kvm_accel_instance_init(Object *obj) @@ -3013,6 +3056,12 @@ static void kvm_accel_class_init(ObjectClass *oc, void *data) ac->has_memory = kvm_accel_has_memory; ac->allowed = &kvm_allowed; + object_class_property_add(oc, "kernel-irqchip", "on|off|split", + NULL, kvm_set_kernel_irqchip, + NULL, NULL, &error_abort); + object_class_property_set_description(oc, "kernel-irqchip", + "Configure KVM in-kernel irqchip", &error_abort); + object_class_property_add(oc, "kvm-shadow-mem", "int", kvm_get_kvm_shadow_mem, kvm_set_kvm_shadow_mem, NULL, NULL, &error_abort); diff --git a/hw/core/machine.c b/hw/core/machine.c index 9c93353..56137e9 100644 --- a/hw/core/machine.c +++ b/hw/core/machine.c @@ -178,44 +178,6 @@ GlobalProperty hw_compat_2_1[] = { }; const size_t hw_compat_2_1_len = G_N_ELEMENTS(hw_compat_2_1); -static void machine_set_kernel_irqchip(Object *obj, Visitor *v, - const char *name, void *opaque, - Error **errp) -{ - Error *err = NULL; - MachineState *ms = MACHINE(obj); - OnOffSplit mode; - - visit_type_OnOffSplit(v, name, &mode, &err); - if (err) { - error_propagate(errp, err); - return; - } else { - switch (mode) { - case ON_OFF_SPLIT_ON: - ms->kernel_irqchip_allowed = true; - ms->kernel_irqchip_required = true; - ms->kernel_irqchip_split = false; - break; - case ON_OFF_SPLIT_OFF: - ms->kernel_irqchip_allowed = false; - ms->kernel_irqchip_required = false; - ms->kernel_irqchip_split = false; - break; - case ON_OFF_SPLIT_SPLIT: - ms->kernel_irqchip_allowed = true; - ms->kernel_irqchip_required = true; - ms->kernel_irqchip_split = true; - break; - default: - /* The value was checked in visit_type_OnOffSplit() above. If - * we get here, then something is wrong in QEMU. - */ - abort(); - } - } -} - static char *machine_get_kernel(Object *obj, Error **errp) { MachineState *ms = MACHINE(obj); @@ -757,12 +719,6 @@ static void machine_class_init(ObjectClass *oc, void *data) mc->numa_mem_align_shift = 23; mc->numa_auto_assign_ram = numa_default_auto_assign_ram; - object_class_property_add(oc, "kernel-irqchip", "on|off|split", - NULL, machine_set_kernel_irqchip, - NULL, NULL, &error_abort); - object_class_property_set_description(oc, "kernel-irqchip", - "Configure KVM in-kernel irqchip", &error_abort); - object_class_property_add_str(oc, "kernel", machine_get_kernel, machine_set_kernel, &error_abort); object_class_property_set_description(oc, "kernel", @@ -862,8 +818,6 @@ static void machine_initfn(Object *obj) MachineState *ms = MACHINE(obj); MachineClass *mc = MACHINE_GET_CLASS(obj); - ms->kernel_irqchip_allowed = true; - ms->kernel_irqchip_split = mc->default_kernel_irqchip_split; ms->dump_guest_core = true; ms->mem_merge = true; ms->enable_graphics = true; @@ -919,21 +873,6 @@ bool machine_usb(MachineState *machine) return machine->usb; } -bool machine_kernel_irqchip_allowed(MachineState *machine) -{ - return machine->kernel_irqchip_allowed; -} - -bool machine_kernel_irqchip_required(MachineState *machine) -{ - return machine->kernel_irqchip_required; -} - -bool machine_kernel_irqchip_split(MachineState *machine) -{ - return machine->kernel_irqchip_split; -} - int machine_phandle_start(MachineState *machine) { return machine->phandle_start; diff --git a/include/hw/boards.h b/include/hw/boards.h index 6084e61..61f8bb8 100644 --- a/include/hw/boards.h +++ b/include/hw/boards.h @@ -63,9 +63,6 @@ extern MachineState *current_machine; void machine_run_board_init(MachineState *machine); bool machine_usb(MachineState *machine); -bool machine_kernel_irqchip_allowed(MachineState *machine); -bool machine_kernel_irqchip_required(MachineState *machine); -bool machine_kernel_irqchip_split(MachineState *machine); int machine_phandle_start(MachineState *machine); bool machine_dump_guest_core(MachineState *machine); bool machine_mem_merge(MachineState *machine); diff --git a/qemu-options.hx b/qemu-options.hx index 80546e0..6ecd9e2 100644 --- a/qemu-options.hx +++ b/qemu-options.hx @@ -32,7 +32,6 @@ DEF("machine", HAS_ARG, QEMU_OPTION_machine, \ " selects emulated machine ('-machine help' for list)\n" " property accel=accel1[:accel2[:...]] selects accelerator\n" " supported accelerators are kvm, xen, hax, hvf, whpx or tcg (default: tcg)\n" - " kernel_irqchip=on|off|split controls accelerated irqchip support (default=off)\n" " vmport=on|off|auto controls emulation of vmport (default: auto)\n" " dump-guest-core=on|off include guest memory in a core dump (default=on)\n" " mem-merge=on|off controls memory merge support (default: on)\n" @@ -67,8 +66,6 @@ This is used to enable an accelerator. Depending on the target architecture, kvm, xen, hax, hvf, whpx or tcg can be available. By default, tcg is used. If there is more than one accelerator specified, the next one is used if the previous one fails to initialize. -@item kernel_irqchip=on|off -Controls in-kernel irqchip support for the chosen accelerator when available. @item vmport=on|off|auto Enables emulation of VMWare IO port, for vmmouse etc. auto says to select the value based on accel. For accel=xen the default is off otherwise the default @@ -115,6 +112,7 @@ DEF("accel", HAS_ARG, QEMU_OPTION_accel, "-accel [accel=]accelerator[,prop[=value][,...]]\n" " select accelerator (kvm, xen, hax, hvf, whpx or tcg; use 'help' for a list)\n" " igd-passthru=on|off (enable Xen integrated Intel graphics passthrough, default=off)\n" + " kernel-irqchip=on|off|split controls accelerated irqchip support (default=on)\n" " kvm-shadow-mem=size of KVM shadow MMU in bytes\n" " tb-size=n (TCG translation block cache size)\n" " thread=single|multi (enable multi-threaded TCG)\n", QEMU_ARCH_ALL) @@ -129,6 +127,11 @@ fails to initialize. @item igd-passthru=on|off When Xen is in use, this option controls whether Intel integrated graphics devices can be passed through to the guest (default=off) +@item kernel-irqchip=on|off|split +Controls KVM in-kernel irqchip support. The default is full acceleration of the +interrupt controllers. On x86, split irqchip reduces the kernel attack +surface, at a performance cost for non-MSI interrupts. Disabling the in-kernel +irqchip completely is not recommended except for debugging purposes. @item kvm-shadow-mem=size Defines the size of the KVM shadow MMU. @item tb-size=@var{n} diff --git a/vl.c b/vl.c index efe59e3..763e5c4 100644 --- a/vl.c +++ b/vl.c @@ -2639,7 +2639,8 @@ static int machine_set_property(void *opaque, object_register_sugar_prop(ACCEL_CLASS_NAME("xen"), qom_name, value); return 0; } - if (g_str_equal(qom_name, "kvm-shadow-mem")) { + if (g_str_equal(qom_name, "kvm-shadow-mem") || + g_str_equal(qom_name, "kernel-irqchip")) { object_register_sugar_prop(ACCEL_CLASS_NAME("kvm"), qom_name, value); return 0; } From patchwork Mon Dec 16 16:28:14 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Paolo Bonzini X-Patchwork-Id: 11294631 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 9FC65138D for ; Mon, 16 Dec 2019 16:46:13 +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 7539B206E0 for ; Mon, 16 Dec 2019 16:46:13 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="FfTfG4Qn" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 7539B206E0 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=redhat.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Received: from localhost ([::1]:56800 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1igtVb-0001WB-St for patchwork-qemu-devel@patchwork.kernel.org; Mon, 16 Dec 2019 11:46:11 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:56939) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1igtFI-0005Ho-Bh for qemu-devel@nongnu.org; Mon, 16 Dec 2019 11:29:21 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1igtFH-0007n3-8f for qemu-devel@nongnu.org; Mon, 16 Dec 2019 11:29:20 -0500 Received: from mail-wm1-x331.google.com ([2a00:1450:4864:20::331]:38735) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1igtFH-0007kp-2Y for qemu-devel@nongnu.org; Mon, 16 Dec 2019 11:29:19 -0500 Received: by mail-wm1-x331.google.com with SMTP id u2so7397073wmc.3 for ; Mon, 16 Dec 2019 08:29:19 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:subject:date:message-id:in-reply-to:references; bh=HDTYKQfotEZNCNNOb0BXo5V66sef5b68rxGZly+OEbw=; b=FfTfG4QnS8FCA3JjBua14YB4XpB7UPYrxvIvldeyPg7XNkAjXADvRhghiosyXmO9WS kMxWsZ30XGytBBn2gVZA89NHwgpLjh0Z9OwO6792fParpQH9vEQRZubESSIpRXoJ0n8z bag5BvPR9/9nnQykB5oTn62Y1lmZ1ToXAgxov8ptB/CUYh/eUBRDYQKuph3J35FMDt4q yCJRA32b/y49/SmvdQwHaY47CDD5NIjMXFx9g0zyHpybn6m1QUGcdk0KJjKEpR0mq5B6 MUvFhPd77tB2AFPVtf4X/uuOdc6CvjFvzNZVkvJGiUpQESyGfSA5T1/fCWqmCzGp5kVK DxLA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:subject:date:message-id :in-reply-to:references; bh=HDTYKQfotEZNCNNOb0BXo5V66sef5b68rxGZly+OEbw=; b=a7prZWpRdjpZWnQUsNuxFUjAbK+ieJFXAfWgEivHt1/p/MMFLZZw2Gek7qe2fC5uMR xwDRXQ2X2X0fXbKhDUiMUqmSOw44xlzmVbUTjizYEWCk87Z2lAZiF0hWBZ48ASNIwbUl yqlAzHON12to+lId1Rf/TURvxqSVo7NDl5EUbgsTnfLrCpRFrSKV2JvpQO2GWj8r3AzY kmkjlX4sA0wt75PQ8H0v+LZycwJRzJWqQskkXuoJrqRZboUC6a6dAis4DPya3QgTcaXZ 5hU4DB329qyKjCeqJcxZWuYEH3w7oW7RJ9i7v40669I3XAuzPZEvAfNXxCWszF9BHvgx 2udg== X-Gm-Message-State: APjAAAX8xNUV2WuPro02y1uznEPcjYd21MOz0bUrtEzOIjRPJJ/ebZAc fo+LM2M0PHcF2dTavMQKESRky2fG X-Google-Smtp-Source: APXvYqxjXlUSYI18dwV38IvVOIFYUJJAMJ2ZyPQ0UWBydkl8z0mVxa7hNmK+t3zL3JaYbhu7bCccbQ== X-Received: by 2002:a1c:1f51:: with SMTP id f78mr29874454wmf.60.1576513757911; Mon, 16 Dec 2019 08:29:17 -0800 (PST) Received: from 640k.lan ([93.56.166.5]) by smtp.gmail.com with ESMTPSA id q68sm19962334wme.14.2019.12.16.08.29.16 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 16 Dec 2019 08:29:17 -0800 (PST) From: Paolo Bonzini To: qemu-devel@nongnu.org Subject: [PULL 30/62] Makefile: remove unused variables Date: Mon, 16 Dec 2019 17:28:14 +0100 Message-Id: <1576513726-53700-31-git-send-email-pbonzini@redhat.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1576513726-53700-1-git-send-email-pbonzini@redhat.com> References: <1576513726-53700-1-git-send-email-pbonzini@redhat.com> X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2a00:1450:4864:20::331 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: , Errors-To: qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Sender: "Qemu-devel" Reviewed-by: Markus Armbruster Signed-off-by: Paolo Bonzini --- Makefile | 4 ---- 1 file changed, 4 deletions(-) diff --git a/Makefile b/Makefile index 1361def..a2acef3 100644 --- a/Makefile +++ b/Makefile @@ -445,10 +445,6 @@ dummy := $(call unnest-vars,, \ io-obj-y \ common-obj-y \ common-obj-m \ - ui-obj-y \ - ui-obj-m \ - audio-obj-y \ - audio-obj-m \ trace-obj-y) include $(SRC_PATH)/tests/Makefile.include From patchwork Mon Dec 16 16:28:15 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Paolo Bonzini X-Patchwork-Id: 11294729 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 39568930 for ; Mon, 16 Dec 2019 17:06:14 +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 0DB7621739 for ; Mon, 16 Dec 2019 17:06:14 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="ihI3bH1A" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 0DB7621739 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=redhat.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Received: from localhost ([::1]:57056 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1igtoy-0000WB-M3 for patchwork-qemu-devel@patchwork.kernel.org; Mon, 16 Dec 2019 12:06:12 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:56979) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1igtFJ-0005K0-JT for qemu-devel@nongnu.org; Mon, 16 Dec 2019 11:29:22 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1igtFI-0007s3-AZ for qemu-devel@nongnu.org; Mon, 16 Dec 2019 11:29:21 -0500 Received: from mail-wr1-x444.google.com ([2a00:1450:4864:20::444]:36398) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1igtFI-0007nQ-3e for qemu-devel@nongnu.org; Mon, 16 Dec 2019 11:29:20 -0500 Received: by mail-wr1-x444.google.com with SMTP id z3so513676wru.3 for ; Mon, 16 Dec 2019 08:29:20 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=0e9iZbZwVOF2w7GIO2zU28bMFshOQAQOAmPOJxZU0us=; b=ihI3bH1Af1arfVQ8V1v6qv1i0+khnzm5cOc0IYbXXd1Q/mTclZcEt4YF6HlnObQUbB h/AxDJN3JwMI4qEn/7uu/Nhf/Yl68ecb39Yf1xgZYoGLxENsp0JhNyzKuXxI8QGDGeqj u+qgWCgea5OZJy31YsSpMb19SoHh/+ccrwAQjxZHeXn1yLK4AWvVJCMEHPjCos4CoUIS XzavnQ2jqBNdVvOacHKMlfz8IcItCsn/rBTndJURbS4fHIL97HRLud8VF5pFor29f3t4 R+VHJ9iVCztnZROJetcWWRP35LfZNezqBCV9X4O4rpKKKhD51fAEDn13DWkl5FC0tQUJ yN3Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references:mime-version:content-transfer-encoding; bh=0e9iZbZwVOF2w7GIO2zU28bMFshOQAQOAmPOJxZU0us=; b=ujbAEnLgLN8WdWgIL51BMDVvrJgVYrDPM7gvQCniWcbQSdVBjPWcdS7CH1IX6Z1qWC 0aLMwWFCe53HhIuHXMCDd1mWSSzb4BXGK3Yo+Rkat589v8QF18It1WI10hboMPCISyYj XImDlpvv1atoHyw9PoRi2U6cBS2ayPfELhrPvE8/CaU8dql4XSdcU0Emm2EBcceppIb0 APXFKun9gArZ4yBOgaxRtLPdrrOXe5i2CCjqyq/hE7iykUldpvjv4rdGTPtiKZyJMw8b d8Rni39796SXtudg9PEqDHxWPGn8UwgtfczU76vU7YFJoGMr+uKil7PduAQ2KAKt96RJ SuWg== X-Gm-Message-State: APjAAAXsUMexH4Kte11Kqe0EQp0X5vKlOSXf7naeo7vDrirYOjdl70pS qkbL1NC5eSGw9pSvZ+qOwRslAVyy X-Google-Smtp-Source: APXvYqx5pVLKSXGqHz6G21CQ1Egwfb3K4rjkd/hSRmEynmEb5VHaHtGAr4KvSzRhkIOwXyzVZaDSjw== X-Received: by 2002:a5d:6206:: with SMTP id y6mr30350754wru.130.1576513758832; Mon, 16 Dec 2019 08:29:18 -0800 (PST) Received: from 640k.lan ([93.56.166.5]) by smtp.gmail.com with ESMTPSA id q68sm19962334wme.14.2019.12.16.08.29.17 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 16 Dec 2019 08:29:18 -0800 (PST) From: Paolo Bonzini To: qemu-devel@nongnu.org Subject: [PULL 31/62] object: Improve documentation of interfaces Date: Mon, 16 Dec 2019 17:28:15 +0100 Message-Id: <1576513726-53700-32-git-send-email-pbonzini@redhat.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1576513726-53700-1-git-send-email-pbonzini@redhat.com> References: <1576513726-53700-1-git-send-email-pbonzini@redhat.com> MIME-Version: 1.0 X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2a00:1450:4864:20::444 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: Greg Kurz Errors-To: qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Sender: "Qemu-devel" From: Greg Kurz QOM interfaces allow a limited form of multiple inheritance, at the condition of being stateless. That is, they cannot be instantiated and a pointer to an interface shouldn't be dereferenceable in any way. This is achieved by making the QOM instance type an incomplete type, which is, as mentioned by Markus Armbruster, the closest you can get to abstract class in C. Incomplete types are widely used to hide implementation details, but people usually expect to find at least one place where the type is fully defined. The fact that it doesn't happen with QOM interfaces is quite disturbing, especially since it isn't documented anywhere as recently discussed in this thread: https://lists.gnu.org/archive/html/qemu-devel/2019-12/msg01579.html Amend the documentation in the object.h header file to provide more details about why and how to implement QOM interfaces using incomplete types. Signed-off-by: Greg Kurz Reviewed-by: Marc-André Lureau Signed-off-by: Paolo Bonzini --- include/qom/object.h | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/include/qom/object.h b/include/qom/object.h index f9ad692..bd68d19 100644 --- a/include/qom/object.h +++ b/include/qom/object.h @@ -200,8 +200,14 @@ typedef struct InterfaceInfo InterfaceInfo; * * Interfaces allow a limited form of multiple inheritance. Instances are * similar to normal types except for the fact that are only defined by - * their classes and never carry any state. You can dynamically cast an object - * to one of its #Interface types and vice versa. + * their classes and never carry any state. As a consequence, a pointer to + * an interface instance should always be of incomplete type in order to be + * sure it cannot be dereferenced. That is, you should define the + * 'typedef struct SomethingIf SomethingIf' so that you can pass around + * 'SomethingIf *si' arguments, but not define a 'struct SomethingIf { ... }'. + * The only things you can validly do with a 'SomethingIf *' are to pass it as + * an argument to a method on its corresponding SomethingIfClass, or to + * dynamically cast it to an object that implements the interface. * * # Methods # * From patchwork Mon Dec 16 16:28:16 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Paolo Bonzini X-Patchwork-Id: 11294637 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 04B56930 for ; Mon, 16 Dec 2019 16:49:29 +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 CEB30206E0 for ; Mon, 16 Dec 2019 16:49:28 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="Wgvfd2pv" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org CEB30206E0 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=redhat.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Received: from localhost ([::1]:56828 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1igtYl-00057m-EE for patchwork-qemu-devel@patchwork.kernel.org; Mon, 16 Dec 2019 11:49:27 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:56991) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1igtFK-0005Kj-39 for qemu-devel@nongnu.org; Mon, 16 Dec 2019 11:29:23 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1igtFJ-0007uX-1Y for qemu-devel@nongnu.org; Mon, 16 Dec 2019 11:29:21 -0500 Received: from mail-wr1-x42c.google.com ([2a00:1450:4864:20::42c]:35071) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1igtFI-0007rv-Qf for qemu-devel@nongnu.org; Mon, 16 Dec 2019 11:29:20 -0500 Received: by mail-wr1-x42c.google.com with SMTP id g17so8053954wro.2 for ; Mon, 16 Dec 2019 08:29:20 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=S3pmMgcEmeHBtI4+AVbPDjiFOAavVsNacKUoCx6hTZI=; b=Wgvfd2pv9qciSUQyY67jFfTAiHAmvnEQry4CBMrnKwcsHtARd9DOhbwmRJeRGF/OHM pF2GsmOLZsWadDDOlhP3KQMvvvKKnJ+tmgVc4oXLxEXpPD8824jggPZNKblru87FI9z0 Y+sohN3R16EN2Q4Nsavh9xhz9eF1MMjrM0xlg5v5nMsniLbCt7kRO88oPYvhQ45ltBvd CeAhrgfsDEYhMTsK2R3bRfj9pi34LcVYN1Vl6Veug7AP6ZodJAF1jWrXz8Va1x0f50iO +xxkmwyM0IF/kzmyHMUvAHn5u8ELvmDSZMMnt/OzKIAYlaoSYkhIp5SxittOwQKy+tw7 egcw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references:mime-version:content-transfer-encoding; bh=S3pmMgcEmeHBtI4+AVbPDjiFOAavVsNacKUoCx6hTZI=; b=HsUMQuc+DVp/CrAnlql+W6ANVqImjeVQMvsvSDS8T7LKXACYw6x0K7GbI/21j8oDv3 mbaTJzu6i/ZlSlCNGz/O90VAI1sv/cpUmh79UuqD0F833Myf4FQZ4hNf49cmsST3nMSK WsmX7oJ+TfKx33j0BpRuQdWjRmX5066Y97l0E4Wu63ykIEvkVarEQbtjYJcVrgFP+bkv eI2ESKIO/hcRjclG3C9gebcmgixhstJ5UFp7UrT/JbY0GmdhvO0ZwpIO9hk2n4JqIYk+ FBmjhowlN3uHo/WXOYalAnGrKfvKlw15dkCMKMygeCTzj1RTWt3BhmIzJnemDO1TuSwj jt+w== X-Gm-Message-State: APjAAAVMWDI5yAIsKumIWOd9/p+9KqE4acJVPoREXpm6G+RWGhhRw8gO 1U0EPogb8qNN4ZK/JmyuN/WuOSzR X-Google-Smtp-Source: APXvYqwfKA/jDnPJhxErUd1LKjejfpdukyT7neBuUgWQ2d1QbfPYkShPNPJfQyPLGdxBxeb+ONoRVg== X-Received: by 2002:adf:e984:: with SMTP id h4mr30482020wrm.275.1576513759683; Mon, 16 Dec 2019 08:29:19 -0800 (PST) Received: from 640k.lan ([93.56.166.5]) by smtp.gmail.com with ESMTPSA id q68sm19962334wme.14.2019.12.16.08.29.18 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 16 Dec 2019 08:29:19 -0800 (PST) From: Paolo Bonzini To: qemu-devel@nongnu.org Subject: [PULL 32/62] build-sys: build vhost-user-gpu only if CONFIG_TOOLS Date: Mon, 16 Dec 2019 17:28:16 +0100 Message-Id: <1576513726-53700-33-git-send-email-pbonzini@redhat.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1576513726-53700-1-git-send-email-pbonzini@redhat.com> References: <1576513726-53700-1-git-send-email-pbonzini@redhat.com> MIME-Version: 1.0 X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2a00:1450:4864:20::42c 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: =?utf-8?q?Marc-Andr=C3=A9_Lureau?= Errors-To: qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Sender: "Qemu-devel" From: Marc-André Lureau vhost-user-gpu is always built and installed, but it is not part of the emulator proper. Cut it if --disable-tools is specified. Signed-off-by: Marc-André Lureau Signed-off-by: Paolo Bonzini --- Makefile | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/Makefile b/Makefile index a2acef3..bfd8ba3 100644 --- a/Makefile +++ b/Makefile @@ -321,14 +321,10 @@ HELPERS-y = HELPERS-$(call land,$(CONFIG_SOFTMMU),$(CONFIG_LINUX)) = qemu-bridge-helper$(EXESUF) -ifdef CONFIG_LINUX -ifdef CONFIG_VIRGL -ifdef CONFIG_GBM +ifeq ($(CONFIG_LINUX)$(CONFIG_VIRGL)$(CONFIG_GBM)$(CONFIG_TOOLS),yyyy) HELPERS-y += vhost-user-gpu$(EXESUF) vhost-user-json-y += contrib/vhost-user-gpu/50-qemu-gpu.json endif -endif -endif # Sphinx does not allow building manuals into the same directory as # the source files, so if we're doing an in-tree QEMU build we must From patchwork Mon Dec 16 16:28:17 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Paolo Bonzini X-Patchwork-Id: 11294647 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 15B42930 for ; Mon, 16 Dec 2019 16:52:49 +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 DF129206D7 for ; Mon, 16 Dec 2019 16:52:48 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="MwX6jkIE" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org DF129206D7 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=redhat.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Received: from localhost ([::1]:56868 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1igtbz-0000NA-Cy for patchwork-qemu-devel@patchwork.kernel.org; Mon, 16 Dec 2019 11:52:47 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:57021) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1igtFL-0005Mq-8X for qemu-devel@nongnu.org; Mon, 16 Dec 2019 11:29:24 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1igtFK-0007yu-3n for qemu-devel@nongnu.org; Mon, 16 Dec 2019 11:29:23 -0500 Received: from mail-wr1-x444.google.com ([2a00:1450:4864:20::444]:38269) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1igtFJ-0007w6-Tz for qemu-devel@nongnu.org; Mon, 16 Dec 2019 11:29:22 -0500 Received: by mail-wr1-x444.google.com with SMTP id y17so8050674wrh.5 for ; Mon, 16 Dec 2019 08:29:21 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=8QhwqaPFLSp6FHYlalgsR7gbeayOVVyGZFS6tWZHxJo=; b=MwX6jkIEC6wEDHV1SZ1+JcP8fX/ZK1HD01hDXjtivjvRCQgmPlS8hIi2mYJvHUAMEE u/yu7k8KSqxOg+okHX/I8O6d47aqNm7XlXwX4p6f2UjodncGxuJey3NPbNlMJsWzAr+p jCtcyLQpjuRk/zo98FyUCjxQBcgIITwtdsPGG35DWrvVecOeMrPPXIMo8OmFaNCT7DRN JaogPei/zE8odMl4otlibktabWkbdmIzVPX6BhtmJGyn0eHB92n8vkExF/HiIkvVdEEq v7fgtO1SSBQrKIYcfXqrwFjk9cukmynUbV2SwLfPr/cSbIYv4+rs5UEp+Ybs4u4XBmi7 DdNQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:subject:date:message-id :in-reply-to:references:mime-version:content-transfer-encoding; bh=8QhwqaPFLSp6FHYlalgsR7gbeayOVVyGZFS6tWZHxJo=; b=E7AQJLv7AvR6k7k/7v+JrHJMMoYIkmQu7lgauFsIdlywcydP6pMZPsQdGms8LBXKbQ 5XDD6Jp/hbCZS6Yl+L1erTHuDST7TjIsiFKZRCyjjJKBekO+F+n8vJxbE4HT/DpZhu54 fbzqsAV/vHqw4eYVYZSXdrDr2MRO92yy22cQrbIIAAOEXts9zm4zohlZvyX0qnSOF0G6 RM3oGn2CFp4bwr8610XaOZMfhUY0jfhAgEUkVBsfBA9FIdpF5S3xkFJNygkMjcqHGWsO 4qwE+2vJKmtepuO93557MH/imDiBKtr5ZBd4tdFX5ZqB9Hs/S8bgZbo4Js6pnfIxAdMa nBBQ== X-Gm-Message-State: APjAAAUqbI1q7wtVuahvU5PYBzdn1FJDqyMpvlPP5ApCFbVrT0IKTJtZ NljThe3quDQpo/FAYQ+YncrniAvj X-Google-Smtp-Source: APXvYqySCjL49ZgAn9Kr7jjPGkGQ+PI4drR8P4MR42F2QP9MQONbb5OP5iuWZSOuhGjzUj7saunEWg== X-Received: by 2002:a5d:6a52:: with SMTP id t18mr30171598wrw.391.1576513760786; Mon, 16 Dec 2019 08:29:20 -0800 (PST) Received: from 640k.lan ([93.56.166.5]) by smtp.gmail.com with ESMTPSA id q68sm19962334wme.14.2019.12.16.08.29.19 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 16 Dec 2019 08:29:19 -0800 (PST) From: Paolo Bonzini To: qemu-devel@nongnu.org Subject: [PULL 33/62] build-sys: do not include Windows SLIRP dependencies in $LIBS Date: Mon, 16 Dec 2019 17:28:17 +0100 Message-Id: <1576513726-53700-34-git-send-email-pbonzini@redhat.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1576513726-53700-1-git-send-email-pbonzini@redhat.com> References: <1576513726-53700-1-git-send-email-pbonzini@redhat.com> MIME-Version: 1.0 X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2a00:1450:4864:20::444 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: , Errors-To: qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Sender: "Qemu-devel" When including the internal SLIRP library, we should add all the libraries that it needs for the build. Right now they are all included by QEMU, but -liphlpapi is not needed without slirp. Move it from LIBS to slirp_libs. Based on a patch by Marc-André Lureau. Acked-by: Samuel Thibault Signed-off-by: Paolo Bonzini --- configure | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/configure b/configure index 2c72e04..8fb26ad 100755 --- a/configure +++ b/configure @@ -926,7 +926,7 @@ if test "$mingw32" = "yes" ; then DSOSUF=".dll" # MinGW needs -mthreads for TLS and macro _MT. QEMU_CFLAGS="-mthreads $QEMU_CFLAGS" - LIBS="-lwinmm -lws2_32 -liphlpapi $LIBS" + LIBS="-lwinmm -lws2_32 $LIBS" write_c_skeleton; if compile_prog "" "-liberty" ; then LIBS="-liberty $LIBS" @@ -6053,6 +6053,9 @@ case "$slirp" in mkdir -p slirp slirp_cflags="-I\$(SRC_PATH)/slirp/src -I\$(BUILD_DIR)/slirp/src" slirp_libs="-L\$(BUILD_DIR)/slirp -lslirp" + if test "$mingw32" = "yes" ; then + slirp_libs="$slirp_libs -lws2_32 -liphlpapi" + fi ;; system) From patchwork Mon Dec 16 16:28:18 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Paolo Bonzini X-Patchwork-Id: 11294645 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 086AF930 for ; Mon, 16 Dec 2019 16:52:44 +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 CFD39206D7 for ; Mon, 16 Dec 2019 16:52:43 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="JUmXWaGM" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org CFD39206D7 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=redhat.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Received: from localhost ([::1]:56866 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1igtbu-0000H5-AG for patchwork-qemu-devel@patchwork.kernel.org; Mon, 16 Dec 2019 11:52:42 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:57039) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1igtFM-0005OV-43 for qemu-devel@nongnu.org; Mon, 16 Dec 2019 11:29:25 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1igtFL-00081d-15 for qemu-devel@nongnu.org; Mon, 16 Dec 2019 11:29:24 -0500 Received: from mail-wm1-x331.google.com ([2a00:1450:4864:20::331]:39552) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1igtFK-0007zL-QR for qemu-devel@nongnu.org; Mon, 16 Dec 2019 11:29:22 -0500 Received: by mail-wm1-x331.google.com with SMTP id b72so5375224wme.4 for ; Mon, 16 Dec 2019 08:29:22 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=WjRgIZ5qePVVbis5wVrr7iekZjJDuuFlCCqKYtN7ZTM=; b=JUmXWaGMzO8UioG9KTKHtW8U23SKuq2LL0XPNjgreOg/xDgEPalF08ohbjPtnygXhC W2LaV4gVSGBUx2rCOCjr3kLzijti5gHNf3s68tcWtved7qcjFXBDKdKtz/YcYqdUPbQR Z/OFE40Xg8iuxYH3SROVULykBVmZiv+AGDGytC7qDKzthAb3Y9DUpXCRzbbrWSvX7A2a U3GJlMmNpYQoAjiHp0b2m4hkJoGAq6EVQ7kZtvyMCeWAnZ3qzrMq6fgsbU8c+m6wybrA eP/GHvHdYFO83W4tlgqND+eYh5M1ADB3l/CKVy6Q50fXnGmwCfx4lMPydmPnegXWoBEe KyIg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references:mime-version:content-transfer-encoding; bh=WjRgIZ5qePVVbis5wVrr7iekZjJDuuFlCCqKYtN7ZTM=; b=J/oVxWya/kDjugQ2zIiTTZKpcJWuFfgWJJfxy/1CZ+aKc3SSMZh5zgTx2H1qvPPomg xVJnJbIvX0TJ3ULdkzhgVRfqm/N5UJ2hp3YrGM5HEZ2FlLV1dUK5oDgDhzp7LgWM3zOL rPnYepW5BJC+g+NQ/puHvXhtctsqvhmN+rQtsUAsGfnDsbLuBsopbEY5WDctVWE5GOWS ciLQf6xxy6bixcd3yDj5PxSIM/cheLdo8E69Tf4g8LJS5gMXP2kH0JRgaD9wBYJ4B/iS 9IuqNbBQoRGHwRG98Lv2ZrNnVJDlLA//ez8dD9IdW/LRj9/mayHMWqOy6fbDHUuzPRb/ lb2w== X-Gm-Message-State: APjAAAXwD6IDe9EyN3VkcnwGlluTCBiSWzUXdH8NtytSXAJlTGiykchH Tjq34NNyy8K7zqHD35a9yjk4qW4L X-Google-Smtp-Source: APXvYqx3510oLGQATAh3ke9cWF1UswFWulfF2GCgbVkCjbtmt6zIBnAsMvR/OeYcWjdSn6mg8iLPow== X-Received: by 2002:a1c:ed0e:: with SMTP id l14mr30231145wmh.74.1576513761680; Mon, 16 Dec 2019 08:29:21 -0800 (PST) Received: from 640k.lan ([93.56.166.5]) by smtp.gmail.com with ESMTPSA id q68sm19962334wme.14.2019.12.16.08.29.20 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 16 Dec 2019 08:29:21 -0800 (PST) From: Paolo Bonzini To: qemu-devel@nongnu.org Subject: [PULL 34/62] migration: fix maybe-uninitialized warning Date: Mon, 16 Dec 2019 17:28:18 +0100 Message-Id: <1576513726-53700-35-git-send-email-pbonzini@redhat.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1576513726-53700-1-git-send-email-pbonzini@redhat.com> References: <1576513726-53700-1-git-send-email-pbonzini@redhat.com> MIME-Version: 1.0 X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2a00:1450:4864:20::331 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: =?utf-8?q?Marc-Andr=C3=A9_Lureau?= Errors-To: qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Sender: "Qemu-devel" From: Marc-André Lureau ../migration/ram.c: In function ‘multifd_recv_thread’: /home/elmarco/src/qq/include/qapi/error.h:165:5: error: ‘block’ may be used uninitialized in this function [-Werror=maybe-uninitialized] 165 | error_setg_internal((errp), __FILE__, __LINE__, __func__, \ | ^~~~~~~~~~~~~~~~~~~ ../migration/ram.c:818:15: note: ‘block’ was declared here 818 | RAMBlock *block; | ^~~~~ Signed-off-by: Marc-André Lureau Signed-off-by: Paolo Bonzini --- migration/ram.c | 20 +++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) diff --git a/migration/ram.c b/migration/ram.c index 5078f94..7dd7f81 100644 --- a/migration/ram.c +++ b/migration/ram.c @@ -864,15 +864,17 @@ static int multifd_recv_unfill_packet(MultiFDRecvParams *p, Error **errp) p->next_packet_size = be32_to_cpu(packet->next_packet_size); p->packet_num = be64_to_cpu(packet->packet_num); - if (p->pages->used) { - /* make sure that ramblock is 0 terminated */ - packet->ramblock[255] = 0; - block = qemu_ram_block_by_name(packet->ramblock); - if (!block) { - error_setg(errp, "multifd: unknown ram block %s", - packet->ramblock); - return -1; - } + if (p->pages->used == 0) { + return 0; + } + + /* make sure that ramblock is 0 terminated */ + packet->ramblock[255] = 0; + block = qemu_ram_block_by_name(packet->ramblock); + if (!block) { + error_setg(errp, "multifd: unknown ram block %s", + packet->ramblock); + return -1; } for (i = 0; i < p->pages->used; i++) { From patchwork Mon Dec 16 16:28:19 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Paolo Bonzini X-Patchwork-Id: 11294655 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id ACF10930 for ; Mon, 16 Dec 2019 16:55:11 +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 83077206D7 for ; Mon, 16 Dec 2019 16:55:11 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="DaEHl6Ds" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 83077206D7 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=redhat.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Received: from localhost ([::1]:56894 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1igteI-0003iV-3b for patchwork-qemu-devel@patchwork.kernel.org; Mon, 16 Dec 2019 11:55:10 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:57052) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1igtFM-0005PX-R9 for qemu-devel@nongnu.org; Mon, 16 Dec 2019 11:29:25 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1igtFL-00083d-Ox for qemu-devel@nongnu.org; Mon, 16 Dec 2019 11:29:24 -0500 Received: from mail-wr1-x42f.google.com ([2a00:1450:4864:20::42f]:40707) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1igtFL-00081g-Ih for qemu-devel@nongnu.org; Mon, 16 Dec 2019 11:29:23 -0500 Received: by mail-wr1-x42f.google.com with SMTP id c14so8051676wrn.7 for ; Mon, 16 Dec 2019 08:29:23 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=SnbM4HZb29FsG4J6fiW5WwWfE0ShjwYvCK5bmD3CYRU=; b=DaEHl6Dsqm8hqfm/jR7fBK2BgKP4aL4GewQe8VRKGq9TnVDAijwRqRS+U3cErGC5AV H2Tj8sSg4aLxQibYzclCtybH6sI3zYF1wZicKkIA0X1SlsgUcIKwg3k4CtG52Mie+nHu NMjuNS5lsZ5q6vROnGXcuNJY3FQ9FYSby/LIVEH2KzX6r22BfxA71aFdqtd/WkUbv4pa /LNs+VqYtMH6wzsC4FCj7Ax8XaFPTpZCqJ7dZ72v/6DulSSilCUDkTO/33ri83cfPrMF eNqK5CnkeqHFMUfznnP90BmZW+5I6CqTo3JuwW19CiYNXL/qKo/Clgtoi4PufFWGIV2Z r+fA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references:mime-version:content-transfer-encoding; bh=SnbM4HZb29FsG4J6fiW5WwWfE0ShjwYvCK5bmD3CYRU=; b=rR9c3pmLQr9+8ie4EMybFmweIgyE+0GoQxhXEgX1t8R1HbqSY7tbxZiXuhcxKhQmN7 6gW6OwbW2wI2C9/QY/WKFk52IVSejitIXmSkF1PePMYWCFMmBRB8NzY/DPNeA17r2V1e c5sE2ISiJPHBwjRQSp7EquWZ+pcfgBxUeLs8S0i5op62UC6i7dwjagtO69ExzPTJ3frn lmwuvKJeOUUxgb9oYMuq+9dZOeMQN2VHGbQuxYRkATYa+gkMw6SDq6A1Tf5Oxf6F2356 ur1G90s/40anwrTOwBpunsC7Whf/x4bPkp/B5VzKP1kdvq7KpR7ip3xGF0rbJ67CKXx6 ZSMw== X-Gm-Message-State: APjAAAXvft40KR1/qqgfJoH6PwHr0SxJ+gYgRzk9u8L8y73ORER0m+H+ PNhe+o/N80ua+UpQGIzbHiOnY1DY X-Google-Smtp-Source: APXvYqzZL9J/EAk7mMIH+jiTbjn8r/Z25M/xhwObmbxfiCjduNR6n+peidQdfEVUqlEgHUCNmy5S3A== X-Received: by 2002:a5d:53c1:: with SMTP id a1mr30044589wrw.373.1576513762427; Mon, 16 Dec 2019 08:29:22 -0800 (PST) Received: from 640k.lan ([93.56.166.5]) by smtp.gmail.com with ESMTPSA id q68sm19962334wme.14.2019.12.16.08.29.21 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 16 Dec 2019 08:29:21 -0800 (PST) From: Paolo Bonzini To: qemu-devel@nongnu.org Subject: [PULL 35/62] monitor: fix maybe-uninitialized Date: Mon, 16 Dec 2019 17:28:19 +0100 Message-Id: <1576513726-53700-36-git-send-email-pbonzini@redhat.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1576513726-53700-1-git-send-email-pbonzini@redhat.com> References: <1576513726-53700-1-git-send-email-pbonzini@redhat.com> MIME-Version: 1.0 X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2a00:1450:4864:20::42f 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: =?utf-8?q?Marc-Andr=C3=A9_Lureau?= Errors-To: qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Sender: "Qemu-devel" From: Marc-André Lureau ../monitor/misc.c: In function ‘mon_get_cpu_sync’: /home/elmarco/src/qq/include/sysemu/hw_accel.h:22:9: error: ‘cpu’ may be used uninitialized in this function [-Werror=maybe-uninitialized] 22 | kvm_cpu_synchronize_state(cpu); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ../monitor/misc.c:397:15: note: ‘cpu’ was declared here 397 | CPUState *cpu; | ^~~ Signed-off-by: Marc-André Lureau Signed-off-by: Paolo Bonzini --- monitor/misc.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/monitor/misc.c b/monitor/misc.c index 3baa15f..a74cff3 100644 --- a/monitor/misc.c +++ b/monitor/misc.c @@ -394,7 +394,7 @@ int monitor_set_cpu(int cpu_index) /* Callers must hold BQL. */ static CPUState *mon_get_cpu_sync(bool synchronize) { - CPUState *cpu; + CPUState *cpu = NULL; if (cur_mon->mon_cpu_path) { cpu = (CPUState *) object_resolve_path_type(cur_mon->mon_cpu_path, @@ -411,6 +411,7 @@ static CPUState *mon_get_cpu_sync(bool synchronize) monitor_set_cpu(first_cpu->cpu_index); cpu = first_cpu; } + assert(cpu != NULL); if (synchronize) { cpu_synchronize_state(cpu); } From patchwork Mon Dec 16 16:28:20 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Paolo Bonzini X-Patchwork-Id: 11294635 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 41ABA930 for ; Mon, 16 Dec 2019 16:49:26 +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 170CC206EC for ; Mon, 16 Dec 2019 16:49:26 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="KzXbvxuf" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 170CC206EC Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=redhat.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Received: from localhost ([::1]:56826 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1igtYi-00054M-HY for patchwork-qemu-devel@patchwork.kernel.org; Mon, 16 Dec 2019 11:49:24 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:57074) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1igtFN-0005RS-Uv for qemu-devel@nongnu.org; Mon, 16 Dec 2019 11:29:26 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1igtFM-00089Y-Qa for qemu-devel@nongnu.org; Mon, 16 Dec 2019 11:29:25 -0500 Received: from mail-wm1-x335.google.com ([2a00:1450:4864:20::335]:37150) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1igtFM-000855-KU for qemu-devel@nongnu.org; Mon, 16 Dec 2019 11:29:24 -0500 Received: by mail-wm1-x335.google.com with SMTP id f129so7409078wmf.2 for ; Mon, 16 Dec 2019 08:29:24 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=G3GeihMZT3FWsjutpTGVLlWKTkWWsva27E3p012qRdM=; b=KzXbvxufQA840q/1TB8VQ7Z4x7UjC7xMOsqydpyuwoo8andOZYZ7WUa1lxwsPrGOVb LyicX9bJXzx7EL1NvAdVt7hOSE78ksbVZhdnZtI6imHrDFvcpQHSdVAqcQ5fwGcycjPa 7OdIYHdv7HdLyG3dJYyLBLjeKqAkz+YawUsEG+sQ1NvbPPoxZJwbKfxxeiUDewkjOLoQ URMfCGVqK6HrY220acInEGpDYUoT/J+ydKx3z5b1rWkXvkV2Y3+QwCeY4+ea/Xwd5aQY 4G59BG1VwSd0a+rCBhNJAjVI1PH5RTn6vYjRZExj/xnFpwRGinyS/aSUcka+vJObudoD Oqrw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references:mime-version:content-transfer-encoding; bh=G3GeihMZT3FWsjutpTGVLlWKTkWWsva27E3p012qRdM=; b=gy0ScnEACpVgIZ0Vc3lJgPpHRDjiH6YrA/CAOfq3KZk9TpdCNkVTJ3+2/NHoEstVnL 5g8FNF5RtiDrEkuauyqz+Yc/DKGB9fVeByWI3vJMgtdI8RLeYoKyOTETDOCE4tiXwGWh JJRllVIhAPbnsUkqN0rYNtl8QulKu836LuO0YZYXElSdQcnMhVt8sWPyjsW+WoNEKE+z wVJ9sTQ9giA3cc6QOYi0WRo+AdLRBDXiFiwze8Q8v4CWZGF9uWjjh1eLWE2IN2UW6J1u NPfos+kKO6XWMErFiBLCCbjeD6spYMUzgTW443f97tvSwSVi4NnddkDeb7j5eYseQv4I hD3Q== X-Gm-Message-State: APjAAAWIAHLttbkZOZlfpItVOTuPXrflf8A+E+jV4oFdJLHuV110sh3S 46myknJZ+bCqIczxB3FfFkD3qAJs X-Google-Smtp-Source: APXvYqzLi1J6h7gnp7ha6J+RLwMSpxfOQ/kHDGaH0RhRiHzjclL69AyB+L/eM3ps3mG6EBHTcF8PjQ== X-Received: by 2002:a7b:ce98:: with SMTP id q24mr29471008wmj.41.1576513763492; Mon, 16 Dec 2019 08:29:23 -0800 (PST) Received: from 640k.lan ([93.56.166.5]) by smtp.gmail.com with ESMTPSA id q68sm19962334wme.14.2019.12.16.08.29.22 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 16 Dec 2019 08:29:22 -0800 (PST) From: Paolo Bonzini To: qemu-devel@nongnu.org Subject: [PULL 36/62] vhost-user-scsi: fix printf format warning Date: Mon, 16 Dec 2019 17:28:20 +0100 Message-Id: <1576513726-53700-37-git-send-email-pbonzini@redhat.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1576513726-53700-1-git-send-email-pbonzini@redhat.com> References: <1576513726-53700-1-git-send-email-pbonzini@redhat.com> MIME-Version: 1.0 X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2a00:1450:4864:20::335 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: =?utf-8?q?Marc-Andr=C3=A9_Lureau?= Errors-To: qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Sender: "Qemu-devel" From: Marc-André Lureau Fixes: ../contrib/vhost-user-scsi/vhost-user-scsi.c:118:57: error: format specifies type 'unsigned char' but the argument has type 'int' [-Werror,-Wformat] g_warning("Unable to determine cdb len (0x%02hhX)", cdb[0] >> 5); Signed-off-by: Marc-André Lureau Signed-off-by: Paolo Bonzini --- contrib/vhost-user-scsi/vhost-user-scsi.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/contrib/vhost-user-scsi/vhost-user-scsi.c b/contrib/vhost-user-scsi/vhost-user-scsi.c index 0fc14d7..7a1db16 100644 --- a/contrib/vhost-user-scsi/vhost-user-scsi.c +++ b/contrib/vhost-user-scsi/vhost-user-scsi.c @@ -115,7 +115,7 @@ static int get_cdb_len(uint8_t *cdb) case 4: return 16; case 5: return 12; } - g_warning("Unable to determine cdb len (0x%02hhX)", cdb[0] >> 5); + g_warning("Unable to determine cdb len (0x%02hhX)", (uint8_t)(cdb[0] >> 5)); return -1; } From patchwork Mon Dec 16 16:28:21 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Paolo Bonzini X-Patchwork-Id: 11294663 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id D70E4138C for ; Mon, 16 Dec 2019 16:57:57 +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 ACEEC206D7 for ; Mon, 16 Dec 2019 16:57:57 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="XZC3DGLH" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org ACEEC206D7 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=redhat.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Received: from localhost ([::1]:56942 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1igtgy-0007al-H2 for patchwork-qemu-devel@patchwork.kernel.org; Mon, 16 Dec 2019 11:57:56 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:57093) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1igtFO-0005TF-Ui for qemu-devel@nongnu.org; Mon, 16 Dec 2019 11:29:28 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1igtFN-0008Bk-Rc for qemu-devel@nongnu.org; Mon, 16 Dec 2019 11:29:26 -0500 Received: from mail-wm1-x343.google.com ([2a00:1450:4864:20::343]:51526) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1igtFN-0008AF-Ku for qemu-devel@nongnu.org; Mon, 16 Dec 2019 11:29:25 -0500 Received: by mail-wm1-x343.google.com with SMTP id d73so7442287wmd.1 for ; Mon, 16 Dec 2019 08:29:25 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=6P+O7fP7RdRxtrVlibSaBNIUsO6tN03n2SE/FwGlPpk=; b=XZC3DGLH7mD2D6Ov17IfdNUjwwHtiaAxWokeXKTpnrYblSxYPjvgQVQbxpxae/tZmP fz/wCpjENNCg383tZ8bya3zYZNFhoeO0DxKL7PPB6j4njVyelnvi+gVPP7RAE6Biul0A 9S79ZTf5PBem3BlKPuAfV7s/FudJJh6iRfxqPdt/k9QrP7+sPwq+3+S0G/9XmDJ15Uw/ Wlxn6E/1DZ2bp6MIGz1HurmbpKftfe6k7+Syt9BMYCu/IizL/J+jaCy5cPnaqktkL3sj gtnf+rvcNsRYNru5poc8dPx+5twTaOoa5826P+EQEexiFIRv0KScm4gU3vfruAFtr6PG C+bw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references:mime-version:content-transfer-encoding; bh=6P+O7fP7RdRxtrVlibSaBNIUsO6tN03n2SE/FwGlPpk=; b=EsvQq5BEga7iL2O4dD+Xr58Zb1HIFEfRm6549oL7dQrD9m6FTHA7M/jbzG2TKaT+pH qlTQ8FQ7y4YpEqBDuG+fhhfI3HXwvgL+ytegY5jpiiu9HfAUzLQ0PZgS4pz9E6TVUitT LSA/P+zeeHb4K+hhAfeZ14OjCFYBrQ3B4RXx8zyPrcG+8nl3uxDyIi7HQ4KxOlNpwjnz yLhPVVuibx13272DrhbvZ3NtGeEG5zxOpTUcfEaYICB+KcTBIObrHrXzET6+THiGzSpA hshUyzBvtmXCVQcK7BVdkTPfrFc8uwZwsVZ3SMSenq4dKXtodjQz31Em6PxZ1qZKzeoS ol5Q== X-Gm-Message-State: APjAAAVUa36gzSyREWQgz7CSgFWOxxfcNT+mKZuWgV9tm9gn/tY+nb3D BLOrhrvmWLcQHKxyz3Q3fbRN3i3Q X-Google-Smtp-Source: APXvYqyBCsKVypV4RKf5k1wegG9Dbpb/4umYuP+1VGpQ96ucG+EQzRwoP/H+N3e6EmlpjIt0RkjPLQ== X-Received: by 2002:a7b:c38c:: with SMTP id s12mr31378772wmj.96.1576513764441; Mon, 16 Dec 2019 08:29:24 -0800 (PST) Received: from 640k.lan ([93.56.166.5]) by smtp.gmail.com with ESMTPSA id q68sm19962334wme.14.2019.12.16.08.29.23 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 16 Dec 2019 08:29:23 -0800 (PST) From: Paolo Bonzini To: qemu-devel@nongnu.org Subject: [PULL 37/62] os-posix: simplify os_find_datadir Date: Mon, 16 Dec 2019 17:28:21 +0100 Message-Id: <1576513726-53700-38-git-send-email-pbonzini@redhat.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1576513726-53700-1-git-send-email-pbonzini@redhat.com> References: <1576513726-53700-1-git-send-email-pbonzini@redhat.com> MIME-Version: 1.0 X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2a00:1450:4864:20::343 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: =?utf-8?q?Marc-Andr=C3=A9_Lureau?= Errors-To: qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Sender: "Qemu-devel" From: Marc-André Lureau Use g_build_filename instead of sprintf, and g_autofree instead of manual freeing. Signed-off-by: Marc-André Lureau Signed-off-by: Paolo Bonzini --- os-posix.c | 41 +++++++++++++---------------------------- 1 file changed, 13 insertions(+), 28 deletions(-) diff --git a/os-posix.c b/os-posix.c index 86cffd2..3cd52e1 100644 --- a/os-posix.c +++ b/os-posix.c @@ -80,41 +80,26 @@ void os_setup_signal_handling(void) sigaction(SIGTERM, &act, NULL); } -/* Find a likely location for support files using the location of the binary. - For installed binaries this will be "$bindir/../share/qemu". When - running from the build tree this will be "$bindir/../pc-bios". */ -#define SHARE_SUFFIX "/share/qemu" -#define BUILD_SUFFIX "/pc-bios" +/* + * Find a likely location for support files using the location of the binary. + * When running from the build tree this will be "$bindir/../pc-bios". + * Otherwise, this is CONFIG_QEMU_DATADIR. + */ char *os_find_datadir(void) { - char *dir, *exec_dir; - char *res; - size_t max_len; + g_autofree char *exec_dir = NULL; + g_autofree char *dir = NULL; exec_dir = qemu_get_exec_dir(); - if (exec_dir == NULL) { - return NULL; - } - dir = g_path_get_dirname(exec_dir); - - max_len = strlen(dir) + - MAX(strlen(SHARE_SUFFIX), strlen(BUILD_SUFFIX)) + 1; - res = g_malloc0(max_len); - snprintf(res, max_len, "%s%s", dir, SHARE_SUFFIX); - if (access(res, R_OK)) { - snprintf(res, max_len, "%s%s", dir, BUILD_SUFFIX); - if (access(res, R_OK)) { - g_free(res); - res = NULL; - } + g_return_val_if_fail(exec_dir != NULL, NULL); + + dir = g_build_filename(exec_dir, "..", "pc-bios", NULL); + if (g_file_test(dir, G_FILE_TEST_IS_DIR)) { + return g_steal_pointer(&dir); } - g_free(dir); - g_free(exec_dir); - return res; + return g_strdup(CONFIG_QEMU_DATADIR); } -#undef SHARE_SUFFIX -#undef BUILD_SUFFIX void os_set_proc_name(const char *s) { From patchwork Mon Dec 16 16:28:22 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Paolo Bonzini X-Patchwork-Id: 11294643 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 70EB7138D for ; Mon, 16 Dec 2019 16:52:40 +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 46A5B206D7 for ; Mon, 16 Dec 2019 16:52:40 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="MI5HWVIC" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 46A5B206D7 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=redhat.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Received: from localhost ([::1]:56864 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1igtbq-0000BP-SA for patchwork-qemu-devel@patchwork.kernel.org; Mon, 16 Dec 2019 11:52:38 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:57112) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1igtFQ-0005V8-3e for qemu-devel@nongnu.org; Mon, 16 Dec 2019 11:29:29 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1igtFO-0008E5-UN for qemu-devel@nongnu.org; Mon, 16 Dec 2019 11:29:27 -0500 Received: from mail-wm1-x32a.google.com ([2a00:1450:4864:20::32a]:51967) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1igtFO-0008CK-OG for qemu-devel@nongnu.org; Mon, 16 Dec 2019 11:29:26 -0500 Received: by mail-wm1-x32a.google.com with SMTP id d73so7442350wmd.1 for ; Mon, 16 Dec 2019 08:29:26 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=krn7Kkhs4vLKmgRKkkOCYmFp/3LepaZDyU+ixJxoNEk=; b=MI5HWVICIvm0Aw5tsXio8fTjiwMpyNC9wXWZUPBdx7dtGvFw9o7N7QLaWxmBOeUdTz dDI+J4/LiTthRUp2/GinqCyHOdbMeFbKk3pQse6fM9t7ZerehZQFIW/O5au6QZX1TkF+ ojRKk8Vfm2Eyr4EnTLhX0cjwrIqF5q9+DVjFP56WTGq9YEMFCEiNCXTsnV4/UCPZ2o4W EoB5OzzLvqgUKmFb8I15hKbL20fbJCbyYzQZYDw4G8EzFXN/A347rgAsYmnD70+sTWxI EiOcvyWMVYiuDjGckrOIVe+oWCZfJxhAbq5XOgkO7to1dA4Zs/vKgBt9E4WXancqAQSR JkXQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references:mime-version:content-transfer-encoding; bh=krn7Kkhs4vLKmgRKkkOCYmFp/3LepaZDyU+ixJxoNEk=; b=Pen7CdIvQWeI3vPF/XmHdNENwB10R5J4BbJV0dTpapyZuBerZJicsX2zbLNvcbH39E GVqpBCgDdmnKGo9bf2kROYKGLS+aTWvdq9sYMulmATWzAfxCdlJ1VDuwQXEgXUOztr1h 1l+Ts5zV6fqKeAqzvQZ1lY0EM7Zzgzfz2sZcK5+r45hy87HtGAIBXJ2Pw66L40UD/uGS n6Pelk5tizWx2NHaPVwiNqDfETgjY5e1fNPKmP6kRptxxo8ZLpYtLSuw21uyDM86uyL7 sgerNohKVIeDQJgxp247RfAU/FAy9MHMprBSuvnYxinMhy7bz0B8wVvV2gWH/cpwKbkY g7mQ== X-Gm-Message-State: APjAAAVHbbsvhk7uP12j7jMPunFsWvzziryMhlolQoN1pY6h4Jh5Gjh3 8rwkVzsh1iiGsmwvtsetBCNebfxA X-Google-Smtp-Source: APXvYqxhTr+pBbZlTbruBnhUvchDJ1UOOoA3SM7IH2MpPoezMxlfUOH6shSkbpHryrHUwaHjyTjmTA== X-Received: by 2002:a1c:6308:: with SMTP id x8mr4429831wmb.80.1576513765521; Mon, 16 Dec 2019 08:29:25 -0800 (PST) Received: from 640k.lan ([93.56.166.5]) by smtp.gmail.com with ESMTPSA id q68sm19962334wme.14.2019.12.16.08.29.24 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 16 Dec 2019 08:29:24 -0800 (PST) From: Paolo Bonzini To: qemu-devel@nongnu.org Subject: [PULL 38/62] tests: skip block layer tests if !CONFIG_TOOLS Date: Mon, 16 Dec 2019 17:28:22 +0100 Message-Id: <1576513726-53700-39-git-send-email-pbonzini@redhat.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1576513726-53700-1-git-send-email-pbonzini@redhat.com> References: <1576513726-53700-1-git-send-email-pbonzini@redhat.com> MIME-Version: 1.0 X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2a00:1450:4864:20::32a 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: =?utf-8?q?Marc-Andr=C3=A9_Lureau?= Errors-To: qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Sender: "Qemu-devel" From: Marc-André Lureau The block tests, as well as ahci-test needs qemu-img. Do not run them if it wasn't built. Signed-off-by: Marc-André Lureau Signed-off-by: Paolo Bonzini --- tests/Makefile.include | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/tests/Makefile.include b/tests/Makefile.include index 8566f5f..7457be9 100644 --- a/tests/Makefile.include +++ b/tests/Makefile.include @@ -169,7 +169,7 @@ check-qtest-pci-$(CONFIG_IVSHMEM_DEVICE) += tests/ivshmem-test$(EXESUF) check-qtest-i386-$(CONFIG_ISA_TESTDEV) = tests/endianness-test$(EXESUF) check-qtest-i386-y += tests/fdc-test$(EXESUF) check-qtest-i386-y += tests/ide-test$(EXESUF) -check-qtest-i386-y += tests/ahci-test$(EXESUF) +check-qtest-i386-$(CONFIG_TOOLS) += tests/ahci-test$(EXESUF) check-qtest-i386-y += tests/hd-geo-test$(EXESUF) check-qtest-i386-y += tests/boot-order-test$(EXESUF) check-qtest-i386-y += tests/bios-tables-test$(EXESUF) @@ -1193,7 +1193,9 @@ check-acceptance: check-venv $(TESTS_RESULTS_DIR) .PHONY: check-block check-qapi-schema check-qtest check-unit check check-clean check-qapi-schema: check-tests/qapi-schema/frontend check-tests/qapi-schema/doc-good.texi check-qtest: $(patsubst %,check-qtest-%, $(QTEST_TARGETS)) +ifeq ($(CONFIG_TOOLS),y) check-block: $(patsubst %,check-%, $(check-block-y)) +endif check: check-block check-qapi-schema check-unit check-softfloat check-qtest check-decodetree check-clean: rm -rf $(check-unit-y) tests/*.o $(QEMU_IOTESTS_HELPERS-y) From patchwork Mon Dec 16 16:28:23 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Paolo Bonzini X-Patchwork-Id: 11294671 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id DAC8D930 for ; Mon, 16 Dec 2019 17:00:50 +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 B0DF5206D7 for ; Mon, 16 Dec 2019 17:00:50 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="ddCFy1xT" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org B0DF5206D7 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=redhat.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Received: from localhost ([::1]:56992 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1igtjl-0002xg-CO for patchwork-qemu-devel@patchwork.kernel.org; Mon, 16 Dec 2019 12:00:49 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:57129) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1igtFQ-0005Wg-Sv for qemu-devel@nongnu.org; Mon, 16 Dec 2019 11:29:29 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1igtFP-0008FW-MT for qemu-devel@nongnu.org; Mon, 16 Dec 2019 11:29:28 -0500 Received: from mail-wr1-x42c.google.com ([2a00:1450:4864:20::42c]:41941) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1igtFP-0008E9-G7 for qemu-devel@nongnu.org; Mon, 16 Dec 2019 11:29:27 -0500 Received: by mail-wr1-x42c.google.com with SMTP id c9so8038595wrw.8 for ; Mon, 16 Dec 2019 08:29:27 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:subject:date:message-id:in-reply-to:references; bh=BGBt01mjWcpv3t8vsUW2U8xt8/YYqyeKISoIMxkLyoU=; b=ddCFy1xTxh6tEE+OIC2lkmB8CW9tWNxJmBLdv5BNg8/FhNPhI8sy6pmYPF+msuG5eT bULm277fHCU7KVJrQ8R/WQhwwkPoj9aehHWT6emqdkWSoFoPXElPZv0Cxpl1kezAYaWl OyI7jhV0UhU/26xQPxyVDLWL+skHlswuWL2LIj38C95RPGESXIFNBrwUQOzjEkVYNkOd Co2zVSyWOK8RrraknjtRi/eLQ9+jYU8FRQ1JBaDGPhf5C7RUZm5O7ajEMT8kPUncm83K 74nIkd4CZGJFsqE3P0iIN4Lur+l1bwfPpUQI7/f2eE/wP5uzxbhOPr3IbkX7CkdTXe2w puBA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:subject:date:message-id :in-reply-to:references; bh=BGBt01mjWcpv3t8vsUW2U8xt8/YYqyeKISoIMxkLyoU=; b=nt71P3a8TP4S2UfWtfSGAh2gumX7V4vWFT/MQwPE9uXX+WYL2rqBKABVr5ODSwRnMR rqVG9y4WDno6683n9Y4Nep5KA3TQ4uglhdtFgCy4ZZIrBVv8JNJnT9CCOn2AlHoEva2L +CHGcYuEzbETNXKIooe7gXrNTe7x+UpP9wdyJRbDruwkTlSbl6X5RDAlZ/XbYJQy0R86 +//CQ5YYSk2whjJyeufEkQ4/pLaGIUcwZvvUfBrP2enEtxcEWAMICyezvtFW98/VzkeW pNA4HqpW/6ySW4LkNbE/HHDBiIEMZz+Fa1V7mX9oR1x9oIUo+pzIRGca20fbFxqJNlR0 UJug== X-Gm-Message-State: APjAAAVUgVomwutKTv1XRsK06P6A71+BLaJXzxiWyHdEq8FCyAJHXfDM iIV7fXZre4uc0sUlJCRvXJZds0SG X-Google-Smtp-Source: APXvYqz/SS/O9Qa8M7+h73+TxUpOZywcyKfzuUr28sFQVcgnqQKLhi4R+eyIikh/gjkWiYYZ/a3Lzw== X-Received: by 2002:a5d:50cf:: with SMTP id f15mr31529530wrt.381.1576513766332; Mon, 16 Dec 2019 08:29:26 -0800 (PST) Received: from 640k.lan ([93.56.166.5]) by smtp.gmail.com with ESMTPSA id q68sm19962334wme.14.2019.12.16.08.29.25 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 16 Dec 2019 08:29:25 -0800 (PST) From: Paolo Bonzini To: qemu-devel@nongnu.org Subject: [PULL 39/62] libvixl: remove per-target compiler flags Date: Mon, 16 Dec 2019 17:28:23 +0100 Message-Id: <1576513726-53700-40-git-send-email-pbonzini@redhat.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1576513726-53700-1-git-send-email-pbonzini@redhat.com> References: <1576513726-53700-1-git-send-email-pbonzini@redhat.com> X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2a00:1450:4864:20::42c 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: , Errors-To: qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Sender: "Qemu-devel" We are already including -D__STDC_LIMIT_MACROS in the global CXXFLAGS, so it makes sense to do the same for -D__STDC_CONSTANT_MACROS and -D__STDC_FORMAT_MACROS instead of limiting that to libvixl. The -Wno-sign-compare option can also be removed since GCC 4.6 is not supported anymore. Signed-off-by: Paolo Bonzini --- configure | 3 ++- disas/libvixl/Makefile.objs | 11 +---------- 2 files changed, 3 insertions(+), 11 deletions(-) diff --git a/configure b/configure index 8fb26ad..394f7f5 100755 --- a/configure +++ b/configure @@ -101,7 +101,7 @@ update_cxxflags() { # Set QEMU_CXXFLAGS from QEMU_CFLAGS by filtering out those # options which some versions of GCC's C++ compiler complain about # because they only make sense for C programs. - QEMU_CXXFLAGS="$QEMU_CXXFLAGS -D__STDC_LIMIT_MACROS" + QEMU_CXXFLAGS="$QEMU_CXXFLAGS -D__STDC_LIMIT_MACROS -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS" for arg in $QEMU_CFLAGS; do case $arg in @@ -596,6 +596,7 @@ QEMU_CFLAGS="-Wall -Wundef -Wwrite-strings -Wmissing-prototypes $QEMU_CFLAGS" QEMU_CFLAGS="-Wstrict-prototypes -Wredundant-decls $QEMU_CFLAGS" QEMU_CFLAGS="-D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE $QEMU_CFLAGS" QEMU_INCLUDES="-iquote . -iquote \$(SRC_PATH) -iquote \$(SRC_PATH)/accel/tcg -iquote \$(SRC_PATH)/include" +QEMU_INCLUDES="$QEMU_INCLUDES -iquote \$(SRC_PATH)/disas/libvixl" if test "$debug_info" = "yes"; then CFLAGS="-g $CFLAGS" LDFLAGS="-g $LDFLAGS" diff --git a/disas/libvixl/Makefile.objs b/disas/libvixl/Makefile.objs index 27183b7..99a637f 100644 --- a/disas/libvixl/Makefile.objs +++ b/disas/libvixl/Makefile.objs @@ -1,14 +1,5 @@ -libvixl_OBJS = vixl/utils.o \ +common-obj-$(CONFIG_ARM_A64_DIS) = vixl/utils.o \ vixl/compiler-intrinsics.o \ vixl/a64/instructions-a64.o \ vixl/a64/decoder-a64.o \ vixl/a64/disasm-a64.o - -# The -Wno-sign-compare is needed only for gcc 4.6, which complains about -# some signed-unsigned equality comparisons which later gcc versions do not. -$(addprefix $(obj)/,$(libvixl_OBJS)): QEMU_CXXFLAGS := -I$(SRC_PATH)/disas/libvixl $(QEMU_CXXFLAGS) -Wno-sign-compare -# Ensure that C99 macros are defined regardless of the inclusion order of -# headers in vixl. This is required at least on NetBSD. -$(addprefix $(obj)/,$(libvixl_OBJS)): QEMU_CXXFLAGS += -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS - -common-obj-$(CONFIG_ARM_A64_DIS) += $(libvixl_OBJS) From patchwork Mon Dec 16 16:28:24 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Paolo Bonzini X-Patchwork-Id: 11294653 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 4D5BA930 for ; Mon, 16 Dec 2019 16:55:10 +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 22F98206D7 for ; Mon, 16 Dec 2019 16:55:10 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="RZk9RW9k" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 22F98206D7 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=redhat.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Received: from localhost ([::1]:56892 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1igteG-0003h7-Pt for patchwork-qemu-devel@patchwork.kernel.org; Mon, 16 Dec 2019 11:55:08 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:57150) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1igtFT-0005YS-0y for qemu-devel@nongnu.org; Mon, 16 Dec 2019 11:29:32 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1igtFQ-0008IH-Ol for qemu-devel@nongnu.org; Mon, 16 Dec 2019 11:29:29 -0500 Received: from mail-wm1-x343.google.com ([2a00:1450:4864:20::343]:54282) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1igtFQ-0008GA-Hy for qemu-devel@nongnu.org; Mon, 16 Dec 2019 11:29:28 -0500 Received: by mail-wm1-x343.google.com with SMTP id b19so7422822wmj.4 for ; Mon, 16 Dec 2019 08:29:28 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:subject:date:message-id:in-reply-to:references; bh=l1KSd5++PafxRf9FJ4N/UJ/RdxW52LM0AVNPlxBCWg8=; b=RZk9RW9kk0wix0b+p2prn2bJselx2x/uIU23QvLGM54G7MdBKcABNwYdxx3V6E9Kjm HvHWDFhsuppM29cakx41QUNpu4EDQs/F31hdLGhXV4ivlGSyfS50E9NFGyqA4wsILJUU FGNfTarGwVqOftGrKT8EZm3S86IxQircBo4x3q8Giq6rQzrpYpOjva2ltDKyrrTzTTJY 8GA4gv7HlHF5zF1MTuFFfh4ZVEKFEaUeCpgmxYMODcH+Gts67fKVVHHAqYtDxQd4e2Ok BBTrKNCRKWZ/6e98Ddt2xAoVr87tTADqoHZIDNLJzB3YlgU60Vhm6Opdro7mtHNi0APk QBNA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:subject:date:message-id :in-reply-to:references; bh=l1KSd5++PafxRf9FJ4N/UJ/RdxW52LM0AVNPlxBCWg8=; b=RGmRmpF+Snk/yeXmGsTddbXk51J79mTHe5e4ywDk7AUAv3hdQfXAI0i4jQgG2VN6Pr wLz4ltwGDH4pGHYgstVjE5EZPTuOHJxBl+/5TOp63z6bcO1Nm90rmvaEBb2/i81u1LLY CWPkbFp5BJ34KfYgYDYwMuZmGkKrnxUM541AkuxwHqSTstPzCJ3Yb1lEqHSCOA2TkEVL WjunUtIR+cVSwXSqj1T7oZzz+VOJuWQ1uLWgSCyu8cl22nN6NQWaOkX5+A86qYBm4Jh4 NUamndfjCfhvHfum2w7WRgxz466kmJDVRi0iRWplpEUef2po9ymUL59s+H/L5p5Smlsz KOEw== X-Gm-Message-State: APjAAAUzoC8z5OAGvL6IuWoNJQMx5IUOPIDvcnBAMsy+g6PBv2v/X0PS r0m4yUUcSYbArvr3AKIN+jW5v+gk X-Google-Smtp-Source: APXvYqwZmAkx6HEHZd0SbnF7kuhx0HjnRt+LC3cqRLA6G7dvBuc/s/9CdV1Qg0U3pS0D45WIpYt1lA== X-Received: by 2002:a1c:4e03:: with SMTP id g3mr32500527wmh.22.1576513767366; Mon, 16 Dec 2019 08:29:27 -0800 (PST) Received: from 640k.lan ([93.56.166.5]) by smtp.gmail.com with ESMTPSA id q68sm19962334wme.14.2019.12.16.08.29.26 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 16 Dec 2019 08:29:26 -0800 (PST) From: Paolo Bonzini To: qemu-devel@nongnu.org Subject: [PULL 40/62] crypto: move common bits for all emulators to libqemuutil Date: Mon, 16 Dec 2019 17:28:24 +0100 Message-Id: <1576513726-53700-41-git-send-email-pbonzini@redhat.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1576513726-53700-1-git-send-email-pbonzini@redhat.com> References: <1576513726-53700-1-git-send-email-pbonzini@redhat.com> X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2a00:1450:4864:20::343 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: , Errors-To: qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Sender: "Qemu-devel" qcrypto_random_*, AES and qcrypto_init do not need to be linked as a whole and are the only parts that are used by user-mode emulation. Place them in libqemuutil, so that whatever needs them will pick them up automatically. Signed-off-by: Paolo Bonzini --- Makefile | 3 +-- Makefile.objs | 3 +-- Makefile.target | 2 -- crypto/Makefile.objs | 12 +++++------- 4 files changed, 7 insertions(+), 13 deletions(-) diff --git a/Makefile b/Makefile index bfd8ba3..fb1728e 100644 --- a/Makefile +++ b/Makefile @@ -436,7 +436,6 @@ dummy := $(call unnest-vars,, \ block-obj-y \ block-obj-m \ crypto-obj-y \ - crypto-user-obj-y \ qom-obj-y \ io-obj-y \ common-obj-y \ @@ -524,7 +523,7 @@ subdir-capstone: capstone/all subdir-slirp: slirp/all $(filter %/all, $(TARGET_DIRS_RULES)): libqemuutil.a $(common-obj-y) \ - $(qom-obj-y) $(crypto-user-obj-$(CONFIG_USER_ONLY)) + $(qom-obj-y) ROM_DIRS = $(addprefix pc-bios/, $(ROMS)) ROM_DIRS_RULES=$(foreach t, all clean, $(addsuffix /$(t), $(ROM_DIRS))) diff --git a/Makefile.objs b/Makefile.objs index b6fcbac..e33e992 100644 --- a/Makefile.objs +++ b/Makefile.objs @@ -1,7 +1,7 @@ ####################################################################### # Common libraries for tools and emulators stub-obj-y = stubs/ util/ crypto/ -util-obj-y = util/ qobject/ qapi/ +util-obj-y = crypto/ util/ qobject/ qapi/ chardev-obj-y = chardev/ @@ -25,7 +25,6 @@ block-obj-m = block/ # crypto-obj-y is code used by both qemu system emulation and qemu-img crypto-obj-y = crypto/ -crypto-user-obj-y = crypto/ ####################################################################### # qom-obj-y is code used by both qemu system emulation and qemu-img diff --git a/Makefile.target b/Makefile.target index 24d79d2..6e61f60 100644 --- a/Makefile.target +++ b/Makefile.target @@ -184,7 +184,6 @@ dummy := $(call unnest-vars,.., \ block-obj-m \ chardev-obj-y \ crypto-obj-y \ - crypto-user-obj-y \ qom-obj-y \ io-obj-y \ common-obj-y \ @@ -193,7 +192,6 @@ all-obj-y += $(common-obj-y) all-obj-y += $(qom-obj-y) all-obj-$(CONFIG_SOFTMMU) += $(authz-obj-y) all-obj-$(CONFIG_SOFTMMU) += $(block-obj-y) $(chardev-obj-y) -all-obj-$(CONFIG_USER_ONLY) += $(crypto-user-obj-y) all-obj-$(CONFIG_SOFTMMU) += $(crypto-obj-y) all-obj-$(CONFIG_SOFTMMU) += $(io-obj-y) diff --git a/crypto/Makefile.objs b/crypto/Makefile.objs index cdb01f9..58014d1 100644 --- a/crypto/Makefile.objs +++ b/crypto/Makefile.objs @@ -19,10 +19,6 @@ crypto-obj-y += tlscredspsk.o crypto-obj-y += tlscredsx509.o crypto-obj-y += tlssession.o crypto-obj-y += secret.o -crypto-rng-obj-$(CONFIG_GCRYPT) += random-gcrypt.o -crypto-rng-obj-$(if $(CONFIG_GCRYPT),n,$(CONFIG_GNUTLS)) += random-gnutls.o -crypto-rng-obj-$(if $(CONFIG_GCRYPT),n,$(if $(CONFIG_GNUTLS),n,y)) += random-platform.o -crypto-obj-y += $(crypto-rng-obj-y) crypto-obj-y += pbkdf.o crypto-obj-$(CONFIG_NETTLE) += pbkdf-nettle.o crypto-obj-$(if $(CONFIG_NETTLE),n,$(CONFIG_GCRYPT)) += pbkdf-gcrypt.o @@ -36,7 +32,9 @@ crypto-obj-y += block.o crypto-obj-y += block-qcow.o crypto-obj-y += block-luks.o -# Let the userspace emulators avoid linking stuff they won't use. -crypto-user-obj-y = aes.o $(crypto-rng-obj-y) init.o - stub-obj-y += pbkdf-stub.o + +util-obj-$(CONFIG_GCRYPT) += random-gcrypt.o +util-obj-$(if $(CONFIG_GCRYPT),n,$(CONFIG_GNUTLS)) += random-gnutls.o +util-obj-$(if $(CONFIG_GCRYPT),n,$(if $(CONFIG_GNUTLS),n,y)) += random-platform.o +util-obj-y += aes.o init.o From patchwork Mon Dec 16 16:28:25 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Paolo Bonzini X-Patchwork-Id: 11294657 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 867DD138D for ; Mon, 16 Dec 2019 16:55:13 +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 5C208206D7 for ; Mon, 16 Dec 2019 16:55:13 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="oqdZjdVG" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 5C208206D7 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=redhat.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Received: from localhost ([::1]:56896 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1igteJ-0003lk-UB for patchwork-qemu-devel@patchwork.kernel.org; Mon, 16 Dec 2019 11:55:11 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:57175) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1igtFT-0005bK-O9 for qemu-devel@nongnu.org; Mon, 16 Dec 2019 11:29:32 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1igtFR-0008Kb-Kz for qemu-devel@nongnu.org; Mon, 16 Dec 2019 11:29:31 -0500 Received: from mail-wm1-x336.google.com ([2a00:1450:4864:20::336]:40449) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1igtFR-0008IP-Eh for qemu-devel@nongnu.org; Mon, 16 Dec 2019 11:29:29 -0500 Received: by mail-wm1-x336.google.com with SMTP id t14so7386208wmi.5 for ; Mon, 16 Dec 2019 08:29:29 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:subject:date:message-id:in-reply-to:references; bh=tBpzfzYqe4L+iQBP0UHondSvsbeR1HdqnLiLfCq4g+Y=; b=oqdZjdVGD3BPUbUAzOAmgbU34kJUgAG3HwoZZVOtlcJaybQGJmK7D0N5S47IQ1geM4 DlqhM3NFaxYsN4qLZxCBzPKoirIl5y+yJZ4vC7NHH0Ca5vV6vOyd0xyD5Rpf6wHTxOs/ rngT6v6cK73jz23o8lxms9iPdvzLmC3oWUoBA2jAkV0HIW5eJMm2UH1/knXLSKmHdNdw NPn0h+4hQlRc7VFjRCEaCmf1/r3XKaO7NYtFLp3oVs27/Xbzbz6vx8IsZrC4Ry/lG9Q7 U8MhX/n5iB6b92aeCrFylppdsPOyz8QDvho2z8/r818EibuiOpmI7MOXaJi5YfIRGVix yhYw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:subject:date:message-id :in-reply-to:references; bh=tBpzfzYqe4L+iQBP0UHondSvsbeR1HdqnLiLfCq4g+Y=; b=MuN22tJhoMRaCJyHn2jhsfqxmPKzT/+SVe4OASBWVQEDegUTwP4grW21B4ftZMf9kI V6MblTWQbS4TLo3kHmFnFZl23KgUR/yJm8hDkv7qCyYcmh4sax7elQsljEJrQsDRNboj vSOwgsVR1+UMjRZdY2GoClKW+FZp6mT7EfvGKVNLWsoVtK6VkdO0n/nU6DEGjeqPoX6A jwl8yX/cwsLc5jUdgvEfg5JpKZoOusf2CuPSlEO/CXGvLs3QfExFzVK8nji7Iolxdkq3 5/8n+cQUzRMYgOupmOStqv44t9hzifcnXgt5Mo2DjhNea8WkK2qFVQKkxOqiesBCg6mB 5Ovw== X-Gm-Message-State: APjAAAVJAdhFglRRQ0xdxYMtxQpw54ij4nGhOzpTRia6CJ3BxMLVHdyE xmvLEwYEn5cRgWLjxm4Hniy6UQFc X-Google-Smtp-Source: APXvYqzvglUAB/J7X5EiaaeKHt6LqpuiLVywXEb0HzvX9L3XYAZ0aXm513rXkQNz/yY4/z9Rqgh0og== X-Received: by 2002:a05:600c:2c0b:: with SMTP id q11mr13665565wmg.2.1576513768210; Mon, 16 Dec 2019 08:29:28 -0800 (PST) Received: from 640k.lan ([93.56.166.5]) by smtp.gmail.com with ESMTPSA id q68sm19962334wme.14.2019.12.16.08.29.27 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 16 Dec 2019 08:29:27 -0800 (PST) From: Paolo Bonzini To: qemu-devel@nongnu.org Subject: [PULL 41/62] stubs: replace stubs with lnot if applicable Date: Mon, 16 Dec 2019 17:28:25 +0100 Message-Id: <1576513726-53700-42-git-send-email-pbonzini@redhat.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1576513726-53700-1-git-send-email-pbonzini@redhat.com> References: <1576513726-53700-1-git-send-email-pbonzini@redhat.com> X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2a00:1450:4864:20::336 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: , Errors-To: qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Sender: "Qemu-devel" The stubs mechanism relies on static libraries and compilation order, which is a bit brittle and should be avoided unless necessary. Replace it with Boolean operations on CONFIG_* symbols. Signed-off-by: Paolo Bonzini --- Makefile.objs | 2 +- crypto/Makefile.objs | 3 +-- util/Makefile.objs | 3 +-- 3 files changed, 3 insertions(+), 5 deletions(-) diff --git a/Makefile.objs b/Makefile.objs index e33e992..7b179d1 100644 --- a/Makefile.objs +++ b/Makefile.objs @@ -1,6 +1,6 @@ ####################################################################### # Common libraries for tools and emulators -stub-obj-y = stubs/ util/ crypto/ +stub-obj-y = stubs/ util-obj-y = crypto/ util/ qobject/ qapi/ chardev-obj-y = chardev/ diff --git a/crypto/Makefile.objs b/crypto/Makefile.objs index 58014d1..c2a371b 100644 --- a/crypto/Makefile.objs +++ b/crypto/Makefile.objs @@ -22,6 +22,7 @@ crypto-obj-y += secret.o crypto-obj-y += pbkdf.o crypto-obj-$(CONFIG_NETTLE) += pbkdf-nettle.o crypto-obj-$(if $(CONFIG_NETTLE),n,$(CONFIG_GCRYPT)) += pbkdf-gcrypt.o +crypto-obj-$(if $(CONFIG_NETTLE),n,$(if $(CONFIG_GCRYPT),n,y)) += pbkdf-stub.o crypto-obj-y += ivgen.o crypto-obj-y += ivgen-essiv.o crypto-obj-y += ivgen-plain.o @@ -32,8 +33,6 @@ crypto-obj-y += block.o crypto-obj-y += block-qcow.o crypto-obj-y += block-luks.o -stub-obj-y += pbkdf-stub.o - util-obj-$(CONFIG_GCRYPT) += random-gcrypt.o util-obj-$(if $(CONFIG_GCRYPT),n,$(CONFIG_GNUTLS)) += random-gnutls.o util-obj-$(if $(CONFIG_GCRYPT),n,$(if $(CONFIG_GNUTLS),n,y)) += random-platform.o diff --git a/util/Makefile.objs b/util/Makefile.objs index df124af..63599d6 100644 --- a/util/Makefile.objs +++ b/util/Makefile.objs @@ -52,8 +52,7 @@ util-obj-y += stats64.o util-obj-y += systemd.o util-obj-y += iova-tree.o util-obj-$(CONFIG_INOTIFY1) += filemonitor-inotify.o +util-obj-$(call lnot,$(CONFIG_INOTIFY1)) += filemonitor-stub.o util-obj-$(CONFIG_LINUX) += vfio-helpers.o util-obj-$(CONFIG_POSIX) += drm.o util-obj-y += guest-random.o - -stub-obj-y += filemonitor-stub.o From patchwork Mon Dec 16 16:28:26 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Paolo Bonzini X-Patchwork-Id: 11294771 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 9FC271580 for ; Mon, 16 Dec 2019 17:08: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 74E222072D for ; Mon, 16 Dec 2019 17:08:34 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="OTS/parC" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 74E222072D Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=redhat.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Received: from localhost ([::1]:57080 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1igtrF-00046D-8a for patchwork-qemu-devel@patchwork.kernel.org; Mon, 16 Dec 2019 12:08:33 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:57174) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1igtFT-0005bJ-NO for qemu-devel@nongnu.org; Mon, 16 Dec 2019 11:29:32 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1igtFS-0008Mc-PF for qemu-devel@nongnu.org; Mon, 16 Dec 2019 11:29:31 -0500 Received: from mail-wr1-x42d.google.com ([2a00:1450:4864:20::42d]:36057) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1igtFS-0008LH-JE for qemu-devel@nongnu.org; Mon, 16 Dec 2019 11:29:30 -0500 Received: by mail-wr1-x42d.google.com with SMTP id z3so514377wru.3 for ; Mon, 16 Dec 2019 08:29:30 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:subject:date:message-id:in-reply-to:references; bh=qI31Sr5BEfau7aDI/0J1srKK7YhXgQE1cLHiZE6Vp/I=; b=OTS/parCwNrF2TlmQ0yjUAw2H3QlPPKK0fOS30Su5MtOBKitWYfuNZfBRKkW3yupve HfaVcA/tFOOVxusw5grNEjKzbcRjHE1LXFQlToK2Uf9ZVLyn4/inJ3MT7sxPVITyr5fF 6/DbrorkSvJ7kATeNzilCnEPg4WCpb1waPey8S6QvAAPjHWvzMUBZoWuCMqsp+8A36LO Qvr62eV1kTa/Knf3o1Yh8XhJHnvoCPQVYi8a28+gpK7tZ92ltWqClIpUJjtYlvq4MN0D Z82DijNv1nCMaf83Fy9WRal8BNPKeOagnIBcIQHklPDhuPOsQsrNDyU6NLHp4v+aZ6R+ M4/A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:subject:date:message-id :in-reply-to:references; bh=qI31Sr5BEfau7aDI/0J1srKK7YhXgQE1cLHiZE6Vp/I=; b=gGQNI3tC3BpzJQzeajvkDfuM2/8zfRG89bMbXYPzslaYpFmio7lLp//Kc4sXZRYYJ+ KlgMyJqhpLRt97/K16J7+uDPWwJSxcEyg7uN9G6EWt9iXDR/AVIkrsWqfqjOlr/l79e9 5BUR7weQQ6q45CNbqugKEOsVrXcuoQLr8vM2aihim/VNhYZ3meNO1QBnPgq1GXWQi/C9 KcPYnMoymI176kRjIwuern4O9Zw1qHfb+DRkmY/AePKk7A45vG0LPC9edbKJj3sKCBbv vX9CHmMTmMqDDzTpWyEprASI2ZGmbzhgLCiGas0OMHtDxjIaqSAiREy1h9Ot2BuCVbIX oj9A== X-Gm-Message-State: APjAAAUR8JfI7u3G4c5OpscNz8UKX6eKdBFuwd72z6AdeTavNrka9sEh CykApH5Chc/81mgznab8BFC54WaO X-Google-Smtp-Source: APXvYqwuS2IL4+BBq4x83WtOT40nzDSCMv2wSR473DwG3MckOmnKndf8atuyKmVFES9IDrb1p9/cMw== X-Received: by 2002:a5d:6206:: with SMTP id y6mr30351583wru.130.1576513769244; Mon, 16 Dec 2019 08:29:29 -0800 (PST) Received: from 640k.lan ([93.56.166.5]) by smtp.gmail.com with ESMTPSA id q68sm19962334wme.14.2019.12.16.08.29.28 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 16 Dec 2019 08:29:28 -0800 (PST) From: Paolo Bonzini To: qemu-devel@nongnu.org Subject: [PULL 42/62] configure: set $PYTHON to a full path Date: Mon, 16 Dec 2019 17:28:26 +0100 Message-Id: <1576513726-53700-43-git-send-email-pbonzini@redhat.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1576513726-53700-1-git-send-email-pbonzini@redhat.com> References: <1576513726-53700-1-git-send-email-pbonzini@redhat.com> X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2a00:1450:4864:20::42d 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: , Errors-To: qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Sender: "Qemu-devel" This will make it possible to replace it in a shebang line. Signed-off-by: Paolo Bonzini --- configure | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/configure b/configure index 394f7f5..bbb8611 100755 --- a/configure +++ b/configure @@ -909,7 +909,7 @@ for binary in "${PYTHON-python3}" python python2 do if has "$binary" then - python="$binary" + python=$(command -v "$binary") break fi done From patchwork Mon Dec 16 16:28:27 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Paolo Bonzini X-Patchwork-Id: 11294691 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 1600A930 for ; Mon, 16 Dec 2019 17:04:28 +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 DD1ED20717 for ; Mon, 16 Dec 2019 17:04:27 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="eXzuTb+o" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org DD1ED20717 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=redhat.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Received: from localhost ([::1]:57026 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1igtnG-0006fT-Go for patchwork-qemu-devel@patchwork.kernel.org; Mon, 16 Dec 2019 12:04:26 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:57202) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1igtFU-0005dJ-WA for qemu-devel@nongnu.org; Mon, 16 Dec 2019 11:29:33 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1igtFT-0008P9-RU for qemu-devel@nongnu.org; Mon, 16 Dec 2019 11:29:32 -0500 Received: from mail-wr1-x42a.google.com ([2a00:1450:4864:20::42a]:33126) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1igtFT-0008N3-Ko for qemu-devel@nongnu.org; Mon, 16 Dec 2019 11:29:31 -0500 Received: by mail-wr1-x42a.google.com with SMTP id b6so8072692wrq.0 for ; Mon, 16 Dec 2019 08:29:31 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=waJxQlBb94XR6Ggskx6BDndQcoTTNWF9QTJRASbqMgE=; b=eXzuTb+oK+8nK0W8SymbArv0MfDFWmi6QIPvx2GEZM2xxD3y9WLkIurdxysJRlSQK0 LHgoU9c6zzeuNECGdZeMVfASM1cfwV9SEn8sQGjU9bo0AgGCJ4wjjGG7e2Vefn2mg2zK SMoY1JTK4c7Pd+zO+wE3jyrDhfD+EN3qyiq2LVXSxDsEnWzxWlro9v+pobMUxjeu/V9w zjzIk2J3mPvREgh0T1n163t9rXBmnmJ7BBJwUDbumEQ6jqxm1GQSitItOKNmEb+jwm2p d0tywCwz7WOQDiT6/DAMI4d06EqoJDa/rSDl61LNe/6vhyhEZARyIbscMAMPpTedxdJ5 zK5A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references:mime-version:content-transfer-encoding; bh=waJxQlBb94XR6Ggskx6BDndQcoTTNWF9QTJRASbqMgE=; b=CV10P4tMv0juCq8w16MzTQby+o6LXUHQJzWL1aS1xNxhL0XQSh1AmUz3UZ0lkB5f2G Hg+bS4fweawEE/AuDrOyD5SXI3XXZxhmXbIovkdRKn5s0mWpa9Qqb2Qsl0pDo/oAlayf Iq4nxJNN81n+8AfWA/ntX0+X+5Te+V6QxQgRYc1mH/xt1ndNiAB8yMbCiNLPmi5nr73o eujdo2LG+kZDpEyyurVmz/SCN/Sce2msKEbNqmpUm6AMchJaxHOGjeTEcLF7cnIZEoWm zLu24+p2tsoeW/1Gko0cF2wmBDXNVXLOuLDSfDMqZcGM4a9wFJ8GxXmChNijJ+S8lrdu Dd9A== X-Gm-Message-State: APjAAAU32LxES6Rkm8wieGOYc36gCw37lgCDiadqmmXyGcyQA2j00uy7 G/g4WBQ3GWnw1YjyU+ch4a91Xf0e X-Google-Smtp-Source: APXvYqySpSvp1uMvhqr4ZBvshoQTxMS/9dEuVhei8qe0jylxzT2DllZvYMnwI9QYCuuURbJ5ymI73Q== X-Received: by 2002:a5d:4044:: with SMTP id w4mr31117984wrp.322.1576513770180; Mon, 16 Dec 2019 08:29:30 -0800 (PST) Received: from 640k.lan ([93.56.166.5]) by smtp.gmail.com with ESMTPSA id q68sm19962334wme.14.2019.12.16.08.29.29 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 16 Dec 2019 08:29:29 -0800 (PST) From: Paolo Bonzini To: qemu-devel@nongnu.org Subject: [PULL 43/62] configure: simplify vhost condition with Kconfig Date: Mon, 16 Dec 2019 17:28:27 +0100 Message-Id: <1576513726-53700-44-git-send-email-pbonzini@redhat.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1576513726-53700-1-git-send-email-pbonzini@redhat.com> References: <1576513726-53700-1-git-send-email-pbonzini@redhat.com> MIME-Version: 1.0 X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2a00:1450:4864:20::42a 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: =?utf-8?q?Marc-Andr=C3=A9_Lureau?= Errors-To: qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Sender: "Qemu-devel" From: Marc-André Lureau Signed-off-by: Marc-André Lureau Signed-off-by: Paolo Bonzini --- Kconfig.host | 5 +++++ Makefile | 1 + hw/virtio/Kconfig | 3 +++ hw/virtio/Makefile.objs | 4 ++-- 4 files changed, 11 insertions(+), 2 deletions(-) diff --git a/Kconfig.host b/Kconfig.host index bb6e116..55136e0 100644 --- a/Kconfig.host +++ b/Kconfig.host @@ -25,6 +25,11 @@ config TPM config VHOST_USER bool + select VHOST + +config VHOST_KERNEL + bool + select VHOST config XEN bool diff --git a/Makefile b/Makefile index fb1728e..531e955 100644 --- a/Makefile +++ b/Makefile @@ -382,6 +382,7 @@ MINIKCONF_ARGS = \ CONFIG_OPENGL=$(CONFIG_OPENGL) \ CONFIG_X11=$(CONFIG_X11) \ CONFIG_VHOST_USER=$(CONFIG_VHOST_USER) \ + CONFIG_VHOST_KERNEL=$(CONFIG_VHOST_KERNEL) \ CONFIG_VIRTFS=$(CONFIG_VIRTFS) \ CONFIG_LINUX=$(CONFIG_LINUX) \ CONFIG_PVRDMA=$(CONFIG_PVRDMA) diff --git a/hw/virtio/Kconfig b/hw/virtio/Kconfig index 3724ff8..f87def2 100644 --- a/hw/virtio/Kconfig +++ b/hw/virtio/Kconfig @@ -1,3 +1,6 @@ +config VHOST + bool + config VIRTIO bool diff --git a/hw/virtio/Makefile.objs b/hw/virtio/Makefile.objs index e2f70fb..de0f5fc 100644 --- a/hw/virtio/Makefile.objs +++ b/hw/virtio/Makefile.objs @@ -2,8 +2,8 @@ ifeq ($(CONFIG_VIRTIO),y) common-obj-y += virtio-bus.o obj-y += virtio.o -obj-$(call lor,$(CONFIG_VHOST_USER),$(CONFIG_VHOST_KERNEL)) += vhost.o vhost-backend.o -common-obj-$(call lnot,$(call lor,$(CONFIG_VHOST_USER),$(CONFIG_VHOST_KERNEL))) += vhost-stub.o +obj-$(CONFIG_VHOST) += vhost.o vhost-backend.o +common-obj-$(call lnot,$(CONFIG_VHOST)) += vhost-stub.o obj-$(CONFIG_VHOST_USER) += vhost-user.o common-obj-$(CONFIG_VIRTIO_RNG) += virtio-rng.o From patchwork Mon Dec 16 16:28:28 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Paolo Bonzini X-Patchwork-Id: 11294811 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 901876C1 for ; Mon, 16 Dec 2019 17:11:30 +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 65E32206D7 for ; Mon, 16 Dec 2019 17:11:30 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="DkyDH1SO" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 65E32206D7 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=redhat.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Received: from localhost ([::1]:57164 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1igtu5-00080k-2X for patchwork-qemu-devel@patchwork.kernel.org; Mon, 16 Dec 2019 12:11:29 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:57220) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1igtFV-0005fc-U4 for qemu-devel@nongnu.org; Mon, 16 Dec 2019 11:29:34 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1igtFU-0008Rv-SM for qemu-devel@nongnu.org; Mon, 16 Dec 2019 11:29:33 -0500 Received: from mail-wm1-x331.google.com ([2a00:1450:4864:20::331]:53205) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1igtFU-0008PW-M4 for qemu-devel@nongnu.org; Mon, 16 Dec 2019 11:29:32 -0500 Received: by mail-wm1-x331.google.com with SMTP id p9so7444056wmc.2 for ; Mon, 16 Dec 2019 08:29:32 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:subject:date:message-id:in-reply-to:references; bh=X8qg4vC4u62X+krIpf2n1pZJRXcVq9s/dN9HuyUC68E=; b=DkyDH1SOrnnuzeAtaIVyM4YNPTAa8B2khYk2dkrazvMYpJmFFP6TuE9lrrhe8p8hjt ApCX2ys+xgUdD71Kzf/BcGEnNY418FWvWC6L4GpS4RP670Iw9R8LDwUXo4pO+1ieqpko uI6PUvYbJY3NGJd7qvvPPtEx21NNVT6fLYB3ehcGDhB7gQdf54Qs9yytaIdm3XICXVyG Fa0qF/GE+tbYKZoMaVrd69Z5k8dRaYE4bCglCXogK4fxHA9Qp/sJ84YfbZwvdQKKd8+g po3GzKr7HWv86FRkVzTIDMsmeeGA6hUzuP1+eNMxNaKRItTETRUz7r5r7HAB01qjoysg eyNw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:subject:date:message-id :in-reply-to:references; bh=X8qg4vC4u62X+krIpf2n1pZJRXcVq9s/dN9HuyUC68E=; b=m7Nmrn8hvIciE5TTRiDz9f7nU49fMS98+jMtfUJ08YQdEGVbXvqk4wigsJiZJHl46+ EGZ+jT0qCAnaNsICVOjzH3JRROEqhiwfH21LngrxxcpwzG9Zgem/M+394aRgIbBWISTp PXkZpwqF8uMnMxXQFtq79DezLjU0MZh5w1hlUNqMQtpdrsW8Qh0t7whH2IaYaYBVdFMD MS8SedM09Oo6S+YprRFlcKcnLPWMA4NmzLh3PupfyaMA76ciIbFGEOZ2tc6JcXSiFRhC 79fap2OkSidb9LIYMg3qnjVwCzgfBJRqB5+N8iVxS5Bt1yvn0OANQNZUoK/PyZG3r3c+ n8Ww== X-Gm-Message-State: APjAAAW3AwDYzvsFGjJBxqS7n0tzDuzQkGHpS+UcKmcfE0NZySjNtL3l wHlOaVvXc6dd7qhiV9rNEoqkWklZ X-Google-Smtp-Source: APXvYqw7JvnnRlb6JUrtGCwqD43KUNjwRhRY9WwYoehyq99NgYbWLm7j5CvquTkgad0OQqPTGkFwjg== X-Received: by 2002:a1c:dc85:: with SMTP id t127mr30726224wmg.16.1576513771488; Mon, 16 Dec 2019 08:29:31 -0800 (PST) Received: from 640k.lan ([93.56.166.5]) by smtp.gmail.com with ESMTPSA id q68sm19962334wme.14.2019.12.16.08.29.30 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 16 Dec 2019 08:29:30 -0800 (PST) From: Paolo Bonzini To: qemu-devel@nongnu.org Subject: [PULL 44/62] i386: conditionally compile more files Date: Mon, 16 Dec 2019 17:28:28 +0100 Message-Id: <1576513726-53700-45-git-send-email-pbonzini@redhat.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1576513726-53700-1-git-send-email-pbonzini@redhat.com> References: <1576513726-53700-1-git-send-email-pbonzini@redhat.com> X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2a00:1450:4864:20::331 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: , Errors-To: qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Sender: "Qemu-devel" Reviewed-by: Sergio Lopez Signed-off-by: Paolo Bonzini --- hw/i386/Makefile.objs | 6 +++--- hw/i386/kvm/Makefile.objs | 6 +++++- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/hw/i386/Makefile.objs b/hw/i386/Makefile.objs index 0d195b5..01ae202 100644 --- a/hw/i386/Makefile.objs +++ b/hw/i386/Makefile.objs @@ -1,11 +1,11 @@ obj-$(CONFIG_KVM) += kvm/ obj-y += e820_memory_layout.o multiboot.o obj-y += x86.o -obj-y += pc.o +obj-$(CONFIG_PC) += pc.o pc_sysfw.o obj-$(CONFIG_I440FX) += pc_piix.o obj-$(CONFIG_Q35) += pc_q35.o obj-$(CONFIG_MICROVM) += microvm.o -obj-y += fw_cfg.o pc_sysfw.o +obj-y += fw_cfg.o obj-y += x86-iommu.o obj-$(CONFIG_VTD) += intel_iommu.o obj-$(CONFIG_AMD_IOMMU) += amd_iommu.o @@ -14,4 +14,4 @@ obj-$(CONFIG_VMPORT) += vmport.o obj-$(CONFIG_VMMOUSE) += vmmouse.o obj-y += kvmvapic.o -obj-y += acpi-build.o +obj-$(CONFIG_PC) += acpi-build.o diff --git a/hw/i386/kvm/Makefile.objs b/hw/i386/kvm/Makefile.objs index 4224ed9..0c8d5f2 100644 --- a/hw/i386/kvm/Makefile.objs +++ b/hw/i386/kvm/Makefile.objs @@ -1 +1,5 @@ -obj-y += clock.o apic.o i8259.o ioapic.o i8254.o +obj-y += clock.o +obj-$(CONFIG_APIC) += apic.o +obj-$(CONFIG_IOAPIC) += ioapic.o +obj-$(CONFIG_I8254) += i8254.o +obj-$(CONFIG_I8259) += i8259.o From patchwork Mon Dec 16 16:28:29 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Paolo Bonzini X-Patchwork-Id: 11294665 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id B898413B6 for ; Mon, 16 Dec 2019 16:58:00 +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 8F01F206D7 for ; Mon, 16 Dec 2019 16:58:00 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="ToglyDLv" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 8F01F206D7 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=redhat.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Received: from localhost ([::1]:56944 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1igth1-0007dy-6Z for patchwork-qemu-devel@patchwork.kernel.org; Mon, 16 Dec 2019 11:57:59 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:57243) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1igtFX-0005iq-35 for qemu-devel@nongnu.org; Mon, 16 Dec 2019 11:29:36 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1igtFW-0008VP-0f for qemu-devel@nongnu.org; Mon, 16 Dec 2019 11:29:34 -0500 Received: from mail-wr1-x42e.google.com ([2a00:1450:4864:20::42e]:34495) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1igtFV-0008Sq-Pm for qemu-devel@nongnu.org; Mon, 16 Dec 2019 11:29:33 -0500 Received: by mail-wr1-x42e.google.com with SMTP id t2so8069419wrr.1 for ; Mon, 16 Dec 2019 08:29:33 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:subject:date:message-id:in-reply-to:references; bh=YIFk3nLn1up5bs2Pnh4sUVsBh4ywarhEIRO1n8e1Ra0=; b=ToglyDLviv8ut4pycCfRcnhZV6srBqSuS1Qh3Z9MaKPtuuZfefMN6Ff7J/mvF471wX Qp85ssxYf2yzQFSuzqecGbgdHgA2ws5t+IyD7qmgGEd92qkTg/t/j644dau17PNRzBFc pikVmu+R7i+IbQ9TuV5S9wSUXAoK/17YqGiumW+Ois61mYOxWnsGuoialDgcAt+srmAB PQjzN1lFw//lYbqpssexNx4AWp944HEwSk86YvVJC76OjKDKnkYWILGd4nkdSkqDblT1 zRr4geKYPAQPNyrsuQKm14n8VM4pamx5B6apT8w/MJ66L7PyvQBSw7yn2Qv/exBWLCrE Krxw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:subject:date:message-id :in-reply-to:references; bh=YIFk3nLn1up5bs2Pnh4sUVsBh4ywarhEIRO1n8e1Ra0=; b=hcqhYBwinxK6mbq5n0DHt0EpeAw1qM44OaMaOs4t2EajwjM6H1QKNN3Wj6ZaT5SRaA stQlzXtQO86nBCuzgCrvNJ9WJ08uZIjZEn3KpJgC2uUtsVwJiWPTP1PgVlaaJ0BT6E3T ChLeED5Ya3TeU2RfeX6SaDFl40S2qZ4sGkybYwu7PvBlmwcEArvVjptWygUtPL0U6/ot gdMQkDo+mncv81ycDmdhNZSG/B+MC/wexsbVuDu2/OJ/MX/wWEGS2kELLWPYC+LJM03Y yh/WbB/CeH9P409wGnXQbDEMxYSQ4PSu1B4ghaUSAiWwP+VJeFfNWTQYMFzgLphqDPAw RgLw== X-Gm-Message-State: APjAAAUh9ZgI5MaKKXXx9nYSlMwheMvkyV05CtbtgVaaDAq6Ekum2JEM HU4g5t4H/ycXjlHuuY8HsqRiTgZo X-Google-Smtp-Source: APXvYqz8pNI+wz3MdLuL0t1qZt17wPQf+w7b6KfaLCJjNWlWuY5bOOH4hnMnMI1Yi1YWmGppv9EhXw== X-Received: by 2002:adf:fd87:: with SMTP id d7mr31458807wrr.226.1576513772469; Mon, 16 Dec 2019 08:29:32 -0800 (PST) Received: from 640k.lan ([93.56.166.5]) by smtp.gmail.com with ESMTPSA id q68sm19962334wme.14.2019.12.16.08.29.31 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 16 Dec 2019 08:29:31 -0800 (PST) From: Paolo Bonzini To: qemu-devel@nongnu.org Subject: [PULL 45/62] fw_cfg: allow building without other devices Date: Mon, 16 Dec 2019 17:28:29 +0100 Message-Id: <1576513726-53700-46-git-send-email-pbonzini@redhat.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1576513726-53700-1-git-send-email-pbonzini@redhat.com> References: <1576513726-53700-1-git-send-email-pbonzini@redhat.com> X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2a00:1450:4864:20::42e 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: , Errors-To: qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Sender: "Qemu-devel" The microvm machine type uses fw_cfg but lacks SMBIOS and ACPI. Do not include the files if the symbol is not present in QEMU and remove dependencies on machine-specific files. Reviewed-by: Sergio Lopez Signed-off-by: Paolo Bonzini --- hw/i386/fw_cfg.c | 7 +++++++ hw/i386/pc.c | 2 -- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/hw/i386/fw_cfg.c b/hw/i386/fw_cfg.c index 39b6bc6..326e33e 100644 --- a/hw/i386/fw_cfg.c +++ b/hw/i386/fw_cfg.c @@ -22,6 +22,9 @@ #include "hw/nvram/fw_cfg.h" #include "e820_memory_layout.h" #include "kvm_i386.h" +#include "config-devices.h" + +struct hpet_fw_config hpet_cfg = {.count = UINT8_MAX}; const char *fw_cfg_arch_key_name(uint16_t key) { @@ -46,6 +49,7 @@ const char *fw_cfg_arch_key_name(uint16_t key) void fw_cfg_build_smbios(MachineState *ms, FWCfgState *fw_cfg) { +#ifdef CONFIG_SMBIOS uint8_t *smbios_tables, *smbios_anchor; size_t smbios_tables_len, smbios_anchor_len; struct smbios_phys_mem_area *mem_array; @@ -83,6 +87,7 @@ void fw_cfg_build_smbios(MachineState *ms, FWCfgState *fw_cfg) fw_cfg_add_file(fw_cfg, "etc/smbios/smbios-anchor", smbios_anchor, smbios_anchor_len); } +#endif } FWCfgState *fw_cfg_arch_create(MachineState *ms, @@ -114,8 +119,10 @@ FWCfgState *fw_cfg_arch_create(MachineState *ms, */ fw_cfg_add_i16(fw_cfg, FW_CFG_MAX_CPUS, apic_id_limit); fw_cfg_add_i64(fw_cfg, FW_CFG_RAM_SIZE, (uint64_t)ram_size); +#ifdef CONFIG_ACPI fw_cfg_add_bytes(fw_cfg, FW_CFG_ACPI_TABLES, acpi_tables, acpi_tables_len); +#endif fw_cfg_add_i32(fw_cfg, FW_CFG_IRQ0_OVERRIDE, kvm_allows_irq0_override()); fw_cfg_add_bytes(fw_cfg, FW_CFG_E820_TABLE, diff --git a/hw/i386/pc.c b/hw/i386/pc.c index ac08e63..ab90ee3 100644 --- a/hw/i386/pc.c +++ b/hw/i386/pc.c @@ -101,8 +101,6 @@ #define DPRINTF(fmt, ...) #endif -struct hpet_fw_config hpet_cfg = {.count = UINT8_MAX}; - GlobalProperty pc_compat_4_1[] = {}; const size_t pc_compat_4_1_len = G_N_ELEMENTS(pc_compat_4_1); From patchwork Mon Dec 16 16:28:30 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Paolo Bonzini X-Patchwork-Id: 11294661 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id E60CA138C for ; Mon, 16 Dec 2019 16:57:56 +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 AB888206D7 for ; Mon, 16 Dec 2019 16:57:56 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="NFzd8RJ4" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org AB888206D7 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=redhat.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Received: from localhost ([::1]:56940 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1igtgx-0007Yh-IG for patchwork-qemu-devel@patchwork.kernel.org; Mon, 16 Dec 2019 11:57:55 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:57280) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1igtFZ-0005mJ-9y for qemu-devel@nongnu.org; Mon, 16 Dec 2019 11:29:39 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1igtFX-00006q-96 for qemu-devel@nongnu.org; Mon, 16 Dec 2019 11:29:37 -0500 Received: from mail-wr1-x42a.google.com ([2a00:1450:4864:20::42a]:42394) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1igtFX-0008WD-1D for qemu-devel@nongnu.org; Mon, 16 Dec 2019 11:29:35 -0500 Received: by mail-wr1-x42a.google.com with SMTP id q6so8018614wro.9 for ; Mon, 16 Dec 2019 08:29:34 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:subject:date:message-id:in-reply-to:references; bh=aSZqHSbntUtBpHZTHxRbdt63b/9MEFkVMk7tfqFFtxQ=; b=NFzd8RJ4fC7KPB3mK8JYKI6CTVEDRgjHo0/0RNLGfx2bvfUGzC3UDTMagTl+iWESb4 xQxPE9rGDhl37xupslxRf/PZVE1MhG8eJVVupHEu0wv+NZm0/r8hwbDKigVnl2ERmrqE s9073LlYM5HMYNtjAZwWH1xxIoWlp90kNnXeEe9zSshhR05F8Dikc7IbQe1SQTbuQ+z0 Lt8d7xcoaD/CBg3Weiz5ptf3IOHSSGUfs522YRFWVx2vdW8cNRhuQrEAq7WjKRhAI+pC SnLPJngtT2JHdB70lLU3xyp1xs0pf2GBIrRIdV2acZGzFAFcM5rp8+MI3gvFiO6dvcTz 43iw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:subject:date:message-id :in-reply-to:references; bh=aSZqHSbntUtBpHZTHxRbdt63b/9MEFkVMk7tfqFFtxQ=; b=uMqNrnBOl8BFEperN3oAeJZ+KEbv01OPCTZmzso5XajnkWmlJK1cfz901ZPGe0O1/m cgKczCk4IniTFH9vgYdG+srVyxiDWXwPTTs4Q3j4xx7mtD+fRVyJqKs4k7W6mMcHJBrL OsX3RBuiSXlSiAzR/XPY3rd5kUg9+iWjSi/5nyYM/HbaGSsXYZX31RyY4h3kGetbPis+ UrD2uQGlgTuvunUwnWoh4OTGyMKje5tyS3s8wVlZUBgfFQ+IbizKytMNw/U8RoYYrVkM PaYUs3vsbg3eRSvboXjgqkXKsRdA4EcTinGZ4yKRen4Y1hNDCrxoXf/eLIGo/h7huTPo an6g== X-Gm-Message-State: APjAAAUpA8+9G6N7B7dloMqzega58mS7smfXQtGUKi30BEDEPaUK3Tv3 4SwaqNV0JzVQZHy59uoLdiYEOZvs X-Google-Smtp-Source: APXvYqwqhAD0d45QnIdZMNeYoCwr+bcjxPiKCekAna0oED1vNqF3mPjC16TOkiIKRDZHF3w4Lr2Uew== X-Received: by 2002:a5d:42c5:: with SMTP id t5mr32234361wrr.73.1576513773710; Mon, 16 Dec 2019 08:29:33 -0800 (PST) Received: from 640k.lan ([93.56.166.5]) by smtp.gmail.com with ESMTPSA id q68sm19962334wme.14.2019.12.16.08.29.32 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 16 Dec 2019 08:29:32 -0800 (PST) From: Paolo Bonzini To: qemu-devel@nongnu.org Subject: [PULL 46/62] hw: replace hw/i386/pc.h with a header just for the i8259 Date: Mon, 16 Dec 2019 17:28:30 +0100 Message-Id: <1576513726-53700-47-git-send-email-pbonzini@redhat.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1576513726-53700-1-git-send-email-pbonzini@redhat.com> References: <1576513726-53700-1-git-send-email-pbonzini@redhat.com> X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2a00:1450:4864:20::42a 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: , Errors-To: qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Sender: "Qemu-devel" Remove the need to include i386/pc.h to get to the i8259 functions. This is enough to remove the inclusion of hw/i386/pc.h from all non-x86 files. Signed-off-by: Paolo Bonzini --- hw/alpha/alpha_sys.h | 3 ++- hw/alpha/dp264.c | 1 + hw/hppa/hppa_sys.h | 3 ++- hw/hppa/machine.c | 1 + hw/i386/kvm/i8259.c | 1 + hw/i386/microvm.c | 1 + hw/i386/pc.c | 1 + hw/i386/x86.c | 1 + hw/input/pckbd.c | 1 - hw/intc/Kconfig | 2 ++ hw/intc/apic.c | 2 +- hw/intc/i8259.c | 2 +- hw/intc/i8259_common.c | 2 +- hw/intc/ioapic.c | 3 ++- hw/isa/i82378.c | 2 +- hw/isa/lpc_ich9.c | 1 - hw/isa/piix4.c | 2 +- hw/mips/gt64xxx_pci.c | 2 +- hw/mips/mips_fulong2e.c | 2 +- hw/mips/mips_jazz.c | 2 +- hw/mips/mips_r4k.c | 2 +- hw/pci-host/bonito.c | 1 - hw/pci-host/prep.c | 2 +- include/hw/i386/pc.h | 8 -------- include/hw/intc/i8259.h | 12 ++++++++++++ include/hw/isa/i8259_internal.h | 2 +- target/i386/monitor.c | 1 - 27 files changed, 37 insertions(+), 26 deletions(-) create mode 100644 include/hw/intc/i8259.h diff --git a/hw/alpha/alpha_sys.h b/hw/alpha/alpha_sys.h index 4e127a6..95033d7 100644 --- a/hw/alpha/alpha_sys.h +++ b/hw/alpha/alpha_sys.h @@ -7,7 +7,8 @@ #include "hw/pci/pci.h" #include "hw/pci/pci_host.h" #include "hw/ide.h" -#include "hw/i386/pc.h" +#include "hw/boards.h" +#include "hw/intc/i8259.h" PCIBus *typhoon_init(ram_addr_t, ISABus **, qemu_irq *, AlphaCPU *[4], diff --git a/hw/alpha/dp264.c b/hw/alpha/dp264.c index 51b3cf7..f2026fd 100644 --- a/hw/alpha/dp264.c +++ b/hw/alpha/dp264.c @@ -19,6 +19,7 @@ #include "hw/timer/i8254.h" #include "hw/isa/superio.h" #include "hw/dma/i8257.h" +#include "net/net.h" #include "qemu/cutils.h" #define MAX_IDE_BUS 2 diff --git a/hw/hppa/hppa_sys.h b/hw/hppa/hppa_sys.h index 43d25d2..4e50196 100644 --- a/hw/hppa/hppa_sys.h +++ b/hw/hppa/hppa_sys.h @@ -6,7 +6,8 @@ #include "hw/pci/pci.h" #include "hw/pci/pci_host.h" #include "hw/ide.h" -#include "hw/i386/pc.h" +#include "hw/boards.h" +#include "hw/intc/i8259.h" #include "hppa_hardware.h" diff --git a/hw/hppa/machine.c b/hw/hppa/machine.c index b30aba6..5d0de26 100644 --- a/hw/hppa/machine.c +++ b/hw/hppa/machine.c @@ -19,6 +19,7 @@ #include "hppa_sys.h" #include "qemu/units.h" #include "qapi/error.h" +#include "net/net.h" #include "qemu/log.h" #define MAX_IDE_BUS 2 diff --git a/hw/i386/kvm/i8259.c b/hw/i386/kvm/i8259.c index d0c1b1d..e404fdc 100644 --- a/hw/i386/kvm/i8259.c +++ b/hw/i386/kvm/i8259.c @@ -12,6 +12,7 @@ #include "qemu/osdep.h" #include "hw/isa/i8259_internal.h" +#include "hw/intc/i8259.h" #include "qemu/module.h" #include "hw/i386/apic_internal.h" #include "hw/irq.h" diff --git a/hw/i386/microvm.c b/hw/i386/microvm.c index def37e6..2068319 100644 --- a/hw/i386/microvm.c +++ b/hw/i386/microvm.c @@ -34,6 +34,7 @@ #include "hw/i386/x86.h" #include "hw/i386/pc.h" #include "target/i386/cpu.h" +#include "hw/intc/i8259.h" #include "hw/timer/i8254.h" #include "hw/rtc/mc146818rtc.h" #include "hw/char/serial.h" diff --git a/hw/i386/pc.c b/hw/i386/pc.c index ab90ee3..23052c7 100644 --- a/hw/i386/pc.c +++ b/hw/i386/pc.c @@ -44,6 +44,7 @@ #include "migration/vmstate.h" #include "multiboot.h" #include "hw/rtc/mc146818rtc.h" +#include "hw/intc/i8259.h" #include "hw/dma/i8257.h" #include "hw/timer/i8254.h" #include "hw/input/i8042.h" diff --git a/hw/i386/x86.c b/hw/i386/x86.c index 394edc2..3e4aee5 100644 --- a/hw/i386/x86.c +++ b/hw/i386/x86.c @@ -39,6 +39,7 @@ #include "target/i386/cpu.h" #include "hw/i386/topology.h" #include "hw/i386/fw_cfg.h" +#include "hw/intc/i8259.h" #include "hw/acpi/cpu_hotplug.h" #include "hw/nmi.h" diff --git a/hw/input/pckbd.c b/hw/input/pckbd.c index f0acfd8..2f09f78 100644 --- a/hw/input/pckbd.c +++ b/hw/input/pckbd.c @@ -26,7 +26,6 @@ #include "qemu/log.h" #include "hw/isa/isa.h" #include "migration/vmstate.h" -#include "hw/i386/pc.h" #include "hw/input/ps2.h" #include "hw/irq.h" #include "hw/input/i8042.h" diff --git a/hw/intc/Kconfig b/hw/intc/Kconfig index 5347f84..10a680b 100644 --- a/hw/intc/Kconfig +++ b/hw/intc/Kconfig @@ -9,6 +9,7 @@ config PL190 config IOAPIC bool + select I8259 config ARM_GIC bool @@ -21,6 +22,7 @@ config OPENPIC config APIC bool select MSI_NONBROKEN + select I8259 config ARM_GIC_KVM bool diff --git a/hw/intc/apic.c b/hw/intc/apic.c index 2a74f7b..bd40467 100644 --- a/hw/intc/apic.c +++ b/hw/intc/apic.c @@ -22,10 +22,10 @@ #include "hw/i386/apic_internal.h" #include "hw/i386/apic.h" #include "hw/i386/ioapic.h" +#include "hw/intc/i8259.h" #include "hw/pci/msi.h" #include "qemu/host-utils.h" #include "trace.h" -#include "hw/i386/pc.h" #include "hw/i386/apic-msidef.h" #include "qapi/error.h" diff --git a/hw/intc/i8259.c b/hw/intc/i8259.c index 211a989..51b27f6 100644 --- a/hw/intc/i8259.c +++ b/hw/intc/i8259.c @@ -23,7 +23,7 @@ */ #include "qemu/osdep.h" -#include "hw/i386/pc.h" +#include "hw/intc/i8259.h" #include "hw/irq.h" #include "hw/isa/isa.h" #include "qemu/timer.h" diff --git a/hw/intc/i8259_common.c b/hw/intc/i8259_common.c index bd37bb5..e7b1a10 100644 --- a/hw/intc/i8259_common.c +++ b/hw/intc/i8259_common.c @@ -24,7 +24,7 @@ */ #include "qemu/osdep.h" -#include "hw/i386/pc.h" +#include "hw/intc/i8259.h" #include "hw/isa/i8259_internal.h" #include "hw/qdev-properties.h" #include "migration/vmstate.h" diff --git a/hw/intc/ioapic.c b/hw/intc/ioapic.c index ead14e1..4f55776 100644 --- a/hw/intc/ioapic.c +++ b/hw/intc/ioapic.c @@ -23,10 +23,11 @@ #include "qemu/osdep.h" #include "qapi/error.h" #include "monitor/monitor.h" -#include "hw/i386/pc.h" #include "hw/i386/apic.h" #include "hw/i386/ioapic.h" #include "hw/i386/ioapic_internal.h" +#include "hw/i386/x86.h" +#include "hw/intc/i8259.h" #include "hw/pci/msi.h" #include "hw/qdev-properties.h" #include "sysemu/kvm.h" diff --git a/hw/isa/i82378.c b/hw/isa/i82378.c index de276cd..dcb6b47 100644 --- a/hw/isa/i82378.c +++ b/hw/isa/i82378.c @@ -19,8 +19,8 @@ #include "qemu/osdep.h" #include "hw/pci/pci.h" -#include "hw/i386/pc.h" #include "hw/irq.h" +#include "hw/intc/i8259.h" #include "hw/timer/i8254.h" #include "migration/vmstate.h" #include "hw/audio/pcspk.h" diff --git a/hw/isa/lpc_ich9.c b/hw/isa/lpc_ich9.c index 17c292e..170792a 100644 --- a/hw/isa/lpc_ich9.c +++ b/hw/isa/lpc_ich9.c @@ -35,7 +35,6 @@ #include "hw/isa/isa.h" #include "hw/sysbus.h" #include "migration/vmstate.h" -#include "hw/i386/pc.h" #include "hw/irq.h" #include "hw/isa/apm.h" #include "hw/i386/ioapic.h" diff --git a/hw/isa/piix4.c b/hw/isa/piix4.c index 86678e6..7edec5e 100644 --- a/hw/isa/piix4.c +++ b/hw/isa/piix4.c @@ -26,11 +26,11 @@ #include "qemu/osdep.h" #include "qapi/error.h" #include "hw/irq.h" -#include "hw/i386/pc.h" #include "hw/southbridge/piix.h" #include "hw/pci/pci.h" #include "hw/isa/isa.h" #include "hw/sysbus.h" +#include "hw/intc/i8259.h" #include "hw/dma/i8257.h" #include "hw/timer/i8254.h" #include "hw/rtc/mc146818rtc.h" diff --git a/hw/mips/gt64xxx_pci.c b/hw/mips/gt64xxx_pci.c index f1af840..b2ea13f 100644 --- a/hw/mips/gt64xxx_pci.c +++ b/hw/mips/gt64xxx_pci.c @@ -30,7 +30,7 @@ #include "hw/pci/pci_host.h" #include "hw/southbridge/piix.h" #include "migration/vmstate.h" -#include "hw/i386/pc.h" +#include "hw/intc/i8259.h" #include "hw/irq.h" #include "exec/address-spaces.h" #include "trace.h" diff --git a/hw/mips/mips_fulong2e.c b/hw/mips/mips_fulong2e.c index 03a27e1..9eaa6e2 100644 --- a/hw/mips/mips_fulong2e.c +++ b/hw/mips/mips_fulong2e.c @@ -23,7 +23,7 @@ #include "qemu/units.h" #include "qapi/error.h" #include "cpu.h" -#include "hw/i386/pc.h" +#include "hw/intc/i8259.h" #include "hw/dma/i8257.h" #include "hw/isa/superio.h" #include "net/net.h" diff --git a/hw/mips/mips_jazz.c b/hw/mips/mips_jazz.c index d978bb6..c40b23f 100644 --- a/hw/mips/mips_jazz.c +++ b/hw/mips/mips_jazz.c @@ -26,7 +26,7 @@ #include "qemu-common.h" #include "hw/mips/mips.h" #include "hw/mips/cpudevs.h" -#include "hw/i386/pc.h" +#include "hw/intc/i8259.h" #include "hw/dma/i8257.h" #include "hw/char/serial.h" #include "hw/char/parallel.h" diff --git a/hw/mips/mips_r4k.c b/hw/mips/mips_r4k.c index 7002423..fbbd59e 100644 --- a/hw/mips/mips_r4k.c +++ b/hw/mips/mips_r4k.c @@ -15,7 +15,7 @@ #include "cpu.h" #include "hw/mips/mips.h" #include "hw/mips/cpudevs.h" -#include "hw/i386/pc.h" +#include "hw/intc/i8259.h" #include "hw/char/serial.h" #include "hw/isa/isa.h" #include "net/net.h" diff --git a/hw/pci-host/bonito.c b/hw/pci-host/bonito.c index ceee463..c924007 100644 --- a/hw/pci-host/bonito.c +++ b/hw/pci-host/bonito.c @@ -40,7 +40,6 @@ #include "qemu/osdep.h" #include "qemu/error-report.h" #include "hw/pci/pci.h" -#include "hw/i386/pc.h" #include "hw/irq.h" #include "hw/mips/mips.h" #include "hw/pci/pci_host.h" diff --git a/hw/pci-host/prep.c b/hw/pci-host/prep.c index 85d7ba9..afa136d 100644 --- a/hw/pci-host/prep.c +++ b/hw/pci-host/prep.c @@ -32,7 +32,7 @@ #include "hw/pci/pci_host.h" #include "hw/qdev-properties.h" #include "migration/vmstate.h" -#include "hw/i386/pc.h" +#include "hw/intc/i8259.h" #include "hw/irq.h" #include "hw/loader.h" #include "hw/or-irq.h" diff --git a/include/hw/i386/pc.h b/include/hw/i386/pc.h index 1f86eba..82447f8 100644 --- a/include/hw/i386/pc.h +++ b/include/hw/i386/pc.h @@ -134,14 +134,6 @@ typedef struct PCMachineClass { #define PC_MACHINE_CLASS(klass) \ OBJECT_CLASS_CHECK(PCMachineClass, (klass), TYPE_PC_MACHINE) -/* i8259.c */ - -extern DeviceState *isa_pic; -qemu_irq *i8259_init(ISABus *bus, qemu_irq parent_irq); -qemu_irq *kvm_i8259_init(ISABus *bus); -int pic_read_irq(DeviceState *d); -int pic_get_output(DeviceState *d); - /* ioapic.c */ /* Global System Interrupts */ diff --git a/include/hw/intc/i8259.h b/include/hw/intc/i8259.h new file mode 100644 index 0000000..e2b1e8c --- /dev/null +++ b/include/hw/intc/i8259.h @@ -0,0 +1,12 @@ +#ifndef HW_I8259_H +#define HW_I8259_H + +/* i8259.c */ + +extern DeviceState *isa_pic; +qemu_irq *i8259_init(ISABus *bus, qemu_irq parent_irq); +qemu_irq *kvm_i8259_init(ISABus *bus); +int pic_get_output(DeviceState *d); +int pic_read_irq(DeviceState *d); + +#endif diff --git a/include/hw/isa/i8259_internal.h b/include/hw/isa/i8259_internal.h index ee189e4..861d70d 100644 --- a/include/hw/isa/i8259_internal.h +++ b/include/hw/isa/i8259_internal.h @@ -25,9 +25,9 @@ #ifndef QEMU_I8259_INTERNAL_H #define QEMU_I8259_INTERNAL_H -#include "hw/i386/pc.h" #include "hw/isa/isa.h" #include "hw/intc/intc.h" +#include "hw/intc/i8259.h" typedef struct PICCommonState PICCommonState; diff --git a/target/i386/monitor.c b/target/i386/monitor.c index 9fb4d64..27ebfa3 100644 --- a/target/i386/monitor.c +++ b/target/i386/monitor.c @@ -28,7 +28,6 @@ #include "monitor/hmp-target.h" #include "monitor/hmp.h" #include "qapi/qmp/qdict.h" -#include "hw/i386/pc.h" #include "sysemu/kvm.h" #include "sysemu/sev.h" #include "qapi/error.h" From patchwork Mon Dec 16 16:28:31 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Paolo Bonzini X-Patchwork-Id: 11294815 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id F3AD91593 for ; Mon, 16 Dec 2019 17:13:54 +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 C96092072D for ; Mon, 16 Dec 2019 17:13:54 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="Kz7ecRqg" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org C96092072D Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=redhat.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Received: from localhost ([::1]:57216 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1igtwP-00032n-HC for patchwork-qemu-devel@patchwork.kernel.org; Mon, 16 Dec 2019 12:13:53 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:57281) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1igtFZ-0005mW-BW for qemu-devel@nongnu.org; Mon, 16 Dec 2019 11:29:38 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1igtFY-0000Af-B4 for qemu-devel@nongnu.org; Mon, 16 Dec 2019 11:29:37 -0500 Received: from mail-wr1-x444.google.com ([2a00:1450:4864:20::444]:44899) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1igtFY-000089-51 for qemu-devel@nongnu.org; Mon, 16 Dec 2019 11:29:36 -0500 Received: by mail-wr1-x444.google.com with SMTP id q10so8018201wrm.11 for ; Mon, 16 Dec 2019 08:29:36 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:subject:date:message-id:in-reply-to:references; bh=U3vOKBgC/i6K4YScuB6kA+GIuvMW8sSGRrxjWYPsniE=; b=Kz7ecRqgS8g0kMk/BTGySZ5sAGGmOEu/Uvt0Fbd4bpGxBYeoN3qAGJ5KG4A5KyJ62+ yB079OSks+yO/6dy8aJT+hkApyeGfJaSLFCTKBNvGJc8wcWnvJDhw0lvoKzgyqAPPsI+ /MfGMdLsJBtLbwEU1ffzgb9nxGIf9rhBwU5uRXs+int/x6infaBj0abzMVmi6jwW9w7t YrVsmF1bvM4//Kof4+Isk2XGlxCDXo4ExaLGSnTtpoILc3zBlceZ/mZmH9xhahEAi15C rMgHtmITDCoDGH8CFyYX+UGXNkxkeUGj3o0BcYU2RgGvU4zGc4z1+xdqStHyfwuQ9pnW 2W9g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:subject:date:message-id :in-reply-to:references; bh=U3vOKBgC/i6K4YScuB6kA+GIuvMW8sSGRrxjWYPsniE=; b=g00Ow/OZ0PsfpPBVmPDwdwsLisbLGS/jDSMqTWTB4BAiZ3+ka6U13fSS5znuxBYUeX /9yN0eyitcEinB1Ywl7Edr9RAkU7RZ1SgLkaGdDYsth9QzCMJ3Lo5N4FrwKPHZWau81y b7bWpJJEADv8GlJexAq/CEMtJh0XBnqxA0eZdJKVpM35FbcUy8R5gzJtvFP8B3lH/8SQ WCC3nl0mxAR+5Bar8pAVDeUO+mvy/WC5sxzRnltSBxsR4jFEbL+fXW6/nCBCCPywghHt 1I7OUQJjzG9rZhhawO/2I3KYfgOwPuii6cKNA+sGOV2obh1mQihjNksVQ2YPo0FIlczm MaUA== X-Gm-Message-State: APjAAAUP5+XvOAPbNihUi6LWpKNWypimusI9LryOJXk1X83HY2Qt0HwY RshVNIgpyhES/mnsnpsd7SdkJXMw X-Google-Smtp-Source: APXvYqwJJxsgFJ76cLZbAoF0rKyH6MndSdPU4Kd8cSPKZ1wzaWmRvlUEgTaUD7ajuGdFq5c6OcYuRg== X-Received: by 2002:adf:c446:: with SMTP id a6mr30088253wrg.218.1576513774759; Mon, 16 Dec 2019 08:29:34 -0800 (PST) Received: from 640k.lan ([93.56.166.5]) by smtp.gmail.com with ESMTPSA id q68sm19962334wme.14.2019.12.16.08.29.33 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 16 Dec 2019 08:29:33 -0800 (PST) From: Paolo Bonzini To: qemu-devel@nongnu.org Subject: [PULL 47/62] pci-stub: add more MSI functions Date: Mon, 16 Dec 2019 17:28:31 +0100 Message-Id: <1576513726-53700-48-git-send-email-pbonzini@redhat.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1576513726-53700-1-git-send-email-pbonzini@redhat.com> References: <1576513726-53700-1-git-send-email-pbonzini@redhat.com> X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2a00:1450:4864:20::444 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: , Errors-To: qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Sender: "Qemu-devel" On x86, KVM needs some function from the PCI subsystem in order to set up interrupt routes. Provide some stubs to support x86 machines that lack PCI. Reviewed-by: Sergio Lopez Signed-off-by: Paolo Bonzini --- hw/pci/pci-stub.c | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/hw/pci/pci-stub.c b/hw/pci/pci-stub.c index c04a5df..cc2a2e1 100644 --- a/hw/pci/pci-stub.c +++ b/hw/pci/pci-stub.c @@ -26,6 +26,7 @@ #include "qapi/qmp/qerror.h" #include "hw/pci/pci.h" #include "hw/pci/msi.h" +#include "hw/pci/msix.h" bool msi_nonbroken; bool pci_available; @@ -64,3 +65,29 @@ void msi_notify(PCIDevice *dev, unsigned int vector) { g_assert_not_reached(); } + +/* Required by target/i386/kvm.c */ +bool msi_is_masked(const PCIDevice *dev, unsigned vector) +{ + g_assert_not_reached(); +} + +MSIMessage msi_get_message(PCIDevice *dev, unsigned int vector) +{ + g_assert_not_reached(); +} + +int msix_enabled(PCIDevice *dev) +{ + return false; +} + +bool msix_is_masked(PCIDevice *dev, unsigned vector) +{ + g_assert_not_reached(); +} + +MSIMessage msix_get_message(PCIDevice *dev, unsigned int vector) +{ + g_assert_not_reached(); +} From patchwork Mon Dec 16 16:28:32 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Paolo Bonzini X-Patchwork-Id: 11294843 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 8384B930 for ; Mon, 16 Dec 2019 17:16:50 +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 0C0F3206D7 for ; Mon, 16 Dec 2019 17:16:49 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="liRhNVTQ" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 0C0F3206D7 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=redhat.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Received: from localhost ([::1]:57276 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1igtzE-0006vg-Eq for patchwork-qemu-devel@patchwork.kernel.org; Mon, 16 Dec 2019 12:16:48 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:57310) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1igtFa-0005ov-SP for qemu-devel@nongnu.org; Mon, 16 Dec 2019 11:29:40 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1igtFZ-0000D3-Ab for qemu-devel@nongnu.org; Mon, 16 Dec 2019 11:29:38 -0500 Received: from mail-wr1-x42b.google.com ([2a00:1450:4864:20::42b]:43812) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1igtFZ-0000B2-39 for qemu-devel@nongnu.org; Mon, 16 Dec 2019 11:29:37 -0500 Received: by mail-wr1-x42b.google.com with SMTP id d16so8037934wre.10 for ; Mon, 16 Dec 2019 08:29:37 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:subject:date:message-id:in-reply-to:references; bh=o36I1VuzLK8GMxppob8RAkcgsIWx5hcgxVqZBzm9Eo8=; b=liRhNVTQ+MkxvHpguBmpJbNXtTZSvUtWzi5MwTqtkdqDfTX70HYVxxKT0oRDG98d3F 6c3nZVIlbw25oTLHOYsDGYsYxZAy7Bl5SS/hXuUjWqDh9/0hlRBFuHTaWFniWb1eKavp ZetSHrv2QuYn93pKP67TJM4JDJwAfrM3ldp7TvLCNTTooFByU/g00g1sjcuvwL8Bgvzw bBBNFQCpEKE2wm+Geu5R+pHs6RpAwDIGwSEF9o5BQTnMj3D+SCHf5U8VZLc8Ld1HNde4 X/u4lMsLEPPKrHvvoanc4ni+SjRxvwxE4+Js3KC0IF3FCKD/DTDw2reAiuH8uGuBN9rm dLcg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:subject:date:message-id :in-reply-to:references; bh=o36I1VuzLK8GMxppob8RAkcgsIWx5hcgxVqZBzm9Eo8=; b=bO1o8FZwSrcqQI7Lvt98l6hrjuaVScAZUHDXcj+qAjCAv8om/0qGdb4IKH4gbPOWFV LJFw1CLe+B2ZltzQUO2TI5KzQGvvB1Nne06eD6030bEFqRr8vEmmVmBWG6d4p1jG+sis P5rV7wFaeuhyev1T6BOejwdy5ptwEjKrL/6XTPaLuR5h4U0bQt0iaybHnwoMDt4rEMHH gIl1ut0TTwY8m+8prJ0GhQAxcUeWEcz423PLN4zDbm7mgnwguBhl9KbPY547wXrkNxa1 QBv4yR1UBmjMf8sMZxS4Oz+WUa7u5WrDkwRFjtPZdo6OFYjWJjBzHTX+On1gdtly275r W3Ig== X-Gm-Message-State: APjAAAUx1rdNc84t98D7nkgYsWDAfQ9ke0+lxrD87VgJoWNQSXfbcJmx CjR1HYAUzOS70xrQl6ItTL/0vouT X-Google-Smtp-Source: APXvYqzEAs8HZkWCM5BviZjOt56NVmoKJl/noN3NrQZ5W9UYs8fAQ9GHtSZO60WaOIl8G43RO/ARjw== X-Received: by 2002:adf:f70b:: with SMTP id r11mr33205249wrp.388.1576513775853; Mon, 16 Dec 2019 08:29:35 -0800 (PST) Received: from 640k.lan ([93.56.166.5]) by smtp.gmail.com with ESMTPSA id q68sm19962334wme.14.2019.12.16.08.29.34 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 16 Dec 2019 08:29:35 -0800 (PST) From: Paolo Bonzini To: qemu-devel@nongnu.org Subject: [PULL 48/62] x86: move SMM property to X86MachineState Date: Mon, 16 Dec 2019 17:28:32 +0100 Message-Id: <1576513726-53700-49-git-send-email-pbonzini@redhat.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1576513726-53700-1-git-send-email-pbonzini@redhat.com> References: <1576513726-53700-1-git-send-email-pbonzini@redhat.com> X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2a00:1450:4864:20::42b 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: , Errors-To: qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Sender: "Qemu-devel" Add it to microvm as well, it is a generic property of the x86 architecture. Suggested-by: Sergio Lopez Signed-off-by: Paolo Bonzini --- hw/i386/pc.c | 49 ------------------------------------------------- hw/i386/pc_piix.c | 6 +++--- hw/i386/pc_q35.c | 2 +- hw/i386/x86.c | 50 +++++++++++++++++++++++++++++++++++++++++++++++++- include/hw/i386/pc.h | 3 --- include/hw/i386/x86.h | 5 +++++ target/i386/kvm.c | 3 +-- 7 files changed, 59 insertions(+), 59 deletions(-) diff --git a/hw/i386/pc.c b/hw/i386/pc.c index 23052c7..4d7f7dd 100644 --- a/hw/i386/pc.c +++ b/hw/i386/pc.c @@ -2028,48 +2028,6 @@ static void pc_machine_set_vmport(Object *obj, Visitor *v, const char *name, visit_type_OnOffAuto(v, name, &pcms->vmport, errp); } -bool pc_machine_is_smm_enabled(PCMachineState *pcms) -{ - bool smm_available = false; - - if (pcms->smm == ON_OFF_AUTO_OFF) { - return false; - } - - if (tcg_enabled() || qtest_enabled()) { - smm_available = true; - } else if (kvm_enabled()) { - smm_available = kvm_has_smm(); - } - - if (smm_available) { - return true; - } - - if (pcms->smm == ON_OFF_AUTO_ON) { - error_report("System Management Mode not supported by this hypervisor."); - exit(1); - } - return false; -} - -static void pc_machine_get_smm(Object *obj, Visitor *v, const char *name, - void *opaque, Error **errp) -{ - PCMachineState *pcms = PC_MACHINE(obj); - OnOffAuto smm = pcms->smm; - - visit_type_OnOffAuto(v, name, &smm, errp); -} - -static void pc_machine_set_smm(Object *obj, Visitor *v, const char *name, - void *opaque, Error **errp) -{ - PCMachineState *pcms = PC_MACHINE(obj); - - visit_type_OnOffAuto(v, name, &pcms->smm, errp); -} - static bool pc_machine_get_smbus(Object *obj, Error **errp) { PCMachineState *pcms = PC_MACHINE(obj); @@ -2116,7 +2074,6 @@ static void pc_machine_initfn(Object *obj) { PCMachineState *pcms = PC_MACHINE(obj); - pcms->smm = ON_OFF_AUTO_AUTO; #ifdef CONFIG_VMPORT pcms->vmport = ON_OFF_AUTO_AUTO; #else @@ -2223,12 +2180,6 @@ static void pc_machine_class_init(ObjectClass *oc, void *data) pc_machine_get_device_memory_region_size, NULL, NULL, NULL, &error_abort); - object_class_property_add(oc, PC_MACHINE_SMM, "OnOffAuto", - pc_machine_get_smm, pc_machine_set_smm, - NULL, NULL, &error_abort); - object_class_property_set_description(oc, PC_MACHINE_SMM, - "Enable SMM (pc & q35)", &error_abort); - object_class_property_add(oc, PC_MACHINE_VMPORT, "OnOffAuto", pc_machine_get_vmport, pc_machine_set_vmport, NULL, NULL, &error_abort); diff --git a/hw/i386/pc_piix.c b/hw/i386/pc_piix.c index 87aced0..dc88d9c 100644 --- a/hw/i386/pc_piix.c +++ b/hw/i386/pc_piix.c @@ -281,7 +281,7 @@ else { /* TODO: Populate SPD eeprom data. */ pcms->smbus = piix4_pm_init(pci_bus, piix3_devfn + 3, 0xb100, x86ms->gsi[9], smi_irq, - pc_machine_is_smm_enabled(pcms), + x86_machine_is_smm_enabled(x86ms), &piix4_pm); smbus_eeprom_init(pcms->smbus, 8, NULL, 0); @@ -309,9 +309,9 @@ else { static void pc_compat_2_3_fn(MachineState *machine) { - PCMachineState *pcms = PC_MACHINE(machine); + X86MachineState *x86ms = X86_MACHINE(machine); if (kvm_enabled()) { - pcms->smm = ON_OFF_AUTO_OFF; + x86ms->smm = ON_OFF_AUTO_OFF; } } diff --git a/hw/i386/pc_q35.c b/hw/i386/pc_q35.c index 2608cd0..30784ec 100644 --- a/hw/i386/pc_q35.c +++ b/hw/i386/pc_q35.c @@ -276,7 +276,7 @@ static void pc_q35_init(MachineState *machine) 0xff0104); /* connect pm stuff to lpc */ - ich9_lpc_pm_init(lpc, pc_machine_is_smm_enabled(pcms)); + ich9_lpc_pm_init(lpc, x86_machine_is_smm_enabled(x86ms)); if (pcms->sata_enabled) { /* ahci and SATA device, for q35 1 ahci controller is built-in */ diff --git a/hw/i386/x86.c b/hw/i386/x86.c index 3e4aee5..6fb01e4 100644 --- a/hw/i386/x86.c +++ b/hw/i386/x86.c @@ -746,10 +746,53 @@ static void x86_machine_set_max_ram_below_4g(Object *obj, Visitor *v, x86ms->max_ram_below_4g = value; } +bool x86_machine_is_smm_enabled(X86MachineState *x86ms) +{ + bool smm_available = false; + + if (x86ms->smm == ON_OFF_AUTO_OFF) { + return false; + } + + if (tcg_enabled() || qtest_enabled()) { + smm_available = true; + } else if (kvm_enabled()) { + smm_available = kvm_has_smm(); + } + + if (smm_available) { + return true; + } + + if (x86ms->smm == ON_OFF_AUTO_ON) { + error_report("System Management Mode not supported by this hypervisor."); + exit(1); + } + return false; +} + +static void x86_machine_get_smm(Object *obj, Visitor *v, const char *name, + void *opaque, Error **errp) +{ + X86MachineState *x86ms = X86_MACHINE(obj); + OnOffAuto smm = x86ms->smm; + + visit_type_OnOffAuto(v, name, &smm, errp); +} + +static void x86_machine_set_smm(Object *obj, Visitor *v, const char *name, + void *opaque, Error **errp) +{ + X86MachineState *x86ms = X86_MACHINE(obj); + + visit_type_OnOffAuto(v, name, &x86ms->smm, errp); +} + static void x86_machine_initfn(Object *obj) { X86MachineState *x86ms = X86_MACHINE(obj); + x86ms->smm = ON_OFF_AUTO_AUTO; x86ms->max_ram_below_4g = 0; /* use default */ x86ms->smp_dies = 1; } @@ -770,9 +813,14 @@ static void x86_machine_class_init(ObjectClass *oc, void *data) object_class_property_add(oc, X86_MACHINE_MAX_RAM_BELOW_4G, "size", x86_machine_get_max_ram_below_4g, x86_machine_set_max_ram_below_4g, NULL, NULL, &error_abort); - object_class_property_set_description(oc, X86_MACHINE_MAX_RAM_BELOW_4G, "Maximum ram below the 4G boundary (32bit boundary)", &error_abort); + + object_class_property_add(oc, X86_MACHINE_SMM, "OnOffAuto", + x86_machine_get_smm, x86_machine_set_smm, + NULL, NULL, &error_abort); + object_class_property_set_description(oc, X86_MACHINE_SMM, + "Enable SMM", &error_abort); } static const TypeInfo x86_machine_info = { diff --git a/include/hw/i386/pc.h b/include/hw/i386/pc.h index 82447f8..ca641e8 100644 --- a/include/hw/i386/pc.h +++ b/include/hw/i386/pc.h @@ -43,7 +43,6 @@ struct PCMachineState { /* Configuration options: */ OnOffAuto vmport; - OnOffAuto smm; bool acpi_build_enabled; bool smbus_enabled; @@ -61,7 +60,6 @@ struct PCMachineState { #define PC_MACHINE_ACPI_DEVICE_PROP "acpi-device" #define PC_MACHINE_DEVMEM_REGION_SIZE "device-memory-region-size" #define PC_MACHINE_VMPORT "vmport" -#define PC_MACHINE_SMM "smm" #define PC_MACHINE_SMBUS "smbus" #define PC_MACHINE_SATA "sata" #define PC_MACHINE_PIT "pit" @@ -165,7 +163,6 @@ void vmmouse_set_data(const uint32_t *data); /* pc.c */ extern int fd_bootchk; -bool pc_machine_is_smm_enabled(PCMachineState *pcms); void pc_acpi_smi_interrupt(void *opaque, int irq, int level); void pc_hot_add_cpu(MachineState *ms, const int64_t id, Error **errp); diff --git a/include/hw/i386/x86.h b/include/hw/i386/x86.h index 4b84917..97d1575 100644 --- a/include/hw/i386/x86.h +++ b/include/hw/i386/x86.h @@ -60,6 +60,8 @@ typedef struct { uint16_t boot_cpus; unsigned smp_dies; + OnOffAuto smm; + /* * Address space used by IOAPIC device. All IOAPIC interrupts * will be translated to MSI messages in the address space. @@ -68,6 +70,7 @@ typedef struct { } X86MachineState; #define X86_MACHINE_MAX_RAM_BELOW_4G "max-ram-below-4g" +#define X86_MACHINE_SMM "smm" #define TYPE_X86_MACHINE MACHINE_TYPE_NAME("x86") #define X86_MACHINE(obj) \ @@ -95,4 +98,6 @@ void x86_load_linux(X86MachineState *x86ms, bool pvh_enabled, bool linuxboot_dma_enabled); +bool x86_machine_is_smm_enabled(X86MachineState *x86ms); + #endif diff --git a/target/i386/kvm.c b/target/i386/kvm.c index ef63f3a..c7ff67a 100644 --- a/target/i386/kvm.c +++ b/target/i386/kvm.c @@ -2173,8 +2173,7 @@ int kvm_arch_init(MachineState *ms, KVMState *s) } if (kvm_check_extension(s, KVM_CAP_X86_SMM) && - object_dynamic_cast(OBJECT(ms), TYPE_PC_MACHINE) && - pc_machine_is_smm_enabled(PC_MACHINE(ms))) { + x86_machine_is_smm_enabled(X86_MACHINE(ms))) { smram_machine_done.notify = register_smram_listener; qemu_add_machine_init_done_notifier(&smram_machine_done); } From patchwork Mon Dec 16 16:28:33 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Paolo Bonzini X-Patchwork-Id: 11294669 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 2A71E930 for ; Mon, 16 Dec 2019 17:00:42 +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 F39DA206D7 for ; Mon, 16 Dec 2019 17:00:41 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="slSJZ2JI" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org F39DA206D7 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=redhat.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Received: from localhost ([::1]:56990 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1igtjc-0002pF-Bk for patchwork-qemu-devel@patchwork.kernel.org; Mon, 16 Dec 2019 12:00:40 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:57328) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1igtFb-0005qh-S4 for qemu-devel@nongnu.org; Mon, 16 Dec 2019 11:29:40 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1igtFa-0000Fc-ES for qemu-devel@nongnu.org; Mon, 16 Dec 2019 11:29:39 -0500 Received: from mail-wr1-x442.google.com ([2a00:1450:4864:20::442]:34202) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1igtFa-0000Dk-8E for qemu-devel@nongnu.org; Mon, 16 Dec 2019 11:29:38 -0500 Received: by mail-wr1-x442.google.com with SMTP id t2so8069740wrr.1 for ; Mon, 16 Dec 2019 08:29:38 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=Sn0dnZOFeT+bItXnoSxlBiq/kd7e5Gr7bxLLAVDuPYI=; b=slSJZ2JI/L3JlbodvsDtpM9+zCsCt6xDZb3gwKNmea/CO0Xsi/q2BHCSgiyC1mafiD HgNGrQnuD5pb75igkkLn1nnyhqkrud9v4GsWmFF9ZusBTmBmZ9h2QDhsNw30x6FnZGUM xJmEegakPQYtfHC/sSXUxw0dwcrk9/zvTl1PfA5RMdkHoMvhCQVDnZadFNEF03y1hnrw jB5n6dAypaYl6ojjuyZwsWu4slhBIsNMHNaXJOSuYZH0OcsFiXYfZZNqYCXf3LSn6oLL g4HBLN836n28JeYEcg1/yeEmSEY6nJyfE3irHF3UpYkCIJcNpE3tHL2sxz3iQK7oFnr5 y6SQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references:mime-version:content-transfer-encoding; bh=Sn0dnZOFeT+bItXnoSxlBiq/kd7e5Gr7bxLLAVDuPYI=; b=r5REOeMlpUf2VcDlRKIDNqLkV0mnUNQz1jHvemYO4eUle0OciOufDMbWkscQ9zJFYf Yq5rfNE4zL866CwLYBoSj0mCmRZMzeyMs4ugirWC8HNBUFA992EzhMzb3JK63T26RzH8 ve5XKB+TKvH8b/7/v3eP14qe/cCnAwHdgVjhKtLg0MWihx6vHrm2t3R4elNuDyqxpLzU YTABfU4QAPb4RxY3vqrgtUA6CHsGUknNFAGM53p/QfcmQTnh4zRSxi9yneKFitAPrCXr 8BlGqU348uj+bZqqQwKBJ1Zl928PxI6NqcRGZfrKyL7JSpsjrP2pgiSlm/ICwjujJ0vV OZ/w== X-Gm-Message-State: APjAAAUTjhJuDRpdiv/ZZ+USo7ugxtH/orA0cU+3oVlrtypgDr/Bi/jl F1SJXqfjaCPqukp0ChFMI9MLmUTs X-Google-Smtp-Source: APXvYqywpy89iy+WkDcdw1RStz4iuHnJpg3SFWA40cSMLEBFJGyln532GTph3EYVzVpuwnPZAB9PHQ== X-Received: by 2002:a5d:4c8c:: with SMTP id z12mr30896357wrs.222.1576513776902; Mon, 16 Dec 2019 08:29:36 -0800 (PST) Received: from 640k.lan ([93.56.166.5]) by smtp.gmail.com with ESMTPSA id q68sm19962334wme.14.2019.12.16.08.29.35 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 16 Dec 2019 08:29:36 -0800 (PST) From: Paolo Bonzini To: qemu-devel@nongnu.org Subject: [PULL 49/62] hw/i386/pc: Convert DPRINTF() to trace events Date: Mon, 16 Dec 2019 17:28:33 +0100 Message-Id: <1576513726-53700-50-git-send-email-pbonzini@redhat.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1576513726-53700-1-git-send-email-pbonzini@redhat.com> References: <1576513726-53700-1-git-send-email-pbonzini@redhat.com> MIME-Version: 1.0 X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2a00:1450:4864:20::442 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: =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= Errors-To: qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Sender: "Qemu-devel" From: Philippe Mathieu-Daudé Convert the deprecated DPRINTF() macro to trace events. Signed-off-by: Philippe Mathieu-Daudé Signed-off-by: Paolo Bonzini --- hw/i386/pc.c | 19 +++++-------------- hw/i386/trace-events | 6 ++++++ 2 files changed, 11 insertions(+), 14 deletions(-) diff --git a/hw/i386/pc.c b/hw/i386/pc.c index 4d7f7dd..907fc16 100644 --- a/hw/i386/pc.c +++ b/hw/i386/pc.c @@ -91,16 +91,7 @@ #include "config-devices.h" #include "e820_memory_layout.h" #include "fw_cfg.h" - -/* debug PC/ISA interrupts */ -//#define DEBUG_IRQ - -#ifdef DEBUG_IRQ -#define DPRINTF(fmt, ...) \ - do { printf("CPUIRQ: " fmt , ## __VA_ARGS__); } while (0) -#else -#define DPRINTF(fmt, ...) -#endif +#include "trace.h" GlobalProperty pc_compat_4_1[] = {}; const size_t pc_compat_4_1_len = G_N_ELEMENTS(pc_compat_4_1); @@ -347,7 +338,7 @@ void gsi_handler(void *opaque, int n, int level) { GSIState *s = opaque; - DPRINTF("pc: %s GSI %d\n", level ? "raising" : "lowering", n); + trace_pc_gsi_interrupt(n, level); if (n < ISA_NUM_IRQS) { qemu_set_irq(s->i8259_irq[n], level); } @@ -425,7 +416,7 @@ static void pic_irq_request(void *opaque, int irq, int level) CPUState *cs = first_cpu; X86CPU *cpu = X86_CPU(cs); - DPRINTF("pic_irqs: %s irq %d\n", level? "raise" : "lower", irq); + trace_pc_pic_interrupt(irq, level); if (cpu->apic_state && !kvm_irqchip_in_kernel()) { CPU_FOREACH(cs) { cpu = X86_CPU(cs); @@ -759,7 +750,7 @@ static void port92_write(void *opaque, hwaddr addr, uint64_t val, Port92State *s = opaque; int oldval = s->outport; - DPRINTF("port92: write 0x%02" PRIx64 "\n", val); + trace_port92_write(val); s->outport = val; qemu_set_irq(s->a20_out, (val >> 1) & 1); if ((val & 1) && !(oldval & 1)) { @@ -774,7 +765,7 @@ static uint64_t port92_read(void *opaque, hwaddr addr, uint32_t ret; ret = s->outport; - DPRINTF("port92: read 0x%02x\n", ret); + trace_port92_read(ret); return ret; } diff --git a/hw/i386/trace-events b/hw/i386/trace-events index c8bc464..43f33cf 100644 --- a/hw/i386/trace-events +++ b/hw/i386/trace-events @@ -111,3 +111,9 @@ amdvi_ir_irte_ga_val(uint64_t hi, uint64_t lo) "hi 0x%"PRIx64" lo 0x%"PRIx64 # vmport.c vmport_register(unsigned char command, void *func, void *opaque) "command: 0x%02x func: %p opaque: %p" vmport_command(unsigned char command) "command: 0x%02x" + +# pc.c +pc_gsi_interrupt(int irqn, int level) "GSI interrupt #%d level:%d" +pc_pic_interrupt(int irqn, int level) "PIC interrupt #%d level:%d" +port92_read(uint8_t val) "port92: read 0x%02x" +port92_write(uint8_t val) "port92: write 0x%02x" From patchwork Mon Dec 16 16:28:34 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Paolo Bonzini X-Patchwork-Id: 11294689 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 28E091580 for ; Mon, 16 Dec 2019 17:04:25 +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 DEA7E206D7 for ; Mon, 16 Dec 2019 17:04:24 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="W38PuHII" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org DEA7E206D7 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=redhat.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Received: from localhost ([::1]:57022 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1igtnD-0006c4-3n for patchwork-qemu-devel@patchwork.kernel.org; Mon, 16 Dec 2019 12:04:23 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:57358) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1igtFd-0005ti-NN for qemu-devel@nongnu.org; Mon, 16 Dec 2019 11:29:44 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1igtFb-0000I4-M9 for qemu-devel@nongnu.org; Mon, 16 Dec 2019 11:29:41 -0500 Received: from mail-wr1-x431.google.com ([2a00:1450:4864:20::431]:39131) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1igtFb-0000Gl-Dx for qemu-devel@nongnu.org; Mon, 16 Dec 2019 11:29:39 -0500 Received: by mail-wr1-x431.google.com with SMTP id y11so8036755wrt.6 for ; Mon, 16 Dec 2019 08:29:39 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:subject:date:message-id:in-reply-to:references; bh=J8EuXOaFv77zXVZ+gvJ8EQAA3UR6OUHvj5oaQV1ueAE=; b=W38PuHIIuIOkRoTX4aCzkyhJO0RQwlepsvQLgGqLPHVIhwch+gIe9/nxWbUZGBlN24 e9cOgXCvLwifiz9IW8Y/nEEYpHo6lFb/O+geZZT9bZMywjjh+If8jRQO1i5wKq1Skuis OdCue1kTM1z8NvzrXQ45InKtSEN2uJm9Rs+Azu7oYaByMchcNxGFtV+4wX0kV6KWXMBs kxikWxv9m4kd4SzYR6z8udMYCtOXzU/MA63Hmjv4VsykXU3ydXKl8uqPEJFIH0NHC3IS U1BuUfgkjIqtXHidYEvQn6gTMoHyF5x3+mJMPz57QekjGQRUoQNTZtksCOrxgwDuH8d5 k0Rg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:subject:date:message-id :in-reply-to:references; bh=J8EuXOaFv77zXVZ+gvJ8EQAA3UR6OUHvj5oaQV1ueAE=; b=PChsnTpaC5+yTi0nYUkWCsNLnrQbYQ7JatudE1iSZMzYz0agEgKK9pmPkzVSiYFc9N 0SimkvEvffuqBbLkXxbS34tcrPTFmC1nr/gKPlgrfRoPvofaAu0oBe5EO7qxKdEyqTmX yvGf0xELNzfEuXc5yVRps6kHms+GCDEQwfMaJxvzwyx06ltrDmZjthZAP4A65yGZuQPk 3mTtiuyQaSss04prkrPCLDRM81fEK5GX4K5x5/vt6zA7ebUQ2YcScO6xRrfY+azc41Sp yHZ59/GGZ1FUfMa8poyQAWDtBzwrza5dtDZsr6iC8M5Fu3UcYTBMao2Q579/GH3aBZ/d i6ew== X-Gm-Message-State: APjAAAXT9iqAJfHkWCjzTrGvLDuzwfRS8ptVQBjGqYbQSgW0yV+F/v9F meWN1ceTZKmtU9LZGDmNgEKsp7Av X-Google-Smtp-Source: APXvYqy5ghhD6SZqVaITr+odcDl/K9w42rccHBxKn+Kbu/CINlyjJLTfQ0yKgK1++uqwFsaZqHJFeA== X-Received: by 2002:adf:e984:: with SMTP id h4mr30483525wrm.275.1576513778051; Mon, 16 Dec 2019 08:29:38 -0800 (PST) Received: from 640k.lan ([93.56.166.5]) by smtp.gmail.com with ESMTPSA id q68sm19962334wme.14.2019.12.16.08.29.36 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 16 Dec 2019 08:29:37 -0800 (PST) From: Paolo Bonzini To: qemu-devel@nongnu.org Subject: [PULL 50/62] x86: move more x86-generic functions out of PC files Date: Mon, 16 Dec 2019 17:28:34 +0100 Message-Id: <1576513726-53700-51-git-send-email-pbonzini@redhat.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1576513726-53700-1-git-send-email-pbonzini@redhat.com> References: <1576513726-53700-1-git-send-email-pbonzini@redhat.com> X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2a00:1450:4864:20::431 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: , Errors-To: qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Sender: "Qemu-devel" These are needed by microvm too, so move them outside of PC-specific files. With this patch, microvm.c need not include pc.h anymore. Signed-off-by: Paolo Bonzini --- hw/i386/acpi-build.c | 1 + hw/i386/fw_cfg.c | 1 - hw/i386/fw_cfg.h | 2 + hw/i386/kvm/ioapic.c | 2 +- hw/i386/microvm.c | 3 +- hw/i386/pc.c | 101 +------------------------------------------------ hw/i386/trace-events | 6 ++- hw/i386/x86.c | 103 ++++++++++++++++++++++++++++++++++++++++++++++++++ include/hw/i386/pc.h | 20 ---------- include/hw/i386/x86.h | 18 +++++++++ target/i386/kvm.c | 2 +- target/i386/machine.c | 2 +- 12 files changed, 133 insertions(+), 128 deletions(-) diff --git a/hw/i386/acpi-build.c b/hw/i386/acpi-build.c index 12ff55f..7b8da62 100644 --- a/hw/i386/acpi-build.c +++ b/hw/i386/acpi-build.c @@ -53,6 +53,7 @@ /* Supported chipsets: */ #include "hw/southbridge/piix.h" #include "hw/acpi/pcihp.h" +#include "hw/i386/fw_cfg.h" #include "hw/i386/ich9.h" #include "hw/pci/pci_bus.h" #include "hw/pci-host/q35.h" diff --git a/hw/i386/fw_cfg.c b/hw/i386/fw_cfg.c index 326e33e..da60ada 100644 --- a/hw/i386/fw_cfg.c +++ b/hw/i386/fw_cfg.c @@ -16,7 +16,6 @@ #include "sysemu/numa.h" #include "hw/acpi/acpi.h" #include "hw/firmware/smbios.h" -#include "hw/i386/pc.h" #include "hw/i386/fw_cfg.h" #include "hw/timer/hpet.h" #include "hw/nvram/fw_cfg.h" diff --git a/hw/i386/fw_cfg.h b/hw/i386/fw_cfg.h index e0856a3..9e74278 100644 --- a/hw/i386/fw_cfg.h +++ b/hw/i386/fw_cfg.h @@ -12,6 +12,8 @@ #include "hw/boards.h" #include "hw/nvram/fw_cfg.h" +#define FW_CFG_IO_BASE 0x510 + #define FW_CFG_ACPI_TABLES (FW_CFG_ARCH_LOCAL + 0) #define FW_CFG_SMBIOS_ENTRIES (FW_CFG_ARCH_LOCAL + 1) #define FW_CFG_IRQ0_OVERRIDE (FW_CFG_ARCH_LOCAL + 2) diff --git a/hw/i386/kvm/ioapic.c b/hw/i386/kvm/ioapic.c index f94729c..8703f19 100644 --- a/hw/i386/kvm/ioapic.c +++ b/hw/i386/kvm/ioapic.c @@ -12,7 +12,7 @@ #include "qemu/osdep.h" #include "monitor/monitor.h" -#include "hw/i386/pc.h" +#include "hw/i386/x86.h" #include "hw/irq.h" #include "hw/qdev-properties.h" #include "hw/i386/ioapic_internal.h" diff --git a/hw/i386/microvm.c b/hw/i386/microvm.c index 2068319..827ce29 100644 --- a/hw/i386/microvm.c +++ b/hw/i386/microvm.c @@ -32,7 +32,6 @@ #include "hw/kvm/clock.h" #include "hw/i386/microvm.h" #include "hw/i386/x86.h" -#include "hw/i386/pc.h" #include "target/i386/cpu.h" #include "hw/intc/i8259.h" #include "hw/timer/i8254.h" @@ -133,7 +132,7 @@ static void microvm_devices_init(MicrovmMachineState *mms) if (mms->pic == ON_OFF_AUTO_ON || mms->pic == ON_OFF_AUTO_AUTO) { qemu_irq *i8259; - i8259 = i8259_init(isa_bus, pc_allocate_cpu_irq()); + i8259 = i8259_init(isa_bus, x86_allocate_cpu_irq()); for (i = 0; i < ISA_NUM_IRQS; i++) { gsi_state->i8259_irq[i] = i8259[i]; } diff --git a/hw/i386/pc.c b/hw/i386/pc.c index 907fc16..f571fe7 100644 --- a/hw/i386/pc.c +++ b/hw/i386/pc.c @@ -334,17 +334,6 @@ GlobalProperty pc_compat_1_4[] = { }; const size_t pc_compat_1_4_len = G_N_ELEMENTS(pc_compat_1_4); -void gsi_handler(void *opaque, int n, int level) -{ - GSIState *s = opaque; - - trace_pc_gsi_interrupt(n, level); - if (n < ISA_NUM_IRQS) { - qemu_set_irq(s->i8259_irq[n], level); - } - qemu_set_irq(s->ioapic_irq[n], level); -} - GSIState *pc_gsi_create(qemu_irq **irqs, bool pci_enabled) { GSIState *s; @@ -384,55 +373,6 @@ static uint64_t ioportF0_read(void *opaque, hwaddr addr, unsigned size) return 0xffffffffffffffffULL; } -/* TSC handling */ -uint64_t cpu_get_tsc(CPUX86State *env) -{ - return cpu_get_ticks(); -} - -/* IRQ handling */ -int cpu_get_pic_interrupt(CPUX86State *env) -{ - X86CPU *cpu = env_archcpu(env); - int intno; - - if (!kvm_irqchip_in_kernel()) { - intno = apic_get_interrupt(cpu->apic_state); - if (intno >= 0) { - return intno; - } - /* read the irq from the PIC */ - if (!apic_accept_pic_intr(cpu->apic_state)) { - return -1; - } - } - - intno = pic_read_irq(isa_pic); - return intno; -} - -static void pic_irq_request(void *opaque, int irq, int level) -{ - CPUState *cs = first_cpu; - X86CPU *cpu = X86_CPU(cs); - - trace_pc_pic_interrupt(irq, level); - if (cpu->apic_state && !kvm_irqchip_in_kernel()) { - CPU_FOREACH(cs) { - cpu = X86_CPU(cs); - if (apic_accept_pic_intr(cpu->apic_state)) { - apic_deliver_pic_intr(cpu->apic_state, level); - } - } - } else { - if (level) { - cpu_interrupt(cs, CPU_INTERRUPT_HARD); - } else { - cpu_reset_interrupt(cs, CPU_INTERRUPT_HARD); - } - } -} - /* PC cmos mappings */ #define REG_EQUIPMENT_BYTE 0x14 @@ -876,16 +816,6 @@ void pc_init_ne2k_isa(ISABus *bus, NICInfo *nd) nb_ne2k++; } -DeviceState *cpu_get_current_apic(void) -{ - if (current_cpu) { - X86CPU *cpu = X86_CPU(current_cpu); - return cpu->apic_state; - } else { - return NULL; - } -} - void pc_acpi_smi_interrupt(void *opaque, int irq, int level) { X86CPU *cpu = opaque; @@ -1281,11 +1211,6 @@ uint64_t pc_pci_hole64_start(void) return ROUND_UP(hole64_start, 1 * GiB); } -qemu_irq pc_allocate_cpu_irq(void) -{ - return qemu_allocate_irq(pic_irq_request, NULL, 0); -} - DeviceState *pc_vga_init(ISABus *isa_bus, PCIBus *pci_bus) { DeviceState *dev = NULL; @@ -1462,7 +1387,7 @@ void pc_i8259_create(ISABus *isa_bus, qemu_irq *i8259_irqs) } else if (xen_enabled()) { i8259 = xen_interrupt_controller_init(); } else { - i8259 = i8259_init(isa_bus, pc_allocate_cpu_irq()); + i8259 = i8259_init(isa_bus, x86_allocate_cpu_irq()); } for (size_t i = 0; i < ISA_NUM_IRQS; i++) { @@ -1472,30 +1397,6 @@ void pc_i8259_create(ISABus *isa_bus, qemu_irq *i8259_irqs) g_free(i8259); } -void ioapic_init_gsi(GSIState *gsi_state, const char *parent_name) -{ - DeviceState *dev; - SysBusDevice *d; - unsigned int i; - - if (kvm_ioapic_in_kernel()) { - dev = qdev_create(NULL, TYPE_KVM_IOAPIC); - } else { - dev = qdev_create(NULL, TYPE_IOAPIC); - } - if (parent_name) { - object_property_add_child(object_resolve_path(parent_name, NULL), - "ioapic", OBJECT(dev), NULL); - } - qdev_init_nofail(dev); - d = SYS_BUS_DEVICE(dev); - sysbus_mmio_map(d, 0, IO_APIC_DEFAULT_ADDRESS); - - for (i = 0; i < IOAPIC_NUM_PINS; i++) { - gsi_state->ioapic_irq[i] = qdev_get_gpio_in(dev, i); - } -} - static void pc_memory_pre_plug(HotplugHandler *hotplug_dev, DeviceState *dev, Error **errp) { diff --git a/hw/i386/trace-events b/hw/i386/trace-events index 43f33cf..a9b6437 100644 --- a/hw/i386/trace-events +++ b/hw/i386/trace-events @@ -112,8 +112,10 @@ amdvi_ir_irte_ga_val(uint64_t hi, uint64_t lo) "hi 0x%"PRIx64" lo 0x%"PRIx64 vmport_register(unsigned char command, void *func, void *opaque) "command: 0x%02x func: %p opaque: %p" vmport_command(unsigned char command) "command: 0x%02x" +# x86.c +x86_gsi_interrupt(int irqn, int level) "GSI interrupt #%d level:%d" +x86_pic_interrupt(int irqn, int level) "PIC interrupt #%d level:%d" + # pc.c -pc_gsi_interrupt(int irqn, int level) "GSI interrupt #%d level:%d" -pc_pic_interrupt(int irqn, int level) "PIC interrupt #%d level:%d" port92_read(uint8_t val) "port92: read 0x%02x" port92_write(uint8_t val) "port92: write 0x%02x" diff --git a/hw/i386/x86.c b/hw/i386/x86.c index 6fb01e4..80e33be 100644 --- a/hw/i386/x86.c +++ b/hw/i386/x86.c @@ -34,6 +34,7 @@ #include "sysemu/numa.h" #include "sysemu/replay.h" #include "sysemu/sysemu.h" +#include "trace.h" #include "hw/i386/x86.h" #include "target/i386/cpu.h" @@ -42,11 +43,14 @@ #include "hw/intc/i8259.h" #include "hw/acpi/cpu_hotplug.h" +#include "hw/irq.h" #include "hw/nmi.h" #include "hw/loader.h" #include "multiboot.h" #include "elf.h" #include "standard-headers/asm-x86/bootparam.h" +#include "config-devices.h" +#include "kvm_i386.h" #define BIOS_FILENAME "bios.bin" @@ -221,6 +225,105 @@ static long get_file_size(FILE *f) return size; } +/* TSC handling */ +uint64_t cpu_get_tsc(CPUX86State *env) +{ + return cpu_get_ticks(); +} + +/* IRQ handling */ +static void pic_irq_request(void *opaque, int irq, int level) +{ + CPUState *cs = first_cpu; + X86CPU *cpu = X86_CPU(cs); + + trace_x86_pic_interrupt(irq, level); + if (cpu->apic_state && !kvm_irqchip_in_kernel()) { + CPU_FOREACH(cs) { + cpu = X86_CPU(cs); + if (apic_accept_pic_intr(cpu->apic_state)) { + apic_deliver_pic_intr(cpu->apic_state, level); + } + } + } else { + if (level) { + cpu_interrupt(cs, CPU_INTERRUPT_HARD); + } else { + cpu_reset_interrupt(cs, CPU_INTERRUPT_HARD); + } + } +} + +qemu_irq x86_allocate_cpu_irq(void) +{ + return qemu_allocate_irq(pic_irq_request, NULL, 0); +} + +int cpu_get_pic_interrupt(CPUX86State *env) +{ + X86CPU *cpu = env_archcpu(env); + int intno; + + if (!kvm_irqchip_in_kernel()) { + intno = apic_get_interrupt(cpu->apic_state); + if (intno >= 0) { + return intno; + } + /* read the irq from the PIC */ + if (!apic_accept_pic_intr(cpu->apic_state)) { + return -1; + } + } + + intno = pic_read_irq(isa_pic); + return intno; +} + +DeviceState *cpu_get_current_apic(void) +{ + if (current_cpu) { + X86CPU *cpu = X86_CPU(current_cpu); + return cpu->apic_state; + } else { + return NULL; + } +} + +void gsi_handler(void *opaque, int n, int level) +{ + GSIState *s = opaque; + + trace_x86_gsi_interrupt(n, level); + if (n < ISA_NUM_IRQS) { + qemu_set_irq(s->i8259_irq[n], level); + } + qemu_set_irq(s->ioapic_irq[n], level); +} + +void ioapic_init_gsi(GSIState *gsi_state, const char *parent_name) +{ + DeviceState *dev; + SysBusDevice *d; + unsigned int i; + + if (kvm_ioapic_in_kernel()) { + dev = qdev_create(NULL, TYPE_KVM_IOAPIC); + } else { + dev = qdev_create(NULL, TYPE_IOAPIC); + } + if (parent_name) { + object_property_add_child(object_resolve_path(parent_name, NULL), + "ioapic", OBJECT(dev), NULL); + } + qdev_init_nofail(dev); + d = SYS_BUS_DEVICE(dev); + sysbus_mmio_map(d, 0, IO_APIC_DEFAULT_ADDRESS); + + for (i = 0; i < IOAPIC_NUM_PINS; i++) { + gsi_state->ioapic_irq[i] = qdev_get_gpio_in(dev, i); + } +} + struct setup_data { uint64_t next; uint32_t type; diff --git a/include/hw/i386/pc.h b/include/hw/i386/pc.h index ca641e8..e512838 100644 --- a/include/hw/i386/pc.h +++ b/include/hw/i386/pc.h @@ -3,11 +3,9 @@ #include "exec/memory.h" #include "hw/boards.h" -#include "hw/isa/isa.h" #include "hw/block/fdc.h" #include "hw/block/flash.h" #include "net/net.h" -#include "hw/i386/ioapic.h" #include "hw/i386/x86.h" #include "qemu/range.h" @@ -134,17 +132,6 @@ typedef struct PCMachineClass { /* ioapic.c */ -/* Global System Interrupts */ - -#define GSI_NUM_PINS IOAPIC_NUM_PINS - -typedef struct GSIState { - qemu_irq i8259_irq[ISA_NUM_IRQS]; - qemu_irq ioapic_irq[IOAPIC_NUM_PINS]; -} GSIState; - -void gsi_handler(void *opaque, int n, int level); - GSIState *pc_gsi_create(qemu_irq **irqs, bool pci_enabled); /* vmport.c */ @@ -188,7 +175,6 @@ void pc_memory_init(PCMachineState *pcms, MemoryRegion *rom_memory, MemoryRegion **ram_memory); uint64_t pc_pci_hole64_start(void); -qemu_irq pc_allocate_cpu_irq(void); DeviceState *pc_vga_init(ISABus *isa_bus, PCIBus *pci_bus); void pc_basic_device_init(ISABus *isa_bus, qemu_irq *gsi, ISADevice **rtc_state, @@ -206,18 +192,12 @@ void pc_pci_device_init(PCIBus *pci_bus); typedef void (*cpu_set_smm_t)(int smm, void *arg); void pc_i8259_create(ISABus *isa_bus, qemu_irq *i8259_irqs); -void ioapic_init_gsi(GSIState *gsi_state, const char *parent_name); ISADevice *pc_find_fdc0(void); int cmos_get_fd_drive_type(FloppyDriveType fd0); -#define FW_CFG_IO_BASE 0x510 - #define PORT92_A20_LINE "a20" -/* hpet.c */ -extern int no_hpet; - /* pc_sysfw.c */ void pc_system_flash_create(PCMachineState *pcms); void pc_system_firmware_init(PCMachineState *pcms, MemoryRegion *rom_memory); diff --git a/include/hw/i386/x86.h b/include/hw/i386/x86.h index 97d1575..41fe37b 100644 --- a/include/hw/i386/x86.h +++ b/include/hw/i386/x86.h @@ -23,6 +23,8 @@ #include "hw/boards.h" #include "hw/nmi.h" +#include "hw/isa/isa.h" +#include "hw/i386/ioapic.h" typedef struct { /*< private >*/ @@ -100,4 +102,20 @@ void x86_load_linux(X86MachineState *x86ms, bool x86_machine_is_smm_enabled(X86MachineState *x86ms); +/* Global System Interrupts */ + +#define GSI_NUM_PINS IOAPIC_NUM_PINS + +typedef struct GSIState { + qemu_irq i8259_irq[ISA_NUM_IRQS]; + qemu_irq ioapic_irq[IOAPIC_NUM_PINS]; +} GSIState; + +qemu_irq x86_allocate_cpu_irq(void); +void gsi_handler(void *opaque, int n, int level); +void ioapic_init_gsi(GSIState *gsi_state, const char *parent_name); + +/* hpet.c */ +extern int no_hpet; + #endif diff --git a/target/i386/kvm.c b/target/i386/kvm.c index c7ff67a..55e6265 100644 --- a/target/i386/kvm.c +++ b/target/i386/kvm.c @@ -35,7 +35,7 @@ #include "qemu/main-loop.h" #include "qemu/config-file.h" #include "qemu/error-report.h" -#include "hw/i386/pc.h" +#include "hw/i386/x86.h" #include "hw/i386/apic.h" #include "hw/i386/apic_internal.h" #include "hw/i386/apic-msidef.h" diff --git a/target/i386/machine.c b/target/i386/machine.c index 2699eed..b6720d8 100644 --- a/target/i386/machine.c +++ b/target/i386/machine.c @@ -1,10 +1,10 @@ #include "qemu/osdep.h" #include "cpu.h" #include "exec/exec-all.h" -#include "hw/i386/pc.h" #include "hw/isa/isa.h" #include "migration/cpu.h" #include "hyperv.h" +#include "hw/i386/x86.h" #include "kvm_i386.h" #include "sysemu/kvm.h" From patchwork Mon Dec 16 16:28:35 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Paolo Bonzini X-Patchwork-Id: 11294673 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 6D393930 for ; Mon, 16 Dec 2019 17:02:01 +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 3D966206D7 for ; Mon, 16 Dec 2019 17:02:01 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="KYm1I0r6" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 3D966206D7 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=redhat.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Received: from localhost ([::1]:56998 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1igtkt-00047D-SD for patchwork-qemu-devel@patchwork.kernel.org; Mon, 16 Dec 2019 12:01:59 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:57356) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1igtFd-0005td-MN for qemu-devel@nongnu.org; Mon, 16 Dec 2019 11:29:42 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1igtFc-0000JX-HE for qemu-devel@nongnu.org; Mon, 16 Dec 2019 11:29:41 -0500 Received: from mail-wr1-x42c.google.com ([2a00:1450:4864:20::42c]:47013) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1igtFc-0000IL-B1 for qemu-devel@nongnu.org; Mon, 16 Dec 2019 11:29:40 -0500 Received: by mail-wr1-x42c.google.com with SMTP id z7so7995433wrl.13 for ; Mon, 16 Dec 2019 08:29:40 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:subject:date:message-id:in-reply-to:references; bh=bCglA2xU8XIovJ5evRIXUQsgqKR2GztUSfl273PP6MA=; b=KYm1I0r6XVfiQJ9CiAaCZJ3gN0FsrHaRIsHJ6tP8GhS5xybKNgjM3+aHsBvxjUfVlE KDnJkxGVdPH8IsMYst3mz4V2Qwct/bPOZgIZdu00RfjZhIsRM0spj2O9sTX3y7f0xcDK PW1u/QZ+9aj5UvuQXQArV8qZw5y5XPS6Ehrm1StPyuCDfaC2cWaRHcfHCfvokirFKtvx 8I7zKDdKFSzvfqvMZTxJ5u6VzG2QEMBgNBQmYNRRnq0lQJXWMO/OArBqK379pdICYbJj 8kKr1iE6E38E2cOQCrBRMmRm78W7irWiVePu43fg7dgxCOGVqmBgKAD7K6rfX+Ozpldc FTsQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:subject:date:message-id :in-reply-to:references; bh=bCglA2xU8XIovJ5evRIXUQsgqKR2GztUSfl273PP6MA=; b=LB9rpGNv+1UPJP9pMokgcdQvGmvc399Uhm9J7qoyQii7aQNd1nh5f0c5C8Qg73pPhy 9omkLY2YJ8F/kF/5kjrPO9ttgHTLcP0DDSoZ/+vTfS4h6ngw8o5koTjhDfooNVHXI8U2 4JCDaj4+JAE7znJ7fXQrPbQb/pAYnLfOLQCJFfKWWnxBAk3x4pViAvubX6UjAl2jRwqs Bjt7CvYhZNh5CI4OXaUAI9WeoxTxgt+uIZt/VTdmrYNy0Ai7yQbWfThyf5sULZMFYs/w ANq6pt4ZgW0jq5yc3UD2CCQfPEp3iTyqMiTjJA+qBRXo4ak1py59vuVgWTRz10NfKSF8 LLSA== X-Gm-Message-State: APjAAAW7KHZ/Y8uAtSfHP7qKyEfStJ7MGoLDhs+inqgnff8gB4wJ6GRx nRei5CnQnpYzpovTDl5JEjxlIrbC X-Google-Smtp-Source: APXvYqzI81c+u2qUPq4x1Y0z/xjBFlZDd7BteBUZd8hx9HyMyhMXAeGc1Y0jO8+wsMhcgqTavoNSzA== X-Received: by 2002:adf:ef92:: with SMTP id d18mr30256974wro.234.1576513779155; Mon, 16 Dec 2019 08:29:39 -0800 (PST) Received: from 640k.lan ([93.56.166.5]) by smtp.gmail.com with ESMTPSA id q68sm19962334wme.14.2019.12.16.08.29.38 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 16 Dec 2019 08:29:38 -0800 (PST) From: Paolo Bonzini To: qemu-devel@nongnu.org Subject: [PULL 51/62] acpi: move PC stubs out of stubs/ Date: Mon, 16 Dec 2019 17:28:35 +0100 Message-Id: <1576513726-53700-52-git-send-email-pbonzini@redhat.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1576513726-53700-1-git-send-email-pbonzini@redhat.com> References: <1576513726-53700-1-git-send-email-pbonzini@redhat.com> X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2a00:1450:4864:20::42c 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: , Errors-To: qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Sender: "Qemu-devel" This is a small cleanup that lets microvm build entirely without include/hw/i386/pc.h. Signed-off-by: Paolo Bonzini --- hw/acpi/Makefile.objs | 3 ++- stubs/pc_madt_cpu_entry.c => hw/acpi/acpi-x86-stub.c | 0 stubs/Makefile.objs | 1 - 3 files changed, 2 insertions(+), 2 deletions(-) rename stubs/pc_madt_cpu_entry.c => hw/acpi/acpi-x86-stub.c (100%) diff --git a/hw/acpi/Makefile.objs b/hw/acpi/Makefile.objs index 655a9c1..9925305 100644 --- a/hw/acpi/Makefile.objs +++ b/hw/acpi/Makefile.objs @@ -8,6 +8,7 @@ common-obj-$(CONFIG_ACPI_NVDIMM) += nvdimm.o common-obj-$(CONFIG_ACPI_VMGENID) += vmgenid.o common-obj-$(CONFIG_ACPI_HW_REDUCED) += generic_event_device.o common-obj-$(call lnot,$(CONFIG_ACPI_X86)) += acpi-stub.o +common-obj-$(call lnot,$(CONFIG_PC)) += acpi-x86-stub.o common-obj-y += acpi_interface.o common-obj-y += bios-linker-loader.o @@ -20,4 +21,4 @@ common-obj-$(call lnot,$(CONFIG_IPMI)) += ipmi-stub.o else common-obj-y += acpi-stub.o endif -common-obj-$(CONFIG_ALL) += acpi-stub.o ipmi-stub.o +common-obj-$(CONFIG_ALL) += acpi-stub.o acpi-x86-stub.o ipmi-stub.o diff --git a/stubs/pc_madt_cpu_entry.c b/hw/acpi/acpi-x86-stub.c similarity index 100% rename from stubs/pc_madt_cpu_entry.c rename to hw/acpi/acpi-x86-stub.c diff --git a/stubs/Makefile.objs b/stubs/Makefile.objs index 4a50e95..8b0ff25 100644 --- a/stubs/Makefile.objs +++ b/stubs/Makefile.objs @@ -33,7 +33,6 @@ stub-obj-y += fd-register.o stub-obj-y += qmp_memory_device.o stub-obj-y += target-monitor-defs.o stub-obj-y += target-get-monitor-def.o -stub-obj-y += pc_madt_cpu_entry.o stub-obj-y += vmgenid.o stub-obj-y += xen-common.o stub-obj-y += xen-hvm.o From patchwork Mon Dec 16 16:28:36 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Paolo Bonzini X-Patchwork-Id: 11294711 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 07DA0930 for ; Mon, 16 Dec 2019 17:05:20 +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 D0FE5206EC for ; Mon, 16 Dec 2019 17:05:19 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="YWBDEQe6" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org D0FE5206EC Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=redhat.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Received: from localhost ([::1]:57032 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1igto6-0007jA-7J for patchwork-qemu-devel@patchwork.kernel.org; Mon, 16 Dec 2019 12:05:18 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:57386) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1igtFe-0005uG-VM for qemu-devel@nongnu.org; Mon, 16 Dec 2019 11:29:44 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1igtFd-0000ND-Lt for qemu-devel@nongnu.org; Mon, 16 Dec 2019 11:29:42 -0500 Received: from mail-wr1-x444.google.com ([2a00:1450:4864:20::444]:35186) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1igtFd-0000KB-BO for qemu-devel@nongnu.org; Mon, 16 Dec 2019 11:29:41 -0500 Received: by mail-wr1-x444.google.com with SMTP id g17so8055345wro.2 for ; Mon, 16 Dec 2019 08:29:41 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:subject:date:message-id:in-reply-to:references; bh=9NSUuNQ9Jf+FzPsRmj7s9FDau0CX5jauhzpAS1A8igc=; b=YWBDEQe6D1eKZ9PcOGWcCkECUNXngyWNgZyJNhAyFKOSLQsudtuQnoU5YBxOR3v3P+ aRqmtfVTGj12j3OyRbSPA/N6pFvzD+O5CTpQKwwZua0J57nAky/aJYLPCKUtVC23NxHZ MZUVnApZYjkpmsfLywDg7jTog/mu3+6raktWv9oNm6PkbOXRahyhm4y93aqUj9Qzr4Q2 kP3FJJYUs4nVSrckEqMawc5yh3x+C1DcoimLSTCnXWXdFpGXzWRumZQkoHr9FOP0eFfd vFnEfnI2QYT24DKt8/BivCJceQ3r7RWi5YCe6dOillj1e5QewMfpmC6fAipIIldH4bqx kxSg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:subject:date:message-id :in-reply-to:references; bh=9NSUuNQ9Jf+FzPsRmj7s9FDau0CX5jauhzpAS1A8igc=; b=EXlKNtVdRQMcKKHXoc9qHaCDIX7PKHpqZYvWBymi11mmaKXTmQpSVKS2Rhi2jt/5qZ gHLWOIrm9AO16L86Vlik+YtNRlAFPfN4EntCg5oaYGPsvQWyJ+WCkcfOf6mP6W8ICHu9 OrXcQ+9Nh3mR+aAWeHcsqKroFvlKEA/OJ8cVX0VnmSZ9mi9ldJSUs4yCJ4YDpDh4URuf uqHV2AHTrkjlEfoozp3wcuawfRt+rYjDethQxqZCsGpKRQGa+J/S8joVOu7XvfI0CWo8 Am8X8yE3+XHaiquYtOsVWs9UKckDmdmuAXbo+MrWYU8dh97GrvB/6WIaUrjDC+YQ3TRM yHMg== X-Gm-Message-State: APjAAAXOikMcxdFNCDBT5skZW8IxOoAPJNUL4RG+zonf5dcuPtMSaOdU 5GmohmqMqWihcT8HHiNIT/8bK10C X-Google-Smtp-Source: APXvYqw+R9I8WJRF4Mg35XRkh2EHHVCyrthR7Lb75RfJ9J0jH8UZ3Akjza51/mN3N6lwL1KJalUuNQ== X-Received: by 2002:adf:fe4d:: with SMTP id m13mr28683761wrs.179.1576513780139; Mon, 16 Dec 2019 08:29:40 -0800 (PST) Received: from 640k.lan ([93.56.166.5]) by smtp.gmail.com with ESMTPSA id q68sm19962334wme.14.2019.12.16.08.29.39 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 16 Dec 2019 08:29:39 -0800 (PST) From: Paolo Bonzini To: qemu-devel@nongnu.org Subject: [PULL 52/62] pc: stubify x86 iommu Date: Mon, 16 Dec 2019 17:28:36 +0100 Message-Id: <1576513726-53700-53-git-send-email-pbonzini@redhat.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1576513726-53700-1-git-send-email-pbonzini@redhat.com> References: <1576513726-53700-1-git-send-email-pbonzini@redhat.com> X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2a00:1450:4864:20::444 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: , Errors-To: qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Sender: "Qemu-devel" Allow building microvm without x86-iommu.c. Signed-off-by: Paolo Bonzini --- hw/i386/Kconfig | 6 ++++++ hw/i386/Makefile.objs | 3 ++- hw/i386/x86-iommu-stub.c | 34 ++++++++++++++++++++++++++++++++++ 3 files changed, 42 insertions(+), 1 deletion(-) create mode 100644 hw/i386/x86-iommu-stub.c diff --git a/hw/i386/Kconfig b/hw/i386/Kconfig index 5a49434..91cf584 100644 --- a/hw/i386/Kconfig +++ b/hw/i386/Kconfig @@ -103,11 +103,17 @@ config MICROVM select MC146818RTC select VIRTIO_MMIO +config X86_IOMMU + bool + depends on PC + config VTD bool + select X86_IOMMU config AMD_IOMMU bool + select X86_IOMMU config VMPORT bool diff --git a/hw/i386/Makefile.objs b/hw/i386/Makefile.objs index 01ae202..1236c3b 100644 --- a/hw/i386/Makefile.objs +++ b/hw/i386/Makefile.objs @@ -6,7 +6,8 @@ obj-$(CONFIG_I440FX) += pc_piix.o obj-$(CONFIG_Q35) += pc_q35.o obj-$(CONFIG_MICROVM) += microvm.o obj-y += fw_cfg.o -obj-y += x86-iommu.o +obj-$(CONFIG_X86_IOMMU) += x86-iommu.o +obj-$(call lnot,$(CONFIG_X86_IOMMU)) += x86-iommu-stub.o obj-$(CONFIG_VTD) += intel_iommu.o obj-$(CONFIG_AMD_IOMMU) += amd_iommu.o obj-$(CONFIG_XEN) += ../xenpv/ xen/ diff --git a/hw/i386/x86-iommu-stub.c b/hw/i386/x86-iommu-stub.c new file mode 100644 index 0000000..03576cd --- /dev/null +++ b/hw/i386/x86-iommu-stub.c @@ -0,0 +1,34 @@ +/* + * Stubs for X86 IOMMU emulation + * + * Copyright (C) 2019 Red Hat, Inc. + * + * Author: Paolo Bonzini + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + + * You should have received a copy of the GNU General Public License along + * with this program; if not, see . + */ + +#include "qemu/osdep.h" +#include "hw/i386/x86-iommu.h" + +void x86_iommu_iec_register_notifier(X86IOMMUState *iommu, + iec_notify_fn fn, void *data) +{ +} + +X86IOMMUState *x86_iommu_get_default(void) +{ + return NULL; +} + From patchwork Mon Dec 16 16:28:37 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Paolo Bonzini X-Patchwork-Id: 11294743 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 97735930 for ; Mon, 16 Dec 2019 17:07:04 +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 6DD90206D3 for ; Mon, 16 Dec 2019 17:07:04 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="bMMg06uy" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 6DD90206D3 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=redhat.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Received: from localhost ([::1]:57062 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1igtpm-0001xy-Vq for patchwork-qemu-devel@patchwork.kernel.org; Mon, 16 Dec 2019 12:07:03 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:57428) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1igtFh-0005vs-A7 for qemu-devel@nongnu.org; Mon, 16 Dec 2019 11:29:46 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1igtFe-0000Rz-TA for qemu-devel@nongnu.org; Mon, 16 Dec 2019 11:29:44 -0500 Received: from mail-wr1-x433.google.com ([2a00:1450:4864:20::433]:45297) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1igtFe-0000Mt-6F for qemu-devel@nongnu.org; Mon, 16 Dec 2019 11:29:42 -0500 Received: by mail-wr1-x433.google.com with SMTP id j42so3847797wrj.12 for ; Mon, 16 Dec 2019 08:29:42 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=veJBdI4srUvxlLCq05JT1ehp6Oxq8JyfQY2kT56bPsQ=; b=bMMg06uyW3LuRAI146MhoL9H+C8XiC+euugDop+ncbB11X9BHb1R+xU8jXCigLaI1v WdhiQIQw+rr5PHQVntxOAiCzb/uCoZLiAe9qWIqXWQEioHn8TfEhxElvGkCy4uwWHxKq D9GF1N2mm508AIJhfc4QF6slV52xcCReg89ca2ZkNbK1nmwS1O8bnwgSYQLXi/l57d8R tIAhoggvRjYQNTrcK8fH6th08Ba2igHjUlIQqG4i3EIjmdiF/ucfjhy/2QXsXpG3QZ1/ V2hvelEHJNJ/2CVC0oRr0uLNm2jJNugoeIYT74kWLRjISkxXo4J8VUm5AO7Ipd23RPen otBg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references:mime-version:content-transfer-encoding; bh=veJBdI4srUvxlLCq05JT1ehp6Oxq8JyfQY2kT56bPsQ=; b=MdbfJLGxrsOZe2OudbjNsv8CB3sasMLCntOFsehZGfpj1Zn05STESJ67Q+QkxOwjxx Q72c8RTPYJRadaGqlhs+ZIyLzhtuREUo5NFYd+fg2z5T7ylEsvtFMqmfoI+Vy97b3L0m GP4zycTtoge4IFwEPOu763U3ll0fyyjq3TKlSow7GOYprYvH3XyuXkj9PpAWT4C0uGnq Zta8LFuAzVpQfilLHAVlSnicSTAgFpyWaY9p71cMQTVNL8k5ELSZ5nWe4q4OePxRFfSe ziGvBMS5aFnx0l1N3Ii1ExCiADfs6CFlujtwoExNAwBqKzwrMWyg8JOS8BIghWlAeJv3 IP2Q== X-Gm-Message-State: APjAAAUyMMLckJBAwMAz8E+FhRAatW2JHINebp4829YikCffnsvGFEhs 2R41CGCKV2KqQjNlt61lBGg57Dz4 X-Google-Smtp-Source: APXvYqyEgu+KwJ89tu4OTeXILL5Wsew3IhJWoswPQjxqaxqaVsmfr8gacdDlzXV/Oc35aQ+QOU+QTQ== X-Received: by 2002:a05:6000:cb:: with SMTP id q11mr30288332wrx.14.1576513781046; Mon, 16 Dec 2019 08:29:41 -0800 (PST) Received: from 640k.lan ([93.56.166.5]) by smtp.gmail.com with ESMTPSA id q68sm19962334wme.14.2019.12.16.08.29.40 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 16 Dec 2019 08:29:40 -0800 (PST) From: Paolo Bonzini To: qemu-devel@nongnu.org Subject: [PULL 53/62] hw/i386: De-duplicate gsi_handler() to remove kvm_pc_gsi_handler() Date: Mon, 16 Dec 2019 17:28:37 +0100 Message-Id: <1576513726-53700-54-git-send-email-pbonzini@redhat.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1576513726-53700-1-git-send-email-pbonzini@redhat.com> References: <1576513726-53700-1-git-send-email-pbonzini@redhat.com> MIME-Version: 1.0 X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2a00:1450:4864:20::433 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: =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= Errors-To: qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Sender: "Qemu-devel" From: Philippe Mathieu-Daudé Both gsi_handler() and kvm_pc_gsi_handler() have the same content, except one comment. Move the comment, and de-duplicate the code. Signed-off-by: Philippe Mathieu-Daudé Signed-off-by: Paolo Bonzini --- hw/i386/kvm/ioapic.c | 12 ------------ hw/i386/pc.c | 4 +--- hw/i386/x86.c | 1 + include/sysemu/kvm.h | 1 - 4 files changed, 2 insertions(+), 16 deletions(-) diff --git a/hw/i386/kvm/ioapic.c b/hw/i386/kvm/ioapic.c index 8703f19..973e2b2 100644 --- a/hw/i386/kvm/ioapic.c +++ b/hw/i386/kvm/ioapic.c @@ -48,18 +48,6 @@ void kvm_pc_setup_irq_routing(bool pci_enabled) } } -void kvm_pc_gsi_handler(void *opaque, int n, int level) -{ - GSIState *s = opaque; - - if (n < ISA_NUM_IRQS) { - /* Kernel will forward to both PIC and IOAPIC */ - qemu_set_irq(s->i8259_irq[n], level); - } else { - qemu_set_irq(s->ioapic_irq[n], level); - } -} - typedef struct KVMIOAPICState KVMIOAPICState; struct KVMIOAPICState { diff --git a/hw/i386/pc.c b/hw/i386/pc.c index f571fe7..d706b98 100644 --- a/hw/i386/pc.c +++ b/hw/i386/pc.c @@ -341,10 +341,8 @@ GSIState *pc_gsi_create(qemu_irq **irqs, bool pci_enabled) s = g_new0(GSIState, 1); if (kvm_ioapic_in_kernel()) { kvm_pc_setup_irq_routing(pci_enabled); - *irqs = qemu_allocate_irqs(kvm_pc_gsi_handler, s, GSI_NUM_PINS); - } else { - *irqs = qemu_allocate_irqs(gsi_handler, s, GSI_NUM_PINS); } + *irqs = qemu_allocate_irqs(gsi_handler, s, GSI_NUM_PINS); return s; } diff --git a/hw/i386/x86.c b/hw/i386/x86.c index 80e33be..d18a3ef 100644 --- a/hw/i386/x86.c +++ b/hw/i386/x86.c @@ -295,6 +295,7 @@ void gsi_handler(void *opaque, int n, int level) trace_x86_gsi_interrupt(n, level); if (n < ISA_NUM_IRQS) { + /* Under KVM, Kernel will forward to both PIC and IOAPIC */ qemu_set_irq(s->i8259_irq[n], level); } qemu_set_irq(s->ioapic_irq[n], level); diff --git a/include/sysemu/kvm.h b/include/sysemu/kvm.h index aaf2a50..141342d 100644 --- a/include/sysemu/kvm.h +++ b/include/sysemu/kvm.h @@ -515,7 +515,6 @@ int kvm_irqchip_add_irqfd_notifier(KVMState *s, EventNotifier *n, int kvm_irqchip_remove_irqfd_notifier(KVMState *s, EventNotifier *n, qemu_irq irq); void kvm_irqchip_set_qemuirq_gsi(KVMState *s, qemu_irq irq, int gsi); -void kvm_pc_gsi_handler(void *opaque, int n, int level); void kvm_pc_setup_irq_routing(bool pci_enabled); void kvm_init_irq_routing(KVMState *s); From patchwork Mon Dec 16 16:28:38 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Paolo Bonzini X-Patchwork-Id: 11294845 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id EAFBB138C for ; Mon, 16 Dec 2019 17:19:59 +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 C1410206A5 for ; Mon, 16 Dec 2019 17:19:59 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="FP5AQxxP" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org C1410206A5 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=redhat.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Received: from localhost ([::1]:57320 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1igu2I-00023b-1A for patchwork-qemu-devel@patchwork.kernel.org; Mon, 16 Dec 2019 12:19:58 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:57431) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1igtFh-0005vu-8c for qemu-devel@nongnu.org; Mon, 16 Dec 2019 11:29:46 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1igtFf-0000Tb-ET for qemu-devel@nongnu.org; Mon, 16 Dec 2019 11:29:44 -0500 Received: from mail-wr1-x442.google.com ([2a00:1450:4864:20::442]:41589) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1igtFf-0000RQ-74 for qemu-devel@nongnu.org; Mon, 16 Dec 2019 11:29:43 -0500 Received: by mail-wr1-x442.google.com with SMTP id c9so8039739wrw.8 for ; Mon, 16 Dec 2019 08:29:43 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=3xRW0dWjMhO1EPoHD9jweteGOAO0mpniEjjgSK1VhoQ=; b=FP5AQxxPnltuwrDP8B80N0eYvqBSpLEyAYrlDRCwYaPUosIIT5fLPCxrgSq+dhNfC9 j6H3LkE3QgUoW+DDsa5f9y+3GqdgeSW8WgqwTygRRzOfZMEjUe7LATngT8frhKFnFDG9 6vBFUpxyCIddsX6KkU+d/RjeiEB1Dr1c+w4ekUvwLKUa/zT643b0QH23ol8qpN5Vijr6 NzCjxzSIF49kapOrsyKCfW04RtuumDWoK7jmDmJPTsUUxTNvvoR3iyByHHxAIRsNQsu6 c06z1DhvaVdH7bA0PNzl1cPLW1QbV4/xO74jGXld24ooSCobCNL+aCBfAaf067mlVhOb LYCg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references:mime-version:content-transfer-encoding; bh=3xRW0dWjMhO1EPoHD9jweteGOAO0mpniEjjgSK1VhoQ=; b=Czph/twI8IBbY6W4Ob5G/shu3DbCqnDFsEmHui2BlU8+0tjTNf0tJG5Y4W+ltI6A4B DWbpVpmVtSX3vu+09OfXaoErc25qglA5GWfrSvXZZ193+KqnZ6d46DNSSsqQFR7cswUc QqcFy/FzE9mOKXw1oKsX/Bw47tdM7yxnLaobkxPkzaEPDMcNe8HpJQeAN2vpetaeXJos eEJTljV1TMzeiUCY7E4T/kM+0gBUHxTa59aqfAtMzWXT6P+xUfNgCa5cNNJhWyg5CH4K /9SLLi2sYfiIeFtnnpoiWgx+dQ7inrTv/weUujIerY2sBYUEB5e4l7VlSroVKRsFy74r 0OxA== X-Gm-Message-State: APjAAAWxR2gPLjNWDkDEH+vzLXBamKp0G8ZoNk4rJCSY9RBcTh2CvJAY dlv2CdwHhJn8wVYHNkOAu4CdIO3g X-Google-Smtp-Source: APXvYqx6+Wv6DRVFBzPSv8AHlb6daZ3L0tikByx+RLWxRhWxr395WKrY4OBLKF+q6xK6+Bx1MsIusg== X-Received: by 2002:a5d:68c5:: with SMTP id p5mr31916905wrw.193.1576513782101; Mon, 16 Dec 2019 08:29:42 -0800 (PST) Received: from 640k.lan ([93.56.166.5]) by smtp.gmail.com with ESMTPSA id q68sm19962334wme.14.2019.12.16.08.29.41 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 16 Dec 2019 08:29:41 -0800 (PST) From: Paolo Bonzini To: qemu-devel@nongnu.org Subject: [PULL 54/62] hw/i386: Simplify ioapic_init_gsi() Date: Mon, 16 Dec 2019 17:28:38 +0100 Message-Id: <1576513726-53700-55-git-send-email-pbonzini@redhat.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1576513726-53700-1-git-send-email-pbonzini@redhat.com> References: <1576513726-53700-1-git-send-email-pbonzini@redhat.com> MIME-Version: 1.0 X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2a00:1450:4864:20::442 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: =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= Errors-To: qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Sender: "Qemu-devel" From: Philippe Mathieu-Daudé All callers of ioapic_init_gsi() provide a parent. We want new uses to follow the same good practice and provide the parent name, so do not make this optional: assert the parent name is provided, and simplify the code. Signed-off-by: Philippe Mathieu-Daudé Signed-off-by: Paolo Bonzini --- hw/i386/x86.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/hw/i386/x86.c b/hw/i386/x86.c index d18a3ef..d8bb5c2 100644 --- a/hw/i386/x86.c +++ b/hw/i386/x86.c @@ -307,15 +307,14 @@ void ioapic_init_gsi(GSIState *gsi_state, const char *parent_name) SysBusDevice *d; unsigned int i; + assert(parent_name); if (kvm_ioapic_in_kernel()) { dev = qdev_create(NULL, TYPE_KVM_IOAPIC); } else { dev = qdev_create(NULL, TYPE_IOAPIC); } - if (parent_name) { - object_property_add_child(object_resolve_path(parent_name, NULL), - "ioapic", OBJECT(dev), NULL); - } + object_property_add_child(object_resolve_path(parent_name, NULL), + "ioapic", OBJECT(dev), NULL); qdev_init_nofail(dev); d = SYS_BUS_DEVICE(dev); sysbus_mmio_map(d, 0, IO_APIC_DEFAULT_ADDRESS); From patchwork Mon Dec 16 16:28:39 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Paolo Bonzini X-Patchwork-Id: 11294847 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 41A3F930 for ; Mon, 16 Dec 2019 17:22:49 +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 127F2206E0 for ; Mon, 16 Dec 2019 17:22:49 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="D91lpF6x" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 127F2206E0 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=redhat.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Received: from localhost ([::1]:57378 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1igu51-00063L-KP for patchwork-qemu-devel@patchwork.kernel.org; Mon, 16 Dec 2019 12:22:47 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:57455) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1igtFj-0005xe-03 for qemu-devel@nongnu.org; Mon, 16 Dec 2019 11:29:48 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1igtFh-0000Z7-8L for qemu-devel@nongnu.org; Mon, 16 Dec 2019 11:29:46 -0500 Received: from mail-wm1-x334.google.com ([2a00:1450:4864:20::334]:53209) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1igtFg-0000U8-Uw for qemu-devel@nongnu.org; Mon, 16 Dec 2019 11:29:45 -0500 Received: by mail-wm1-x334.google.com with SMTP id p9so7444714wmc.2 for ; Mon, 16 Dec 2019 08:29:44 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=uHPnz/CuhNDw7Q8yQgUAYEh1mPj3Ixi1rl2oxYokSDY=; b=D91lpF6xCIs2UwubdoVbaMhMcJUquR5iq9fKhXDSIxdqXz+j8CmGQyCAd786XV8Xiu lqfHbzyWrthj1omOEfxPQBPpP8b89JQHWqm/GMWnpNdSL9bavjEP5uW3+42p3tN9sqWD tgmmg9eR15imc7DW489Ko6+GJrY5SSp5R3kjgZD+GHimT5PfewcUYMR5m39Lam5XrsCH 8jgTeNWJ9GPE/g7+5x454X5Lsq1UuBKYVVJi6iSFNVqtj1TmlBI9uHrGnwe08c5TqEBI Tyg44tVceGWIh6JPicEb6BaAwfOtd7sDWYEMvDjkv8PKXWS+tDJC+ddqbko7Z/RT1dJU t3Xw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:subject:date:message-id :in-reply-to:references:mime-version:content-transfer-encoding; bh=uHPnz/CuhNDw7Q8yQgUAYEh1mPj3Ixi1rl2oxYokSDY=; b=uA+IJfD7bxDUI2XYnYraRZLTACN8MRRCZ2CjctIOPocIwIEvFZMuDu//HMo2kthvAr hpDJKnK4tFbiSDalUbs6CsEaLrM+sZoX68obegcdkklvdGoL8UvvArn4itFzC2x3D090 yC98MZciyMWxZhssHv8M6mBwUXVnw7zKeFOGodRp2UqJgRLFkGPeX7mXS4Ag6QksBxcV d5xQEWJXXG2Tg5G9SttESTd2TUTzpU9cDJT6pD5v6PEGHkf0n2puW2n2oBIeaD+wVQgg ArLATccRs4qxwcdSdC5QzUDLOUcaLR5WdYpqyQYvnMGE4VyVj0fbUo3U1ePfqJpSza9V O5kA== X-Gm-Message-State: APjAAAXpyHmoy3Wk2pzJf7qMXwFDtp3GrQ39c0Buhws8CuN6YL9Zy4LW cuM7CqS6VyZ0GPrPhPRFagwHDJ8l X-Google-Smtp-Source: APXvYqxlNkhMRGRSG5eg4Xb4h3Pazx89IawPB0tefPb4zoIoepgnLNIzxI8LbZztjcwhCH5fbUwkfQ== X-Received: by 2002:a7b:cc82:: with SMTP id p2mr32501204wma.159.1576513782919; Mon, 16 Dec 2019 08:29:42 -0800 (PST) Received: from 640k.lan ([93.56.166.5]) by smtp.gmail.com with ESMTPSA id q68sm19962334wme.14.2019.12.16.08.29.42 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 16 Dec 2019 08:29:42 -0800 (PST) From: Paolo Bonzini To: qemu-devel@nongnu.org Subject: [PULL 55/62] hw/isa/isa-bus: cleanup irq functions Date: Mon, 16 Dec 2019 17:28:39 +0100 Message-Id: <1576513726-53700-56-git-send-email-pbonzini@redhat.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1576513726-53700-1-git-send-email-pbonzini@redhat.com> References: <1576513726-53700-1-git-send-email-pbonzini@redhat.com> MIME-Version: 1.0 X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2a00:1450:4864:20::334 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: , Errors-To: qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Sender: "Qemu-devel" The irq number is unsigned; we reject negative values. But -1 is used for the isairq array, which is declared unsigned! And since we have a definition for the number of ISA IRQs, use it. Based on a patch by Philippe Mathieu-Daudé. Signed-off-by: Paolo Bonzini --- hw/isa/isa-bus.c | 11 +++++++---- include/hw/isa/isa.h | 8 ++++---- 2 files changed, 11 insertions(+), 8 deletions(-) diff --git a/hw/isa/isa-bus.c b/hw/isa/isa-bus.c index 3888006..798dd91 100644 --- a/hw/isa/isa-bus.c +++ b/hw/isa/isa-bus.c @@ -82,24 +82,27 @@ void isa_bus_irqs(ISABus *bus, qemu_irq *irqs) * This function is only for special cases such as the 'ferr', and * temporary use for normal devices until they are converted to qdev. */ -qemu_irq isa_get_irq(ISADevice *dev, int isairq) +qemu_irq isa_get_irq(ISADevice *dev, unsigned isairq) { assert(!dev || ISA_BUS(qdev_get_parent_bus(DEVICE(dev))) == isabus); - if (isairq < 0 || isairq > 15) { + if (isairq >= ISA_NUM_IRQS) { hw_error("isa irq %d invalid", isairq); } return isabus->irqs[isairq]; } -void isa_init_irq(ISADevice *dev, qemu_irq *p, int isairq) +void isa_init_irq(ISADevice *dev, qemu_irq *p, unsigned isairq) { assert(dev->nirqs < ARRAY_SIZE(dev->isairq)); + if (isairq >= ISA_NUM_IRQS) { + hw_error("isa irq %d invalid", isairq); + } dev->isairq[dev->nirqs] = isairq; *p = isa_get_irq(dev, isairq); dev->nirqs++; } -void isa_connect_gpio_out(ISADevice *isadev, int gpioirq, int isairq) +void isa_connect_gpio_out(ISADevice *isadev, int gpioirq, unsigned isairq) { qemu_irq irq; isa_init_irq(isadev, &irq, isairq); diff --git a/include/hw/isa/isa.h b/include/hw/isa/isa.h index 79f703f..e9ac1f1 100644 --- a/include/hw/isa/isa.h +++ b/include/hw/isa/isa.h @@ -88,7 +88,7 @@ struct ISADevice { DeviceState parent_obj; /*< public >*/ - uint32_t isairq[2]; + int8_t isairq[2]; /* -1 = unassigned */ int nirqs; int ioport_id; }; @@ -96,9 +96,9 @@ struct ISADevice { ISABus *isa_bus_new(DeviceState *dev, MemoryRegion *address_space, MemoryRegion *address_space_io, Error **errp); void isa_bus_irqs(ISABus *bus, qemu_irq *irqs); -qemu_irq isa_get_irq(ISADevice *dev, int isairq); -void isa_init_irq(ISADevice *dev, qemu_irq *p, int isairq); -void isa_connect_gpio_out(ISADevice *isadev, int gpioirq, int isairq); +qemu_irq isa_get_irq(ISADevice *dev, unsigned isairq); +void isa_init_irq(ISADevice *dev, qemu_irq *p, unsigned isairq); +void isa_connect_gpio_out(ISADevice *isadev, int gpioirq, unsigned isairq); void isa_bus_dma(ISABus *bus, IsaDma *dma8, IsaDma *dma16); IsaDma *isa_get_dma(ISABus *bus, int nchan); MemoryRegion *isa_address_space(ISADevice *dev); From patchwork Mon Dec 16 16:28:40 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Paolo Bonzini X-Patchwork-Id: 11294745 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 893261580 for ; Mon, 16 Dec 2019 17:07:06 +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 5F3D6206D7 for ; Mon, 16 Dec 2019 17:07:06 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="d6CPYHGh" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 5F3D6206D7 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=redhat.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Received: from localhost ([::1]:57064 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1igtpo-00021l-SO for patchwork-qemu-devel@patchwork.kernel.org; Mon, 16 Dec 2019 12:07:04 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:57473) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1igtFj-0005yF-Lk for qemu-devel@nongnu.org; Mon, 16 Dec 2019 11:29:48 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1igtFi-0000bL-MX for qemu-devel@nongnu.org; Mon, 16 Dec 2019 11:29:47 -0500 Received: from mail-wr1-x444.google.com ([2a00:1450:4864:20::444]:37668) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1igtFh-0000W9-6B for qemu-devel@nongnu.org; Mon, 16 Dec 2019 11:29:45 -0500 Received: by mail-wr1-x444.google.com with SMTP id w15so8066676wru.4 for ; Mon, 16 Dec 2019 08:29:44 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=D41f9AHtUnFEFhVN7otZyXIWZtbVHADUeBM3ruO23wc=; b=d6CPYHGhF+6RiAhXrHnw1lnXnK6hCY7QgwUydGGVpawmLCidVeYcd3i4yehLdu5LUv Lw2ZuR+7W9kWlBnfsk1iZ3eVdFfuoByPXS/LtMWc3dRFJ9RayF7zIbZV52OCBByYWpcI XR+3ysRqm0W7rIzqY/dxovdoC2HQnQkjpeASXtgM97AIPhqf9gs5Nx6FkNHkS8MJtKD7 cntg165gqLZp53C9flcgB+LT+JXyJvysO8M6i0zHh2HtvtCgxTG1kuvj3Ufc/BQPpTc1 u3Pa81jSa7VFh5uEKH/jS1ORdsdtnv11q4ZtwaK2VBP201y/r9hcJ4qLNJN22ImO18YX glmA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references:mime-version:content-transfer-encoding; bh=D41f9AHtUnFEFhVN7otZyXIWZtbVHADUeBM3ruO23wc=; b=GhHf+WnEhbXXS2k2v/Env9c+2kTvN4rCJ0Z+uZoPlnK5LT1K60ovU32aa7TwWcdZPe S9daguF1bOh4nDuW9T77QyVkLnfbPTkmc51fIRHK0/wlOgUfyfPdHQ+jvbrBC8xnYLq4 8tWoHqc9rqY/jzUG3oPDbkMY8d2spC0Y0IJqk1JTZ2sNfhd8XZ6fDKqxgnJ+Oxs7D/x7 oRg9Qc3DrjJIZTJttaGZ0bfT/ZdYwbkQ1R6tBZL5hIZ+K1BWcwZI4SX5zHqyhYfVA7bR dLp/AMH/VKtUo5FbRbLMVKctg0mquYxPmFHRbyQ7glLxi3muLAvaJuTrAYjU2/KEKEa4 P0gQ== X-Gm-Message-State: APjAAAXsdUN8h04YqYj+zDZ7GARDQz/TenQgd3YCP6usYlzxqkBGfAhg 1zkUIPE0McyerjJiVhDaqOPnS9L2 X-Google-Smtp-Source: APXvYqyyBGXRtw8sJf+T/A8U4cJfI0zB+bLW4Zk5Ca6sRAs2eMtS2F2bUXfo120Dc08yXN4YxeZHVg== X-Received: by 2002:a5d:68cf:: with SMTP id p15mr31613088wrw.31.1576513783877; Mon, 16 Dec 2019 08:29:43 -0800 (PST) Received: from 640k.lan ([93.56.166.5]) by smtp.gmail.com with ESMTPSA id q68sm19962334wme.14.2019.12.16.08.29.42 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 16 Dec 2019 08:29:43 -0800 (PST) From: Paolo Bonzini To: qemu-devel@nongnu.org Subject: [PULL 56/62] hw/i386/pc: Use TYPE_PORT92 instead of hardcoded string Date: Mon, 16 Dec 2019 17:28:40 +0100 Message-Id: <1576513726-53700-57-git-send-email-pbonzini@redhat.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1576513726-53700-1-git-send-email-pbonzini@redhat.com> References: <1576513726-53700-1-git-send-email-pbonzini@redhat.com> MIME-Version: 1.0 X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2a00:1450:4864:20::444 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: =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= Errors-To: qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Sender: "Qemu-devel" From: Philippe Mathieu-Daudé By using the TYPE_* definitions for devices, we can: - quickly find where devices are used with 'git-grep' - easily rename a device (one-line change). Signed-off-by: Philippe Mathieu-Daudé Signed-off-by: Paolo Bonzini --- hw/i386/pc.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hw/i386/pc.c b/hw/i386/pc.c index d706b98..8752840 100644 --- a/hw/i386/pc.c +++ b/hw/i386/pc.c @@ -1275,7 +1275,7 @@ static void pc_superio_init(ISABus *isa_bus, bool create_fdctrl, bool no_vmport) qdev_prop_set_ptr(dev, "ps2_mouse", i8042); qdev_init_nofail(dev); } - port92 = isa_create_simple(isa_bus, "port92"); + port92 = isa_create_simple(isa_bus, TYPE_PORT92); a20_line = qemu_allocate_irqs(handle_a20_line_change, first_cpu, 2); i8042_setup_a20_line(i8042, a20_line[0]); From patchwork Mon Dec 16 16:28:41 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Paolo Bonzini X-Patchwork-Id: 11294849 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id B51E4930 for ; Mon, 16 Dec 2019 17:25:15 +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 8ACE0206E0 for ; Mon, 16 Dec 2019 17:25:15 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="n4Sxo5E0" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 8ACE0206E0 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=redhat.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Received: from localhost ([::1]:57412 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1igu7O-0001EF-7a for patchwork-qemu-devel@patchwork.kernel.org; Mon, 16 Dec 2019 12:25:14 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:57498) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1igtFk-0005zY-Oe for qemu-devel@nongnu.org; Mon, 16 Dec 2019 11:29:49 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1igtFj-0000dj-EO for qemu-devel@nongnu.org; Mon, 16 Dec 2019 11:29:48 -0500 Received: from mail-wr1-x430.google.com ([2a00:1450:4864:20::430]:35078) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1igtFi-0000ZF-T2 for qemu-devel@nongnu.org; Mon, 16 Dec 2019 11:29:47 -0500 Received: by mail-wr1-x430.google.com with SMTP id g17so8055670wro.2 for ; Mon, 16 Dec 2019 08:29:45 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=r5/ahDGycmBC2HKaQApweAbQRGj/Zbq759doBFgj9aU=; b=n4Sxo5E0kIJMUcgArRNPV5sb3ghi+VsNaFvnC0ZcUkhLX9My0VKc4Nonf0Pyjjv7no T41Rb9T8xWYmwSq5DiRwrDOD7nX/lNAtp9HVIMSYqzxxYjHDK/vjCZ1LgYsjOeyRTTDI uM8OEOeBl6c9rmwNsfEhDdmFOTCzdurAckDrP4rgRmyrbkvroBel3FXxs9DO/D+gUevy bHlwqLyri1nGk87ZstSedRH3/KhFyAPtr2Tg6Cvb8MOA5xauI73AIu9zi127q+IZ6GU2 FrXNYBV+J+s+BEUUEYI2o8sO2MFuc1ZbUu2QuzkuqXIrmzucY3vAcXDpMNQ8Vxe3h0U+ cvfg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references:mime-version:content-transfer-encoding; bh=r5/ahDGycmBC2HKaQApweAbQRGj/Zbq759doBFgj9aU=; b=QEOO4zKZCFQ6aDfzHOchgUBtqbQQrpYYMTpn441RchKHJmp+8gUszyLGvvVytLyD6+ mbL5ujg/i9lSZFvdlDQtF35E/JnsDbcNL9vbswH5lhQJYq5Bn5ffVKu5p6vnBlbkFPpG IXcpRaxrGVQbMAjedp4WODWcA/OxxB8apkMLBtJQdIHcxjEjwRlWkd0QsTdzj12II0+a 8bRkPDkaGQ8W/oCQR7F8o2JStble8sOibWchOllwlEawcoYt+CWYDtvVL/n+wiWwYW2K Ev4b0Vl91/vSz73a/aV2o+K8pimX/04xS7sUk0NyHBrjobhmQ1o0XwLQxjS6kzIur6rg Q0Hw== X-Gm-Message-State: APjAAAW6E4C8QsxTukX/YicJyAqHOupS2y/wQPNwZmDMocQJ9Nk79km9 1tLFT+UEdBNscKA4fm5PMIYJiAZS X-Google-Smtp-Source: APXvYqxsdF0lPan4MpsQ8zFWwYIt0B9hgubvbDVO2bOfxDxO73LGC2M/8NkBSQCdAlNgO09FYS9Pfg== X-Received: by 2002:a5d:4044:: with SMTP id w4mr31119255wrp.322.1576513784651; Mon, 16 Dec 2019 08:29:44 -0800 (PST) Received: from 640k.lan ([93.56.166.5]) by smtp.gmail.com with ESMTPSA id q68sm19962334wme.14.2019.12.16.08.29.43 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 16 Dec 2019 08:29:44 -0800 (PST) From: Paolo Bonzini To: qemu-devel@nongnu.org Subject: [PULL 57/62] hw/i386/pc: Inline port92_init() Date: Mon, 16 Dec 2019 17:28:41 +0100 Message-Id: <1576513726-53700-58-git-send-email-pbonzini@redhat.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1576513726-53700-1-git-send-email-pbonzini@redhat.com> References: <1576513726-53700-1-git-send-email-pbonzini@redhat.com> MIME-Version: 1.0 X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2a00:1450:4864:20::430 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: =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= Errors-To: qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Sender: "Qemu-devel" From: Philippe Mathieu-Daudé This one-line function is not very helpful, so remove it by inlining the call to qdev_connect_gpio_out_named(). Signed-off-by: Philippe Mathieu-Daudé Signed-off-by: Paolo Bonzini --- hw/i386/pc.c | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) diff --git a/hw/i386/pc.c b/hw/i386/pc.c index 8752840..963eff4 100644 --- a/hw/i386/pc.c +++ b/hw/i386/pc.c @@ -707,11 +707,6 @@ static uint64_t port92_read(void *opaque, hwaddr addr, return ret; } -static void port92_init(ISADevice *dev, qemu_irq a20_out) -{ - qdev_connect_gpio_out_named(DEVICE(dev), PORT92_A20_LINE, 0, a20_out); -} - static const VMStateDescription vmstate_port92_isa = { .name = "port92", .version_id = 1, @@ -767,8 +762,8 @@ static void port92_class_initfn(ObjectClass *klass, void *data) dc->vmsd = &vmstate_port92_isa; /* * Reason: unlike ordinary ISA devices, this one needs additional - * wiring: its A20 output line needs to be wired up by - * port92_init(). + * wiring: its A20 output line needs to be wired up with + * qdev_connect_gpio_out_named(). */ dc->user_creatable = false; } @@ -1279,7 +1274,8 @@ static void pc_superio_init(ISABus *isa_bus, bool create_fdctrl, bool no_vmport) a20_line = qemu_allocate_irqs(handle_a20_line_change, first_cpu, 2); i8042_setup_a20_line(i8042, a20_line[0]); - port92_init(port92, a20_line[1]); + qdev_connect_gpio_out_named(DEVICE(port92), + PORT92_A20_LINE, 0, a20_line[1]); g_free(a20_line); } From patchwork Mon Dec 16 16:28:42 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Paolo Bonzini X-Patchwork-Id: 11294851 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 73B831593 for ; Mon, 16 Dec 2019 17:27:59 +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 46922206E0 for ; Mon, 16 Dec 2019 17:27:59 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="lyUkp5c7" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 46922206E0 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=redhat.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Received: from localhost ([::1]:57565 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1iguA1-0005Bb-UQ for patchwork-qemu-devel@patchwork.kernel.org; Mon, 16 Dec 2019 12:27:57 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:57503) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1igtFl-000604-6N for qemu-devel@nongnu.org; Mon, 16 Dec 2019 11:29:51 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1igtFj-0000e8-GT for qemu-devel@nongnu.org; Mon, 16 Dec 2019 11:29:49 -0500 Received: from mail-wm1-x341.google.com ([2a00:1450:4864:20::341]:39970) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1igtFi-0000aa-UH for qemu-devel@nongnu.org; Mon, 16 Dec 2019 11:29:47 -0500 Received: by mail-wm1-x341.google.com with SMTP id t14so7387450wmi.5 for ; Mon, 16 Dec 2019 08:29:46 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=914j6MirFIAAslC9qwRboSB8yki3fnRLVnUJgjrXmO8=; b=lyUkp5c7Lne393/319qeAyhClO0cMXXmh55uXKCd4CEg25xzI06dOAl9skFL/YC8Ql hy6FInTfIeCRxcwAZ11+hwqJfeRB5e9w7i08GuMCvnquZGdqzQfa8K65WUCzNAvVNxlK otvTeFOTN8DYkGj53FkseZjhvMtsNBAKp1x7Ld9gqGVqmogcId/HmLe6JDk2NYNCQZ1e TSzGU2M7UT07eojbmYgKTqkzK1xLEPbEMHvgdfKDk1IwjV5puj27lzSMx0gI9OOKQobu f1tePfOvFFpRO5yaJkTnE2sAtRkVwWCx4RduvOdYkSMG4j3dXmcFQ92o5Z06xKxzfB9m eVJg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references:mime-version:content-transfer-encoding; bh=914j6MirFIAAslC9qwRboSB8yki3fnRLVnUJgjrXmO8=; b=PDHuf6NOp2FvDQQ6GMWRjYV92k4AVPSMegB865lSItNB5sCparyWUeTmvMZc7ITyyM AecZpGGuJSmbEEddPkmxaL3Ej1922QQeaj6bu2lfvoZ9P1z7iXiHR+xmcXeUnOWS/DQz wNFqpkiyp0PJkNcB8cR/6f1CljdfO7LTEhKVk4EPE4mtnZtSl0caRjFPtlD5X1yG35sw 5BZBdRV2gDU62Wa4c8Padu/52CAXsjU199+TDM/l4HVGPSY3jHBWjPqeWfIiNOmyopQr NyvZJAyoCHAWeRicYUxWXXfe9suodNqjah/kxtqUHkutgMU9hO+ZMfiUega893KxKmxf SUPw== X-Gm-Message-State: APjAAAWBnlcVQUIvq5bsm5uTWQ5y7OCPz6UZ/R8fRSJGeCWFGoxS1xvC DZHmv22ftByIXdlRioYIRmlA0eGx X-Google-Smtp-Source: APXvYqyCcJQuQgveclWALQ/xEVbHYjI3PKM9tS2jzXgxnRnd9WHKkpzQmNXtO/nGzsuNszUkBymDMA== X-Received: by 2002:a1c:3c45:: with SMTP id j66mr12986410wma.2.1576513785675; Mon, 16 Dec 2019 08:29:45 -0800 (PST) Received: from 640k.lan ([93.56.166.5]) by smtp.gmail.com with ESMTPSA id q68sm19962334wme.14.2019.12.16.08.29.44 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 16 Dec 2019 08:29:45 -0800 (PST) From: Paolo Bonzini To: qemu-devel@nongnu.org Subject: [PULL 58/62] hw/i386/pc: Extract the port92 device Date: Mon, 16 Dec 2019 17:28:42 +0100 Message-Id: <1576513726-53700-59-git-send-email-pbonzini@redhat.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1576513726-53700-1-git-send-email-pbonzini@redhat.com> References: <1576513726-53700-1-git-send-email-pbonzini@redhat.com> MIME-Version: 1.0 X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2a00:1450:4864:20::341 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: =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= Errors-To: qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Sender: "Qemu-devel" From: Philippe Mathieu-Daudé This device is only used by the PC machines. The pc.c file is already big enough, with 2255 lines. By removing 113 lines of it, we reduced it by 5%. It is now a bit easier to navigate the file. Signed-off-by: Philippe Mathieu-Daudé Signed-off-by: Paolo Bonzini --- hw/i386/Makefile.objs | 1 + hw/i386/pc.c | 113 -------------------------------------------- hw/i386/port92.c | 126 ++++++++++++++++++++++++++++++++++++++++++++++++++ hw/i386/trace-events | 2 +- include/hw/i386/pc.h | 3 ++ 5 files changed, 131 insertions(+), 114 deletions(-) create mode 100644 hw/i386/port92.c diff --git a/hw/i386/Makefile.objs b/hw/i386/Makefile.objs index 1236c3b..8ce1b26 100644 --- a/hw/i386/Makefile.objs +++ b/hw/i386/Makefile.objs @@ -13,6 +13,7 @@ obj-$(CONFIG_AMD_IOMMU) += amd_iommu.o obj-$(CONFIG_XEN) += ../xenpv/ xen/ obj-$(CONFIG_VMPORT) += vmport.o obj-$(CONFIG_VMMOUSE) += vmmouse.o +obj-$(CONFIG_PC) += port92.o obj-y += kvmvapic.o obj-$(CONFIG_PC) += acpi-build.o diff --git a/hw/i386/pc.c b/hw/i386/pc.c index 963eff4..298ab10 100644 --- a/hw/i386/pc.c +++ b/hw/i386/pc.c @@ -670,119 +670,6 @@ void pc_cmos_init(PCMachineState *pcms, qemu_register_reset(pc_cmos_init_late, &arg); } -#define TYPE_PORT92 "port92" -#define PORT92(obj) OBJECT_CHECK(Port92State, (obj), TYPE_PORT92) - -/* port 92 stuff: could be split off */ -typedef struct Port92State { - ISADevice parent_obj; - - MemoryRegion io; - uint8_t outport; - qemu_irq a20_out; -} Port92State; - -static void port92_write(void *opaque, hwaddr addr, uint64_t val, - unsigned size) -{ - Port92State *s = opaque; - int oldval = s->outport; - - trace_port92_write(val); - s->outport = val; - qemu_set_irq(s->a20_out, (val >> 1) & 1); - if ((val & 1) && !(oldval & 1)) { - qemu_system_reset_request(SHUTDOWN_CAUSE_GUEST_RESET); - } -} - -static uint64_t port92_read(void *opaque, hwaddr addr, - unsigned size) -{ - Port92State *s = opaque; - uint32_t ret; - - ret = s->outport; - trace_port92_read(ret); - return ret; -} - -static const VMStateDescription vmstate_port92_isa = { - .name = "port92", - .version_id = 1, - .minimum_version_id = 1, - .fields = (VMStateField[]) { - VMSTATE_UINT8(outport, Port92State), - VMSTATE_END_OF_LIST() - } -}; - -static void port92_reset(DeviceState *d) -{ - Port92State *s = PORT92(d); - - s->outport &= ~1; -} - -static const MemoryRegionOps port92_ops = { - .read = port92_read, - .write = port92_write, - .impl = { - .min_access_size = 1, - .max_access_size = 1, - }, - .endianness = DEVICE_LITTLE_ENDIAN, -}; - -static void port92_initfn(Object *obj) -{ - Port92State *s = PORT92(obj); - - memory_region_init_io(&s->io, OBJECT(s), &port92_ops, s, "port92", 1); - - s->outport = 0; - - qdev_init_gpio_out_named(DEVICE(obj), &s->a20_out, PORT92_A20_LINE, 1); -} - -static void port92_realizefn(DeviceState *dev, Error **errp) -{ - ISADevice *isadev = ISA_DEVICE(dev); - Port92State *s = PORT92(dev); - - isa_register_ioport(isadev, &s->io, 0x92); -} - -static void port92_class_initfn(ObjectClass *klass, void *data) -{ - DeviceClass *dc = DEVICE_CLASS(klass); - - dc->realize = port92_realizefn; - dc->reset = port92_reset; - dc->vmsd = &vmstate_port92_isa; - /* - * Reason: unlike ordinary ISA devices, this one needs additional - * wiring: its A20 output line needs to be wired up with - * qdev_connect_gpio_out_named(). - */ - dc->user_creatable = false; -} - -static const TypeInfo port92_info = { - .name = TYPE_PORT92, - .parent = TYPE_ISA_DEVICE, - .instance_size = sizeof(Port92State), - .instance_init = port92_initfn, - .class_init = port92_class_initfn, -}; - -static void port92_register_types(void) -{ - type_register_static(&port92_info); -} - -type_init(port92_register_types) - static void handle_a20_line_change(void *opaque, int irq, int level) { X86CPU *cpu = opaque; diff --git a/hw/i386/port92.c b/hw/i386/port92.c new file mode 100644 index 0000000..19866c4 --- /dev/null +++ b/hw/i386/port92.c @@ -0,0 +1,126 @@ +/* + * QEMU I/O port 0x92 (System Control Port A, to handle Fast Gate A20) + * + * Copyright (c) 2003-2004 Fabrice Bellard + * + * SPDX-License-Identifier: MIT + */ + +#include "qemu/osdep.h" +#include "sysemu/runstate.h" +#include "migration/vmstate.h" +#include "hw/irq.h" +#include "hw/i386/pc.h" +#include "trace.h" + +#define PORT92(obj) OBJECT_CHECK(Port92State, (obj), TYPE_PORT92) + +typedef struct Port92State { + ISADevice parent_obj; + + MemoryRegion io; + uint8_t outport; + qemu_irq a20_out; +} Port92State; + +static void port92_write(void *opaque, hwaddr addr, uint64_t val, + unsigned size) +{ + Port92State *s = opaque; + int oldval = s->outport; + + trace_port92_write(val); + s->outport = val; + qemu_set_irq(s->a20_out, (val >> 1) & 1); + if ((val & 1) && !(oldval & 1)) { + qemu_system_reset_request(SHUTDOWN_CAUSE_GUEST_RESET); + } +} + +static uint64_t port92_read(void *opaque, hwaddr addr, + unsigned size) +{ + Port92State *s = opaque; + uint32_t ret; + + ret = s->outport; + trace_port92_read(ret); + + return ret; +} + +static const VMStateDescription vmstate_port92_isa = { + .name = "port92", + .version_id = 1, + .minimum_version_id = 1, + .fields = (VMStateField[]) { + VMSTATE_UINT8(outport, Port92State), + VMSTATE_END_OF_LIST() + } +}; + +static void port92_reset(DeviceState *d) +{ + Port92State *s = PORT92(d); + + s->outport &= ~1; +} + +static const MemoryRegionOps port92_ops = { + .read = port92_read, + .write = port92_write, + .impl = { + .min_access_size = 1, + .max_access_size = 1, + }, + .endianness = DEVICE_LITTLE_ENDIAN, +}; + +static void port92_initfn(Object *obj) +{ + Port92State *s = PORT92(obj); + + memory_region_init_io(&s->io, OBJECT(s), &port92_ops, s, "port92", 1); + + s->outport = 0; + + qdev_init_gpio_out_named(DEVICE(obj), &s->a20_out, PORT92_A20_LINE, 1); +} + +static void port92_realizefn(DeviceState *dev, Error **errp) +{ + ISADevice *isadev = ISA_DEVICE(dev); + Port92State *s = PORT92(dev); + + isa_register_ioport(isadev, &s->io, 0x92); +} + +static void port92_class_initfn(ObjectClass *klass, void *data) +{ + DeviceClass *dc = DEVICE_CLASS(klass); + + dc->realize = port92_realizefn; + dc->reset = port92_reset; + dc->vmsd = &vmstate_port92_isa; + /* + * Reason: unlike ordinary ISA devices, this one needs additional + * wiring: its A20 output line needs to be wired up with + * qdev_connect_gpio_out_named(). + */ + dc->user_creatable = false; +} + +static const TypeInfo port92_info = { + .name = TYPE_PORT92, + .parent = TYPE_ISA_DEVICE, + .instance_size = sizeof(Port92State), + .instance_init = port92_initfn, + .class_init = port92_class_initfn, +}; + +static void port92_register_types(void) +{ + type_register_static(&port92_info); +} + +type_init(port92_register_types) diff --git a/hw/i386/trace-events b/hw/i386/trace-events index a9b6437..e48bef2 100644 --- a/hw/i386/trace-events +++ b/hw/i386/trace-events @@ -116,6 +116,6 @@ vmport_command(unsigned char command) "command: 0x%02x" x86_gsi_interrupt(int irqn, int level) "GSI interrupt #%d level:%d" x86_pic_interrupt(int irqn, int level) "PIC interrupt #%d level:%d" -# pc.c +# port92.c port92_read(uint8_t val) "port92: read 0x%02x" port92_write(uint8_t val) "port92: write 0x%02x" diff --git a/include/hw/i386/pc.h b/include/hw/i386/pc.h index e512838..230e2c9 100644 --- a/include/hw/i386/pc.h +++ b/include/hw/i386/pc.h @@ -196,8 +196,11 @@ void pc_i8259_create(ISABus *isa_bus, qemu_irq *i8259_irqs); ISADevice *pc_find_fdc0(void); int cmos_get_fd_drive_type(FloppyDriveType fd0); +/* port92.c */ #define PORT92_A20_LINE "a20" +#define TYPE_PORT92 "port92" + /* pc_sysfw.c */ void pc_system_flash_create(PCMachineState *pcms); void pc_system_firmware_init(PCMachineState *pcms, MemoryRegion *rom_memory); From patchwork Mon Dec 16 16:28:43 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Paolo Bonzini X-Patchwork-Id: 11294787 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 518591580 for ; Mon, 16 Dec 2019 17:09: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 277A220409 for ; Mon, 16 Dec 2019 17:09:34 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="C9sOyLQp" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 277A220409 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=redhat.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Received: from localhost ([::1]:57134 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1igtsD-0005VP-3X for patchwork-qemu-devel@patchwork.kernel.org; Mon, 16 Dec 2019 12:09:33 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:57521) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1igtFl-00060T-Q7 for qemu-devel@nongnu.org; Mon, 16 Dec 2019 11:29:50 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1igtFk-0000hy-N5 for qemu-devel@nongnu.org; Mon, 16 Dec 2019 11:29:49 -0500 Received: from mail-wm1-x341.google.com ([2a00:1450:4864:20::341]:37047) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1igtFj-0000dK-US for qemu-devel@nongnu.org; Mon, 16 Dec 2019 11:29:48 -0500 Received: by mail-wm1-x341.google.com with SMTP id f129so7410565wmf.2 for ; Mon, 16 Dec 2019 08:29:47 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references; bh=PMUWoCpuqKP+tFU4xIk4lPZAxU6QOkIu0guoobq7qFU=; b=C9sOyLQpIf9UG8d9SMxCbzTpCG4ty2fqSJZhYNSXG3jYoW49sUByVo8/7lyBJVZlmu tt6TUA3uuSTp/xroFqbWPzK4/D+9yxDomNBQTy2ofEfgvuYOLXM4ZGz8C0TMpXyxJs2r HMiZmb+NvhNjWtGu0r/SGpwuHrgumUJFSQTgLwvIRrBgQC7J6dsI/KK8nRXvAa32LH5y eOqbxJDN+U7cDmRl8iL0/qM27Kl+A/AuLigA+KCQLMtyRQbS8w/txju8JrUJP6d+n4CA G/aiblgelJNslnuNBQ3ytOQ8OZuaKjs8YYJqIlPYDjk2ycs9H99950koFphAyWYWirX6 STPQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references; bh=PMUWoCpuqKP+tFU4xIk4lPZAxU6QOkIu0guoobq7qFU=; b=AWryTgHukShGm3KHN0jvREPWJ2Q81wNYn26QJ3kBsqguYvfVHnNlxW9Ch9yUqnwQJg QbnOGxlYcN8gKTd5PJfFUtIFiSGZx5Bsp1mxmTFwVOX26EJX6bYoPj7n2Ds60EfOaG2K 6hn6io32hIpWof4wgqMgxqPxsbuIkmvTgFknxPmbS98HiQAxH9pd4klvPXZb8TcRD/sV O9e8q47s/2PiabdX0pvQnLniTZZED0+GO4aRG0wYa2hLl9cjy5AWrYdrzvXqTIdSKZEo ZK8JBOlIcaUgnjEsxIdbcEltwyAGDFm7CC5pEt1BKLAHLECISmhRKBQRSzHP2xgfxXTM zy/Q== X-Gm-Message-State: APjAAAXPhk7fXr2ZSgQzfLxS6HmqjJ1U8HRMD6MW6crQPcBLzP3Ihuz0 2G43st3Fgd2btgaEGKS+oN869YYm X-Google-Smtp-Source: APXvYqxdKGIP9cMmvM5dLh6wVeaP0szbeL01d62k1FoRC5gckefhUxKFuVPBXy5n/bW9qi4+vwxiRA== X-Received: by 2002:a1c:740b:: with SMTP id p11mr33186397wmc.78.1576513786750; Mon, 16 Dec 2019 08:29:46 -0800 (PST) Received: from 640k.lan ([93.56.166.5]) by smtp.gmail.com with ESMTPSA id q68sm19962334wme.14.2019.12.16.08.29.45 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 16 Dec 2019 08:29:45 -0800 (PST) From: Paolo Bonzini To: qemu-devel@nongnu.org Subject: [PULL 59/62] hyperv: Use auto rcu_read macros Date: Mon, 16 Dec 2019 17:28:43 +0100 Message-Id: <1576513726-53700-60-git-send-email-pbonzini@redhat.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1576513726-53700-1-git-send-email-pbonzini@redhat.com> References: <1576513726-53700-1-git-send-email-pbonzini@redhat.com> X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2a00:1450:4864:20::341 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: "Dr. David Alan Gilbert" Errors-To: qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Sender: "Qemu-devel" From: "Dr. David Alan Gilbert" Use RCU_READ_LOCK_GUARD and WITH_RCU_READ_LOCK_GUARD to replace the manual rcu_read_(un)lock calls. Signed-off-by: Dr. David Alan Gilbert Signed-off-by: Paolo Bonzini --- hw/hyperv/hyperv.c | 22 +++++++++------------- 1 file changed, 9 insertions(+), 13 deletions(-) diff --git a/hw/hyperv/hyperv.c b/hw/hyperv/hyperv.c index 6ebf31c..da8ce82 100644 --- a/hw/hyperv/hyperv.c +++ b/hw/hyperv/hyperv.c @@ -546,14 +546,14 @@ uint16_t hyperv_hcall_post_message(uint64_t param, bool fast) } ret = HV_STATUS_INVALID_CONNECTION_ID; - rcu_read_lock(); - QLIST_FOREACH_RCU(mh, &msg_handlers, link) { - if (mh->conn_id == (msg->connection_id & HV_CONNECTION_ID_MASK)) { - ret = mh->handler(msg, mh->data); - break; + WITH_RCU_READ_LOCK_GUARD() { + QLIST_FOREACH_RCU(mh, &msg_handlers, link) { + if (mh->conn_id == (msg->connection_id & HV_CONNECTION_ID_MASK)) { + ret = mh->handler(msg, mh->data); + break; + } } } - rcu_read_unlock(); unmap: cpu_physical_memory_unmap(msg, len, 0, 0); @@ -619,7 +619,6 @@ int hyperv_set_event_flag_handler(uint32_t conn_id, EventNotifier *notifier) uint16_t hyperv_hcall_signal_event(uint64_t param, bool fast) { - uint16_t ret; EventFlagHandler *handler; if (unlikely(!fast)) { @@ -645,15 +644,12 @@ uint16_t hyperv_hcall_signal_event(uint64_t param, bool fast) return HV_STATUS_INVALID_HYPERCALL_INPUT; } - ret = HV_STATUS_INVALID_CONNECTION_ID; - rcu_read_lock(); + RCU_READ_LOCK_GUARD(); QLIST_FOREACH_RCU(handler, &event_flag_handlers, link) { if (handler->conn_id == param) { event_notifier_set(handler->notifier); - ret = 0; - break; + return 0; } } - rcu_read_unlock(); - return ret; + return HV_STATUS_INVALID_CONNECTION_ID; } From patchwork Mon Dec 16 16:28:44 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Paolo Bonzini X-Patchwork-Id: 11294753 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id E01511580 for ; Mon, 16 Dec 2019 17:07:47 +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 B4A682082E for ; Mon, 16 Dec 2019 17:07:47 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="Mlvwqgp4" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org B4A682082E Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=redhat.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Received: from localhost ([::1]:57070 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1igtqU-0002zr-6Z for patchwork-qemu-devel@patchwork.kernel.org; Mon, 16 Dec 2019 12:07:46 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:57561) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1igtFn-00062c-8T for qemu-devel@nongnu.org; Mon, 16 Dec 2019 11:29:52 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1igtFl-0000lJ-P3 for qemu-devel@nongnu.org; Mon, 16 Dec 2019 11:29:50 -0500 Received: from mail-wr1-x444.google.com ([2a00:1450:4864:20::444]:37669) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1igtFl-0000h9-55 for qemu-devel@nongnu.org; Mon, 16 Dec 2019 11:29:49 -0500 Received: by mail-wr1-x444.google.com with SMTP id w15so8066939wru.4 for ; Mon, 16 Dec 2019 08:29:48 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references; bh=nb2hZFwKzalXfmKpcbYjmUeCAEo1SDTH5IqQlmfU414=; b=Mlvwqgp4qGA8Fg20kZKCRxrVTnH9nl3keRg5gX5ia4/a25JwygHQuQVfd3R0u9X/Ln jFzr/7Qpk8dRaqssdw3yIqAZe1Wd2/e8pij/SyHZN9tsh6F9r+XfXDoEObCJXf0GlzhC 68M6NEBkwvljigddmM2OrBXaigcwO3A/eYcDy2TwtQttDP+JtYqyWzjlP892pzNGHOpx dkOe9qk4bnBNuaoGgng7s0bJIdfFKXMNcFcqv1z2UI5s6KKZREO0bNf9Cwryzx5SBya7 HZFNE19pk+APZgtq3W28aKAgL0ypJ+uupV6R+OE/AgwcLI7eEpRFFiUDmWSeHo23fg59 rAdQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references; bh=nb2hZFwKzalXfmKpcbYjmUeCAEo1SDTH5IqQlmfU414=; b=HoHIRVuRdGAzTkYwaczKsOt5uTpSu0Aff3i2lT9xQlGna/s/Sm2ZjSZ8eVZB9RCBp2 +d/T7LKCdoCDZZ4yujXgeZW92aBAcjvvOzgIb0ETbXxUoGMH/8BhdC1/h9ppQOB6bmgc gYzXVQ9DqRBaePe9n4VGHK3NDIbLxFaEXwtYkquM3d4Pj9fy/RNHguoF1BGoWErs9Orl g7/ajP8H9T2rvHOTaNWwmWmTOT+ImG5bYKmevHdVBX1HwlYpV+V4gKrH3BMdenfLmCPF O68g9JP4oJckskZbnSsDko8Y/BaXBAbuZQdr0c4GD9r1OrXYuP6+i+Hus5dreOuWbw3t +8BQ== X-Gm-Message-State: APjAAAUMwMIjE0tAe6+rqXAuOg6Li7yIl5DULrrq/IhhwcfJV2g/QXkY SCfRxMSH4XefLmX7MQsaOMRoc0Hs X-Google-Smtp-Source: APXvYqznP2mGIOd/oI3qbOORu/XNCRRVQ5dz+tEQGyoGG6EashnmbuSxwOjhbszs8HQ+Yial5Iaaew== X-Received: by 2002:adf:ea4f:: with SMTP id j15mr32258278wrn.356.1576513787766; Mon, 16 Dec 2019 08:29:47 -0800 (PST) Received: from 640k.lan ([93.56.166.5]) by smtp.gmail.com with ESMTPSA id q68sm19962334wme.14.2019.12.16.08.29.46 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 16 Dec 2019 08:29:47 -0800 (PST) From: Paolo Bonzini To: qemu-devel@nongnu.org Subject: [PULL 60/62] qsp: Use WITH_RCU_READ_LOCK_GUARD Date: Mon, 16 Dec 2019 17:28:44 +0100 Message-Id: <1576513726-53700-61-git-send-email-pbonzini@redhat.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1576513726-53700-1-git-send-email-pbonzini@redhat.com> References: <1576513726-53700-1-git-send-email-pbonzini@redhat.com> X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2a00:1450:4864:20::444 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: "Dr. David Alan Gilbert" Errors-To: qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Sender: "Qemu-devel" From: "Dr. David Alan Gilbert" The automatic rcu read lock maintenance works quite nicely in this case where it previously relied on a comment to delimit the lifetime and now has a block. Signed-off-by: Dr. David Alan Gilbert Signed-off-by: Paolo Bonzini --- util/qsp.c | 22 ++++++++++------------ 1 file changed, 10 insertions(+), 12 deletions(-) diff --git a/util/qsp.c b/util/qsp.c index 6226541..7d5147f 100644 --- a/util/qsp.c +++ b/util/qsp.c @@ -598,7 +598,6 @@ static void qsp_ht_delete(void *p, uint32_t h, void *htp) static void qsp_mktree(GTree *tree, bool callsite_coalesce) { - QSPSnapshot *snap; struct qht ht, coalesce_ht; struct qht *htp; @@ -610,20 +609,19 @@ static void qsp_mktree(GTree *tree, bool callsite_coalesce) * We must remain in an RCU read-side critical section until we're done * with the snapshot. */ - rcu_read_lock(); - snap = atomic_rcu_read(&qsp_snapshot); + WITH_RCU_READ_LOCK_GUARD() { + QSPSnapshot *snap = atomic_rcu_read(&qsp_snapshot); - /* Aggregate all results from the global hash table into a local one */ - qht_init(&ht, qsp_entry_no_thread_cmp, QSP_INITIAL_SIZE, - QHT_MODE_AUTO_RESIZE | QHT_MODE_RAW_MUTEXES); - qht_iter(&qsp_ht, qsp_aggregate, &ht); + /* Aggregate all results from the global hash table into a local one */ + qht_init(&ht, qsp_entry_no_thread_cmp, QSP_INITIAL_SIZE, + QHT_MODE_AUTO_RESIZE | QHT_MODE_RAW_MUTEXES); + qht_iter(&qsp_ht, qsp_aggregate, &ht); - /* compute the difference wrt the snapshot, if any */ - if (snap) { - qsp_diff(&snap->ht, &ht); + /* compute the difference wrt the snapshot, if any */ + if (snap) { + qsp_diff(&snap->ht, &ht); + } } - /* done with the snapshot; RCU can reclaim it */ - rcu_read_unlock(); htp = &ht; if (callsite_coalesce) { From patchwork Mon Dec 16 16:28:45 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Paolo Bonzini X-Patchwork-Id: 11294785 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 25EF8930 for ; Mon, 16 Dec 2019 17:09:30 +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 F021820717 for ; Mon, 16 Dec 2019 17:09:29 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="m9i/2UcY" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org F021820717 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=redhat.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Received: from localhost ([::1]:57132 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1igts8-0005Q0-PR for patchwork-qemu-devel@patchwork.kernel.org; Mon, 16 Dec 2019 12:09:28 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:57567) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1igtFn-00063A-Fp for qemu-devel@nongnu.org; Mon, 16 Dec 2019 11:29:52 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1igtFm-0000mo-Fc for qemu-devel@nongnu.org; Mon, 16 Dec 2019 11:29:51 -0500 Received: from mail-wr1-x433.google.com ([2a00:1450:4864:20::433]:38453) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1igtFl-0000jV-PO for qemu-devel@nongnu.org; Mon, 16 Dec 2019 11:29:49 -0500 Received: by mail-wr1-x433.google.com with SMTP id y17so8052540wrh.5 for ; Mon, 16 Dec 2019 08:29:49 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references; bh=hZVVOGkgb20bftRL1JMnXY5FFlbJTfG81bARHGzmB20=; b=m9i/2UcYLH3jc427b+umGKl+c4FrFCMLc2CJPAarBEeGlMEFUn+TkYEMDDE8LWkYuN +M22i1U5LE2Qa9fArBY3W/ZtHHxOjnJeHrF4/jvNhWRpzyxBDaQUtPS/aDOC7KneEpkB j4EDv8K4wX+xXGT/uHnQgeFxx+h2JZi2AJSw9+uwjjTOnqOapsYHyYrzqhCN719y65a4 Ui5P4fAIMde5OnTuZ1eKv5Upr3BjFKj3v6ojMYROty3WSxSNqtlw77VD6z+Z6/6mI6UB pvQcG8AgBncfZ+oOjoPgH3djBpON9LIb0l2PNPPZSSmMUh/4d3Snbop+VWu8Kc3QxAJ9 Weww== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references; bh=hZVVOGkgb20bftRL1JMnXY5FFlbJTfG81bARHGzmB20=; b=be1mGSaXnVKXUVhX5a7SNN2H+sgz7GargtWfBfZhylI7PNNj+4s/g0llts28mVPavA Z1xx2IQfc6uRfgXoKjo4QxdcxAZ/BC7GBLHOW1LTvYIYv10f8vDFRaAivp7T+K0iqCRy CUapDgFGBsND3F2Us/1oJl8S4YcSgH8rz63hebgHUbLamb7tA8RVy/ZNXV/HpR2Ks6PO rKJbYVcMKUXG5N9xJwtjrQHwQutaqW+SBfmgb3y0bz+cvYFg4SoCUUy/PVqnHPz0c8sA LNKIsWctH0cKcMOfd0PHXfgme4FWAs7HhE8VB/ci6AK+46fTiDa8tiIiOx+QtlbP5mxA hkzw== X-Gm-Message-State: APjAAAVehuro9Iu7ce5IOXDsadH5uViWeIIFiuDp6zYhyanxMkNsCeoO Zj+9heGQaeykKCXzCuvlnRhCWUkE X-Google-Smtp-Source: APXvYqyv0DROpQUFpgQN5d+Da/7/8nZI4bwEGJMJRiK2/Q2QVJX7HuJ1Btj8FkQbTNHFECB4LOlOig== X-Received: by 2002:a5d:4687:: with SMTP id u7mr31144180wrq.176.1576513788590; Mon, 16 Dec 2019 08:29:48 -0800 (PST) Received: from 640k.lan ([93.56.166.5]) by smtp.gmail.com with ESMTPSA id q68sm19962334wme.14.2019.12.16.08.29.47 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 16 Dec 2019 08:29:48 -0800 (PST) From: Paolo Bonzini To: qemu-devel@nongnu.org Subject: [PULL 61/62] memory: use RCU_READ_LOCK_GUARD Date: Mon, 16 Dec 2019 17:28:45 +0100 Message-Id: <1576513726-53700-62-git-send-email-pbonzini@redhat.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1576513726-53700-1-git-send-email-pbonzini@redhat.com> References: <1576513726-53700-1-git-send-email-pbonzini@redhat.com> X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2a00:1450:4864:20::433 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: "Dr. David Alan Gilbert" Errors-To: qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Sender: "Qemu-devel" Cc: Dr. David Alan Gilbert Signed-off-by: Paolo Bonzini --- include/exec/memory.h | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/include/exec/memory.h b/include/exec/memory.h index e499dc2..e42a9d7 100644 --- a/include/exec/memory.h +++ b/include/exec/memory.h @@ -2165,7 +2165,7 @@ MemTxResult address_space_read(AddressSpace *as, hwaddr addr, if (__builtin_constant_p(len)) { if (len) { - rcu_read_lock(); + RCU_READ_LOCK_GUARD(); fv = address_space_to_flatview(as); l = len; mr = flatview_translate(fv, addr, &addr1, &l, false, attrs); @@ -2176,7 +2176,6 @@ MemTxResult address_space_read(AddressSpace *as, hwaddr addr, result = flatview_read_continue(fv, addr, attrs, buf, len, addr1, l, mr); } - rcu_read_unlock(); } } else { result = address_space_read_full(as, addr, attrs, buf, len); From patchwork Mon Dec 16 16:28:46 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Paolo Bonzini X-Patchwork-Id: 11294813 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 48540930 for ; Mon, 16 Dec 2019 17:12:22 +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 1E3DE206D7 for ; Mon, 16 Dec 2019 17:12:21 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="Wr69G6hm" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 1E3DE206D7 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=redhat.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Received: from localhost ([::1]:57182 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1igtuu-0000uv-CT for patchwork-qemu-devel@patchwork.kernel.org; Mon, 16 Dec 2019 12:12:20 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:57589) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1igtFo-00064O-AY for qemu-devel@nongnu.org; Mon, 16 Dec 2019 11:29:53 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1igtFn-0000pK-4k for qemu-devel@nongnu.org; Mon, 16 Dec 2019 11:29:52 -0500 Received: from mail-wr1-x441.google.com ([2a00:1450:4864:20::441]:36401) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1igtFm-0000ld-IT for qemu-devel@nongnu.org; Mon, 16 Dec 2019 11:29:50 -0500 Received: by mail-wr1-x441.google.com with SMTP id z3so515885wru.3 for ; Mon, 16 Dec 2019 08:29:50 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references; bh=iSvd7kR69HHZhRhQRzsPwBtBWFePaMT2xa1YRgm+R84=; b=Wr69G6hmY4M6IsGX1Zcy9pTNIvrQYCiIG8cpSrPvTb/D+4+8So7lH3Jb9ndZPRmsio 0dRDXAo9k8JYCWgz184C289Zwp+bkV+WBS+wYODp8h7Gm0tNGlXhSgz+Ii1RllEyDKzZ +ru5OsMFrloFOOr/hCv6u891aPTaLrnNG00XJjo65TNuqsfZXv2IDwpIX3K9t3p2azGY ds6mrFt9QGLakZgshZzTBNrU/6t4To6d9Jyg/VFxmOry5n1TJ0I2G2jhLxklTln+lTkl loA8P30MURqigaws69spBulr4O2b4E9RKZNcsdrl5tN86LuYC2u4hzmxwbWIPudkh0ev oY1w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references; bh=iSvd7kR69HHZhRhQRzsPwBtBWFePaMT2xa1YRgm+R84=; b=CZSJrk4iDwq2y46NTqGBgQ2fYfl1loeEXs8OrWS+rW1ROLvG0QBRUFNSAfb14wHdjZ JE2NaSMYmliaahx1C9x4yFVsFTx5txdJkv1x+jhEPXTzHGD4kE6QQPdDeTnkXQjWaOYx WarmCbzFDkYfORyBFYE0Qn2Bb9rq2ErNeg/+yqaC0ecN7W/bS39TZRqxqmwWAJAOfkz4 Lk75q6otbRBC1CLwEew9VkD5SG1QPw3NtZq5qkOEbKF921dksGhwih0/dX9692hMX3cZ UFcUEaReqTseSpaJcfBYNZkn+YoxKbl4n6N8NREo1LdoHwndcc7jpoHGXE1WdQo+ZL1Z L7jQ== X-Gm-Message-State: APjAAAVOgpXUYb3h3CXDrXFlT2ogC6FHMp0/4adJTegvxJv1JMf6li/i EJS8YRcoLfQWoOPGoODZMFItcnHy X-Google-Smtp-Source: APXvYqxFF4WBvrTC4OIyBL0ho+kV9Z0aagU72rwUlAfZeqvHMdXQeZuxA0qx6Vn5OuFcEZk1lJ9HiQ== X-Received: by 2002:adf:f18b:: with SMTP id h11mr30146077wro.56.1576513789346; Mon, 16 Dec 2019 08:29:49 -0800 (PST) Received: from 640k.lan ([93.56.166.5]) by smtp.gmail.com with ESMTPSA id q68sm19962334wme.14.2019.12.16.08.29.48 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 16 Dec 2019 08:29:48 -0800 (PST) From: Paolo Bonzini To: qemu-devel@nongnu.org Subject: [PULL 62/62] colo: fix return without releasing RCU Date: Mon, 16 Dec 2019 17:28:46 +0100 Message-Id: <1576513726-53700-63-git-send-email-pbonzini@redhat.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1576513726-53700-1-git-send-email-pbonzini@redhat.com> References: <1576513726-53700-1-git-send-email-pbonzini@redhat.com> X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2a00:1450:4864:20::441 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: "Dr. David Alan Gilbert" Errors-To: qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Sender: "Qemu-devel" Use WITH_RCU_READ_LOCK_GUARD to avoid exiting colo_init_ram_cache without releasing RCU. Cc: Dr. David Alan Gilbert Signed-off-by: Paolo Bonzini --- migration/ram.c | 33 +++++++++++++++++---------------- 1 file changed, 17 insertions(+), 16 deletions(-) diff --git a/migration/ram.c b/migration/ram.c index 7dd7f81..8d7c015 100644 --- a/migration/ram.c +++ b/migration/ram.c @@ -3891,26 +3891,27 @@ int colo_init_ram_cache(void) { RAMBlock *block; - rcu_read_lock(); - RAMBLOCK_FOREACH_NOT_IGNORED(block) { - block->colo_cache = qemu_anon_ram_alloc(block->used_length, - NULL, - false); - if (!block->colo_cache) { - error_report("%s: Can't alloc memory for COLO cache of block %s," - "size 0x" RAM_ADDR_FMT, __func__, block->idstr, - block->used_length); - RAMBLOCK_FOREACH_NOT_IGNORED(block) { - if (block->colo_cache) { - qemu_anon_ram_free(block->colo_cache, block->used_length); - block->colo_cache = NULL; + WITH_RCU_READ_LOCK_GUARD() { + RAMBLOCK_FOREACH_NOT_IGNORED(block) { + block->colo_cache = qemu_anon_ram_alloc(block->used_length, + NULL, + false); + if (!block->colo_cache) { + error_report("%s: Can't alloc memory for COLO cache of block %s," + "size 0x" RAM_ADDR_FMT, __func__, block->idstr, + block->used_length); + RAMBLOCK_FOREACH_NOT_IGNORED(block) { + if (block->colo_cache) { + qemu_anon_ram_free(block->colo_cache, block->used_length); + block->colo_cache = NULL; + } } + return -errno; } - return -errno; + memcpy(block->colo_cache, block->host, block->used_length); } - memcpy(block->colo_cache, block->host, block->used_length); } - rcu_read_unlock(); + /* * Record the dirty pages that sent by PVM, we use this dirty bitmap together * with to decide which page in cache should be flushed into SVM's RAM. Here