From nobody Sun May 19 19:10:24 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=reject dis=none) header.from=linux.ibm.com ARC-Seal: i=1; a=rsa-sha256; t=1682347744; cv=none; d=zohomail.com; s=zohoarc; b=FMXW5lNUg/bIX1f/cLqqa5gHo4rBSSUmsxy4N8nu5wVSs9U+en3J40Z7pHu2FErhLuSUvgUsk+tAuNNeono97+FxNf0XJOwjojaL8ldtMZFUXjuWLZBv2JxGAJ4vg2Q5m+B7IavWz48yigHZyQm3jC+IaX9HqtceDQ83Kls67GY= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1682347744; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=1rtnKa9ocZEMLYzritdpolZnQ+UtK6/jtCxvwaZ6/hk=; b=JSmVjL/BC5t4amCmPjKCil6mHB4KzOWjmHO+3l3FwK06WW8CSUwd3taI5fiSjVhQ0us+QyCnMh/5tvXLshLpgfaFmm7/+bW/SnHdSAx4uOIHgVrDdtJx+QmwwGy9P8PEpaCph8RhgMXfSD3sdwf/HM/SiKGqjXO4igpHsUYdjVk= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1682347744883175.52610968300382; Mon, 24 Apr 2023 07:49:04 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1pqxTl-0006dw-9i; Mon, 24 Apr 2023 10:47:45 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1pqxTj-0006dM-Dl; Mon, 24 Apr 2023 10:47:43 -0400 Received: from mx0a-001b2d01.pphosted.com ([148.163.156.1]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1pqxTh-0008Sk-Mp; Mon, 24 Apr 2023 10:47:43 -0400 Received: from pps.filterd (m0353728.ppops.net [127.0.0.1]) by mx0a-001b2d01.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 33OEiuZX009960; Mon, 24 Apr 2023 14:47:39 GMT Received: from pps.reinject (localhost [127.0.0.1]) by mx0a-001b2d01.pphosted.com (PPS) with ESMTPS id 3q46m63tve-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Mon, 24 Apr 2023 14:47:39 +0000 Received: from m0353728.ppops.net (m0353728.ppops.net [127.0.0.1]) by pps.reinject (8.17.1.5/8.17.1.5) with ESMTP id 33OEbFxm015725; Mon, 24 Apr 2023 14:47:38 GMT Received: from ppma04fra.de.ibm.com (6a.4a.5195.ip4.static.sl-reverse.com [149.81.74.106]) by mx0a-001b2d01.pphosted.com (PPS) with ESMTPS id 3q46m63tsr-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Mon, 24 Apr 2023 14:47:38 +0000 Received: from pps.filterd (ppma04fra.de.ibm.com [127.0.0.1]) by ppma04fra.de.ibm.com (8.17.1.19/8.17.1.19) with ESMTP id 33OEcCTm004691; Mon, 24 Apr 2023 14:47:34 GMT Received: from smtprelay07.fra02v.mail.ibm.com ([9.218.2.229]) by ppma04fra.de.ibm.com (PPS) with ESMTPS id 3q47770yt6-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Mon, 24 Apr 2023 14:47:34 +0000 Received: from smtpav02.fra02v.mail.ibm.com (smtpav02.fra02v.mail.ibm.com [10.20.54.101]) by smtprelay07.fra02v.mail.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id 33OElVBs29557192 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 24 Apr 2023 14:47:31 GMT Received: from smtpav02.fra02v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id BFE9920043; Mon, 24 Apr 2023 14:47:31 +0000 (GMT) Received: from smtpav02.fra02v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id BC63F20040; Mon, 24 Apr 2023 14:47:29 +0000 (GMT) Received: from li-1901474c-32f3-11b2-a85c-fc5ff2c001f3.ibm.com.com (unknown [9.43.92.123]) by smtpav02.fra02v.mail.ibm.com (Postfix) with ESMTP; Mon, 24 Apr 2023 14:47:29 +0000 (GMT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ibm.com; h=from : to : cc : subject : date : message-id : in-reply-to : references : mime-version : content-transfer-encoding; s=pp1; bh=1rtnKa9ocZEMLYzritdpolZnQ+UtK6/jtCxvwaZ6/hk=; b=LRolTzaL9/oiin2Nb+79qEXNr3FaW3hgv8zo4+iFK3b4VnLtEg7966Vie4+aYFSb9Y6p OHAVvJIm8m4wPqcP6cyQY2hRN6zcKNUENqiXrnjPcUFGEcRMBGieINyzn/UBW6UGfvlK G5xWKKRJBfSeTM5vm/SUEYiRyoMFPqKF6RhGQcAJop6Y6hPFk8iBJuGS52WJxmqIHKg8 Tcd4rdeL2mXZm5mRHSzYiVxjOrcOTdQC7g3nxFmYTPEBP5pVtv2cHdC8P40ifNqSWbXy qDw7CDNsNF/NX9oYA/aR56cV36qUPJpO6AGd3Xw1HDFpLBFRJzWwoBPLW1mNKxatXUVJ ZQ== From: Harsh Prateek Bora To: qemu-ppc@nongnu.org Cc: qemu-devel@nongnu.org, farosas@suse.de, npiggin@gmail.com, danielhb413@gmail.com Subject: [PATCH v2 1/4] ppc: spapr: cleanup cr get/store in [h_enter|spapr_exit]_nested with helpers. Date: Mon, 24 Apr 2023 20:17:09 +0530 Message-Id: <20230424144712.1985425-2-harshpb@linux.ibm.com> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20230424144712.1985425-1-harshpb@linux.ibm.com> References: <20230424144712.1985425-1-harshpb@linux.ibm.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-TM-AS-GCONF: 00 X-Proofpoint-ORIG-GUID: k-qhqtoEpBjpdza7QVcQSRYYyPPcriwv X-Proofpoint-GUID: qu1FRDgS7dhOkFYL98Z03yP3EdInXo3K X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.254,Aquarius:18.0.942,Hydra:6.0.573,FMLib:17.11.170.22 definitions=2023-04-24_09,2023-04-21_01,2023-02-09_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 mlxlogscore=951 priorityscore=1501 mlxscore=0 spamscore=0 adultscore=0 clxscore=1015 lowpriorityscore=0 suspectscore=0 impostorscore=0 phishscore=0 bulkscore=0 malwarescore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2303200000 definitions=main-2304240131 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=148.163.156.1; envelope-from=harshpb@linux.ibm.com; helo=mx0a-001b2d01.pphosted.com X-Spam_score_int: -19 X-Spam_score: -2.0 X-Spam_bar: -- X-Spam_report: (-2.0 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_MSPIKE_H2=-0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @ibm.com) X-ZM-MESSAGEID: 1682347745185100001 Content-Type: text/plain; charset="utf-8" The bits in cr reg are grouped into eight 4-bit fields represented by env->crf[8] and the related calculations should be abstracted to keep the calling routines simpler to read. This is a step towards cleaning up the [h_enter|spapr_exit]_nested calls for better readability. Signed-off-by: Harsh Prateek Bora Reviewed-by: Fabiano Rosas --- hw/ppc/spapr_hcall.c | 18 ++---------------- target/ppc/cpu.c | 17 +++++++++++++++++ target/ppc/cpu.h | 2 ++ 3 files changed, 21 insertions(+), 16 deletions(-) diff --git a/hw/ppc/spapr_hcall.c b/hw/ppc/spapr_hcall.c index ec4def62f8..124cee5e53 100644 --- a/hw/ppc/spapr_hcall.c +++ b/hw/ppc/spapr_hcall.c @@ -1566,8 +1566,6 @@ static target_ulong h_enter_nested(PowerPCCPU *cpu, struct kvmppc_hv_guest_state hv_state; struct kvmppc_pt_regs *regs; hwaddr len; - uint64_t cr; - int i; =20 if (spapr->nested_ptcr =3D=3D 0) { return H_NOT_AVAILABLE; @@ -1616,12 +1614,7 @@ static target_ulong h_enter_nested(PowerPCCPU *cpu, env->lr =3D regs->link; env->ctr =3D regs->ctr; cpu_write_xer(env, regs->xer); - - cr =3D regs->ccr; - for (i =3D 7; i >=3D 0; i--) { - env->crf[i] =3D cr & 15; - cr >>=3D 4; - } + ppc_store_cr(env, regs->ccr); =20 env->msr =3D regs->msr; env->nip =3D regs->nip; @@ -1698,8 +1691,6 @@ void spapr_exit_nested(PowerPCCPU *cpu, int excp) struct kvmppc_hv_guest_state *hvstate; struct kvmppc_pt_regs *regs; hwaddr len; - uint64_t cr; - int i; =20 assert(spapr_cpu->in_nested); =20 @@ -1757,12 +1748,7 @@ void spapr_exit_nested(PowerPCCPU *cpu, int excp) regs->link =3D env->lr; regs->ctr =3D env->ctr; regs->xer =3D cpu_read_xer(env); - - cr =3D 0; - for (i =3D 0; i < 8; i++) { - cr |=3D (env->crf[i] & 15) << (4 * (7 - i)); - } - regs->ccr =3D cr; + regs->ccr =3D ppc_get_cr(env); =20 if (excp =3D=3D POWERPC_EXCP_MCHECK || excp =3D=3D POWERPC_EXCP_RESET || diff --git a/target/ppc/cpu.c b/target/ppc/cpu.c index 1a97b41c6b..3b444e58b5 100644 --- a/target/ppc/cpu.c +++ b/target/ppc/cpu.c @@ -67,6 +67,23 @@ uint32_t ppc_get_vscr(CPUPPCState *env) return env->vscr | (sat << VSCR_SAT); } =20 +void ppc_store_cr(CPUPPCState *env, uint64_t cr) +{ + for (int i =3D 7; i >=3D 0; i--) { + env->crf[i] =3D cr & 15; + cr >>=3D 4; + } +} + +uint64_t ppc_get_cr(CPUPPCState *env) +{ + uint64_t cr =3D 0; + for (int i =3D 0; i < 8; i++) { + cr |=3D (env->crf[i] & 15) << (4 * (7 - i)); + } + return cr; +} + /* GDBstub can read and write MSR... */ void ppc_store_msr(CPUPPCState *env, target_ulong value) { diff --git a/target/ppc/cpu.h b/target/ppc/cpu.h index 557d736dab..b4c21459f1 100644 --- a/target/ppc/cpu.h +++ b/target/ppc/cpu.h @@ -2773,6 +2773,8 @@ void dump_mmu(CPUPPCState *env); void ppc_maybe_bswap_register(CPUPPCState *env, uint8_t *mem_buf, int len); void ppc_store_vscr(CPUPPCState *env, uint32_t vscr); uint32_t ppc_get_vscr(CPUPPCState *env); +void ppc_store_cr(CPUPPCState *env, uint64_t cr); +uint64_t ppc_get_cr(CPUPPCState *env); =20 /*************************************************************************= ****/ /* Power management enable checks = */ --=20 2.31.1 From nobody Sun May 19 19:10:24 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=reject dis=none) header.from=linux.ibm.com ARC-Seal: i=1; a=rsa-sha256; t=1682347747; cv=none; d=zohomail.com; s=zohoarc; b=SakLtV+/Mxn76uD3uAzsqo8JOP2fJUiNYejg65yehE9zmcv1QpZv18AhKFEXfJn/Df3jIkKkP4Wk+wAD3ehqrAN1n7dCUQU0B4D8uo1SqkTqbS7Aq5ms3hCp1Tp4kcWTCKu9KIV/cGrTJjiLA94pwxE2/dyzgokail+xbOyLIWw= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1682347747; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=O/wfZ5sbug/9BwUQ1N57RNM8lCTkjBEw6mXup9fYt8c=; b=IQBC4K/icyiAGnMaHFjPCibv8kapQOZl9QOtX9kzdonYtvYbx92xtAT/rRvsa9Y+HsSAprzP+5qmukfFaU1E3JG/xlidHJxt6RFTpgoERhqv5RlaK85bu9RrBE8gbpkjhKUiXcCPC1609iBlfSlaWgQNfMt48KYYKePqyF+xKaE= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1682347747242303.14927609916924; Mon, 24 Apr 2023 07:49:07 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1pqxTl-0006e2-CH; Mon, 24 Apr 2023 10:47:45 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1pqxTj-0006dY-O6; Mon, 24 Apr 2023 10:47:43 -0400 Received: from mx0a-001b2d01.pphosted.com ([148.163.156.1]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1pqxTh-0008Sl-T9; Mon, 24 Apr 2023 10:47:43 -0400 Received: from pps.filterd (m0353729.ppops.net [127.0.0.1]) by mx0a-001b2d01.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 33OEbHs9010051; Mon, 24 Apr 2023 14:47:40 GMT Received: from pps.reinject (localhost [127.0.0.1]) by mx0a-001b2d01.pphosted.com (PPS) with ESMTPS id 3q48jm0fyc-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Mon, 24 Apr 2023 14:47:39 +0000 Received: from m0353729.ppops.net (m0353729.ppops.net [127.0.0.1]) by pps.reinject (8.17.1.5/8.17.1.5) with ESMTP id 33OEbEVq009925; Mon, 24 Apr 2023 14:47:39 GMT Received: from ppma05fra.de.ibm.com (6c.4a.5195.ip4.static.sl-reverse.com [149.81.74.108]) by mx0a-001b2d01.pphosted.com (PPS) with ESMTPS id 3q48jm0fwv-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Mon, 24 Apr 2023 14:47:39 +0000 Received: from pps.filterd (ppma05fra.de.ibm.com [127.0.0.1]) by ppma05fra.de.ibm.com (8.17.1.19/8.17.1.19) with ESMTP id 33O5Ha6m017110; Mon, 24 Apr 2023 14:47:36 GMT Received: from smtprelay05.fra02v.mail.ibm.com ([9.218.2.225]) by ppma05fra.de.ibm.com (PPS) with ESMTPS id 3q4776ryu6-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Mon, 24 Apr 2023 14:47:36 +0000 Received: from smtpav02.fra02v.mail.ibm.com (smtpav02.fra02v.mail.ibm.com [10.20.54.101]) by smtprelay05.fra02v.mail.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id 33OElY3P20775436 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 24 Apr 2023 14:47:34 GMT Received: from smtpav02.fra02v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 446AE20040; Mon, 24 Apr 2023 14:47:34 +0000 (GMT) Received: from smtpav02.fra02v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 43FE02004B; Mon, 24 Apr 2023 14:47:32 +0000 (GMT) Received: from li-1901474c-32f3-11b2-a85c-fc5ff2c001f3.ibm.com.com (unknown [9.43.92.123]) by smtpav02.fra02v.mail.ibm.com (Postfix) with ESMTP; Mon, 24 Apr 2023 14:47:31 +0000 (GMT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ibm.com; h=from : to : cc : subject : date : message-id : in-reply-to : references : mime-version : content-transfer-encoding; s=pp1; bh=O/wfZ5sbug/9BwUQ1N57RNM8lCTkjBEw6mXup9fYt8c=; b=nq3bFqlTXmEpZYtkAeZBSwyVdsPNokGBe5Sobo396ThoDpv0bGCpykBqqM9vtR9tKHo1 IjOiX8JCL7IWEkMR4j4EVBHWn+LeqBvltpqhMIweOB1+KNeS3t4WF8Ro/3ssvOjKvS/o MC/Gfkf5QZ1fsaibN06xuCXIEsoih2/I/fsndsnwQm1KW1SmdvvPNL8oju/Tr5Mz5rEY 8I5AYNCuTq6zusb0L4f57NRrGhBDYQ7GKKs0mCo3OA11eWE5BboQUqR+jlqAOWmwin+j pBvuqRFlvjGYnfszE4yncFI+2cWfl/BiIGmDRz+xCE0wVyHvZlpYKOkw9qYLDnQ+hR1E ag== From: Harsh Prateek Bora To: qemu-ppc@nongnu.org Cc: qemu-devel@nongnu.org, farosas@suse.de, npiggin@gmail.com, danielhb413@gmail.com Subject: [PATCH v2 2/4] ppc: spapr: cleanup h_enter_nested() with helper routines. Date: Mon, 24 Apr 2023 20:17:10 +0530 Message-Id: <20230424144712.1985425-3-harshpb@linux.ibm.com> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20230424144712.1985425-1-harshpb@linux.ibm.com> References: <20230424144712.1985425-1-harshpb@linux.ibm.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-TM-AS-GCONF: 00 X-Proofpoint-ORIG-GUID: q-ukusMDnA9xM0e0d6gZvvSJ5Zx1cCQ5 X-Proofpoint-GUID: dB7Cv4pFn3Dv0hm5INCedk7tjJ85KDbs X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.254,Aquarius:18.0.942,Hydra:6.0.573,FMLib:17.11.170.22 definitions=2023-04-24_09,2023-04-21_01,2023-02-09_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 impostorscore=0 priorityscore=1501 adultscore=0 suspectscore=0 lowpriorityscore=0 phishscore=0 bulkscore=0 mlxscore=0 spamscore=0 mlxlogscore=881 malwarescore=0 clxscore=1015 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2303200000 definitions=main-2304240131 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=148.163.156.1; envelope-from=harshpb@linux.ibm.com; helo=mx0a-001b2d01.pphosted.com X-Spam_score_int: -19 X-Spam_score: -2.0 X-Spam_bar: -- X-Spam_report: (-2.0 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_MSPIKE_H2=-0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @ibm.com) X-ZM-MESSAGEID: 1682347749211100001 Content-Type: text/plain; charset="utf-8" h_enter_nested() currently does a lot of register specific operations which should be abstracted logically to simplify the code for better readability. This patch breaks down relevant blocks into respective helper routines to make use of them for better readability/maintenance. Signed-off-by: Harsh Prateek Bora --- hw/ppc/spapr_hcall.c | 117 ++++++++++++++++++++++++++++--------------- 1 file changed, 78 insertions(+), 39 deletions(-) diff --git a/hw/ppc/spapr_hcall.c b/hw/ppc/spapr_hcall.c index 124cee5e53..f24d4b368e 100644 --- a/hw/ppc/spapr_hcall.c +++ b/hw/ppc/spapr_hcall.c @@ -1544,6 +1544,81 @@ static target_ulong h_copy_tofrom_guest(PowerPCCPU *= cpu, return H_FUNCTION; } =20 +static void restore_hdec_from_hvstate(CPUPPCState *dst, + struct kvmppc_hv_guest_state *hv_sta= te, + target_ulong now) +{ + target_ulong hdec; + + assert(hv_state); + hdec =3D hv_state->hdec_expiry - now; + cpu_ppc_hdecr_init(dst); + cpu_ppc_store_hdecr(dst, hdec); +} + +static void restore_lpcr_from_hvstate(PowerPCCPU *cpu, + struct kvmppc_hv_guest_state *hv_sta= te) +{ + PowerPCCPUClass *pcc =3D POWERPC_CPU_GET_CLASS(cpu); + CPUPPCState *dst =3D &cpu->env; + target_ulong lpcr, lpcr_mask; + + assert(hv_state); + lpcr_mask =3D LPCR_DPFD | LPCR_ILE | LPCR_AIL | LPCR_LD | LPCR_MER; + lpcr =3D (dst->spr[SPR_LPCR] & ~lpcr_mask) | (hv_state->lpcr & lpcr_ma= sk); + lpcr |=3D LPCR_HR | LPCR_UPRT | LPCR_GTSE | LPCR_HVICE | LPCR_HDICE; + lpcr &=3D ~LPCR_LPES0; + dst->spr[SPR_LPCR] =3D lpcr & pcc->lpcr_mask; +} + +static void restore_env_from_ptregs(CPUPPCState *env, + struct kvmppc_pt_regs *regs) +{ + assert(env); + assert(regs); + assert(sizeof(env->gpr) =3D=3D sizeof(regs->gpr)); + memcpy(env->gpr, regs->gpr, sizeof(env->gpr)); + env->nip =3D regs->nip; + env->msr =3D regs->msr; + env->lr =3D regs->link; + env->ctr =3D regs->ctr; + cpu_write_xer(env, regs->xer); + ppc_store_cr(env, regs->ccr); +} + +static void restore_env_from_hvstate(CPUPPCState *env, + struct kvmppc_hv_guest_state *hv_stat= e) +{ + assert(env); + assert(hv_state); + env->spr[SPR_HFSCR] =3D hv_state->hfscr; + /* TCG does not implement DAWR*, CIABR, PURR, SPURR, IC, VTB, HEIR SPR= s*/ + env->cfar =3D hv_state->cfar; + env->spr[SPR_PCR] =3D hv_state->pcr; + env->spr[SPR_DPDES] =3D hv_state->dpdes; + env->spr[SPR_SRR0] =3D hv_state->srr0; + env->spr[SPR_SRR1] =3D hv_state->srr1; + env->spr[SPR_SPRG0] =3D hv_state->sprg[0]; + env->spr[SPR_SPRG1] =3D hv_state->sprg[1]; + env->spr[SPR_SPRG2] =3D hv_state->sprg[2]; + env->spr[SPR_SPRG3] =3D hv_state->sprg[3]; + env->spr[SPR_BOOKS_PID] =3D hv_state->pidr; + env->spr[SPR_PPR] =3D hv_state->ppr; +} + +static inline void restore_l2_env(PowerPCCPU *cpu, + struct kvmppc_hv_guest_state *hv_state, + struct kvmppc_pt_regs *regs, + target_ulong now) +{ + CPUPPCState *env =3D &cpu->env; + + restore_env_from_ptregs(env, regs); + restore_env_from_hvstate(env, hv_state); + restore_lpcr_from_hvstate(cpu, hv_state); + restore_hdec_from_hvstate(env, hv_state, now); +} + /* * When this handler returns, the environment is switched to the L2 guest * and TCG begins running that. spapr_exit_nested() performs the switch fr= om @@ -1554,14 +1629,12 @@ static target_ulong h_enter_nested(PowerPCCPU *cpu, target_ulong opcode, target_ulong *args) { - PowerPCCPUClass *pcc =3D POWERPC_CPU_GET_CLASS(cpu); CPUState *cs =3D CPU(cpu); CPUPPCState *env =3D &cpu->env; SpaprCpuState *spapr_cpu =3D spapr_cpu_state(cpu); target_ulong hv_ptr =3D args[0]; target_ulong regs_ptr =3D args[1]; - target_ulong hdec, now =3D cpu_ppc_load_tbl(env); - target_ulong lpcr, lpcr_mask; + target_ulong now =3D cpu_ppc_load_tbl(env); struct kvmppc_hv_guest_state *hvstate; struct kvmppc_hv_guest_state hv_state; struct kvmppc_pt_regs *regs; @@ -1607,49 +1680,15 @@ static target_ulong h_enter_nested(PowerPCCPU *cpu, return H_P2; } =20 - len =3D sizeof(env->gpr); - assert(len =3D=3D sizeof(regs->gpr)); - memcpy(env->gpr, regs->gpr, len); - - env->lr =3D regs->link; - env->ctr =3D regs->ctr; - cpu_write_xer(env, regs->xer); - ppc_store_cr(env, regs->ccr); - - env->msr =3D regs->msr; - env->nip =3D regs->nip; + /* restore L2 env from hv_state and ptregs */ + restore_l2_env(cpu, &hv_state, regs, now); =20 address_space_unmap(CPU(cpu)->as, regs, len, len, false); =20 - env->cfar =3D hv_state.cfar; - assert(env->spr[SPR_LPIDR] =3D=3D 0); env->spr[SPR_LPIDR] =3D hv_state.lpid; =20 - lpcr_mask =3D LPCR_DPFD | LPCR_ILE | LPCR_AIL | LPCR_LD | LPCR_MER; - lpcr =3D (env->spr[SPR_LPCR] & ~lpcr_mask) | (hv_state.lpcr & lpcr_mas= k); - lpcr |=3D LPCR_HR | LPCR_UPRT | LPCR_GTSE | LPCR_HVICE | LPCR_HDICE; - lpcr &=3D ~LPCR_LPES0; - env->spr[SPR_LPCR] =3D lpcr & pcc->lpcr_mask; - - env->spr[SPR_PCR] =3D hv_state.pcr; - /* hv_state.amor is not used */ - env->spr[SPR_DPDES] =3D hv_state.dpdes; - env->spr[SPR_HFSCR] =3D hv_state.hfscr; - hdec =3D hv_state.hdec_expiry - now; spapr_cpu->nested_tb_offset =3D hv_state.tb_offset; - /* TCG does not implement DAWR*, CIABR, PURR, SPURR, IC, VTB, HEIR SPR= s*/ - env->spr[SPR_SRR0] =3D hv_state.srr0; - env->spr[SPR_SRR1] =3D hv_state.srr1; - env->spr[SPR_SPRG0] =3D hv_state.sprg[0]; - env->spr[SPR_SPRG1] =3D hv_state.sprg[1]; - env->spr[SPR_SPRG2] =3D hv_state.sprg[2]; - env->spr[SPR_SPRG3] =3D hv_state.sprg[3]; - env->spr[SPR_BOOKS_PID] =3D hv_state.pidr; - env->spr[SPR_PPR] =3D hv_state.ppr; - - cpu_ppc_hdecr_init(env); - cpu_ppc_store_hdecr(env, hdec); =20 /* * The hv_state.vcpu_token is not needed. It is used by the KVM --=20 2.31.1 From nobody Sun May 19 19:10:24 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=reject dis=none) header.from=linux.ibm.com ARC-Seal: i=1; a=rsa-sha256; t=1682347761; cv=none; d=zohomail.com; s=zohoarc; b=m4m1Tgy5CxFXtO92mrJBJHrVja6/NdaELIH1OKdkpvbAWdeCweWB4MoeUsfH7lh77+tPYU3zHE4xnO0UV4g2Aa4+r33+3CRDHkNwSYwsyftKoiYOgXPbOq0cl6HmOEUiAKTu2aaY3G9UAIFrxjATHqC+r4cZ48OsYNDSGzs4s8g= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1682347761; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=EUAy9e/TI1dkwPKI/oSfycj9p+qVrndm9JBaJqNGilY=; b=eHCItgJGR5eX+Qt23tyj3izZa5zKDTtMbDrYT9h/xGjs7pRkIha+NMS9MPOZn58w2YD9oIfAgpSPu8uBJoOB7yZuS6TWzffEu70GlD3QBi5XGZwdSsipccY4QqKiG6gnHm4pVATB0MdYobVa/ez/6uRQqn1tsGiXCFR8vgC0TpA= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1682347761090999.3511796151246; Mon, 24 Apr 2023 07:49:21 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1pqxTn-0006fP-F1; Mon, 24 Apr 2023 10:47:47 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1pqxTl-0006eE-CX; Mon, 24 Apr 2023 10:47:45 -0400 Received: from mx0b-001b2d01.pphosted.com ([148.163.158.5]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1pqxTj-0008T3-CI; Mon, 24 Apr 2023 10:47:44 -0400 Received: from pps.filterd (m0353723.ppops.net [127.0.0.1]) by mx0a-001b2d01.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 33OEeJoZ024198; Mon, 24 Apr 2023 14:47:42 GMT Received: from pps.reinject (localhost [127.0.0.1]) by mx0a-001b2d01.pphosted.com (PPS) with ESMTPS id 3q4510rccb-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Mon, 24 Apr 2023 14:47:41 +0000 Received: from m0353723.ppops.net (m0353723.ppops.net [127.0.0.1]) by pps.reinject (8.17.1.5/8.17.1.5) with ESMTP id 33OEfg8Q000479; Mon, 24 Apr 2023 14:47:41 GMT Received: from ppma06fra.de.ibm.com (48.49.7a9f.ip4.static.sl-reverse.com [159.122.73.72]) by mx0a-001b2d01.pphosted.com (PPS) with ESMTPS id 3q4510rcat-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Mon, 24 Apr 2023 14:47:41 +0000 Received: from pps.filterd (ppma06fra.de.ibm.com [127.0.0.1]) by ppma06fra.de.ibm.com (8.17.1.19/8.17.1.19) with ESMTP id 33OEbUI5006305; Mon, 24 Apr 2023 14:47:39 GMT Received: from smtprelay03.fra02v.mail.ibm.com ([9.218.2.224]) by ppma06fra.de.ibm.com (PPS) with ESMTPS id 3q46ug0ywc-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Mon, 24 Apr 2023 14:47:39 +0000 Received: from smtpav02.fra02v.mail.ibm.com (smtpav02.fra02v.mail.ibm.com [10.20.54.101]) by smtprelay03.fra02v.mail.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id 33OElaXj18350840 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 24 Apr 2023 14:47:36 GMT Received: from smtpav02.fra02v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id C63C020043; Mon, 24 Apr 2023 14:47:36 +0000 (GMT) Received: from smtpav02.fra02v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id BA30C20040; Mon, 24 Apr 2023 14:47:34 +0000 (GMT) Received: from li-1901474c-32f3-11b2-a85c-fc5ff2c001f3.ibm.com.com (unknown [9.43.92.123]) by smtpav02.fra02v.mail.ibm.com (Postfix) with ESMTP; Mon, 24 Apr 2023 14:47:34 +0000 (GMT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ibm.com; h=from : to : cc : subject : date : message-id : in-reply-to : references : mime-version : content-transfer-encoding; s=pp1; bh=EUAy9e/TI1dkwPKI/oSfycj9p+qVrndm9JBaJqNGilY=; b=YG7NY2PYLrPehekjQ9a7auLg3fZg/s4BQSE3Dj6eZLeJepww4B2GMD5h5PuVgraHT34J ht/v79UMzhAlfjoQyfiCP/6B4NIxpmPx8r0FgUIZg+mXDFDSTYnK5FelUQWkNySO9uG3 R2xCnBOYSFCooyMUkGZmvDdToNV14Nm+g/XfZLWWm0rL6SIzejTlEgtoBz6eLDcjHNRQ cCjP3Kudj8YihTPqWDXnXapbJXB80p9cw7pajrJryVgXcolAd8fR+J4I3MguHqoEPM3m 0fpYy6uUJrroN7JgYWO6gTn0DvPGf2o7dyWLZ1i1mKK3gIvQG83ce8wZ626mp/7t6bFZ 0g== From: Harsh Prateek Bora To: qemu-ppc@nongnu.org Cc: qemu-devel@nongnu.org, farosas@suse.de, npiggin@gmail.com, danielhb413@gmail.com Subject: [PATCH v2 3/4] ppc: spapr: cleanup spapr_exit_nested() with helper routines. Date: Mon, 24 Apr 2023 20:17:11 +0530 Message-Id: <20230424144712.1985425-4-harshpb@linux.ibm.com> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20230424144712.1985425-1-harshpb@linux.ibm.com> References: <20230424144712.1985425-1-harshpb@linux.ibm.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-TM-AS-GCONF: 00 X-Proofpoint-GUID: SA600k7atVZMc-8tfs28emFqyfPXQZez X-Proofpoint-ORIG-GUID: 7iKl-2qpDjDpcTimCcHQ8zOqWlTCfo1n X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.254,Aquarius:18.0.942,Hydra:6.0.573,FMLib:17.11.170.22 definitions=2023-04-24_09,2023-04-21_01,2023-02-09_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 priorityscore=1501 clxscore=1015 malwarescore=0 adultscore=0 mlxlogscore=981 mlxscore=0 lowpriorityscore=0 bulkscore=0 phishscore=0 suspectscore=0 impostorscore=0 spamscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2303200000 definitions=main-2304240131 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=148.163.158.5; envelope-from=harshpb@linux.ibm.com; helo=mx0b-001b2d01.pphosted.com X-Spam_score_int: -19 X-Spam_score: -2.0 X-Spam_bar: -- X-Spam_report: (-2.0 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_MSPIKE_H2=-0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @ibm.com) X-ZM-MESSAGEID: 1682347762557100001 Content-Type: text/plain; charset="utf-8" Currently, in spapr_exit_nested(), it does a lot of register state restoring from ptregs/hvstate after mapping each of those before restoring the L1 host state. This patch breaks down those set of ops to respective helper routines for better code readability/maintenance. Signed-off-by: Harsh Prateek Bora --- hw/ppc/spapr_hcall.c | 120 ++++++++++++++++++++++++++----------------- 1 file changed, 72 insertions(+), 48 deletions(-) diff --git a/hw/ppc/spapr_hcall.c b/hw/ppc/spapr_hcall.c index f24d4b368e..e69634bc22 100644 --- a/hw/ppc/spapr_hcall.c +++ b/hw/ppc/spapr_hcall.c @@ -1719,45 +1719,14 @@ static target_ulong h_enter_nested(PowerPCCPU *cpu, return env->gpr[3]; } =20 -void spapr_exit_nested(PowerPCCPU *cpu, int excp) +static void restore_hvstate_from_env(struct kvmppc_hv_guest_state *hvstate, + CPUPPCState *env, int excp) { - CPUState *cs =3D CPU(cpu); - CPUPPCState *env =3D &cpu->env; - SpaprCpuState *spapr_cpu =3D spapr_cpu_state(cpu); - target_ulong r3_return =3D env->excp_vectors[excp]; /* hcall return va= lue */ - target_ulong hv_ptr =3D spapr_cpu->nested_host_state->gpr[4]; - target_ulong regs_ptr =3D spapr_cpu->nested_host_state->gpr[5]; - struct kvmppc_hv_guest_state *hvstate; - struct kvmppc_pt_regs *regs; - hwaddr len; - - assert(spapr_cpu->in_nested); - - cpu_ppc_hdecr_exit(env); - - len =3D sizeof(*hvstate); - hvstate =3D address_space_map(CPU(cpu)->as, hv_ptr, &len, true, - MEMTXATTRS_UNSPECIFIED); - if (len !=3D sizeof(*hvstate)) { - address_space_unmap(CPU(cpu)->as, hvstate, len, 0, true); - r3_return =3D H_PARAMETER; - goto out_restore_l1; - } - hvstate->cfar =3D env->cfar; hvstate->lpcr =3D env->spr[SPR_LPCR]; hvstate->pcr =3D env->spr[SPR_PCR]; hvstate->dpdes =3D env->spr[SPR_DPDES]; hvstate->hfscr =3D env->spr[SPR_HFSCR]; - - if (excp =3D=3D POWERPC_EXCP_HDSI) { - hvstate->hdar =3D env->spr[SPR_HDAR]; - hvstate->hdsisr =3D env->spr[SPR_HDSISR]; - hvstate->asdr =3D env->spr[SPR_ASDR]; - } else if (excp =3D=3D POWERPC_EXCP_HISI) { - hvstate->asdr =3D env->spr[SPR_ASDR]; - } - /* HEIR should be implemented for HV mode and saved here. */ hvstate->srr0 =3D env->spr[SPR_SRR0]; hvstate->srr1 =3D env->spr[SPR_SRR1]; @@ -1768,27 +1737,43 @@ void spapr_exit_nested(PowerPCCPU *cpu, int excp) hvstate->pidr =3D env->spr[SPR_BOOKS_PID]; hvstate->ppr =3D env->spr[SPR_PPR]; =20 - /* Is it okay to specify write length larger than actual data written?= */ - address_space_unmap(CPU(cpu)->as, hvstate, len, len, true); + if (excp =3D=3D POWERPC_EXCP_HDSI) { + hvstate->hdar =3D env->spr[SPR_HDAR]; + hvstate->hdsisr =3D env->spr[SPR_HDSISR]; + hvstate->asdr =3D env->spr[SPR_ASDR]; + } else if (excp =3D=3D POWERPC_EXCP_HISI) { + hvstate->asdr =3D env->spr[SPR_ASDR]; + } +} =20 - len =3D sizeof(*regs); - regs =3D address_space_map(CPU(cpu)->as, regs_ptr, &len, true, +static int map_and_restore_l2_hvstate(PowerPCCPU *cpu, int excp, target_ul= ong *r3) +{ + CPUPPCState *env =3D &cpu->env; + SpaprCpuState *spapr_cpu =3D spapr_cpu_state(cpu); + target_ulong hv_ptr =3D spapr_cpu->nested_host_state->gpr[4]; + struct kvmppc_hv_guest_state *hvstate; + hwaddr len =3D sizeof(*hvstate); + + hvstate =3D address_space_map(CPU(cpu)->as, hv_ptr, &len, true, MEMTXATTRS_UNSPECIFIED); - if (!regs || len !=3D sizeof(*regs)) { - address_space_unmap(CPU(cpu)->as, regs, len, 0, true); - r3_return =3D H_P2; - goto out_restore_l1; + if (len !=3D sizeof(*hvstate)) { + address_space_unmap(CPU(cpu)->as, hvstate, len, 0, true); + *r3 =3D H_PARAMETER; + return -1; } + restore_hvstate_from_env(hvstate, env, excp); + /* Is it okay to specify write length larger than actual data written?= */ + address_space_unmap(CPU(cpu)->as, hvstate, len, len, true); + return 0; +} =20 +static void restore_ptregs_from_env(struct kvmppc_pt_regs *regs, + CPUPPCState *env, int excp) +{ + hwaddr len; len =3D sizeof(env->gpr); assert(len =3D=3D sizeof(regs->gpr)); memcpy(regs->gpr, env->gpr, len); - - regs->link =3D env->lr; - regs->ctr =3D env->ctr; - regs->xer =3D cpu_read_xer(env); - regs->ccr =3D ppc_get_cr(env); - if (excp =3D=3D POWERPC_EXCP_MCHECK || excp =3D=3D POWERPC_EXCP_RESET || excp =3D=3D POWERPC_EXCP_SYSCALL) { @@ -1798,11 +1783,50 @@ void spapr_exit_nested(PowerPCCPU *cpu, int excp) regs->nip =3D env->spr[SPR_HSRR0]; regs->msr =3D env->spr[SPR_HSRR1] & env->msr_mask; } + regs->link =3D env->lr; + regs->ctr =3D env->ctr; + regs->xer =3D cpu_read_xer(env); + regs->ccr =3D ppc_get_cr(env); +} =20 +static int map_and_restore_l2_ptregs(PowerPCCPU *cpu, int excp, target_ulo= ng *r3) +{ + CPUPPCState *env =3D &cpu->env; + SpaprCpuState *spapr_cpu =3D spapr_cpu_state(cpu); + target_ulong regs_ptr =3D spapr_cpu->nested_host_state->gpr[5]; + hwaddr len; + struct kvmppc_pt_regs *regs =3D NULL; + + len =3D sizeof(*regs); + regs =3D address_space_map(CPU(cpu)->as, regs_ptr, &len, true, + MEMTXATTRS_UNSPECIFIED); + if (!regs || len !=3D sizeof(*regs)) { + address_space_unmap(CPU(cpu)->as, regs, len, 0, true); + *r3 =3D H_P2; + return -1; + } + restore_ptregs_from_env(regs, env, excp); /* Is it okay to specify write length larger than actual data written?= */ address_space_unmap(CPU(cpu)->as, regs, len, len, true); + return 0; +} + +void spapr_exit_nested(PowerPCCPU *cpu, int excp) +{ + CPUState *cs =3D CPU(cpu); + CPUPPCState *env =3D &cpu->env; + SpaprCpuState *spapr_cpu =3D spapr_cpu_state(cpu); + target_ulong r3_return =3D env->excp_vectors[excp]; /* hcall return va= lue */ + + assert(spapr_cpu->in_nested); + + cpu_ppc_hdecr_exit(env); + + if (!map_and_restore_l2_hvstate(cpu, excp, &r3_return)) { + map_and_restore_l2_ptregs (cpu, excp, &r3_return); + } =20 -out_restore_l1: + /* out_restore_l1 */ memcpy(env->gpr, spapr_cpu->nested_host_state->gpr, sizeof(env->gpr)); env->lr =3D spapr_cpu->nested_host_state->lr; env->ctr =3D spapr_cpu->nested_host_state->ctr; --=20 2.31.1 From nobody Sun May 19 19:10:24 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=reject dis=none) header.from=linux.ibm.com ARC-Seal: i=1; a=rsa-sha256; t=1682347715; cv=none; d=zohomail.com; s=zohoarc; b=bQ4bCGrmDBxWmHbB2TeaU9M6N4AI+8uzoq0y4NSdQKbXCApO4Gap2r76jvA26Sa5cEOtQnd4vfSm0vW+8SYmpgx5JmiDdL85hJk2MibNLHQlYpaC+g4SzM0HZhSAFpZJOvRW+czgDfuWMgyDrskjcxH78hAMIRFXaxmRNRgBp88= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1682347715; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=p4YyZuzrsrSnHn6mlm4xnMfLrcS1+1nhYIc2wjrfLMQ=; b=h+xsVFAUfR+9FABLlkDTcQkMbwsbYNXrLA4eRllBZGkGrdSBcLEljMDFMTOb0i9YAsRbcLGaNhFdyDL/yWjOh56p0cwZG+kZ2ls14YXLBE9rDeDH82kaLwEr0FIUmJEKTEKApNr4IfxOSAEBa9T0HYhwOgUjJqtdFQbinfd5ALo= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1682347715238863.6709129686349; Mon, 24 Apr 2023 07:48:35 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1pqxTu-0006i6-5u; Mon, 24 Apr 2023 10:47:54 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1pqxTr-0006fn-5I; Mon, 24 Apr 2023 10:47:51 -0400 Received: from mx0a-001b2d01.pphosted.com ([148.163.156.1]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1pqxTp-0008Uq-El; Mon, 24 Apr 2023 10:47:50 -0400 Received: from pps.filterd (m0353727.ppops.net [127.0.0.1]) by mx0a-001b2d01.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 33OEasOh006302; Mon, 24 Apr 2023 14:47:47 GMT Received: from pps.reinject (localhost [127.0.0.1]) by mx0a-001b2d01.pphosted.com (PPS) with ESMTPS id 3q47d5a4s5-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Mon, 24 Apr 2023 14:47:47 +0000 Received: from m0353727.ppops.net (m0353727.ppops.net [127.0.0.1]) by pps.reinject (8.17.1.5/8.17.1.5) with ESMTP id 33OEbZ7q010948; Mon, 24 Apr 2023 14:47:46 GMT Received: from ppma04ams.nl.ibm.com (63.31.33a9.ip4.static.sl-reverse.com [169.51.49.99]) by mx0a-001b2d01.pphosted.com (PPS) with ESMTPS id 3q47d5a4nb-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Mon, 24 Apr 2023 14:47:46 +0000 Received: from pps.filterd (ppma04ams.nl.ibm.com [127.0.0.1]) by ppma04ams.nl.ibm.com (8.17.1.19/8.17.1.19) with ESMTP id 33O2F359020905; Mon, 24 Apr 2023 14:47:41 GMT Received: from smtprelay01.fra02v.mail.ibm.com ([9.218.2.227]) by ppma04ams.nl.ibm.com (PPS) with ESMTPS id 3q47771676-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Mon, 24 Apr 2023 14:47:41 +0000 Received: from smtpav02.fra02v.mail.ibm.com (smtpav02.fra02v.mail.ibm.com [10.20.54.101]) by smtprelay01.fra02v.mail.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id 33OElddg21562036 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 24 Apr 2023 14:47:39 GMT Received: from smtpav02.fra02v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 469BD2004B; Mon, 24 Apr 2023 14:47:39 +0000 (GMT) Received: from smtpav02.fra02v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 4840620040; Mon, 24 Apr 2023 14:47:37 +0000 (GMT) Received: from li-1901474c-32f3-11b2-a85c-fc5ff2c001f3.ibm.com.com (unknown [9.43.92.123]) by smtpav02.fra02v.mail.ibm.com (Postfix) with ESMTP; Mon, 24 Apr 2023 14:47:37 +0000 (GMT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ibm.com; h=from : to : cc : subject : date : message-id : in-reply-to : references : mime-version : content-type : content-transfer-encoding; s=pp1; bh=p4YyZuzrsrSnHn6mlm4xnMfLrcS1+1nhYIc2wjrfLMQ=; b=QKOMsthyFU/lwVtBwtBkXJNctKw2J4yg1ZA0Q4s0R1pwUg67aROkDCn6EbqgVNjFS0TI SGhWJM49QAvZLLL3YKT3pHs6MY6OiFTm9hLnVGpdVnINWRC5M1DA3PQle5PsW19tXVOe j5BoXQEymAmsL2FlgKg08ldMkQvvDYHNmIRrIhJnYRJn4zLWHCM2rXnbwtZR3RkpsL9o MGqxJLRc1i1xqnwTAh4/IEAK8dyZ7mO8pINuA/IbNOd2WS4jOfEepvOhGmyMFvND/1Nm HC20epmgy6ugZF8iWXO2xC5Hnf8VuYtUstvUfHg2VmcWyJuZv3h6/mfziUs04FaoH/Fm 9A== From: Harsh Prateek Bora To: qemu-ppc@nongnu.org Cc: qemu-devel@nongnu.org, farosas@suse.de, npiggin@gmail.com, danielhb413@gmail.com Subject: [PATCH v2 4/4] MAINTAINERS: Adding myself in the list for ppc/spapr Date: Mon, 24 Apr 2023 20:17:12 +0530 Message-Id: <20230424144712.1985425-5-harshpb@linux.ibm.com> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20230424144712.1985425-1-harshpb@linux.ibm.com> References: <20230424144712.1985425-1-harshpb@linux.ibm.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-TM-AS-GCONF: 00 X-Proofpoint-ORIG-GUID: i_ff8EkenOPdqEaaFxCMyvm1jdT0gjI6 X-Proofpoint-GUID: 4D-w6i83ejqIOJgpt3JtnfsLZy3_sKZP X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.254,Aquarius:18.0.942,Hydra:6.0.573,FMLib:17.11.170.22 definitions=2023-04-24_09,2023-04-21_01,2023-02-09_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 suspectscore=0 phishscore=0 spamscore=0 impostorscore=0 bulkscore=0 lowpriorityscore=0 adultscore=0 priorityscore=1501 clxscore=1015 mlxscore=0 malwarescore=0 mlxlogscore=978 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2303200000 definitions=main-2304240131 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=148.163.156.1; envelope-from=harshpb@linux.ibm.com; helo=mx0a-001b2d01.pphosted.com X-Spam_score_int: -19 X-Spam_score: -2.0 X-Spam_bar: -- X-Spam_report: (-2.0 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_MSPIKE_H2=-0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @ibm.com) X-ZM-MESSAGEID: 1682347716801100001 Would like to get notified of changes in this area and review them. Signed-off-by: Harsh Prateek Bora Reviewed-by: Daniel Henrique Barboza --- MAINTAINERS | 1 + 1 file changed, 1 insertion(+) diff --git a/MAINTAINERS b/MAINTAINERS index 2c2068ea5c..b5d290cf92 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -1420,6 +1420,7 @@ M: Daniel Henrique Barboza R: C=C3=A9dric Le Goater R: David Gibson R: Greg Kurz +R: Harsh Prateek Bora L: qemu-ppc@nongnu.org S: Odd Fixes F: hw/*/spapr* --=20 2.31.1