From patchwork Tue Oct 30 19:50:02 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Paolo Bonzini X-Patchwork-Id: 10661483 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 80AA013A4 for ; Tue, 30 Oct 2018 19:57:01 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 6E9D22ABC3 for ; Tue, 30 Oct 2018 19:57:01 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 634EE2ABC6; Tue, 30 Oct 2018 19:57:01 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-7.7 required=2.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED,MAILING_LIST_MULTI,RCVD_IN_DNSWL_HI autolearn=ham version=3.3.1 Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (No client certificate requested) by mail.wl.linuxfoundation.org (Postfix) with ESMTPS id D890F2ABC3 for ; Tue, 30 Oct 2018 19:57:00 +0000 (UTC) Received: from localhost ([::1]:55244 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gHa8K-0005pe-4O for patchwork-qemu-devel@patchwork.kernel.org; Tue, 30 Oct 2018 15:57:00 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:48226) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gHa28-00082R-Vp for qemu-devel@nongnu.org; Tue, 30 Oct 2018 15:50:38 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1gHa26-0002Il-EJ for qemu-devel@nongnu.org; Tue, 30 Oct 2018 15:50:36 -0400 Received: from mail-wm1-x330.google.com ([2a00:1450:4864:20::330]:37514) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1gHa26-00022C-2H for qemu-devel@nongnu.org; Tue, 30 Oct 2018 15:50:34 -0400 Received: by mail-wm1-x330.google.com with SMTP id p2-v6so12455445wmc.2 for ; Tue, 30 Oct 2018 12:50:19 -0700 (PDT) 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=Z2dLXAjqPsYiDE2KG3TA3x3OxiKYmk9EUCnKtZXwwok=; b=bQ0VnKSyDT9KGF0A7BoIUloXOZEJDn9wwCzh4/1ycwAb9itTEvN1wspaMUnSTny1YL iY6gBV1jLe/vJolBeoj6KsEtnmujKyTzvGBd8Y4TLg2qomAlYSwgSoBvqDfv1I/tdIM+ BDww5UOLmk+mgy4IH+u94UEF/qZJamkNq+oIahEI8eN2dZc9WozEczeyWKmhGUDSvgoU l/kWvzQIgtgNl4QfTwTYaavjGMC30SmPzU+eLOpcOx8H6vXaWVKHcoI/oBBUHlQvsYiY lZRYQgX4I+MTT7CPha+EH0C+qB+6dRGmzLdvgjSZ7t94gxUCcI9gC/x4pqRjwdkFQPDW Dkwg== 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=Z2dLXAjqPsYiDE2KG3TA3x3OxiKYmk9EUCnKtZXwwok=; b=hKJhAd9+Zv7cpPovyPdDJtoYVlRGpWoaZ8qjkRLmFRELygM2/O8Smwj88+8AHjA5Eh qjXpy2okWhgJsuMigJFuL8fHewh5Dq9FnuxUfLOEj+vpid8Nc2s4SZjEX83torB3H/eb jOuwuqLF0wUkscOu+DQbJJfnmDPN9QQWR4vmRypLQpL71mxc0NRrsCvX+2P0yVh/843X SpNDyuH3Ffdbv8pXB4z1n1uWp0RpfHKiZRu1JfH5bs3aXYiogd57dtHwidurBeN+6kLG tIftJm0LHPBdu4Eyy+SmcJDhvPZZva+od8Me/6XUo4unwVXY0wyKOb/q1MDbdTE5lRUE svTw== X-Gm-Message-State: AGRZ1gI4mJJe1bptMsttn/BjaNRo1eoR42DXBbzx2/9t1JKjHZkMcfZI LgviDzg8cq/HN5jhfZchrbZWY4Ed X-Google-Smtp-Source: AJdET5dqxEEZ0VxY/jPMubdHV1wA8L5PCbukTpzhYNJaVxaKqwaYFheUiUQifzeK4RXH5jGWQcgQHw== X-Received: by 2002:a1c:bce:: with SMTP id 197-v6mr60520wml.15.1540929017680; Tue, 30 Oct 2018 12:50:17 -0700 (PDT) Received: from 640k.lan ([93.56.166.5]) by smtp.gmail.com with ESMTPSA id g76-v6sm17480094wmd.25.2018.10.30.12.50.16 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 30 Oct 2018 12:50:16 -0700 (PDT) From: Paolo Bonzini To: qemu-devel@nongnu.org Date: Tue, 30 Oct 2018 20:50:02 +0100 Message-Id: <1540929011-19894-2-git-send-email-pbonzini@redhat.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1540929011-19894-1-git-send-email-pbonzini@redhat.com> References: <1540929011-19894-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::330 Subject: [Qemu-devel] [PULL 01/10] icount: fix deadlock when all cpus are sleeping X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Clement Deschamps Errors-To: qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Sender: "Qemu-devel" X-Virus-Scanned: ClamAV using ClamSMTP From: Clement Deschamps When all cpus are sleeping (e.g in WFI), to avoid a deadlock in the main_loop, wake it up in order to start the warp timer. Signed-off-by: Clement Deschamps Message-Id: <20181021142103.19014-1-clement.deschamps@greensocs.com> Signed-off-by: Paolo Bonzini --- cpus.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/cpus.c b/cpus.c index 3978f63..a2b33cc 100644 --- a/cpus.c +++ b/cpus.c @@ -1554,6 +1554,14 @@ static void *qemu_tcg_rr_cpu_thread_fn(void *arg) atomic_mb_set(&cpu->exit_request, 0); } + if (use_icount && all_cpu_threads_idle()) { + /* + * When all cpus are sleeping (e.g in WFI), to avoid a deadlock + * in the main_loop, wake it up in order to start the warp timer. + */ + qemu_notify_event(); + } + qemu_tcg_rr_wait_io_event(cpu ? cpu : first_cpu); deal_with_unplugged_cpus(); } From patchwork Tue Oct 30 19:50:03 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Paolo Bonzini X-Patchwork-Id: 10661479 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id A637813A4 for ; Tue, 30 Oct 2018 19:54:40 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 933EE2ABC2 for ; Tue, 30 Oct 2018 19:54:40 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 878C22ABC5; Tue, 30 Oct 2018 19:54:40 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-7.7 required=2.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED,MAILING_LIST_MULTI,RCVD_IN_DNSWL_HI autolearn=ham version=3.3.1 Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (No client certificate requested) by mail.wl.linuxfoundation.org (Postfix) with ESMTPS id 04F952ABC2 for ; Tue, 30 Oct 2018 19:54:40 +0000 (UTC) Received: from localhost ([::1]:55230 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gHa63-0003zx-DT for patchwork-qemu-devel@patchwork.kernel.org; Tue, 30 Oct 2018 15:54:39 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:48224) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gHa28-00082Q-Vd for qemu-devel@nongnu.org; Tue, 30 Oct 2018 15:50:38 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1gHa26-0002I9-43 for qemu-devel@nongnu.org; Tue, 30 Oct 2018 15:50:36 -0400 Received: from mail-wm1-x330.google.com ([2a00:1450:4864:20::330]:39215) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1gHa25-00022k-QZ for qemu-devel@nongnu.org; Tue, 30 Oct 2018 15:50:33 -0400 Received: by mail-wm1-x330.google.com with SMTP id y144-v6so12447881wmd.4 for ; Tue, 30 Oct 2018 12:50:19 -0700 (PDT) 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=faNJTJyj9uXXXX6HkaEqNSOvicvGFn9ScCrCdtgd5Bo=; b=pIiLxlmCM/vDWLcpWYlH6t8gerIyM7/XvZQjUQ2aujbRdfx/zRP8rkoOdGYnxiHdOZ fzeVf35Z+nN1OicbKCcjy9JEuiN+zpByjFp4Kf2cMuBQYVVVs2XmmlRqkh/EoFqJHUVA LqQoBlgFwDd/6REWFi71hAEN7AWPtcFBX+gIG+5g1SNk5QGjvYvjAoLp4XN6Y81E3niG zO9J4DW/++CgftvrHpyG02kEjg5o+EZGf2MQ+GP/9BO1Mi84Zs3aq15Z1YmAgebsMalP GUfhCL8hTOW04iEGfV59VdJz4bQEHRN1jtxB6x7Li49pZFHvZ4TcmkiO3/mkDcs8eRsF o7sA== 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=faNJTJyj9uXXXX6HkaEqNSOvicvGFn9ScCrCdtgd5Bo=; b=ET61NsWFJswB5cnJjdkI/pRr+SzDobKC9MBNF1cSo7AYKpvNMKg9OmDBEaBnvHf3BZ 8/yjcHP5GyBWETbE666igddlXb4vNcFe9Q/zeUBkG9Bwyh41WrtDzNb983lUMbt3oLC9 JKWoQgjEfAUGndUaYFQUHu6rHt8GuI365tV2YoA+GBPrUJpyhYfSfMWSL3ajNVmxkccQ oM6eoX1Yk8zQpUVbu0d/D4IJ1GMRDWk1GXMgWKZqaM60geXcEQTNl5I1FkCkOMusAl8K VVS8MvXXnCX9YurlMw7HdqiPp9OzQcHpq1q0ewxvzR+dVHZ0Rv1KK/pm3crDagBw27tT KdHQ== X-Gm-Message-State: AGRZ1gLKNc0HeoDn0qW2DWAbbsaVYpUbdB0qwrHs/rOUf1xDHHwuvwLN cZr6Q2CzCeHrSOzQTu57g9IHKHON X-Google-Smtp-Source: AJdET5dTeRCBs4+L5Q9yHA3BBav2JK7vGKhyk8cWiqLsEv2DQfzzw4gYrcaNDshd1gA7YA/uvWYMDw== X-Received: by 2002:a1c:96c7:: with SMTP id y190-v6mr88071wmd.36.1540929018402; Tue, 30 Oct 2018 12:50:18 -0700 (PDT) Received: from 640k.lan ([93.56.166.5]) by smtp.gmail.com with ESMTPSA id g76-v6sm17480094wmd.25.2018.10.30.12.50.17 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 30 Oct 2018 12:50:17 -0700 (PDT) From: Paolo Bonzini To: qemu-devel@nongnu.org Date: Tue, 30 Oct 2018 20:50:03 +0100 Message-Id: <1540929011-19894-3-git-send-email-pbonzini@redhat.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1540929011-19894-1-git-send-email-pbonzini@redhat.com> References: <1540929011-19894-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::330 Subject: [Qemu-devel] [PULL 02/10] x86: hv_evmcs CPU flag support X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Vitaly Kuznetsov Errors-To: qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Sender: "Qemu-devel" X-Virus-Scanned: ClamAV using ClamSMTP From: Vitaly Kuznetsov Adds a new CPU flag to enable the Enlightened VMCS KVM feature. QEMU enables KVM_CAP_HYPERV_ENLIGHTENED_VMCS and gets back the version to be advertised in lower 16 bits of CPUID.0x4000000A:EAX. Suggested-by: Ladi Prosek Signed-off-by: Vitaly Kuznetsov Message-Id: <20181022165506.30332-3-vkuznets@redhat.com> Reviewed-by: Roman Kagan Signed-off-by: Paolo Bonzini --- target/i386/cpu.c | 1 + target/i386/cpu.h | 1 + target/i386/hyperv-proto.h | 2 ++ target/i386/kvm.c | 30 ++++++++++++++++++++++++++++-- 4 files changed, 32 insertions(+), 2 deletions(-) diff --git a/target/i386/cpu.c b/target/i386/cpu.c index 1469a1b..e74b986 100644 --- a/target/i386/cpu.c +++ b/target/i386/cpu.c @@ -5565,6 +5565,7 @@ static Property x86_cpu_properties[] = { DEFINE_PROP_BOOL("hv-frequencies", X86CPU, hyperv_frequencies, false), DEFINE_PROP_BOOL("hv-reenlightenment", X86CPU, hyperv_reenlightenment, false), DEFINE_PROP_BOOL("hv-tlbflush", X86CPU, hyperv_tlbflush, false), + DEFINE_PROP_BOOL("hv-evmcs", X86CPU, hyperv_evmcs, false), DEFINE_PROP_BOOL("hv-ipi", X86CPU, hyperv_ipi, false), DEFINE_PROP_BOOL("check", X86CPU, check_cpuid, true), DEFINE_PROP_BOOL("enforce", X86CPU, enforce_cpuid, false), diff --git a/target/i386/cpu.h b/target/i386/cpu.h index 663f3a5..369c223 100644 --- a/target/i386/cpu.h +++ b/target/i386/cpu.h @@ -1383,6 +1383,7 @@ struct X86CPU { bool hyperv_frequencies; bool hyperv_reenlightenment; bool hyperv_tlbflush; + bool hyperv_evmcs; bool hyperv_ipi; bool check_cpuid; bool enforce_cpuid; diff --git a/target/i386/hyperv-proto.h b/target/i386/hyperv-proto.h index 8c572cd..c0272b3 100644 --- a/target/i386/hyperv-proto.h +++ b/target/i386/hyperv-proto.h @@ -18,6 +18,7 @@ #define HV_CPUID_FEATURES 0x40000003 #define HV_CPUID_ENLIGHTMENT_INFO 0x40000004 #define HV_CPUID_IMPLEMENT_LIMITS 0x40000005 +#define HV_CPUID_NESTED_FEATURES 0x4000000A #define HV_CPUID_MIN 0x40000005 #define HV_CPUID_MAX 0x4000ffff #define HV_HYPERVISOR_PRESENT_BIT 0x80000000 @@ -60,6 +61,7 @@ #define HV_RELAXED_TIMING_RECOMMENDED (1u << 5) #define HV_CLUSTER_IPI_RECOMMENDED (1u << 10) #define HV_EX_PROCESSOR_MASKS_RECOMMENDED (1u << 11) +#define HV_ENLIGHTENED_VMCS_RECOMMENDED (1u << 14) /* * Basic virtualized MSRs diff --git a/target/i386/kvm.c b/target/i386/kvm.c index 115d8b4..6f5c8a0 100644 --- a/target/i386/kvm.c +++ b/target/i386/kvm.c @@ -832,6 +832,7 @@ int kvm_arch_init_vcpu(CPUState *cs) uint32_t unused; struct kvm_cpuid_entry2 *c; uint32_t signature[3]; + uint16_t evmcs_version; int kvm_base = KVM_CPUID_SIGNATURE; int r; Error *local_err = NULL; @@ -875,7 +876,8 @@ int kvm_arch_init_vcpu(CPUState *cs) memset(signature, 0, 12); memcpy(signature, cpu->hyperv_vendor_id, len); } - c->eax = HV_CPUID_MIN; + c->eax = cpu->hyperv_evmcs ? + HV_CPUID_NESTED_FEATURES : HV_CPUID_IMPLEMENT_LIMITS; c->ebx = signature[0]; c->ecx = signature[1]; c->edx = signature[2]; @@ -933,7 +935,16 @@ int kvm_arch_init_vcpu(CPUState *cs) c->eax |= HV_CLUSTER_IPI_RECOMMENDED; c->eax |= HV_EX_PROCESSOR_MASKS_RECOMMENDED; } - + if (cpu->hyperv_evmcs) { + if (kvm_vcpu_enable_cap(cs, KVM_CAP_HYPERV_ENLIGHTENED_VMCS, 0, + (uintptr_t)&evmcs_version)) { + fprintf(stderr, "Hyper-V Enlightened VMCS " + "(requested by 'hv-evmcs' cpu flag) " + "is not supported by kernel\n"); + return -ENOSYS; + } + c->eax |= HV_ENLIGHTENED_VMCS_RECOMMENDED; + } c->ebx = cpu->hyperv_spinlock_attempts; c = &cpuid_data.entries[cpuid_i++]; @@ -944,6 +955,21 @@ int kvm_arch_init_vcpu(CPUState *cs) kvm_base = KVM_CPUID_SIGNATURE_NEXT; has_msr_hv_hypercall = true; + + if (cpu->hyperv_evmcs) { + uint32_t function; + + /* Create zeroed 0x40000006..0x40000009 leaves */ + for (function = HV_CPUID_IMPLEMENT_LIMITS + 1; + function < HV_CPUID_NESTED_FEATURES; function++) { + c = &cpuid_data.entries[cpuid_i++]; + c->function = function; + } + + c = &cpuid_data.entries[cpuid_i++]; + c->function = HV_CPUID_NESTED_FEATURES; + c->eax = evmcs_version; + } } if (cpu->expose_kvm) { From patchwork Tue Oct 30 19:50:04 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Paolo Bonzini X-Patchwork-Id: 10661487 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id DD7341734 for ; Tue, 30 Oct 2018 19:59:13 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id C7CA52A7DC for ; Tue, 30 Oct 2018 19:59:13 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id BABDF2A824; Tue, 30 Oct 2018 19:59:13 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-7.7 required=2.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED,MAILING_LIST_MULTI,RCVD_IN_DNSWL_HI autolearn=ham version=3.3.1 Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (No client certificate requested) by mail.wl.linuxfoundation.org (Postfix) with ESMTPS id 5287C2A7DC for ; Tue, 30 Oct 2018 19:59:13 +0000 (UTC) Received: from localhost ([::1]:55254 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gHaAS-0007c6-QA for patchwork-qemu-devel@patchwork.kernel.org; Tue, 30 Oct 2018 15:59:12 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:48232) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gHa28-00082U-W8 for qemu-devel@nongnu.org; Tue, 30 Oct 2018 15:50:38 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1gHa26-0002I3-36 for qemu-devel@nongnu.org; Tue, 30 Oct 2018 15:50:36 -0400 Received: from mail-wr1-x42e.google.com ([2a00:1450:4864:20::42e]:37537) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1gHa25-00024O-P7 for qemu-devel@nongnu.org; Tue, 30 Oct 2018 15:50:33 -0400 Received: by mail-wr1-x42e.google.com with SMTP id g9-v6so13959164wrq.4 for ; Tue, 30 Oct 2018 12:50:20 -0700 (PDT) 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=BcYddqtaBkwWgNhiWHczPWVUjYNxCPSh+6CWN7KUUsQ=; b=u95SMu/ziQC+5wTWphbLQX2sTZXsfIFYPylnuc7EDncbKOUtyf8FD3cTm2dwdP30RA WOHdjDMP4fYVU1w4U+v1lMaq2a4cLPU4WmgQt04hm6vyWh90yWhXDukqnziFXp5wXgGx JUcdYLm5WOLgcGI5KnvI7Uo1Gcrc7IpVn2Y/9txvbqVifyH859fhA/RbTlOhfDn57kxy Ulm58L/ktPeB5zrnSImFVpZjs1U4pcawN/DEEqvml3MlUbKVh3WIBNeJUVe9mGdH7OQk MZtwgW5Jac8pyz5gHq1GXoWq0+M/lHAaK3DBQQ+WHqkKKwuTP5FYYKrCSb5gzVPPOEIg H6gw== 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=BcYddqtaBkwWgNhiWHczPWVUjYNxCPSh+6CWN7KUUsQ=; b=Qf1LqRChWAYQoMqmPHlmYsii9CTT7Vh8j6szjobm0Afs90NXFQA9XmLuggqrSX4C7J eFLOmnIHTrjcrU/UwZTlfwJwhL/S43joDi88YV1+rSuyklOu3x5PCmWEsZgu5NQdTPJ5 LDeLeMU2X2UPmjhLXnn4iWpPA4xKxtAVfwX6KQespSLlOxEOnVmFvOnF4nMDxZPyBRuw F91Sutc0n5wAcLIj7Jt46KVzXu1Rocs+FDiGpGr+ACrW1oYVQYXztJGynfd6wux0E7Ax iChCdjh9bJ+i82UA81b3ESNv27BeojubMEW65UpEc1M9VcA6/79rI/Omiwi5Ju1mFmYJ ELKg== X-Gm-Message-State: AGRZ1gKO5/4T3QawQHwpi6Wt/72Alpzp10dsd5doMcft5cbHsAB0PInf 3h9zpRUGl+I7tkrgQdqnaGrhWI64 X-Google-Smtp-Source: AJdET5c98T/1pfBUg9c+2SAhDRU605bNvHtoq8kFfCixifkrP7K8KqaALaP/v+fsSjdqN3pHwxKTjQ== X-Received: by 2002:adf:f608:: with SMTP id t8-v6mr54067wrp.229.1540929019560; Tue, 30 Oct 2018 12:50:19 -0700 (PDT) Received: from 640k.lan ([93.56.166.5]) by smtp.gmail.com with ESMTPSA id g76-v6sm17480094wmd.25.2018.10.30.12.50.18 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 30 Oct 2018 12:50:18 -0700 (PDT) From: Paolo Bonzini To: qemu-devel@nongnu.org Date: Tue, 30 Oct 2018 20:50:04 +0100 Message-Id: <1540929011-19894-4-git-send-email-pbonzini@redhat.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1540929011-19894-1-git-send-email-pbonzini@redhat.com> References: <1540929011-19894-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::42e Subject: [Qemu-devel] [PULL 03/10] i386: clarify that the Q35 machine type implements a P35 chipset X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 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" X-Virus-Scanned: ClamAV using ClamSMTP From: Daniel P. Berrangé The 'q35' machine type implements an Intel Series 3 chipset, of which there are several variants: https://www.intel.com/Assets/PDF/datasheet/316966.pdf The key difference between the 82P35 MCH ('p35', PCI device ID 0x29c0) and 82Q35 GMCH ('q35', PCI device ID 0x29b0) variants is that the latter has an integrated graphics adapter. QEMU does not implement integrated graphics, so uses the PCI ID for the 82P35 chipset, despite calling the machine type 'q35'. Thus we rename the PCI device ID constant to reflect reality, to avoid confusing future developers. The new name more closely matches what pci.ids reports it to be: $ grep P35 /usr/share/hwdata/pci.ids | grep 29 29c0 82G33/G31/P35/P31 Express DRAM Controller 29c1 82G33/G31/P35/P31 Express PCI Express Root Port 29c4 82G33/G31/P35/P31 Express MEI Controller 29c5 82G33/G31/P35/P31 Express MEI Controller 29c6 82G33/G31/P35/P31 Express PT IDER Controller 29c7 82G33/G31/P35/P31 Express Serial KT Controller $ grep Q35 /usr/share/hwdata/pci.ids | grep 29 29b0 82Q35 Express DRAM Controller 29b1 82Q35 Express PCI Express Root Port 29b2 82Q35 Express Integrated Graphics Controller 29b3 82Q35 Express Integrated Graphics Controller 29b4 82Q35 Express MEI Controller 29b5 82Q35 Express MEI Controller 29b6 82Q35 Express PT IDER Controller 29b7 82Q35 Express Serial KT Controller Arguably the QEMU machine type should be named 'p35'. At this point in time, however, it is not worth the churn for management applications & documentation to worry about renaming it. Signed-off-by: Daniel P. Berrangé Message-Id: <20180830105757.10577-1-berrange@redhat.com> Signed-off-by: Paolo Bonzini Signed-off-by: Daniel P. Berrangé --- hw/pci-host/q35.c | 10 +++++++++- include/hw/pci/pci_ids.h | 2 +- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/hw/pci-host/q35.c b/hw/pci-host/q35.c index 966a7cf..71e4ca5 100644 --- a/hw/pci-host/q35.c +++ b/hw/pci-host/q35.c @@ -622,7 +622,15 @@ static void mch_class_init(ObjectClass *klass, void *data) dc->desc = "Host bridge"; dc->vmsd = &vmstate_mch; k->vendor_id = PCI_VENDOR_ID_INTEL; - k->device_id = PCI_DEVICE_ID_INTEL_Q35_MCH; + /* + * The 'q35' machine type implements an Intel Series 3 chipset, + * of which there are several variants. The key difference between + * the 82P35 MCH ('p35') and 82Q35 GMCH ('q35') variants is that + * the latter has an integrated graphics adapter. QEMU does not + * implement integrated graphics, so uses the PCI ID for the 82P35 + * chipset. + */ + k->device_id = PCI_DEVICE_ID_INTEL_P35_MCH; k->revision = MCH_HOST_BRIDGE_REVISION_DEFAULT; k->class_id = PCI_CLASS_BRIDGE_HOST; /* diff --git a/include/hw/pci/pci_ids.h b/include/hw/pci/pci_ids.h index 63acc72..eeb3301 100644 --- a/include/hw/pci/pci_ids.h +++ b/include/hw/pci/pci_ids.h @@ -255,7 +255,7 @@ #define PCI_DEVICE_ID_INTEL_82801I_EHCI2 0x293c #define PCI_DEVICE_ID_INTEL_82599_SFP_VF 0x10ed -#define PCI_DEVICE_ID_INTEL_Q35_MCH 0x29c0 +#define PCI_DEVICE_ID_INTEL_P35_MCH 0x29c0 #define PCI_VENDOR_ID_XEN 0x5853 #define PCI_DEVICE_ID_XEN_PLATFORM 0x0001 From patchwork Tue Oct 30 19:50:05 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Paolo Bonzini X-Patchwork-Id: 10661473 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 7BF7713A4 for ; Tue, 30 Oct 2018 19:52:10 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 697B02AB4C for ; Tue, 30 Oct 2018 19:52:10 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 5D59D2ABB1; Tue, 30 Oct 2018 19:52:10 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-7.7 required=2.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED,MAILING_LIST_MULTI,RCVD_IN_DNSWL_HI autolearn=ham version=3.3.1 Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (No client certificate requested) by mail.wl.linuxfoundation.org (Postfix) with ESMTPS id 4A6C42ABC2 for ; Tue, 30 Oct 2018 19:52:09 +0000 (UTC) Received: from localhost ([::1]:55220 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gHa3c-0000ll-JJ for patchwork-qemu-devel@patchwork.kernel.org; Tue, 30 Oct 2018 15:52:08 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:48220) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gHa28-00082N-VI for qemu-devel@nongnu.org; Tue, 30 Oct 2018 15:50:38 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1gHa25-0002Hd-Kn for qemu-devel@nongnu.org; Tue, 30 Oct 2018 15:50:36 -0400 Received: from mail-wm1-x341.google.com ([2a00:1450:4864:20::341]:53189) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1gHa25-00028v-Aj for qemu-devel@nongnu.org; Tue, 30 Oct 2018 15:50:33 -0400 Received: by mail-wm1-x341.google.com with SMTP id 189-v6so12999030wmw.2 for ; Tue, 30 Oct 2018 12:50:25 -0700 (PDT) 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=SRlNRZ2thMrarwqUS0KQ0EeGrvMM+RsYU/EyhnuFhfI=; b=r3mYwh2hVRdbaLel8pOH+tWEp3DulbVJov51BgrnvA7YYmqdYe4Me3u4QPoFkvMotL t/T+daNnYZ5dTGr54a7p7tQ2RIBbvTPGYUj6+UhqHF8vBfVSyk3aURFIz0Ft3jOdTlf3 d0fdD52hVyuiUWBLSICi57hqL5N+UCLQRgJX3n05VgKBMQ+00qoFh+CKqQfTQa1aPoID lZLdC8bSzzB6TcnS5dDJ0bH3IoK3Lv/HjcfHGi2R/ERaoQUTjxKC4M8IIMTtf4kq6ovw qlCWzdmSF2NYV2boblKUXKZ2wQLLkWq5vL5oes/MR1QqSBfLyZLWXX1zzoHyGh3bMTmp 0vDQ== 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=SRlNRZ2thMrarwqUS0KQ0EeGrvMM+RsYU/EyhnuFhfI=; b=cYwh3dN8JMnPgfKLbdYQkRWkTCDZrE8WvT5A9/Jt5ADFy/+Qp8JNFCQ0qJh5k/Nww7 PL8RmNlvSF4iBdgnlsU+7SGSUlmbywq+hALq1OUJ6c3kgVQBrVeTZFcmx3cB4qy4MBj/ i0ObAaF/e/gAkhpWPG31jkPQyqsfDBRP4Z0ixy9VJgSrz0usuB9lhfnsgZslWVhhluuV VlIIesX1ORSZ/bJFpli9tak3uuUJr3mQrc6Yf72mqm6t0tdL9wrRygrAkexeYf3S0VoG qP4bwMJG4UDU0O5QLVjDwkd4yyZf/52fGS0fFnrG2Cv+86w1VeW8ZPooVHDsYdN2ImIu ZgFA== X-Gm-Message-State: AGRZ1gLPctcfWJdxiXUOl8ZxrEUr6T8TVUPLJ9dc40LPhSJkbUYK0Fsw nbx+CNnoumFJqigF+m1U+YAGJDjY X-Google-Smtp-Source: AJdET5cLoMyGEpJrU8d4bo74xqOe9/bI+iJQd9gn+w3aLASsHREE1cjiJnV5W4UvYzt2XlY/3+eZFA== X-Received: by 2002:a1c:8cd2:: with SMTP id o201-v6mr51861wmd.65.1540929024017; Tue, 30 Oct 2018 12:50:24 -0700 (PDT) Received: from 640k.lan ([93.56.166.5]) by smtp.gmail.com with ESMTPSA id g76-v6sm17480094wmd.25.2018.10.30.12.50.19 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 30 Oct 2018 12:50:23 -0700 (PDT) From: Paolo Bonzini To: qemu-devel@nongnu.org Date: Tue, 30 Oct 2018 20:50:05 +0100 Message-Id: <1540929011-19894-5-git-send-email-pbonzini@redhat.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1540929011-19894-1-git-send-email-pbonzini@redhat.com> References: <1540929011-19894-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 Subject: [Qemu-devel] [PULL 04/10] MAINTAINERS: remove or downgrade myself to reviewer from some subsystems X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Laurent Vivier , Thomas Huth , Gerd Hoffmann , =?utf-8?q?Marc-Andr=C3=A9_Lureau?= Errors-To: qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Sender: "Qemu-devel" X-Virus-Scanned: ClamAV using ClamSMTP Other people are doing a much better work than myself at handling some subsystems. For those files it is better if I downgrade myself to reviewer or recognize that I am not actually doing any work there. Cc: Daniel P. Berrange Cc: Gerd Hoffmann Cc: Eric Blake Cc: Thomas Huth Cc: Laurent Vivier Cc: Marc-André Lureau Signed-off-by: Paolo Bonzini --- MAINTAINERS | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/MAINTAINERS b/MAINTAINERS index d794bd7..e67b025 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -105,9 +105,9 @@ Guest CPU cores (TCG): ---------------------- Overall L: qemu-devel@nongnu.org -M: Paolo Bonzini M: Peter Crosthwaite M: Richard Henderson +R: Paolo Bonzini S: Maintained F: cpus.c F: exec.c @@ -1134,7 +1134,8 @@ F: hw/pci-host/ppce500.c F: hw/net/fsl_etsec/ Character devices -M: Paolo Bonzini +M: Marc-André Lureau +R: Paolo Bonzini S: Odd Fixes F: hw/char/ @@ -1519,8 +1520,8 @@ T: git git://github.com/famz/qemu.git bitmaps T: git git://github.com/jnsnow/qemu.git bitmaps Character device backends -M: Paolo Bonzini M: Marc-André Lureau +R: Paolo Bonzini S: Maintained F: chardev/ F: include/chardev/ @@ -1753,9 +1754,9 @@ F: tests/qmp-cmd-test.c T: git git://repo.or.cz/qemu/armbru.git qapi-next qtest -M: Paolo Bonzini M: Thomas Huth M: Laurent Vivier +R: Paolo Bonzini S: Maintained F: qtest.c F: tests/libqtest.* @@ -1862,7 +1863,6 @@ F: tests/test-io-* Sockets M: Daniel P. Berrange M: Gerd Hoffmann -M: Paolo Bonzini S: Maintained F: include/qemu/sockets.h F: util/qemu-sockets.c @@ -2051,13 +2051,12 @@ M: Ronnie Sahlberg M: Paolo Bonzini M: Peter Lieven L: qemu-block@nongnu.org -S: Supported +S: Odd Fixes F: block/iscsi.c F: block/iscsi-opts.c Network Block Device (NBD) M: Eric Blake -M: Paolo Bonzini L: qemu-block@nongnu.org S: Maintained F: block/nbd* From patchwork Tue Oct 30 19:50:06 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Paolo Bonzini X-Patchwork-Id: 10661477 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id D246513BF for ; Tue, 30 Oct 2018 19:53:21 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id BF70D2AB4C for ; Tue, 30 Oct 2018 19:53:21 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id B0A7B2ABC2; Tue, 30 Oct 2018 19:53:21 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-7.7 required=2.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED,MAILING_LIST_MULTI,RCVD_IN_DNSWL_HI autolearn=ham version=3.3.1 Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (No client certificate requested) by mail.wl.linuxfoundation.org (Postfix) with ESMTPS id 3C35F2AB4C for ; Tue, 30 Oct 2018 19:53:21 +0000 (UTC) Received: from localhost ([::1]:55222 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gHa4m-00033j-5O for patchwork-qemu-devel@patchwork.kernel.org; Tue, 30 Oct 2018 15:53:20 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:48222) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gHa28-00082P-VT for qemu-devel@nongnu.org; Tue, 30 Oct 2018 15:50:37 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1gHa25-0002Hl-M9 for qemu-devel@nongnu.org; Tue, 30 Oct 2018 15:50:36 -0400 Received: from mail-wr1-x431.google.com ([2a00:1450:4864:20::431]:39022) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1gHa25-0002Dt-CX for qemu-devel@nongnu.org; Tue, 30 Oct 2018 15:50:33 -0400 Received: by mail-wr1-x431.google.com with SMTP id r10-v6so13975942wrv.6 for ; Tue, 30 Oct 2018 12:50:26 -0700 (PDT) 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=Uw0478a/NZuYiRTAYy5+GpCx7zq4hCEZS8oy5z4+WYw=; b=bCv1sp2OA6lFGutGuuxDvlCIu1kMIrE2gScy9xYUSrgfl4Bff6YrqCu09vHRmz3Mhj FY+lJ2e2TdzmhHYMJLaNfdHoBlkG7WhN0u2hduJuBNbpm67RZoE/LfF/XmLqfxLS10Y/ mFC73o/eBBt8EagMzKvLuFgMad8Fg/pSWvBlgN8Zqpz7Im7HK6nF/vJlutpTXj3JUE9g n/RZIqlexEOHxBb9dLsMz2fGCVAs2nH+nvjwN3g2vH8UQTMFNYgnAQuHdFOM+VWnmo4P zoJtDGIj39G2ZwxpaZmfxcQp0b+/yG7xMOyn+Q8OfHAg1Mnlxaj8+xQBlDcBHQJx/zlp NbOw== 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=Uw0478a/NZuYiRTAYy5+GpCx7zq4hCEZS8oy5z4+WYw=; b=Wzsuu9pW0ei1/sKRGksM9BNxxIAFdpYC8d/6d0WYesn4B2GiTUk+cOL4s72RZJxCAc DQGoo4l/V3S3b9sUj0LVJsfr4WPO5QLzk/+c7nXcgRDbL7e3QJ5ttKWPZ0vsNZG7EqVZ P5GbdvhGX+0jrV/+0U4ZuNiHXkg4YpEJ4A4R5i0XeFYn1nGP7deQzf2/ZkFlkbt+Oa0z QsHQRgaHRHegAwq9wF6Fv4oRVc6/UbqFm5klCtXCBHwan5UoaQLXKEDn8mFBUbvzxVlL 1c6BJVbWJKI8FebHnOfYTepHVoIi49Z81JuJuKISBZYnFd/uxtDWrAi3crEDWDKiYyG2 A6gw== X-Gm-Message-State: AGRZ1gJeQiBdimmNPxoTn/h9gmQj02+fVUUrELt0Yk3SQ38m3fC9Q+JH mv7i299om6ydyl1zYp/jOIJ3RLHP X-Google-Smtp-Source: AJdET5f+6qiYGr4FM5aKv8CfEUas7xsziKkn2+WIfYBs4Bi6UT6RsbBxej4OSUIPjUG5u+za5/Ua8g== X-Received: by 2002:a05:6000:10c4:: with SMTP id b4mr69237wrx.135.1540929025567; Tue, 30 Oct 2018 12:50:25 -0700 (PDT) Received: from 640k.lan ([93.56.166.5]) by smtp.gmail.com with ESMTPSA id g76-v6sm17480094wmd.25.2018.10.30.12.50.24 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 30 Oct 2018 12:50:24 -0700 (PDT) From: Paolo Bonzini To: qemu-devel@nongnu.org Date: Tue, 30 Oct 2018 20:50:06 +0100 Message-Id: <1540929011-19894-6-git-send-email-pbonzini@redhat.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1540929011-19894-1-git-send-email-pbonzini@redhat.com> References: <1540929011-19894-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 Subject: [Qemu-devel] [PULL 05/10] target/i386: Clear RF on SYSCALL instruction X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Rudolf Marek , Roman Kapl Errors-To: qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Sender: "Qemu-devel" X-Virus-Scanned: ClamAV using ClamSMTP From: Rudolf Marek Fix the SYSCALL instruction in 64-bit (long mode). The RF flag should be cleared in R11 as well as in the RFLAGS. Intel and AMD CPUs behave same. AMD has this documented in the APM vol 3. Signed-off-by: Roman Kapl Signed-off-by: Rudolf Marek Message-Id: <20181019122449.26387-1-rka@sysgo.com> Signed-off-by: Paolo Bonzini --- target/i386/seg_helper.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/target/i386/seg_helper.c b/target/i386/seg_helper.c index 33714bc..63e265c 100644 --- a/target/i386/seg_helper.c +++ b/target/i386/seg_helper.c @@ -991,11 +991,11 @@ void helper_syscall(CPUX86State *env, int next_eip_addend) int code64; env->regs[R_ECX] = env->eip + next_eip_addend; - env->regs[11] = cpu_compute_eflags(env); + env->regs[11] = cpu_compute_eflags(env) & ~RF_MASK; code64 = env->hflags & HF_CS64_MASK; - env->eflags &= ~env->fmask; + env->eflags &= ~(env->fmask | RF_MASK); cpu_load_eflags(env, env->eflags, 0); cpu_x86_load_seg_cache(env, R_CS, selector & 0xfffc, 0, 0xffffffff, From patchwork Tue Oct 30 19:50:07 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Paolo Bonzini X-Patchwork-Id: 10661485 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 1E88D1734 for ; Tue, 30 Oct 2018 19:57:56 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 0A2442ABC2 for ; Tue, 30 Oct 2018 19:57:56 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id EF83C2ABC5; Tue, 30 Oct 2018 19:57:55 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-7.7 required=2.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED,MAILING_LIST_MULTI,RCVD_IN_DNSWL_HI autolearn=ham version=3.3.1 Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (No client certificate requested) by mail.wl.linuxfoundation.org (Postfix) with ESMTPS id 32C7F2ABC2 for ; Tue, 30 Oct 2018 19:57:55 +0000 (UTC) Received: from localhost ([::1]:55246 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gHa9C-0006cJ-L4 for patchwork-qemu-devel@patchwork.kernel.org; Tue, 30 Oct 2018 15:57:54 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:48221) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gHa28-00082O-VP for qemu-devel@nongnu.org; Tue, 30 Oct 2018 15:50:38 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1gHa26-0002IZ-AC for qemu-devel@nongnu.org; Tue, 30 Oct 2018 15:50:36 -0400 Received: from mail-wm1-x343.google.com ([2a00:1450:4864:20::343]:53799) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1gHa26-0002GJ-0j for qemu-devel@nongnu.org; Tue, 30 Oct 2018 15:50:34 -0400 Received: by mail-wm1-x343.google.com with SMTP id v24-v6so3155240wmh.3 for ; Tue, 30 Oct 2018 12:50:31 -0700 (PDT) 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=Gc1z+R5p9nu4b50hsOyd0BA3dM1YQdCwZMOFJPDkMmA=; b=gGk1DRfYltTz8Y/9H5x5jCVzDWxgZXWJGIQQt3jru3IKTa6Lti3l8YBe5s6YDQCVb4 GlG8cZqzTFAo655LjdP40zMrN0qgXDmxTfyE6fIj9nMUPmEoErhbx9WEviBxBvVV39kL Qu3O7qK1dz2XJxXZZIuLFawfvLEkMCrxiVjEo6jHVHOzP0XtdylGb2MGBLWLzhQgavNT Bq1CHYduVsqfa0jlXDQUqv42VdaTjIa0CBKAdZfig7pY0SKAQbmIjwpoMg5TNAMrFF1h dtsi2+Pj8cSOPIykag4uPVACUExQ+FBP31nqatsoWwEMmwAudgrc7YtMWjq5/EZxyaQW xFsw== 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=Gc1z+R5p9nu4b50hsOyd0BA3dM1YQdCwZMOFJPDkMmA=; b=L3bggHgISO/XrbAGrS4FyI5YmMQ63TOmWQ4SX0pQipZKShhJbXZ4tKKd4kOMs79E43 JMWMjnMSbJxC6flqbHajc7mk8YqYJkPCJRQ1YxnLlVe3m0Ifzl4sjwHSbf+UOjZ75563 USqvS6LEpLs2D04JbmQKhCMbehofDYCebw/GLfiqGHoFnGOFp0IgSHCUnC9wMxKMjBtB hl72MjzurjmokYqYwjiHLzJ96/r8LlaLr8A2E6U+0OXbNdqLGNjM6lUtNr9w/LbHmfFm yPVtR+wcPGkEnizK/UjHFEwsZ/JtCZogA4WCKyF7dwFuP6uHKBFxzBYvAX9c4oUBpmKB IOZw== X-Gm-Message-State: AGRZ1gI5zniJTiKz+4yB7kKzb0lsEgKpX5UOlgDa5yqPmW2GA4LKXg+6 z68Ch/4fYF1H2KwCodIVcp6iGcDt X-Google-Smtp-Source: AJdET5eJD6/NvVi7zjcdjk2htjLB6roEzrcwq05sKJ6WueHquSUjsIv/YN4AZZUR6gleDBqDvdyvpw== X-Received: by 2002:a1c:b7c4:: with SMTP id h187-v6mr75845wmf.70.1540929029981; Tue, 30 Oct 2018 12:50:29 -0700 (PDT) Received: from 640k.lan ([93.56.166.5]) by smtp.gmail.com with ESMTPSA id g76-v6sm17480094wmd.25.2018.10.30.12.50.25 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 30 Oct 2018 12:50:29 -0700 (PDT) From: Paolo Bonzini To: qemu-devel@nongnu.org Date: Tue, 30 Oct 2018 20:50:07 +0100 Message-Id: <1540929011-19894-7-git-send-email-pbonzini@redhat.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1540929011-19894-1-git-send-email-pbonzini@redhat.com> References: <1540929011-19894-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 Subject: [Qemu-devel] [PULL 06/10] memory: learn about non-volatile memory region X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: guangrong.xiao@linux.intel.com, xiaoguangrong.eric@gmail.com, mst@redhat.com, dgilbert@redhat.com, imammedo@redhat.com, pbonzini@redhat.com, =?utf-8?q?Marc-Andr=C3=A9_Lureau?= Errors-To: qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Sender: "Qemu-devel" X-Virus-Scanned: ClamAV using ClamSMTP From: Marc-André Lureau Add a new flag to mark memory region that are used as non-volatile, by NVDIMM for example. That bit is propagated down to the flat view, and reflected in HMP info mtree with a "nv-" prefix on the memory type. This way, guest_phys_blocks_region_add() can skip the NV memory regions for dumps and TCG memory clear in a following patch. Cc: dgilbert@redhat.com Cc: imammedo@redhat.com Cc: pbonzini@redhat.com Cc: guangrong.xiao@linux.intel.com Cc: mst@redhat.com Cc: xiaoguangrong.eric@gmail.com Signed-off-by: Marc-André Lureau Message-Id: <20181003114454.5662-2-marcandre.lureau@redhat.com> Signed-off-by: Paolo Bonzini --- docs/devel/migration.rst | 1 + include/exec/memory.h | 25 +++++++++++++++++++++++++ memory.c | 45 +++++++++++++++++++++++++++++++++++---------- 3 files changed, 61 insertions(+), 10 deletions(-) diff --git a/docs/devel/migration.rst b/docs/devel/migration.rst index 6875707..e7658ab 100644 --- a/docs/devel/migration.rst +++ b/docs/devel/migration.rst @@ -435,6 +435,7 @@ Examples of such memory API functions are: - memory_region_add_subregion() - memory_region_del_subregion() - memory_region_set_readonly() + - memory_region_set_nonvolatile() - memory_region_set_enabled() - memory_region_set_address() - memory_region_set_alias_offset() diff --git a/include/exec/memory.h b/include/exec/memory.h index d0c7f0d..8e61450 100644 --- a/include/exec/memory.h +++ b/include/exec/memory.h @@ -355,6 +355,7 @@ struct MemoryRegion { bool ram; bool subpage; bool readonly; /* For RAM regions */ + bool nonvolatile; bool rom_device; bool flush_coalesced_mmio; bool global_locking; @@ -480,6 +481,7 @@ static inline FlatView *address_space_to_flatview(AddressSpace *as) * @offset_within_address_space: the address of the first byte of the section * relative to the region's address space * @readonly: writes to this section are ignored + * @nonvolatile: this section is non-volatile */ struct MemoryRegionSection { MemoryRegion *mr; @@ -488,6 +490,7 @@ struct MemoryRegionSection { Int128 size; hwaddr offset_within_address_space; bool readonly; + bool nonvolatile; }; /** @@ -1170,6 +1173,17 @@ static inline bool memory_region_is_rom(MemoryRegion *mr) return mr->ram && mr->readonly; } +/** + * memory_region_is_nonvolatile: check whether a memory region is non-volatile + * + * Returns %true is a memory region is non-volatile memory. + * + * @mr: the memory region being queried + */ +static inline bool memory_region_is_nonvolatile(MemoryRegion *mr) +{ + return mr->nonvolatile; +} /** * memory_region_get_fd: Get a file descriptor backing a RAM memory region. @@ -1342,6 +1356,17 @@ void memory_region_reset_dirty(MemoryRegion *mr, hwaddr addr, void memory_region_set_readonly(MemoryRegion *mr, bool readonly); /** + * memory_region_set_nonvolatile: Turn a memory region non-volatile + * + * Allows a memory region to be marked as non-volatile. + * only useful on RAM regions. + * + * @mr: the region being updated. + * @nonvolatile: whether rhe region is to be non-volatile. + */ +void memory_region_set_nonvolatile(MemoryRegion *mr, bool nonvolatile); + +/** * memory_region_rom_device_set_romd: enable/disable ROMD mode * * Allows a ROM device (initialized with memory_region_init_rom_device() to diff --git a/memory.c b/memory.c index 51204aa..d14c6de 100644 --- a/memory.c +++ b/memory.c @@ -216,6 +216,7 @@ struct FlatRange { uint8_t dirty_log_mask; bool romd_mode; bool readonly; + bool nonvolatile; }; #define FOR_EACH_FLAT_RANGE(var, view) \ @@ -231,6 +232,7 @@ section_from_flat_range(FlatRange *fr, FlatView *fv) .size = fr->addr.size, .offset_within_address_space = int128_get64(fr->addr.start), .readonly = fr->readonly, + .nonvolatile = fr->nonvolatile, }; } @@ -240,7 +242,8 @@ static bool flatrange_equal(FlatRange *a, FlatRange *b) && addrrange_equal(a->addr, b->addr) && a->offset_in_region == b->offset_in_region && a->romd_mode == b->romd_mode - && a->readonly == b->readonly; + && a->readonly == b->readonly + && a->nonvolatile == b->nonvolatile; } static FlatView *flatview_new(MemoryRegion *mr_root) @@ -312,7 +315,8 @@ static bool can_merge(FlatRange *r1, FlatRange *r2) int128_make64(r2->offset_in_region)) && r1->dirty_log_mask == r2->dirty_log_mask && r1->romd_mode == r2->romd_mode - && r1->readonly == r2->readonly; + && r1->readonly == r2->readonly + && r1->nonvolatile == r2->nonvolatile; } /* Attempt to simplify a view by merging adjacent ranges */ @@ -592,7 +596,8 @@ static void render_memory_region(FlatView *view, MemoryRegion *mr, Int128 base, AddrRange clip, - bool readonly) + bool readonly, + bool nonvolatile) { MemoryRegion *subregion; unsigned i; @@ -608,6 +613,7 @@ static void render_memory_region(FlatView *view, int128_addto(&base, int128_make64(mr->addr)); readonly |= mr->readonly; + nonvolatile |= mr->nonvolatile; tmp = addrrange_make(base, mr->size); @@ -620,13 +626,15 @@ static void render_memory_region(FlatView *view, if (mr->alias) { int128_subfrom(&base, int128_make64(mr->alias->addr)); int128_subfrom(&base, int128_make64(mr->alias_offset)); - render_memory_region(view, mr->alias, base, clip, readonly); + render_memory_region(view, mr->alias, base, clip, + readonly, nonvolatile); return; } /* Render subregions in priority order. */ QTAILQ_FOREACH(subregion, &mr->subregions, subregions_link) { - render_memory_region(view, subregion, base, clip, readonly); + render_memory_region(view, subregion, base, clip, + readonly, nonvolatile); } if (!mr->terminates) { @@ -641,6 +649,7 @@ static void render_memory_region(FlatView *view, fr.dirty_log_mask = memory_region_get_dirty_log_mask(mr); fr.romd_mode = mr->romd_mode; fr.readonly = readonly; + fr.nonvolatile = nonvolatile; /* Render the region itself into any gaps left by the current view. */ for (i = 0; i < view->nr && int128_nz(remain); ++i) { @@ -726,7 +735,8 @@ static FlatView *generate_memory_topology(MemoryRegion *mr) if (mr) { render_memory_region(view, mr, int128_zero(), - addrrange_make(int128_zero(), int128_2_64()), false); + addrrange_make(int128_zero(), int128_2_64()), + false, false); } flatview_simplify(view); @@ -2039,6 +2049,16 @@ void memory_region_set_readonly(MemoryRegion *mr, bool readonly) } } +void memory_region_set_nonvolatile(MemoryRegion *mr, bool nonvolatile) +{ + if (mr->nonvolatile != nonvolatile) { + memory_region_transaction_begin(); + mr->nonvolatile = nonvolatile; + memory_region_update_pending |= mr->enabled; + memory_region_transaction_commit(); + } +} + void memory_region_rom_device_set_romd(MemoryRegion *mr, bool romd_mode) { if (mr->romd_mode != romd_mode) { @@ -2489,6 +2509,7 @@ static MemoryRegionSection memory_region_find_rcu(MemoryRegion *mr, ret.size = range.size; ret.offset_within_address_space = int128_get64(range.start); ret.readonly = fr->readonly; + ret.nonvolatile = fr->nonvolatile; return ret; } @@ -2839,10 +2860,11 @@ static void mtree_print_mr(fprintf_function mon_printf, void *f, QTAILQ_INSERT_TAIL(alias_print_queue, ml, mrqueue); } mon_printf(f, TARGET_FMT_plx "-" TARGET_FMT_plx - " (prio %d, %s): alias %s @%s " TARGET_FMT_plx + " (prio %d, %s%s): alias %s @%s " TARGET_FMT_plx "-" TARGET_FMT_plx "%s", cur_start, cur_end, mr->priority, + mr->nonvolatile ? "nv-" : "", memory_region_type((MemoryRegion *)mr), memory_region_name(mr), memory_region_name(mr->alias), @@ -2854,9 +2876,10 @@ static void mtree_print_mr(fprintf_function mon_printf, void *f, } } else { mon_printf(f, - TARGET_FMT_plx "-" TARGET_FMT_plx " (prio %d, %s): %s%s", + TARGET_FMT_plx "-" TARGET_FMT_plx " (prio %d, %s%s): %s%s", cur_start, cur_end, mr->priority, + mr->nonvolatile ? "nv-" : "", memory_region_type((MemoryRegion *)mr), memory_region_name(mr), mr->enabled ? "" : " [disabled]"); @@ -2941,19 +2964,21 @@ static void mtree_print_flatview(gpointer key, gpointer value, mr = range->mr; if (range->offset_in_region) { p(f, MTREE_INDENT TARGET_FMT_plx "-" - TARGET_FMT_plx " (prio %d, %s): %s @" TARGET_FMT_plx, + TARGET_FMT_plx " (prio %d, %s%s): %s @" TARGET_FMT_plx, int128_get64(range->addr.start), int128_get64(range->addr.start) + MR_SIZE(range->addr.size), mr->priority, + range->nonvolatile ? "nv-" : "", range->readonly ? "rom" : memory_region_type(mr), memory_region_name(mr), range->offset_in_region); } else { p(f, MTREE_INDENT TARGET_FMT_plx "-" - TARGET_FMT_plx " (prio %d, %s): %s", + TARGET_FMT_plx " (prio %d, %s%s): %s", int128_get64(range->addr.start), int128_get64(range->addr.start) + MR_SIZE(range->addr.size), mr->priority, + range->nonvolatile ? "nv-" : "", range->readonly ? "rom" : memory_region_type(mr), memory_region_name(mr)); } From patchwork Tue Oct 30 19:50:08 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Paolo Bonzini X-Patchwork-Id: 10661475 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 85D2613BF for ; Tue, 30 Oct 2018 19:52:15 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 728E32AB4C for ; Tue, 30 Oct 2018 19:52:15 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 6665B2ABC2; Tue, 30 Oct 2018 19:52:15 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-7.7 required=2.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED,MAILING_LIST_MULTI,RCVD_IN_DNSWL_HI autolearn=ham version=3.3.1 Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (No client certificate requested) by mail.wl.linuxfoundation.org (Postfix) with ESMTPS id 1AB4E2AB4C for ; Tue, 30 Oct 2018 19:52:15 +0000 (UTC) Received: from localhost ([::1]:55221 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gHa3i-0000pl-FU for patchwork-qemu-devel@patchwork.kernel.org; Tue, 30 Oct 2018 15:52:14 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:48219) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gHa28-00082M-VK for qemu-devel@nongnu.org; Tue, 30 Oct 2018 15:50:38 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1gHa26-0002Hy-37 for qemu-devel@nongnu.org; Tue, 30 Oct 2018 15:50:36 -0400 Received: from mail-wm1-x333.google.com ([2a00:1450:4864:20::333]:51866) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1gHa25-0002Ga-Od for qemu-devel@nongnu.org; Tue, 30 Oct 2018 15:50:33 -0400 Received: by mail-wm1-x333.google.com with SMTP id w7-v6so1953841wmc.1 for ; Tue, 30 Oct 2018 12:50:31 -0700 (PDT) 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=MdH4CUsSXr7c+5WZOlEzQf04rUj140TZnFmaZO/nswQ=; b=bOQFswOCskte4Wi2YVDHxuDBI525PcYCh0fu5LK6FZOnmQwdzncyC0dsklqKx9K9fk nnhTNoYkxzmIT+agTnUDBlJ/F0TAffY78lV8NSn7PTAXNZiRPSJzuBsasWiSnCcwLHaO C58Sq+hmeznTyUpVV6F4CM/MmQl3ycxhDCnD24ZDZ2b2/w5YGLjnBo/UxzCYUJ/z/Ldd PcOOAl6EGPSpR0dH7tNQt9IF12riayZxh16BwJNea5PJaofQ0Ib5Jw8BZK6LKnjWjHc2 cQFzq5CyYlj4nx6FgaxRD8CMdKGYke6AHqKpIgumyFT0VzHfJoAGU/KRi3qSBolTlIon oM+g== 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=MdH4CUsSXr7c+5WZOlEzQf04rUj140TZnFmaZO/nswQ=; b=NK0BBaMkNU4c2uN6SCPPSDZHuekOr8FwW7aMe5ClCTa2KtoKBKwav8Eqif6bJRwAni +6/BytZXZ90xScDUkn6A5sKWGGlGZKAH7K9Pa2nQXVVQUok+KWwMt8rMQVPRdciOY/7k R3C9x5QMEquuXXag7YEVbS8AiwefpR0s8WfaW33FIcR3RQ9kCuIjwDnT/H8gYHjaq5UL aCIEFK9czqcBIojQRPLY07ySQ3Gy6BGxvWXlf4fXEJ6zMc8o+1Xko/LDwXZPybicsgzB jWCllCxvVc6FybEpFHc5IeZ9Rjgv2cxYPEcZlyorOvkS/JWRJ5WI2a/x5+RB9g0z4PiN R4mQ== X-Gm-Message-State: AGRZ1gLIOVu95OZX5tXubkNgmvT3gIU8ktTwWE3GpbmgoSOFePiCqpX1 1awa7J+lpUr9zxUDN5pitBHAClpr X-Google-Smtp-Source: AJdET5fXJH+HcQwDMBjF8KwlwhoPuT5VcyQ3hCTdAmGKXGoUQwFdwPGUsSQadh6fFDJWIG72Zx64kA== X-Received: by 2002:a1c:2b03:: with SMTP id r3-v6mr47159wmr.131.1540929030633; Tue, 30 Oct 2018 12:50:30 -0700 (PDT) Received: from 640k.lan ([93.56.166.5]) by smtp.gmail.com with ESMTPSA id g76-v6sm17480094wmd.25.2018.10.30.12.50.30 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 30 Oct 2018 12:50:30 -0700 (PDT) From: Paolo Bonzini To: qemu-devel@nongnu.org Date: Tue, 30 Oct 2018 20:50:08 +0100 Message-Id: <1540929011-19894-8-git-send-email-pbonzini@redhat.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1540929011-19894-1-git-send-email-pbonzini@redhat.com> References: <1540929011-19894-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::333 Subject: [Qemu-devel] [PULL 07/10] nvdimm: set non-volatile on the memory region X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 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" X-Virus-Scanned: ClamAV using ClamSMTP From: Marc-André Lureau qemu-system-x86_64 -machine pc,nvdimm -m 2G,slots=4,maxmem=16G -enable-kvm -monitor stdio -object memory-backend-file,id=mem1,share=on,mem-path=/tmp/foo,size=1G -device nvdimm,id=nvdimm1,memdev=mem1 HMP info mtree command reflects the flag with "nv-" prefix on memory type: (qemu) info mtree 0000000100000000-000000013fffffff (prio 0, nv-i/o): alias nvdimm-memory @/objects/mem1 0000000000000000-000000003fffffff (qemu) info mtree -f 0000000100000000-000000013fffffff (prio 0, nv-ram): /objects/mem1 Signed-off-by: Marc-André Lureau Message-Id: <20181003114454.5662-3-marcandre.lureau@redhat.com> Signed-off-by: Paolo Bonzini --- hw/mem/nvdimm.c | 1 + 1 file changed, 1 insertion(+) diff --git a/hw/mem/nvdimm.c b/hw/mem/nvdimm.c index 49324f3..bf2adf5 100644 --- a/hw/mem/nvdimm.c +++ b/hw/mem/nvdimm.c @@ -116,6 +116,7 @@ static void nvdimm_prepare_memory_region(NVDIMMDevice *nvdimm, Error **errp) nvdimm->nvdimm_mr = g_new(MemoryRegion, 1); memory_region_init_alias(nvdimm->nvdimm_mr, OBJECT(dimm), "nvdimm-memory", mr, 0, pmem_size); + memory_region_set_nonvolatile(nvdimm->nvdimm_mr, true); nvdimm->nvdimm_mr->align = align; } From patchwork Tue Oct 30 19:50:09 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Paolo Bonzini X-Patchwork-Id: 10661471 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 7BE6B13A4 for ; Tue, 30 Oct 2018 19:52:09 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 6926A2ABB1 for ; Tue, 30 Oct 2018 19:52:09 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 592962AB4C; Tue, 30 Oct 2018 19:52:09 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-7.7 required=2.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED,MAILING_LIST_MULTI,RCVD_IN_DNSWL_HI autolearn=ham version=3.3.1 Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (No client certificate requested) by mail.wl.linuxfoundation.org (Postfix) with ESMTPS id E55A42AB4C for ; Tue, 30 Oct 2018 19:52:08 +0000 (UTC) Received: from localhost ([::1]:55219 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gHa3c-0000l5-41 for patchwork-qemu-devel@patchwork.kernel.org; Tue, 30 Oct 2018 15:52:08 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:48227) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gHa28-00082S-Vl for qemu-devel@nongnu.org; Tue, 30 Oct 2018 15:50:38 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1gHa26-0002If-Cz for qemu-devel@nongnu.org; Tue, 30 Oct 2018 15:50:36 -0400 Received: from mail-wm1-x329.google.com ([2a00:1450:4864:20::329]:54311) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1gHa26-0002HM-3A for qemu-devel@nongnu.org; Tue, 30 Oct 2018 15:50:34 -0400 Received: by mail-wm1-x329.google.com with SMTP id r63-v6so13004855wma.4 for ; Tue, 30 Oct 2018 12:50:33 -0700 (PDT) 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=bXc9Y5T20jd6/2diqrpXhroRAMQ4aJ+tu9EED2aPIn0=; b=mr/GQG5mvJbXLfTfE54sbP+T1a1Br+Jm5DneY0rnHxeIKMDRQHtS2n9fEBICxGiIxg JCbtltsACzuMjo3a5WeDhFAf2oboF9DYzb7L1y0obEAOohTUzwQbjNv0tYwFUJVk29Wz taJ1dm4e9Qgmh1b5OTHUlb2jI8Buw1MgECKPQY+9Va+iFoaDBYdInp7PbtbdhxYS4yLL Dx8HhSi8B2Uo3FinvM2HIYyqjrCqwNDFCryVPXF4qN8LQgWs1BFDe0QptHtLkPBQsbgI SfEGgwBvtdYYIEpoPsSFeOpiAW/WK+Gfj3N7dyZLvJnhrJL2xp7fY1ySnu87JxTZUBMn DPMQ== 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=bXc9Y5T20jd6/2diqrpXhroRAMQ4aJ+tu9EED2aPIn0=; b=TmV/cb6KJR7K9KtcHsxTrB9e6+CMT1O78RL2JNKIM8w04/xu0yO6ggNRDsVJO/LfMI yH0e+T3Jk6bPCjlpkMzgB/xepuGwxMrGobjOfuSDKkpFIImKcBMxeHHn5Ei/ggBMdulz pnVPxwkUOIFixjXU2W/xoBYs5+sBuOCz0TGYY4ZZhAiMZyy4bN7yz2Zl0ZOVcCy52E8J tiDFZ+chjez5Tjz25d5oTE45OCIDY4TN9xN7GiDevYDevK72BXP0sYwanHFFMWtvzQpG U4RiKRsrD4/36dQb6+fi2nxklI83uQvNFw+djD66PCEJo5VUWAoGYXExS+IaP19vMIBh KEQw== X-Gm-Message-State: AGRZ1gKzYz9XbevzacNMmLMxOIZCLUqyZqiQqWf7MLZEOJ12I1t/N+dC FJTZpnZLkkk6ft8eK4wLYfBFGrpz X-Google-Smtp-Source: AJdET5c9VnWXrbUtMyCMevanxfcIo6G6tiKM4tUf1fP/A4g8S7Cr0Jpohc5+gntVZao8/a0CJ214Hg== X-Received: by 2002:a1c:1984:: with SMTP id 126-v6mr64123wmz.7.1540929032468; Tue, 30 Oct 2018 12:50:32 -0700 (PDT) Received: from 640k.lan ([93.56.166.5]) by smtp.gmail.com with ESMTPSA id g76-v6sm17480094wmd.25.2018.10.30.12.50.30 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 30 Oct 2018 12:50:30 -0700 (PDT) From: Paolo Bonzini To: qemu-devel@nongnu.org Date: Tue, 30 Oct 2018 20:50:09 +0100 Message-Id: <1540929011-19894-9-git-send-email-pbonzini@redhat.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1540929011-19894-1-git-send-email-pbonzini@redhat.com> References: <1540929011-19894-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::329 Subject: [Qemu-devel] [PULL 08/10] memory-mapping: skip non-volatile memory regions in GuestPhysBlockList X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: =?utf-8?q?Marc-Andr=C3=A9_Lureau?= , lersek@redhat.com Errors-To: qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Sender: "Qemu-devel" X-Virus-Scanned: ClamAV using ClamSMTP From: Marc-André Lureau GuestPhysBlockList is currently used to produce dumps. Given the size and the typical usage of NVDIMM for storage, they are not a good idea to have in the dumps. We may want to have an extra dump option to include them. For now, skip non-volatile regions. The TCG memory clear function is going to use the GuestPhysBlockList as well, and will thus skip NVDIMM for similar reasons. Cc: lersek@redhat.com Signed-off-by: Marc-André Lureau Message-Id: <20181003114454.5662-4-marcandre.lureau@redhat.com> Signed-off-by: Paolo Bonzini --- memory_mapping.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/memory_mapping.c b/memory_mapping.c index 775466f..724dd0b 100644 --- a/memory_mapping.c +++ b/memory_mapping.c @@ -206,7 +206,8 @@ static void guest_phys_blocks_region_add(MemoryListener *listener, /* we only care about RAM */ if (!memory_region_is_ram(section->mr) || - memory_region_is_ram_device(section->mr)) { + memory_region_is_ram_device(section->mr) || + memory_region_is_nonvolatile(section->mr)) { return; } From patchwork Tue Oct 30 19:50:10 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Paolo Bonzini X-Patchwork-Id: 10661491 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 62CD515E9 for ; Tue, 30 Oct 2018 20:01:02 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 50A112A856 for ; Tue, 30 Oct 2018 20:01:02 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 424332A888; Tue, 30 Oct 2018 20:01:02 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-7.7 required=2.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED,MAILING_LIST_MULTI,RCVD_IN_DNSWL_HI autolearn=ham version=3.3.1 Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (No client certificate requested) by mail.wl.linuxfoundation.org (Postfix) with ESMTPS id F40D72A856 for ; Tue, 30 Oct 2018 20:01:00 +0000 (UTC) Received: from localhost ([::1]:55271 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gHaCB-0000SR-5l for patchwork-qemu-devel@patchwork.kernel.org; Tue, 30 Oct 2018 16:00:59 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:48306) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gHa2A-00083w-Ud for qemu-devel@nongnu.org; Tue, 30 Oct 2018 15:50:39 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1gHa29-0002Ma-Oa for qemu-devel@nongnu.org; Tue, 30 Oct 2018 15:50:38 -0400 Received: from mail-wr1-x435.google.com ([2a00:1450:4864:20::435]:41580) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1gHa29-0002KY-Em for qemu-devel@nongnu.org; Tue, 30 Oct 2018 15:50:37 -0400 Received: by mail-wr1-x435.google.com with SMTP id x12-v6so13961008wrw.8 for ; Tue, 30 Oct 2018 12:50:37 -0700 (PDT) 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=Pr6TH9qoRSEiPeLk5XmuoCRfHi8+xQW3Nmx+sfiS7pY=; b=GyU3wWBY54KsGeAyyMYw+GEC25mtuxMbOotxbCaOHX708N8fBxAH4RkVvnd2hAqHri Tahm+TAroAVF4ORZdIQjxj3aCnFLABNQYPndr+p3Gbh0HBx2mdM0UeCOYpz8I+5zj3RY xUm1KHYus3PQk5Zqre0IDqZYszBpNlUnXkRzicGQb0ghxTOH3pef7qAGzBMF0ss9ChZL LIYFolkvII4VcZbqWIWn04o9HUf/z5xz54Px69CZw3V3blpKLaBxkyqmUfbIwB/bgXQb x/PWc11/fel9gX2QfN3Ap/5FLetqKBO0A1OLtSLfgG5ZKj7eE0/DsogLX4nZRsA9jN5p 87zw== 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=Pr6TH9qoRSEiPeLk5XmuoCRfHi8+xQW3Nmx+sfiS7pY=; b=J4HeUeY6wlbvIUTHfz1iATpckyonc2IxtJ3l1L12rAB4xJHFaokxLczj+M+2I6tCsQ G8RcIqmcK7V8iUM4LNSITTfCqfgEp2J3BS+BnSxqY2qvLqv1/teWpV2n6HIFpL4tViyw I5FcJNXwMJTCi69rtgHtSswbeHQj8CSCbYVujxVNV/+CY67lQ60m6DQ3sBdwtN4wZSvg 8ia7Ccvout+Llt6BZCPYD6611AHh0xV2BVGTuA+NIYCRNcEv6yllrMpFF6ncz3MOAkv5 +K+llGzwr4F8PXfWw6sMQBBZ2lZYxGEBghlxdEJz9g3dbClhkodkLFM8dP0O+opr0743 rP7A== X-Gm-Message-State: AGRZ1gLmonGg2lnFYe5WsqHtsmHwhqmTV58dp0LCbQgMS0i/ArI5bgzB 3ksuK6ZAI5PJJSLeWkK2pkwG5abt X-Google-Smtp-Source: AJdET5f8Kz2yJHeElr3QiQWEwIMdLTmB78syHjx+itdMKpsmrBJoIQud3xuVhjp9xIskf8eZ2mt2bQ== X-Received: by 2002:adf:8b8f:: with SMTP id o15-v6mr70645wra.81.1540929035962; Tue, 30 Oct 2018 12:50:35 -0700 (PDT) Received: from 640k.lan ([93.56.166.5]) by smtp.gmail.com with ESMTPSA id g76-v6sm17480094wmd.25.2018.10.30.12.50.34 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 30 Oct 2018 12:50:35 -0700 (PDT) From: Paolo Bonzini To: qemu-devel@nongnu.org Date: Tue, 30 Oct 2018 20:50:10 +0100 Message-Id: <1540929011-19894-10-git-send-email-pbonzini@redhat.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1540929011-19894-1-git-send-email-pbonzini@redhat.com> References: <1540929011-19894-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::435 Subject: [Qemu-devel] [PULL 09/10] scripts/dump-guest-memory: Synchronize with guest_phys_blocks_region_add X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 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" X-Virus-Scanned: ClamAV using ClamSMTP Recent patches have removed ram_device and nonvolatile RAM from dump-guest-memory's output. Do the same for dumps that are extracted from a QEMU core file. Reviewed-by: Marc-André Lureau Signed-off-by: Paolo Bonzini Reviewed-by: Laszlo Ersek --- scripts/dump-guest-memory.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/scripts/dump-guest-memory.py b/scripts/dump-guest-memory.py index 5a857ce..f04697b 100644 --- a/scripts/dump-guest-memory.py +++ b/scripts/dump-guest-memory.py @@ -417,7 +417,9 @@ def get_guest_phys_blocks(): memory_region = flat_range["mr"].dereference() # we only care about RAM - if not memory_region["ram"]: + if not memory_region["ram"] \ + or memory_region["ram_device"] \ + or memory_region["nonvolatile"]: continue section_size = int128_get64(flat_range["addr"]["size"]) From patchwork Tue Oct 30 19:50:11 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Paolo Bonzini X-Patchwork-Id: 10661489 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id D8E8F13A4 for ; Tue, 30 Oct 2018 19:59:53 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id C58452A823 for ; Tue, 30 Oct 2018 19:59:53 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id B8C842A852; Tue, 30 Oct 2018 19:59:53 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-7.7 required=2.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED,MAILING_LIST_MULTI,RCVD_IN_DNSWL_HI autolearn=ham version=3.3.1 Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (No client certificate requested) by mail.wl.linuxfoundation.org (Postfix) with ESMTPS id 4DE992A823 for ; Tue, 30 Oct 2018 19:59:53 +0000 (UTC) Received: from localhost ([::1]:55255 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gHaB6-00083o-P0 for patchwork-qemu-devel@patchwork.kernel.org; Tue, 30 Oct 2018 15:59:52 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:48313) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gHa2B-00084D-Cg for qemu-devel@nongnu.org; Tue, 30 Oct 2018 15:50:40 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1gHa2A-0002NV-HE for qemu-devel@nongnu.org; Tue, 30 Oct 2018 15:50:39 -0400 Received: from mail-wr1-x444.google.com ([2a00:1450:4864:20::444]:33605) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1gHa2A-0002MN-7e for qemu-devel@nongnu.org; Tue, 30 Oct 2018 15:50:38 -0400 Received: by mail-wr1-x444.google.com with SMTP id u1-v6so14003950wrn.0 for ; Tue, 30 Oct 2018 12:50:38 -0700 (PDT) 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=OaEiRFoorDQ9iC1MAXlZbRKhGaEH4QOy9SLDxZ4Pcq8=; b=SQiCKn8+vHR+vRCahXmlKJ/fIgk/reCNlp1r697cP+dahfhH30UuiWdqNxkh09EnEo iVZRNTkuhBwQv5OYG/IEL8q7vWyUQMEVuK1D6t+L0JkIuUcYXX6WQ4SnbeqORvKjoQuk Q/Ong4T6cihzVePdGKD9T+gv9bRHzmqstBtZMAAdfO6ntdyQUtTvaweX+HQcGvBMK4rC qla3qc0kEulPKsFmn0y9JvlH5nJjkk3O4XldlIZbjTYQYo6jSXGcwwMFRUL/kN7fmYLX 6TA2gLqphbyyAf3EzCmQ3Yt5BEVBt+HyRL2OvyZ+LTEETdSoXbiYe6f7GW92lEqxoAXG olBw== 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=OaEiRFoorDQ9iC1MAXlZbRKhGaEH4QOy9SLDxZ4Pcq8=; b=I3PYuVg9RFYkMX0NvX9pXubbndggS9fpdaCjg9Iu/IzLSgzoXGSXmmG4YKVE7n/Qg1 g+kvwjg/wIKOQEjvYfOhCtbbBrsK9vYaEA58pPknQ55zBSKT4Hq5rOfXFOUEr6TQ7LRE S7NqTLugJXHt/2le3kDtWo0ZegfvJIPo7yx2NZeyjv7RXgKnnfM1cTbn9fHXLnNrX2JF d9zc7vB29SlXGgyKxqEAJfAi3Sqjf9g2bAKtpuK7md0aYxasVoz7x9+AOLSfdZYbT+Q9 64Uonfg/LciiQrqV7pwRos+fT/6HvaebWdCgH6vJzEV/y/v6LdmExjnYDuN4MqFvf65S 4ZWA== X-Gm-Message-State: AGRZ1gIYPx0HSiVQFzwkxPFaPLQ26RDbL/SESP3LlCrHd6lCZymjqbkV yPW5eHAHRYQVi+Bpv6N9Cjj6us8y X-Google-Smtp-Source: AJdET5eUetUAnct/GBzqI9N4kL9DrtX5zy3AwAkdTfNFsok0Hp+QemR4uVKS1WfCCN9eQ0HBmJEWiA== X-Received: by 2002:a5d:4b4c:: with SMTP id w12-v6mr69903wrs.85.1540929036822; Tue, 30 Oct 2018 12:50:36 -0700 (PDT) Received: from 640k.lan ([93.56.166.5]) by smtp.gmail.com with ESMTPSA id g76-v6sm17480094wmd.25.2018.10.30.12.50.35 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 30 Oct 2018 12:50:36 -0700 (PDT) From: Paolo Bonzini To: qemu-devel@nongnu.org Date: Tue, 30 Oct 2018 20:50:11 +0100 Message-Id: <1540929011-19894-11-git-send-email-pbonzini@redhat.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1540929011-19894-1-git-send-email-pbonzini@redhat.com> References: <1540929011-19894-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 Subject: [Qemu-devel] [PULL 10/10] lsi53c895a: check message length value is valid X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Prasad J Pandit Errors-To: qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Sender: "Qemu-devel" X-Virus-Scanned: ClamAV using ClamSMTP From: Prasad J Pandit While writing a message in 'lsi_do_msgin', message length value in 'msg_len' could be invalid due to an invalid migration stream. Add an assertion to avoid an out of bounds access, and reject the incoming migration data if it contains an invalid message length. Discovered by Deja vu Security. Reported by Oracle. Signed-off-by: Prasad J Pandit Message-Id: <20181026194314.18663-1-ppandit@redhat.com> Signed-off-by: Paolo Bonzini --- hw/scsi/lsi53c895a.c | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/hw/scsi/lsi53c895a.c b/hw/scsi/lsi53c895a.c index d1e6534..3f207f6 100644 --- a/hw/scsi/lsi53c895a.c +++ b/hw/scsi/lsi53c895a.c @@ -861,10 +861,11 @@ static void lsi_do_status(LSIState *s) static void lsi_do_msgin(LSIState *s) { - int len; + uint8_t len; trace_lsi_do_msgin(s->dbc, s->msg_len); s->sfbr = s->msg[0]; len = s->msg_len; + assert(len > 0 && len <= LSI_MAX_MSGIN_LEN); if (len > s->dbc) len = s->dbc; pci_dma_write(PCI_DEVICE(s), s->dnad, s->msg, len); @@ -1705,8 +1706,10 @@ static uint8_t lsi_reg_readb(LSIState *s, int offset) break; case 0x58: /* SBDL */ /* Some drivers peek at the data bus during the MSG IN phase. */ - if ((s->sstat1 & PHASE_MASK) == PHASE_MI) + if ((s->sstat1 & PHASE_MASK) == PHASE_MI) { + assert(s->msg_len > 0); return s->msg[0]; + } ret = 0; break; case 0x59: /* SBDL high */ @@ -2103,11 +2106,23 @@ static int lsi_pre_save(void *opaque) return 0; } +static int lsi_post_load(void *opaque, int version_id) +{ + LSIState *s = opaque; + + if (s->msg_len < 0 || s->msg_len > LSI_MAX_MSGIN_LEN) { + return -EINVAL; + } + + return 0; +} + static const VMStateDescription vmstate_lsi_scsi = { .name = "lsiscsi", .version_id = 0, .minimum_version_id = 0, .pre_save = lsi_pre_save, + .post_load = lsi_post_load, .fields = (VMStateField[]) { VMSTATE_PCI_DEVICE(parent_obj, LSIState),