From nobody Wed Apr 24 15:11:42 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zoho.com; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1496230239698557.3428745994113; Wed, 31 May 2017 04:30:39 -0700 (PDT) Received: from localhost ([::1]:58624 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dG1pm-00069R-0b for importer@patchew.org; Wed, 31 May 2017 07:30:38 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:37732) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dG1n9-0004Pm-RX for qemu-devel@nongnu.org; Wed, 31 May 2017 07:27:57 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1dG1n6-0001J2-NL for qemu-devel@nongnu.org; Wed, 31 May 2017 07:27:55 -0400 Received: from mx0a-001b2d01.pphosted.com ([148.163.156.1]:35132) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1dG1n6-0001Gw-Dw for qemu-devel@nongnu.org; Wed, 31 May 2017 07:27:52 -0400 Received: from pps.filterd (m0098404.ppops.net [127.0.0.1]) by mx0a-001b2d01.pphosted.com (8.16.0.20/8.16.0.20) with SMTP id v4VBPPxV087368 for ; Wed, 31 May 2017 07:27:51 -0400 Received: from e23smtp09.au.ibm.com (e23smtp09.au.ibm.com [202.81.31.142]) by mx0a-001b2d01.pphosted.com with ESMTP id 2asvxa8222-1 (version=TLSv1.2 cipher=AES256-SHA bits=256 verify=NOT) for ; Wed, 31 May 2017 07:27:51 -0400 Received: from localhost by e23smtp09.au.ibm.com with IBM ESMTP SMTP Gateway: Authorized Use Only! Violators will be prosecuted for from ; Wed, 31 May 2017 21:27:48 +1000 Received: from d23relay07.au.ibm.com (202.81.31.226) by e23smtp09.au.ibm.com (202.81.31.206) with IBM ESMTP SMTP Gateway: Authorized Use Only! Violators will be prosecuted; Wed, 31 May 2017 21:27:46 +1000 Received: from d23av04.au.ibm.com (d23av04.au.ibm.com [9.190.235.139]) by d23relay07.au.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id v4VBRbq066650270; Wed, 31 May 2017 21:27:45 +1000 Received: from d23av04.au.ibm.com (localhost [127.0.0.1]) by d23av04.au.ibm.com (8.14.4/8.14.4/NCO v10.0 AVout) with ESMTP id v4VBRBIN022562; Wed, 31 May 2017 21:27:12 +1000 Received: from bharata.in.ibm.com ([9.195.40.209]) by d23av04.au.ibm.com (8.14.4/8.14.4/NCO v10.0 AVin) with ESMTP id v4VBR7Tj021431; Wed, 31 May 2017 21:27:10 +1000 From: Bharata B Rao To: qemu-devel@nongnu.org Date: Wed, 31 May 2017 16:56:44 +0530 X-Mailer: git-send-email 2.7.4 In-Reply-To: <1496230005-12265-1-git-send-email-bharata@linux.vnet.ibm.com> References: <1496230005-12265-1-git-send-email-bharata@linux.vnet.ibm.com> X-TM-AS-MML: disable x-cbid: 17053111-0052-0000-0000-0000024ABE06 X-IBM-AV-DETECTION: SAVI=unused REMOTE=unused XFE=unused x-cbparentid: 17053111-0053-0000-0000-00000827C271 Message-Id: <1496230005-12265-2-git-send-email-bharata@linux.vnet.ibm.com> X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10432:, , definitions=2017-05-31_05:, , signatures=0 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 spamscore=0 suspectscore=3 malwarescore=0 phishscore=0 adultscore=0 bulkscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.0.1-1703280000 definitions=main-1705310213 X-detected-operating-system: by eggs.gnu.org: GNU/Linux 3.x [generic] [fuzzy] X-Received-From: 148.163.156.1 Subject: [Qemu-devel] [PATCH v4 1/2] spapr: Add a "no HPT" encoding to HTAB migration stream 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: rnsastry@linux.vnet.ibm.com, qemu-ppc@nongnu.org, sjitindarsingh@gmail.com, Bharata B Rao , sam.bobroff@au1.ibm.com, david@gibson.dropbear.id.au Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail: RSF_0 Z_629925259 SPT_0 Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Add a "no HPT" encoding (using value -1) to the HTAB migration stream (in the place of HPT size) when the guest doesn't allocate HPT. This will help the target side to match target HPT with the source HPT and thus enable successful migration. A few more fixes to enable TCG migration to work correctly are also included in this commit: - HTAB savevm handlers have a few asserts on kvm_enabled() when spapr->htab !=3D 0. Convert these into conditional checks as it is now possible to have no HTAB with TCG radix guests. - htab_save_setup() asserts for kvm_enabled() when spapr->htab !=3D 0. Remove this as we can't assert this for TCG radix guests. Suggested-by: David Gibson [no HPT encoding suggestion] Signed-off-by: Bharata B Rao --- hw/ppc/spapr.c | 31 +++++++++++++++++-------------- 1 file changed, 17 insertions(+), 14 deletions(-) diff --git a/hw/ppc/spapr.c b/hw/ppc/spapr.c index ab3aab1..b589ed4 100644 --- a/hw/ppc/spapr.c +++ b/hw/ppc/spapr.c @@ -1559,17 +1559,18 @@ static int htab_save_setup(QEMUFile *f, void *opaqu= e) { sPAPRMachineState *spapr =3D opaque; =20 - /* "Iteration" header */ - qemu_put_be32(f, spapr->htab_shift); + /* "Iteration" header: no-HPT or HPT size encoding */ + if (!spapr->htab_shift) { + qemu_put_be32(f, -1); + } else { + qemu_put_be32(f, spapr->htab_shift); + } =20 if (spapr->htab) { spapr->htab_save_index =3D 0; spapr->htab_first_pass =3D true; - } else { - assert(kvm_enabled()); } =20 - return 0; } =20 @@ -1714,9 +1715,7 @@ static int htab_save_iterate(QEMUFile *f, void *opaqu= e) /* Iteration header */ qemu_put_be32(f, 0); =20 - if (!spapr->htab) { - assert(kvm_enabled()); - + if (!spapr->htab && kvm_enabled()) { fd =3D get_htab_fd(spapr); if (fd < 0) { return fd; @@ -1748,7 +1747,7 @@ static int htab_save_complete(QEMUFile *f, void *opaq= ue) /* Iteration header */ qemu_put_be32(f, 0); =20 - if (!spapr->htab) { + if (!spapr->htab && kvm_enabled()) { int rc; =20 assert(kvm_enabled()); @@ -1793,6 +1792,12 @@ static int htab_load(QEMUFile *f, void *opaque, int = version_id) if (section_hdr) { Error *local_err =3D NULL; =20 + if (section_hdr =3D=3D -1) { + spapr_free_hpt(spapr); + unregister_savevm(NULL, "spapr/htab", spapr); + return 0; + } + /* First section gives the htab size */ spapr_reallocate_hpt(spapr, section_hdr, &local_err); if (local_err) { @@ -1802,9 +1807,7 @@ static int htab_load(QEMUFile *f, void *opaque, int v= ersion_id) return 0; } =20 - if (!spapr->htab) { - assert(kvm_enabled()); - + if (!spapr->htab && kvm_enabled()) { fd =3D kvmppc_get_htab_fd(true); if (fd < 0) { error_report("Unable to open fd to restore KVM hash table: %s", @@ -1843,7 +1846,7 @@ static int htab_load(QEMUFile *f, void *opaque, int v= ersion_id) memset(HPTE(spapr->htab, index + n_valid), 0, HASH_PTE_SIZE_64 * n_invalid); } - } else { + } else if (kvm_enabled()) { int rc; =20 assert(fd >=3D 0); @@ -1855,7 +1858,7 @@ static int htab_load(QEMUFile *f, void *opaque, int v= ersion_id) } } =20 - if (!spapr->htab) { + if (!spapr->htab && kvm_enabled()) { assert(fd >=3D 0); close(fd); } --=20 2.7.4 From nobody Wed Apr 24 15:11:42 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zoho.com; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1496230156699586.349264792891; Wed, 31 May 2017 04:29:16 -0700 (PDT) Received: from localhost ([::1]:58611 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dG1oR-0005Cb-3Y for importer@patchew.org; Wed, 31 May 2017 07:29:15 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:37752) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dG1nB-0004QG-HH for qemu-devel@nongnu.org; Wed, 31 May 2017 07:27:58 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1dG1n8-0001KT-5k for qemu-devel@nongnu.org; Wed, 31 May 2017 07:27:57 -0400 Received: from mx0a-001b2d01.pphosted.com ([148.163.156.1]:55669) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1dG1n7-0001Jc-SA for qemu-devel@nongnu.org; Wed, 31 May 2017 07:27:54 -0400 Received: from pps.filterd (m0098393.ppops.net [127.0.0.1]) by mx0a-001b2d01.pphosted.com (8.16.0.20/8.16.0.20) with SMTP id v4VBOZEG054372 for ; Wed, 31 May 2017 07:27:52 -0400 Received: from e23smtp05.au.ibm.com (e23smtp05.au.ibm.com [202.81.31.147]) by mx0a-001b2d01.pphosted.com with ESMTP id 2asub0md5r-1 (version=TLSv1.2 cipher=AES256-SHA bits=256 verify=NOT) for ; Wed, 31 May 2017 07:27:52 -0400 Received: from localhost by e23smtp05.au.ibm.com with IBM ESMTP SMTP Gateway: Authorized Use Only! Violators will be prosecuted for from ; Wed, 31 May 2017 21:27:50 +1000 Received: from d23relay07.au.ibm.com (202.81.31.226) by e23smtp05.au.ibm.com (202.81.31.211) with IBM ESMTP SMTP Gateway: Authorized Use Only! Violators will be prosecuted; Wed, 31 May 2017 21:27:48 +1000 Received: from d23av04.au.ibm.com (d23av04.au.ibm.com [9.190.235.139]) by d23relay07.au.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id v4VBRdGO43384996; Wed, 31 May 2017 21:27:47 +1000 Received: from d23av04.au.ibm.com (localhost [127.0.0.1]) by d23av04.au.ibm.com (8.14.4/8.14.4/NCO v10.0 AVout) with ESMTP id v4VBRDXD022582; Wed, 31 May 2017 21:27:14 +1000 Received: from bharata.in.ibm.com ([9.195.40.209]) by d23av04.au.ibm.com (8.14.4/8.14.4/NCO v10.0 AVin) with ESMTP id v4VBR7Tk021431; Wed, 31 May 2017 21:27:12 +1000 From: Bharata B Rao To: qemu-devel@nongnu.org Date: Wed, 31 May 2017 16:56:45 +0530 X-Mailer: git-send-email 2.7.4 In-Reply-To: <1496230005-12265-1-git-send-email-bharata@linux.vnet.ibm.com> References: <1496230005-12265-1-git-send-email-bharata@linux.vnet.ibm.com> X-TM-AS-MML: disable x-cbid: 17053111-0016-0000-0000-000002459741 X-IBM-AV-DETECTION: SAVI=unused REMOTE=unused XFE=unused x-cbparentid: 17053111-0017-0000-0000-000006C39B39 Message-Id: <1496230005-12265-3-git-send-email-bharata@linux.vnet.ibm.com> X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10432:, , definitions=2017-05-31_05:, , signatures=0 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 spamscore=0 suspectscore=1 malwarescore=0 phishscore=0 adultscore=0 bulkscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.0.1-1703280000 definitions=main-1705310213 X-detected-operating-system: by eggs.gnu.org: GNU/Linux 3.x [generic] [fuzzy] X-Received-From: 148.163.156.1 Subject: [Qemu-devel] [PATCH v4 2/2] spapr: Fix migration of Radix guests 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: rnsastry@linux.vnet.ibm.com, qemu-ppc@nongnu.org, sjitindarsingh@gmail.com, Bharata B Rao , sam.bobroff@au1.ibm.com, david@gibson.dropbear.id.au Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail: RSF_0 Z_629925259 SPT_0 Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Fix migration of radix guests by ensuring that we issue KVM_PPC_CONFIGURE_V3_MMU for radix case post migration. Reported-by: Nageswara R Sastry Signed-off-by: Bharata B Rao Reviewed-by: Suraj Jitindar Singh --- hw/ppc/spapr.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/hw/ppc/spapr.c b/hw/ppc/spapr.c index b589ed4..3f66a93 100644 --- a/hw/ppc/spapr.c +++ b/hw/ppc/spapr.c @@ -1445,6 +1445,18 @@ static int spapr_post_load(void *opaque, int version= _id) err =3D spapr_rtc_import_offset(&spapr->rtc, spapr->rtc_offset); } =20 + if (spapr->patb_entry) { + PowerPCCPU *cpu =3D POWERPC_CPU(first_cpu); + bool radix =3D !!(spapr->patb_entry & PATBE1_GR); + bool gtse =3D !!(cpu->env.spr[SPR_LPCR] & LPCR_GTSE); + + err =3D kvmppc_configure_v3_mmu(cpu, radix, gtse, spapr->patb_entr= y); + if (err) { + error_report("Process table config unsupported by the host"); + return -EINVAL; + } + } + return err; } =20 --=20 2.7.4