From nobody Sun May 5 04:19:04 2024 Delivered-To: importer2@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+importer2=patchew.org@nongnu.org; arc=pass (i=1 dmarc=pass fromdomain=oracle.com); dmarc=pass(p=none dis=none) header.from=oracle.com ARC-Seal: i=2; a=rsa-sha256; t=1653043892; cv=pass; d=zohomail.com; s=zohoarc; b=RcblX7vZCPjNWHBO5Ow3CXokLn/edzzZBVe71AIiv8JJDb1YsjyeWYMNLp0cCH4IXTSTDYiV+GjK8wann0WDaClIeY+5lDAsp2D9aUo7lBmLiXWbaT3Ou8aA4K4v4Ow/I88LJTfIVFlA+4+Gu2S3ucsM995J+u/Es1eHKWX/vgA= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1653043892; h=Content-Type: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=J8SoRx4VSujiXnmA6/ljK6Ur19yHlN4Sc8s10GMH3BI=; b=F3r/6az+KqhJaMkq5aCbTsA2/yiNHk8lAWcVYLrW7023M2+ouVRtEJYfgUwQxFll766kzWdonb6yHENJ8OXcLYPSNGtapju9Nb7YjJW2G4VHBaqL/3CC6AhnCOZtB+SOYlwkrjYZ30jKXBiQZMjY4ga+Vvnau+DDY4eny7chP+w= ARC-Authentication-Results: i=2; 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+importer2=patchew.org@nongnu.org; arc=pass (i=1 dmarc=pass fromdomain=oracle.com); dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1653043892929504.4448760376363; Fri, 20 May 2022 03:51:32 -0700 (PDT) Received: from localhost ([::1]:52518 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1ns0EF-0003eM-Qb for importer2@patchew.org; Fri, 20 May 2022 06:51:31 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:41796) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ns097-00018J-7k for qemu-devel@nongnu.org; Fri, 20 May 2022 06:46:14 -0400 Received: from mx0b-00069f02.pphosted.com ([205.220.177.32]:8396) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ns091-00020e-VB for qemu-devel@nongnu.org; Fri, 20 May 2022 06:46:11 -0400 Received: from pps.filterd (m0246632.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.17.1.5/8.17.1.5) with ESMTP id 24K9bnwA002877; Fri, 20 May 2022 10:45:58 GMT Received: from iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta01.appoci.oracle.com [130.35.100.223]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3g241sepd7-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Fri, 20 May 2022 10:45:58 +0000 Received: from pps.filterd (iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com [127.0.0.1]) by iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com (8.16.1.2/8.16.1.2) with SMTP id 24KAa6mi001911; Fri, 20 May 2022 10:45:57 GMT Received: from nam11-bn8-obe.outbound.protection.outlook.com (mail-bn8nam11lp2176.outbound.protection.outlook.com [104.47.58.176]) by iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com with ESMTP id 3g22vbqbwd-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Fri, 20 May 2022 10:45:57 +0000 Received: from BLAPR10MB4835.namprd10.prod.outlook.com (2603:10b6:208:331::11) by MW4PR10MB5838.namprd10.prod.outlook.com (2603:10b6:303:18e::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5227.21; Fri, 20 May 2022 10:45:56 +0000 Received: from BLAPR10MB4835.namprd10.prod.outlook.com ([fe80::b9e5:d1b6:b4be:f9d]) by BLAPR10MB4835.namprd10.prod.outlook.com ([fe80::b9e5:d1b6:b4be:f9d%5]) with mapi id 15.20.5273.018; Fri, 20 May 2022 10:45:55 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=from : to : cc : subject : date : message-id : in-reply-to : references : content-type : mime-version; s=corp-2021-07-09; bh=J8SoRx4VSujiXnmA6/ljK6Ur19yHlN4Sc8s10GMH3BI=; b=Zj3/28FReyFasOdqY8cf9KI6ScgsunQU7cr5kGNfohSDibvNehhuYL+TH+QjpOpRhvh8 0zB1qxIx9slHy1zu8hgLOCYlB5aT2/veNtamlQQ8aaAb4RJI7WnLrTztLX561kl0Q0w+ V9oyEptJbW2QkL7+P/NvszC7QcPqh3ySlUHVwxNivocldDRAfb5wBuh5zaRWE1qwWX4+ KGPdVgl2Ib3jOE+Zc2GAME/d8MR8/ZZTPTYsKn70stGb9y8TC8wligdyc9yuc6mkqAGb QrLlJs+TESFH5nzLvMnT8r6UERwVLbFB2eKLVaaF814PYb2kHp2K01v1aLH/bVRE/AmL hA== ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=S1ANfd9wmemQ0KL+bs56IF+uFZBfqmi1glklAai5RCtDFLicN/js/e48aGZ8wytTTfvUfR3/OPJZ73eOAtS3O/FHpeqk5WSx4wxC4MGisA7A+CGbRh+xclJh/F0LWyv1asNkbOjs3dTfZTu4u5xeH3IKlwnuw3m28XegyxIFOd9EAEQ0eCjC4iAt7f+MR0KWbLqvu047ivbfSYD8aXpVzT/9e7qmmXPVoT7ATMlInZzd6/GN5ubU9W7JYTTpM7Db7cuGHKnQOOCQ1iuefEc+uSHzEhsNXtRmkXvdVGN37C/SKcinb068MnY4+UcSYUExjorCoaIekYxfDt+TM4PbJA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=J8SoRx4VSujiXnmA6/ljK6Ur19yHlN4Sc8s10GMH3BI=; b=ndyLhvEZNelzw9DoLlHmdzMYTMvpbL4QJMhZVcJNhzk86AR2RleCpvZSkf6sbIn9kTCPiM3rDcqD+Kr6bdpcPO4ZfvXhxkGwZzhYrHWUWg77TBoFxdAKtPvaLQxZ/uNdVn/ccz23R2A74uIqDy3hohkJBfxdWsvL4ZBKWnG0F77nneXqMko31A1Lpyje/TaeqdLIX+s64f5kGNjWKt1rHCJCSoOCGSVMIl1vddwfQyBaSufA9MfA/XRVSKACPm2Zre3dGp77RkLibWB4H5bvx5o8bLgWA3mASkpL38i1ruEqajyDNxSoPgzrTRViIkLoaJTQgCE4pkV4dHtMexKXFw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=oracle.com; dmarc=pass action=none header.from=oracle.com; dkim=pass header.d=oracle.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.onmicrosoft.com; s=selector2-oracle-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=J8SoRx4VSujiXnmA6/ljK6Ur19yHlN4Sc8s10GMH3BI=; b=TjaBKmrbEnvrFM/53FgYWCs3gi2eJtCUppRL8Vl1AMXuZS6FLYzKHlc09Z6OO+zxeFZFb1cHfnD9XR3leWj9lESjf9fnA1WcK/ThwFUgaFJxZJ4OnhcLPc6NOfzd/8vOQhx6OVi7PjmMKS8VODZIH36MNIssg0AGJ2B+Dk/gJCY= From: Joao Martins To: qemu-devel@nongnu.org Cc: Eduardo Habkost , "Michael S. Tsirkin" , Richard Henderson , Daniel Jordan , David Edmondson , Alex Williamson , Paolo Bonzini , Ani Sinha , Marcel Apfelbaum , Igor Mammedov , Suravee Suthikulpanit , Joao Martins Subject: [PATCH v5 1/5] hw/i386: add 4g boundary start to X86MachineState Date: Fri, 20 May 2022 11:45:28 +0100 Message-Id: <20220520104532.9816-2-joao.m.martins@oracle.com> X-Mailer: git-send-email 2.11.0 In-Reply-To: <20220520104532.9816-1-joao.m.martins@oracle.com> References: <20220520104532.9816-1-joao.m.martins@oracle.com> X-ClientProxiedBy: LO2P265CA0392.GBRP265.PROD.OUTLOOK.COM (2603:10a6:600:f::20) To BLAPR10MB4835.namprd10.prod.outlook.com (2603:10b6:208:331::11) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: d512105f-8178-49c3-1ea9-08da3a4deb19 X-MS-TrafficTypeDiagnostic: MW4PR10MB5838:EE_ X-Microsoft-Antispam-PRVS: X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: agI549HSqapPtPGCgF/rwX+S+N6c4aXmBE5GcM9+1lyKP5bhNQ/iuUg1DRJzzLMB0DBtv40qYiEmgpfNVZoDS5Ae/IB6FNeck9dzIhG9TxFzUIDKqCv4tZAS0OBDwS3fCBlkYvq3dDWN3nVvlUqyzS/oi1i6TJmiei6bozkBCgswGyd2o0m9rJCDrhO+ZC55if7x+dtbm+x2614le+fZFwjynjGxLPEoXz9rWTIYqUmj72TBOGCeniFXuyQ/YZNxgBHEFMs5Hf8V5LSr2A/pN0SL/rHl5zNWPGRtdM3GVBblQmxO0FxhdRLmyTR8FTjLO6NtCLKEbZ+a0jQfuc20OsIKuaj69CyhvtLwflE7HbopTQyHNQBKgKjrPEmUPbez9n9UQM0PdBK8yUIi6jZiBMne+S4warzh1l5i5qxHLff1O+gGOyZcMZ3Y/DYpWo+DTcpVJ/fXu6AdxTJIu8VxhYXDsLXrnAKgtUSq47vXu2CVGtk/xZf1GsZVIHO1Hx7Dp8MFpba7b4fSV2RbVhMM8cKiH8BsNvyDLJJC6XdTWmgt6IGxksABvM4RheQomZV5IEEL6J1QpyOvJbF3KXHwfsTVWKoCFogzG3uWJZXlhmAEt+k3j6uVbPx0wj6IozRLu1lEL/zFUEX+Ga16vEaz+MhhrMAtJdPx9cCyBFUTIkaVop1cBQ7+tXk9BCydrIwperi/scDd5tfWsYS3FYMFCA== X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:BLAPR10MB4835.namprd10.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230001)(366004)(52116002)(83380400001)(26005)(38350700002)(6506007)(508600001)(186003)(1076003)(2616005)(316002)(6916009)(6512007)(54906003)(107886003)(6486002)(86362001)(103116003)(38100700002)(2906002)(4326008)(36756003)(8936002)(66946007)(66476007)(66556008)(6666004)(7416002)(5660300002)(8676002); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?myFqhis2Lxj5I03ztce0C7mqsc0Knv08oWBuPqefEt7+pAFGj/h8gb5TpwoN?= =?us-ascii?Q?2WhBUjSJWgNjYxeJ2Uo4FYcA17C/m2EZGpD0Lxtwhdgfbb+s6/rCf+V5Gq3t?= =?us-ascii?Q?nL1TmgJzdfv86COVBVbXUMWXtkwMB4oli4FVrq+DayuZH12sqUL5UcpVkdUz?= =?us-ascii?Q?Gx1fTa8pYLemuYtjZEgpT6kzVz58FqNkYYfN1ifkVd3DpsnxKFJkwyluDy3E?= =?us-ascii?Q?5RV1vSRDy0F3I0XFjUj2xKyqyVObnK5jIK+tyAH82ypqDOhs4Ps3AfBFEYbL?= =?us-ascii?Q?EgHhzbbQU5+9COynQsLIIWkjTNppA6ANBGBrr6dmJkbMuZyidwwHdM+CsyOo?= =?us-ascii?Q?Ck2ZSULUCLBOrBIEr5lfDBLh8B0vTUKW47znCIwSI3xxRjXQwWwr6kd/wR0I?= =?us-ascii?Q?fWfk3VJ6eXkrS9zT68F+RaVBeZq9LO11+7l+BmBOAHSBd9V4rbqkUR1gl/Li?= =?us-ascii?Q?MKBwocILWon42OlMck9ZVaJW0TDB5dI3pe0MfTXIebS1nRQSlUfMLK/TGFjP?= =?us-ascii?Q?wUCLe78aSCbjEg+UpgKoRQm+6QLS5C1xWiHvuPM2cx4ABEltq0Hji+nkp8Gd?= =?us-ascii?Q?v2zvInzG2VMuqs9/7rYb8J0SsC34Z+UUxIyXYC9ahjDz10Zp+8TfWRGlSXdM?= =?us-ascii?Q?OcXV+KyO01bXsdivf1wg77A28aXK6BZc2BXckCBMFTHIWG1iat9e1f2humw3?= =?us-ascii?Q?XPr34H5o3mmjeNetv7KaDN9TbgopvXn8E6UAdlmdlwt2i0zScP/dUCmjLvjD?= =?us-ascii?Q?lxTzeGjVKfR2psV/qRWcazE/4dbgvO6mgBLQ6Gub810CGekKNct1ubYBQws5?= =?us-ascii?Q?w+xFDABufgHP5lZTpGSrAfQUe1vaFc6QjuZICo215sl933+myQujZjXFrDDl?= =?us-ascii?Q?54d4ertREicuRF0/zhKp5G0ut1WXehimQZXo+1xTnwhG1BjJMrKriTTClLtZ?= =?us-ascii?Q?VzKirK4PINiXZLSuDFAipWwWK85wmIWIVDlmlD78qMzMaxN693wcqb1w7lu8?= =?us-ascii?Q?X0n/KDq4BRIalE1NHvtpgpJvS5In6w8FGsVbahlJ4ZkUw52GmB3zGpygVENX?= =?us-ascii?Q?6iiXfGE6sBjkmvELxv/OZuY+ALGMdzdYZjSziutG+cofEGA0eGHzWTmoa+MM?= =?us-ascii?Q?6ekkT9qJhUllDV2tnsyN41gjzF0tKBu+Aq4dIACrXGcWthSgf4kobQiAQsX8?= =?us-ascii?Q?/vCjoagNb+MXlWSuR2wu+vgw8VEIZcsXWqaxIz0Txe3VA1k0WGIG+fXFUYPH?= =?us-ascii?Q?dbg0EYrAdZYE7Y5v8y8QegmP9Op15vosVrgrHtiO/h2M27gLcZzxyfVm6dkv?= =?us-ascii?Q?iFNxKYBUbleMEZlB5bv71oXYuMl2OeAcpA4XxDDit4pr21kvpqCPQAafDTOU?= =?us-ascii?Q?oZJZsKclxVNsqhCBu6n3xtaLHZlQ3X3+hXMt4QlMI9CUSohV6Eh04Rgey68i?= =?us-ascii?Q?WL8qwLStK336fc5yX+dLsofTKMze6ypejq7YLB8YOfh5MKrVdR/REekOQKsm?= =?us-ascii?Q?lZuC6/UUvupX20Jo94iP/kWVLdb+sY+7Taib0JEhItFE9uYzILyd4isl8dz+?= =?us-ascii?Q?nH5H0O3POhnMAXWI0hPoJlpXXQ04KM8D0Di403DV8UWuA8MS7D1aTZK89rk8?= =?us-ascii?Q?aogGWcUbLqJIk0WHmUaYnLXoq4XKSfrr/7eA90qHV0SOnUB6cdeHIbaxar8s?= =?us-ascii?Q?iK7ggWkYTeZkXs7k9kWvAw4OU4W3sYE1z/IE7R44bzQYIaIr6vJv/Y/E77L2?= =?us-ascii?Q?fWKXfFdFO4MDgjIP6UhuCvr1bGCpDBQ=3D?= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: d512105f-8178-49c3-1ea9-08da3a4deb19 X-MS-Exchange-CrossTenant-AuthSource: BLAPR10MB4835.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 May 2022 10:45:55.9405 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 4e2c6054-71cb-48f1-bd6c-3a9705aca71b X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: /YZn5Wz9YGjGTeR24WO14kTkxkwwPr/YXOSDT03mZUun/G7DNno8RDKXawRmxi59zWUyPtZpiXLcoS+Y+VdnIOmMmly7ddKMNZSdWGESunE= X-MS-Exchange-Transport-CrossTenantHeadersStamped: MW4PR10MB5838 X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:6.0.486, 18.0.874 definitions=2022-05-20_03:2022-05-20, 2022-05-20 signatures=0 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 malwarescore=0 spamscore=0 mlxscore=0 phishscore=0 suspectscore=0 mlxlogscore=999 adultscore=0 bulkscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2202240000 definitions=main-2205200078 X-Proofpoint-GUID: Eg17C_aAPfGITJmOO_GgrwS5OC-vktUY X-Proofpoint-ORIG-GUID: Eg17C_aAPfGITJmOO_GgrwS5OC-vktUY 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+importer2=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=205.220.177.32; envelope-from=joao.m.martins@oracle.com; helo=mx0b-00069f02.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, 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+importer2=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: pass (identity @oracle.com) X-ZM-MESSAGEID: 1653043894086100001 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Rather than hardcoding the 4G boundary everywhere, introduce a X86MachineState property @above_4g_mem_start and use it accordingly. This is in preparation for relocating ram-above-4g to be dynamically start at 1T on AMD platforms. Signed-off-by: Joao Martins Reviewed-by: Igor Mammedov --- hw/i386/acpi-build.c | 2 +- hw/i386/pc.c | 9 +++++---- hw/i386/sgx.c | 2 +- hw/i386/x86.c | 1 + include/hw/i386/x86.h | 3 +++ 5 files changed, 11 insertions(+), 6 deletions(-) diff --git a/hw/i386/acpi-build.c b/hw/i386/acpi-build.c index c125939ed6f9..3160b20c9574 100644 --- a/hw/i386/acpi-build.c +++ b/hw/i386/acpi-build.c @@ -2120,7 +2120,7 @@ build_srat(GArray *table_data, BIOSLinker *linker, Ma= chineState *machine) build_srat_memory(table_data, mem_base, mem_len, i - 1, MEM_AFFINITY_ENABLED); } - mem_base =3D 1ULL << 32; + mem_base =3D x86ms->above_4g_mem_start; mem_len =3D next_base - x86ms->below_4g_mem_size; next_base =3D mem_base + mem_len; } diff --git a/hw/i386/pc.c b/hw/i386/pc.c index 7c39c913355b..f7da1d5dd40d 100644 --- a/hw/i386/pc.c +++ b/hw/i386/pc.c @@ -832,9 +832,10 @@ void pc_memory_init(PCMachineState *pcms, machine->ram, x86ms->below_4g_mem_size, x86ms->above_4g_mem_size); - memory_region_add_subregion(system_memory, 0x100000000ULL, + memory_region_add_subregion(system_memory, x86ms->above_4g_mem_sta= rt, ram_above_4g); - e820_add_entry(0x100000000ULL, x86ms->above_4g_mem_size, E820_RAM); + e820_add_entry(x86ms->above_4g_mem_start, x86ms->above_4g_mem_size, + E820_RAM); } =20 if (pcms->sgx_epc.size !=3D 0) { @@ -875,7 +876,7 @@ void pc_memory_init(PCMachineState *pcms, machine->device_memory->base =3D sgx_epc_above_4g_end(&pcms->s= gx_epc); } else { machine->device_memory->base =3D - 0x100000000ULL + x86ms->above_4g_mem_size; + x86ms->above_4g_mem_start + x86ms->above_4g_mem_size; } =20 machine->device_memory->base =3D @@ -1019,7 +1020,7 @@ uint64_t pc_pci_hole64_start(void) } else if (pcms->sgx_epc.size !=3D 0) { hole64_start =3D sgx_epc_above_4g_end(&pcms->sgx_epc); } else { - hole64_start =3D 0x100000000ULL + x86ms->above_4g_mem_size; + hole64_start =3D x86ms->above_4g_mem_start + x86ms->above_4g_mem_s= ize; } =20 return ROUND_UP(hole64_start, 1 * GiB); diff --git a/hw/i386/sgx.c b/hw/i386/sgx.c index a44d66ba2afc..09d9c7c73d9f 100644 --- a/hw/i386/sgx.c +++ b/hw/i386/sgx.c @@ -295,7 +295,7 @@ void pc_machine_init_sgx_epc(PCMachineState *pcms) return; } =20 - sgx_epc->base =3D 0x100000000ULL + x86ms->above_4g_mem_size; + sgx_epc->base =3D x86ms->above_4g_mem_start + x86ms->above_4g_mem_size; =20 memory_region_init(&sgx_epc->mr, OBJECT(pcms), "sgx-epc", UINT64_MAX); memory_region_add_subregion(get_system_memory(), sgx_epc->base, diff --git a/hw/i386/x86.c b/hw/i386/x86.c index 78b05ab7a2d1..af3c790a2830 100644 --- a/hw/i386/x86.c +++ b/hw/i386/x86.c @@ -1373,6 +1373,7 @@ static void x86_machine_initfn(Object *obj) x86ms->oem_id =3D g_strndup(ACPI_BUILD_APPNAME6, 6); x86ms->oem_table_id =3D g_strndup(ACPI_BUILD_APPNAME8, 8); x86ms->bus_lock_ratelimit =3D 0; + x86ms->above_4g_mem_start =3D 0x100000000ULL; } =20 static void x86_machine_class_init(ObjectClass *oc, void *data) diff --git a/include/hw/i386/x86.h b/include/hw/i386/x86.h index 9089bdd99c3a..df82c5fd4252 100644 --- a/include/hw/i386/x86.h +++ b/include/hw/i386/x86.h @@ -56,6 +56,9 @@ struct X86MachineState { /* RAM information (sizes, addresses, configuration): */ ram_addr_t below_4g_mem_size, above_4g_mem_size; =20 + /* Start address of the initial RAM above 4G */ + uint64_t above_4g_mem_start; + /* CPU and apic information: */ bool apic_xrupt_override; unsigned pci_irq_mask; --=20 2.17.2 From nobody Sun May 5 04:19:04 2024 Delivered-To: importer2@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+importer2=patchew.org@nongnu.org; arc=pass (i=1 dmarc=pass fromdomain=oracle.com); dmarc=pass(p=none dis=none) header.from=oracle.com ARC-Seal: i=2; a=rsa-sha256; t=1653044131; cv=pass; d=zohomail.com; s=zohoarc; b=VRa1JmL6HiUDZAfPEU0vwLvK8lyl4sAFWrEQC+T+g06PTpNIoezoRZA2LOLxp/Y1Mo0zrDb3ecpZlf/g6kBsLpSqIjM6PiziVbXeU13qD84GqA+YKCpxPmifv4Nk75U2hRIyLHqPDn9QTsqqTiWdULeMXigLkOgwyOEajlMcpAw= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1653044131; h=Content-Type: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=Z7IBsIPj5o8BUaxgeeVlo0NXGwPTAuzxcMT4gxlgJ0U=; b=mXqVAu7gLcpMCw5K9fKRQDQkkgXHr0Cyv42SZ2FFCGG+Tc0jHyDQHdQ1cFgZ55JD9DuYhI83p7PYfmHnXtAIVY4KRoCTVwYBmEDpd6FUkbu+1CQTIF4VrjZFwze1P+piAyhrcyyfHMJnprHHwsQCeis8kIQapF3hYYvfakHrd3w= ARC-Authentication-Results: i=2; 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+importer2=patchew.org@nongnu.org; arc=pass (i=1 dmarc=pass fromdomain=oracle.com); dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1653044131284278.0019277456155; Fri, 20 May 2022 03:55:31 -0700 (PDT) Received: from localhost ([::1]:59056 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1ns0I5-00087p-Vw for importer2@patchew.org; Fri, 20 May 2022 06:55:30 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:41794) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ns097-00018I-72 for qemu-devel@nongnu.org; Fri, 20 May 2022 06:46:15 -0400 Received: from mx0a-00069f02.pphosted.com ([205.220.165.32]:7512) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ns092-000214-2w for qemu-devel@nongnu.org; Fri, 20 May 2022 06:46:11 -0400 Received: from pps.filterd (m0246627.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.17.1.5/8.17.1.5) with ESMTP id 24K9bgXj029971; Fri, 20 May 2022 10:46:01 GMT Received: from iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta02.appoci.oracle.com [147.154.18.20]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3g2310xqce-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Fri, 20 May 2022 10:46:01 +0000 Received: from pps.filterd (iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com [127.0.0.1]) by iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com (8.16.1.2/8.16.1.2) with SMTP id 24KAjeDk036160; Fri, 20 May 2022 10:45:59 GMT Received: from nam10-bn7-obe.outbound.protection.outlook.com (mail-bn7nam10lp2104.outbound.protection.outlook.com [104.47.70.104]) by iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com with ESMTP id 3g22v5x1rc-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Fri, 20 May 2022 10:45:59 +0000 Received: from BLAPR10MB4835.namprd10.prod.outlook.com (2603:10b6:208:331::11) by BN6PR10MB1378.namprd10.prod.outlook.com (2603:10b6:404:44::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5250.16; Fri, 20 May 2022 10:45:58 +0000 Received: from BLAPR10MB4835.namprd10.prod.outlook.com ([fe80::b9e5:d1b6:b4be:f9d]) by BLAPR10MB4835.namprd10.prod.outlook.com ([fe80::b9e5:d1b6:b4be:f9d%5]) with mapi id 15.20.5273.018; Fri, 20 May 2022 10:45:58 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=from : to : cc : subject : date : message-id : in-reply-to : references : content-type : mime-version; s=corp-2021-07-09; bh=Z7IBsIPj5o8BUaxgeeVlo0NXGwPTAuzxcMT4gxlgJ0U=; b=aus4dPH0x833zjlaQPXmUy00MjZxOyRkC0We5jCYmvTe/7uRCaOLodGoSwVXyIiMZ7qJ fwr2vkYLZE5hch0LlJJ/fkfqIkKMbkDcGNz8KT+DkYkUYS27Brd5S1fzj3bHD9EW5HO6 4XaN6qxUWJ6jtj48v/rt3EIEvfVxXMqXpyQM4u6r1Tp2CYIHv9wGGcx0RHbWLBqBFq9l h2Tod9uBFTv3Y2/1VrNszDCUL1z/XaJ+fqcH++o0rl2v5JrDDdDLrm0nVWXfUrBeAjQh qVCmfZZke+u5N/KHgb5a0TVDS7qOetXdogpv09/mSZmZN3L1rJlR06zMhjOTfz+DgxFq Ng== ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=ETDXgrATgslQDwND4/2NxgJAAGSeDJSvYAAYAeGj8CiKYYNipf1sVMfENpa0deAk3KsVjVu/kVy9NPOeRD5QnxX9msVvrRmtLr6YoPovR8J7qHsZs2ErdGRRB4zed1FA5m+mBSby7Wdo/M+LW8TEjfBlft+MzbE9mkXxypJCe2PGIJnOV9pHzX92xEBgZT8pRI0iCV7l24pUlJvS+VsqUeKQdCg4SlUSe+3rSyQihmf5lW7AYCtMVjESsaDgFbWjvJRXjCF0cmUzS9sMIk0/M6JrRDIvvLs0EiIosnrZ2/wAZf0uiG9VSs7BfUrTAZHB69wPEbHf6BBUfCNjrIMVEA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=Z7IBsIPj5o8BUaxgeeVlo0NXGwPTAuzxcMT4gxlgJ0U=; b=E8Ft71Y9asrC5mxtZ43OtO0bMrdQivGWZsWI+sX2Ep+JGl9fQb/CJTxc/2sAefpjfGgQBrs1btkSCyV8SJKDtZxgzujmI7fmS7P2PUX1UX2iOTxqV0VkAzvzg27YlNk0Bb72vhzUKDjv2Qb+XUsszSE9f2y67u12VLqQ3Q3RMYBV9nZpQfxRMaF6Rts+c69s1FkWmyGLCy2CD0nPXMLTL57DILsm7ty4Pty7QimpsOWVazHZFjc7QPNe/U0W9NGanvIsK13BsGCLnBvjk2iaDut3qFx3eMRqqwSsqWJU+CFiCIGdoN2sKZ3WUD6VM5mdntOYliF2YjWyrtjKl1otVw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=oracle.com; dmarc=pass action=none header.from=oracle.com; dkim=pass header.d=oracle.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.onmicrosoft.com; s=selector2-oracle-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=Z7IBsIPj5o8BUaxgeeVlo0NXGwPTAuzxcMT4gxlgJ0U=; b=bZE4hbUEpOmPVH+n9mQAkraff7U0suh82VjZc28lKoGt+0cjFjl9wJXOAdcNL7hHFrIM+ByeqKyNJkNoIzAnmUiUAthNduGBUTdl39pdvGlFUgxLWd8c/Y+11nAJs3nsr9q5NcaGXBhBt8AKlPWCQjNtAZE3rE/VZ9+1Ef3P25A= From: Joao Martins To: qemu-devel@nongnu.org Cc: Eduardo Habkost , "Michael S. Tsirkin" , Richard Henderson , Daniel Jordan , David Edmondson , Alex Williamson , Paolo Bonzini , Ani Sinha , Marcel Apfelbaum , Igor Mammedov , Suravee Suthikulpanit , Joao Martins Subject: [PATCH v5 2/5] i386/pc: create pci-host qdev prior to pc_memory_init() Date: Fri, 20 May 2022 11:45:29 +0100 Message-Id: <20220520104532.9816-3-joao.m.martins@oracle.com> X-Mailer: git-send-email 2.11.0 In-Reply-To: <20220520104532.9816-1-joao.m.martins@oracle.com> References: <20220520104532.9816-1-joao.m.martins@oracle.com> X-ClientProxiedBy: LO2P265CA0392.GBRP265.PROD.OUTLOOK.COM (2603:10a6:600:f::20) To BLAPR10MB4835.namprd10.prod.outlook.com (2603:10b6:208:331::11) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 96d440c9-e4bb-4bcc-fa62-08da3a4dec68 X-MS-TrafficTypeDiagnostic: BN6PR10MB1378:EE_ X-Microsoft-Antispam-PRVS: X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: kV4RAuGo/nQ1z1owy7WIwWwuygHTN2lLn3sNwsJJbJyXgFbIRcR8OpGrZLvKyqiHUxGxGnF3LsN8veoEbbzmyT+gYpDnvXok+oRZUnjuKgvSSP6LqP2Jml1Ve8nKZDsYHamOi9Q38I6pF3RRT1cCjSaqDSgrO6Y+19TPPwll4yCShryxTzsWDNUhVPVr0VnHiok1lfXlfu/T9jZDfbrIBO0x5mZSTImqUuyU29zEeqiskTJ4UN/y6RFeyyAsW2NdlIEBWfif4sfO+76UfPbQXU9eDfQSAOH591b0o2PmBjSrRSH3pbuirBX29XUxtK4vp4KXVdPEseMGGjty4CSB4eZtGsHJwua6pWvAbQXKVuzShAgBx5FbRt8GGDIqohXTk/8neZynZAzCZjNkuV8DCzxZYPYMDzuQ9sfrC4/6u2UnKXKF2TCdUzgfasvjHcsSwVUu6WhnzmKIrCOFloyFMu5ouWwqCZC4vWgnkcl1vhRvVLwr+PadXWJgfOrETlpKkgGdYO4+ClXjmH5CQ08LrkPtxhkyMTArdqL125txgmfJWTtWlA/v0nOOHbenBlVCPtTh2N3jCZxs/eNt2qBmQ09NVbob/LQrHYFv+msBYpWiLKMG2oQUy50m/4Okp4n1Rv7m1vi91/GM/lowFHppRTp/aRSOQo+Z7Rvs0xc+J12UydmrWbOvKXLlnF6ku20bazgFTHdCNxdZ86o1QCv+4w== X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:BLAPR10MB4835.namprd10.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230001)(366004)(5660300002)(8936002)(66946007)(6666004)(7416002)(83380400001)(508600001)(66476007)(54906003)(6916009)(66556008)(6512007)(8676002)(6506007)(4326008)(26005)(52116002)(2616005)(38350700002)(38100700002)(86362001)(316002)(186003)(1076003)(107886003)(103116003)(2906002)(6486002)(36756003); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?UbPn6Xxn48gP4Ugzat+X+PZKJuSUlzjkSKTjw1rGKsmcuDc4oABb24Gb0KXg?= =?us-ascii?Q?Qf7YBeBc4jPlCUl2wsPbQCjw3C1oQopnNBHr9WKknK32zC7FJZ/ZYbclPYY9?= =?us-ascii?Q?vT/Dy+oZCBHrF+TWkF68pFEGZzGa0YdknHQbRyKRGYUSsdG7X1pXdZCKEPHI?= =?us-ascii?Q?aGmMAexZ/afsEHbkZnkCHXx0+LI9AU6CdMfkgy2nDMT0C3UZzmGkVzcc2uge?= =?us-ascii?Q?KlBxVgxgir7w/7E7ZMsznT/Q3lsL++cjsvXOpIBt/STrmVRDwWAarW5O2FHs?= =?us-ascii?Q?DJ4q3f46F2N9na5kqotRESZKp73sQ2Od/eha8qkdM1AiCKYCNuJburv+3a+7?= =?us-ascii?Q?W1CFtD6l6uYfIqsXyiaU+lMEcDPvR7kyjviKGbwXniwo2U85m7Il3WgHCeVT?= =?us-ascii?Q?vHPJ6AOGh0uoS0K3iL0WhdDmgNa2QpMI9BgXMRLWNg3O4nVoLyoxfTy40LPB?= =?us-ascii?Q?4dlIttAe+3J4nTAEHbOEYPCg/5kiyISnBbF/E3v/hPE9SMOvNMHdNDosgUxc?= =?us-ascii?Q?2/bZh5Ysq5eBXpwvhhYvK94mzBaimfje6qxyNdyid6sL4d0pDSkJA+JohBVv?= =?us-ascii?Q?4rOedIKDDLG8Upxc0q+OVABcPUvpgh2T2F5Y4oBnrZeXzahMUPaV5h8QI6D6?= =?us-ascii?Q?z2BEqxCBVMEp5kWFZGsLY77kkyzQPxQGXKZ5xYUB1xXp7FYvZWuJkLtcCyys?= =?us-ascii?Q?5WdjO5OGphxcAehR4sYdPXySeMBWJqKmt8r13mbzE/f/fiP26xBhEHVVaDwX?= =?us-ascii?Q?Ei5YObxSGEvpyQSRMgBytWdjy70j/u5dlaARJDyrmjOPrzTht58vlKET4Ez3?= =?us-ascii?Q?DtZwAC6W11U5Bv1Urnr2UMqH0chpiXGVBp0+Bxppqnh//lxB+dBoh1ppmslO?= =?us-ascii?Q?hRwgxmlXqwqxyYMcW79Ov74KtjfScy1cbEZdQfFCU81AMi3GY10SegS0yniV?= =?us-ascii?Q?c+aVKQplSRrDP6yMhloo/+HMQ4BiCT1DBAhP/hVEaEXEjGcCryj+hk0FG+a+?= =?us-ascii?Q?E71cYoWwmUwmeYQBUVQyi7jZOSXQ3JKuAkiN0zgqJ/HNppc6IXP21SQq5fLm?= =?us-ascii?Q?AMXnIivUO996MciH0L0SdkFx+oDLrCxgIP07Hj4j3v4E3gQ6ScTxyuJ9c21+?= =?us-ascii?Q?PfECZ20wWCcgiwb9CZMTHy1ghXxPpDYlbwlgqfcYWWD+kBcg1UhlfIUjoYbk?= =?us-ascii?Q?wSHZvbxJ8YWl7YYLPwuSvhCmBPX69lG3xphvqZL5nADaYhfT1gki3dKRxpEt?= =?us-ascii?Q?90CJAEaYVXod7d1GOp7+ElrX069PHOogyiUphTTwSuI2DQf3Kpi0WbAiE6DR?= =?us-ascii?Q?kv8VHPAS57XBz0Fksbv4xjawVI4xiHgMnw7a/9IU4GZhhWbbGFUjREeJnxXj?= =?us-ascii?Q?1SlH93Gxss3B+Af74dBmlSwuqqgWpRf1+BpSJQn95GsA5hwmfTYifET7aeZX?= =?us-ascii?Q?9Ne46W31hm8ubFQQwLtOr6hqTqrcAJjezs0U/cApPHOQA7m442hZRv0hITXv?= =?us-ascii?Q?IGM99o+LRbZDiFGDQjerA/OkSdI7Ox5Goue8QxALDbgr4U1zejaBIfSJMVEo?= =?us-ascii?Q?dIOI1ZbmoPSE6+Rup7qDiN8Ty4mOSE4fQjZKc7aBdYltQhxeNIGsZLBhKVJW?= =?us-ascii?Q?1Je510oy3BH3E3W63RbL0457jIsLfu/bts+ZDEyJ+uqJTtdd/gZRnX8+brJX?= =?us-ascii?Q?2HDIJyNvG7eKrTGFt8D6wMrMvXQ0SdFNtAXlvGh0Ah/KPZ52gbAOZlJjcId8?= =?us-ascii?Q?qa5Dsge7RcWtOwsIzp/oPPpaBK7ENRQ=3D?= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 96d440c9-e4bb-4bcc-fa62-08da3a4dec68 X-MS-Exchange-CrossTenant-AuthSource: BLAPR10MB4835.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 May 2022 10:45:58.1416 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 4e2c6054-71cb-48f1-bd6c-3a9705aca71b X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: B8iZU9gflKuKiAcZsGIWmihP5wV9PrKkYjnb7sVDyqWbUDuyaN3E0vh9OXiKeDYtfJFL/f/kR8YC5qCBN3zQnmOtSSt2DhwEhgsOc0EIoDE= X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN6PR10MB1378 X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:6.0.486, 18.0.874 definitions=2022-05-20_03:2022-05-20, 2022-05-20 signatures=0 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 spamscore=0 mlxscore=0 suspectscore=0 phishscore=0 bulkscore=0 adultscore=0 mlxlogscore=999 malwarescore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2202240000 definitions=main-2205200079 X-Proofpoint-ORIG-GUID: itT1dO8unF15JQmVh_NrDzUoDZ4GfbCG X-Proofpoint-GUID: itT1dO8unF15JQmVh_NrDzUoDZ4GfbCG 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+importer2=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=205.220.165.32; envelope-from=joao.m.martins@oracle.com; helo=mx0a-00069f02.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, 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+importer2=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: pass (identity @oracle.com) X-ZM-MESSAGEID: 1653044131637100001 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" At the start of pc_memory_init() we usually pass a range of 0..UINT64_MAX as pci_memory, when really its 2G (i440fx) or 32G (q35). To get the real user value, we need to get pci-host passed property for default pci_hole64_size. Thus to get that, create the qdev prior to memory init to better make estimations on max used/phys addr. This is in preparation to determine that host-phys-bits are enough and also for pci-hole64-size to be considered to relocate ram-above-4g to be at 1T (on AMD platforms). Signed-off-by: Joao Martins Reviewed-by: Igor Mammedov --- hw/i386/pc_piix.c | 5 ++++- hw/i386/pc_q35.c | 6 +++--- hw/pci-host/i440fx.c | 3 +-- include/hw/pci-host/i440fx.h | 2 +- 4 files changed, 9 insertions(+), 7 deletions(-) diff --git a/hw/i386/pc_piix.c b/hw/i386/pc_piix.c index 578e537b3525..12d4a279c793 100644 --- a/hw/i386/pc_piix.c +++ b/hw/i386/pc_piix.c @@ -91,6 +91,7 @@ static void pc_init1(MachineState *machine, MemoryRegion *pci_memory; MemoryRegion *rom_memory; ram_addr_t lowmem; + DeviceState *i440fx_dev; =20 /* * Calculate ram split, for memory below and above 4G. It's a bit @@ -164,9 +165,11 @@ static void pc_init1(MachineState *machine, pci_memory =3D g_new(MemoryRegion, 1); memory_region_init(pci_memory, NULL, "pci", UINT64_MAX); rom_memory =3D pci_memory; + i440fx_dev =3D qdev_new(host_type); } else { pci_memory =3D NULL; rom_memory =3D system_memory; + i440fx_dev =3D NULL; } =20 pc_guest_info_init(pcms); @@ -199,7 +202,7 @@ static void pc_init1(MachineState *machine, =20 pci_bus =3D i440fx_init(host_type, pci_type, - &i440fx_state, + i440fx_dev, &i440fx_state, system_memory, system_io, machine->ram_size, x86ms->below_4g_mem_size, x86ms->above_4g_mem_size, diff --git a/hw/i386/pc_q35.c b/hw/i386/pc_q35.c index 42eb8b97079a..8d867bdb274a 100644 --- a/hw/i386/pc_q35.c +++ b/hw/i386/pc_q35.c @@ -203,12 +203,12 @@ static void pc_q35_init(MachineState *machine) pcms->smbios_entry_point_type); } =20 - /* allocate ram and load rom/bios */ - pc_memory_init(pcms, get_system_memory(), rom_memory, &ram_memory); - /* create pci host bus */ q35_host =3D Q35_HOST_DEVICE(qdev_new(TYPE_Q35_HOST_DEVICE)); =20 + /* allocate ram and load rom/bios */ + pc_memory_init(pcms, get_system_memory(), rom_memory, &ram_memory); + object_property_add_child(qdev_get_machine(), "q35", OBJECT(q35_host)); object_property_set_link(OBJECT(q35_host), MCH_HOST_PROP_RAM_MEM, OBJECT(ram_memory), NULL); diff --git a/hw/pci-host/i440fx.c b/hw/pci-host/i440fx.c index e08716142b6e..5c1bab5c58ed 100644 --- a/hw/pci-host/i440fx.c +++ b/hw/pci-host/i440fx.c @@ -238,6 +238,7 @@ static void i440fx_realize(PCIDevice *dev, Error **errp) } =20 PCIBus *i440fx_init(const char *host_type, const char *pci_type, + DeviceState *dev, PCII440FXState **pi440fx_state, MemoryRegion *address_space_mem, MemoryRegion *address_space_io, @@ -247,7 +248,6 @@ PCIBus *i440fx_init(const char *host_type, const char *= pci_type, MemoryRegion *pci_address_space, MemoryRegion *ram_memory) { - DeviceState *dev; PCIBus *b; PCIDevice *d; PCIHostState *s; @@ -255,7 +255,6 @@ PCIBus *i440fx_init(const char *host_type, const char *= pci_type, unsigned i; I440FXState *i440fx; =20 - dev =3D qdev_new(host_type); s =3D PCI_HOST_BRIDGE(dev); b =3D pci_root_bus_new(dev, NULL, pci_address_space, address_space_io, 0, TYPE_PCI_BUS); diff --git a/include/hw/pci-host/i440fx.h b/include/hw/pci-host/i440fx.h index f068aaba8fda..c4710445e30a 100644 --- a/include/hw/pci-host/i440fx.h +++ b/include/hw/pci-host/i440fx.h @@ -36,7 +36,7 @@ struct PCII440FXState { #define TYPE_IGD_PASSTHROUGH_I440FX_PCI_DEVICE "igd-passthrough-i440FX" =20 PCIBus *i440fx_init(const char *host_type, const char *pci_type, - PCII440FXState **pi440fx_state, + DeviceState *dev, PCII440FXState **pi440fx_state, MemoryRegion *address_space_mem, MemoryRegion *address_space_io, ram_addr_t ram_size, --=20 2.17.2 From nobody Sun May 5 04:19:04 2024 Delivered-To: importer2@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+importer2=patchew.org@nongnu.org; arc=pass (i=1 dmarc=pass fromdomain=oracle.com); dmarc=pass(p=none dis=none) header.from=oracle.com ARC-Seal: i=2; a=rsa-sha256; t=1653044126; cv=pass; d=zohomail.com; s=zohoarc; b=Ug1C21oiCcOD7GDSGAK07RcacU9hBSChxoxSg3KjdWJtHPpr1Yu61ttmIe3Ej7r8xrWsdhw6o7fTmM8N8HdusNVj9RVuo/dloij7DqCpHvJiq0fQWpqDsd8DOgJwYg9bE9xl1SfK21uwhC3jaThBZKyZN1UwO4rbei0wW91bjtU= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1653044126; h=Content-Type: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=8/JrlTTCiRnMW7r0QYm5OuvyjEsNMYD3TaccbVMlIyM=; b=La7jsXFAA1cLnLPg5K2LWgimu/xSpdedzBg8e0Iao+ul5NOsDBcqN5jjlasdcqV9e0u0U4p0LrgEOjl/UV2s0PJHuXueWH/gdLr2nJqlCCzJfp0k0MP6uq3fL3FQBr2vQ28GtgUj0Z3t7yRmk2iwO3ruxJXN2CUoV0lsdq0sXaM= ARC-Authentication-Results: i=2; 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+importer2=patchew.org@nongnu.org; arc=pass (i=1 dmarc=pass fromdomain=oracle.com); dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1653044126626974.8776752258946; Fri, 20 May 2022 03:55:26 -0700 (PDT) Received: from localhost ([::1]:59040 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1ns0I1-00087E-Dj for importer2@patchew.org; Fri, 20 May 2022 06:55:25 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:41850) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ns09E-00019r-Ej for qemu-devel@nongnu.org; Fri, 20 May 2022 06:46:24 -0400 Received: from mx0a-00069f02.pphosted.com ([205.220.165.32]:18204) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ns09C-00021s-6b for qemu-devel@nongnu.org; Fri, 20 May 2022 06:46:20 -0400 Received: from pps.filterd (m0246617.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.17.1.5/8.17.1.5) with ESMTP id 24K9Uxvs016949; Fri, 20 May 2022 10:46:06 GMT Received: from iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta03.appoci.oracle.com [130.35.103.27]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3g24ytxr11-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Fri, 20 May 2022 10:46:06 +0000 Received: from pps.filterd (iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com [127.0.0.1]) by iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (8.16.1.2/8.16.1.2) with SMTP id 24KAj8lU027300; Fri, 20 May 2022 10:46:03 GMT Received: from nam12-mw2-obe.outbound.protection.outlook.com (mail-mw2nam12lp2048.outbound.protection.outlook.com [104.47.66.48]) by iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com with ESMTP id 3g22v66h23-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Fri, 20 May 2022 10:46:03 +0000 Received: from BLAPR10MB4835.namprd10.prod.outlook.com (2603:10b6:208:331::11) by BN6PR10MB1378.namprd10.prod.outlook.com (2603:10b6:404:44::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5250.16; Fri, 20 May 2022 10:46:01 +0000 Received: from BLAPR10MB4835.namprd10.prod.outlook.com ([fe80::b9e5:d1b6:b4be:f9d]) by BLAPR10MB4835.namprd10.prod.outlook.com ([fe80::b9e5:d1b6:b4be:f9d%5]) with mapi id 15.20.5273.018; Fri, 20 May 2022 10:46:01 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=from : to : cc : subject : date : message-id : in-reply-to : references : content-type : mime-version; s=corp-2021-07-09; bh=8/JrlTTCiRnMW7r0QYm5OuvyjEsNMYD3TaccbVMlIyM=; b=jGLqnnbYZKLzvSQFP5rMF/jAxQueJ2yOfqAFMrNMnu0T/QcSQT0aE63+ppc6XPfaHIha MtTw8Q0wnRS+BbV10iO0sGZRK2mVzNoNiJ/txzGpSa+DbvkD5RsrRfKvKWlQ4qG6Zu/7 g+UJkLMOHRLp1PF8FWiTZdfvZqRv+KuVz6To25sXtyBW1jAnYANe+lNa8mOBfUmhP8ai NVhiLBYnSWZBOVyzCyJTBBDto0kNrwWCcJ+tPNJhquGd0UFq0AHj45lcAYhyQPdqPiNk OxveG0yeB9H9RGdAFVurZ3CYfJTpsPlzsTnaGpI0dIN0wOgP3aSuorCNU0McdnB0sflR cw== ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=g7XusMzP6OSAylGvRYuYs3HDj6rC0fVp7o8VbBz/t7544Ck+4kk5cElM1NSOqoP8YRNt2W/iQdd/PToNDRnOMverjFNjbbF11jGWbj2Asye+bVnphvVmaXBTNgaHjm8eCnGtK08jfagf1JrzGZtwRPovB1pKpUJnitEOwf5zzWp/cQZuOt9x72RWa3JfvlQm/dpcB2SuPlUzl+KYs64CCznMuHcWiLIx+EE2/vOFFDlA5+1EiBjYcmuLZDuImZrPqmywtLQfyBq8fWNp56AB2/oEt5g7440mzJwh/caunl6Bm6AHKqgQMuRVvlVVHelpNQ9rxVzZbPJJLrs1VCKcHQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=8/JrlTTCiRnMW7r0QYm5OuvyjEsNMYD3TaccbVMlIyM=; b=g6J6LaTW/x1xyQU7/uuscD1Xs4lCPd66LgWbnAvVL4pR82a9S6CYd2yRDXqp/TfPunV3SoCFOGl7UAqoYfQyoBnZzMdMHIgieKNgoHSrhpuyNGmOxKtn1D7ZQNN4UnB4EjZxxyKZPQzq7jPkXeKYiGaSxQNfCWvIR6wbot06PiUxC6Xck0LaZlk3HViP9nEM6imDEuE88fwzd7O8fTDWjC/q1YHiNouserJOuz/ejNsUiNepWfI/mvgaU08XYUn/CkH8lIhaKbWbhv/AMkaZwI/fPm2T5qO0WFWAu6qBn4Dojd0B5eaZITcFMw4H7aF8xZcOHI/2lsCU8eUO3we8Rg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=oracle.com; dmarc=pass action=none header.from=oracle.com; dkim=pass header.d=oracle.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.onmicrosoft.com; s=selector2-oracle-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=8/JrlTTCiRnMW7r0QYm5OuvyjEsNMYD3TaccbVMlIyM=; b=jLSkOrenRprCjeSv+7fpG8gmnron3dOoTfj8vOjyIJ0CRm5RVuQ3v8DO2idCTi8ygn0ekF7DzoT+v+ti8u3x9A75XGxGVD+ev7NhZKm181cpLaTDH0zfZEo7f/TCE3M1mzXKji0Cq0J/ZsO3QIQ3gbE4aUzniQrcqdHEe1EXf9A= From: Joao Martins To: qemu-devel@nongnu.org Cc: Eduardo Habkost , "Michael S. Tsirkin" , Richard Henderson , Daniel Jordan , David Edmondson , Alex Williamson , Paolo Bonzini , Ani Sinha , Marcel Apfelbaum , Igor Mammedov , Suravee Suthikulpanit , Joao Martins Subject: [PATCH v5 3/5] i386/pc: pass pci_hole64_size to pc_memory_init() Date: Fri, 20 May 2022 11:45:30 +0100 Message-Id: <20220520104532.9816-4-joao.m.martins@oracle.com> X-Mailer: git-send-email 2.11.0 In-Reply-To: <20220520104532.9816-1-joao.m.martins@oracle.com> References: <20220520104532.9816-1-joao.m.martins@oracle.com> X-ClientProxiedBy: LO2P265CA0392.GBRP265.PROD.OUTLOOK.COM (2603:10a6:600:f::20) To BLAPR10MB4835.namprd10.prod.outlook.com (2603:10b6:208:331::11) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 45a0181c-516e-4edd-f0f0-08da3a4dee07 X-MS-TrafficTypeDiagnostic: BN6PR10MB1378:EE_ X-Microsoft-Antispam-PRVS: X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 61QDFkfbH+w/f8nd3W5IA+OVgo41+pRM770nvIhsjHzGNqeLir/UCock1769ng0k796jyK58eKTGWuCjJ3PM7yQXUqDkKMn5GhMI+t8So4LuKbJtZ6ceuYtNLsowTpNBm8wQwEPWdB3UEAgfY6TnGwZvtIZC1uUEyyhi5aQvVNAD3ilMZuqVtMc9J/A17cumvHm9H6tPunr8Yeie/XQwqYRzcHHmxpK+CIEoPdlLiBSo7unGt3r+BHzlHD5+6KQOFu5EyVRgBz61jJiQsCSQ2c4hzNSq5goo85kb12az5roYlOhF84KVtZXX4WtkSC8fqqKyqxRAvE5hhMprl0dtFvE5w4CM/41xww3FPCeCnHsssBM2Z8lrkTGrIRURV5GIDInAgwOsZWPOjXMi2E0VuF3zts7ZiaamTNm/mK2OpSrd5MWsKtMjb9AK/F4Z6DswiUdxXJlAy5Zbq8y++5pzs+VEKFWQg/FnalbSQEs3plRLbgTxutJIgMOln2BtBuSwDsmi2ejNjq8N+ROZtp32EDH/BfHCtvNpBcZAHMps5wePmZEm6anklM3he4AudIZ2nRr6QVEiiQjbUhMUcKSOApKMcZdy6gu9+ES/FAsbHDo50tM2c422k6I2Mpxsi0QOwpdimdY6y8HZXj3Otw/hOcDiVPv/yhl6DqOoFdVx/lwUtWcpGb03ujjFURAaR5b2CsisO2uqDQY/o/yHAeHMeg== X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:BLAPR10MB4835.namprd10.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230001)(366004)(5660300002)(8936002)(66946007)(6666004)(7416002)(83380400001)(508600001)(66476007)(54906003)(6916009)(66556008)(6512007)(8676002)(6506007)(4326008)(26005)(52116002)(2616005)(38350700002)(38100700002)(86362001)(316002)(186003)(1076003)(107886003)(103116003)(2906002)(6486002)(36756003); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?J7qH76cD3Mqtl54ZHRhqNlK83QkQ8ocPI9k55zsMd+RGp2lgzyfQqdrUUQkZ?= =?us-ascii?Q?0hYjp0dA6sUkYwLgpTBqTC6/T6yY16K+IWykAlLpbylifRw6+b8j46KiFyft?= =?us-ascii?Q?9RyrY3SfH2ncndOvM3VX/YzINeW+7VrGi3bgQ7JDQTsG2FUN1zh+NdNZ/+qy?= =?us-ascii?Q?ljmtUar64HxnTcd5GZrxmhRjMco/GLlXYmhdJC1SX1utvr1OJXGWgymkPRAq?= =?us-ascii?Q?lgnb7LWybzbu1qUL7QAiGH7OtFeoVaN5T4oLdId7pPzbgk/IxHO032UHDmmr?= =?us-ascii?Q?UjFd8Hv/rxR/slaVTq0ctbrq+7Fy8yt/tNqR7AC+yXEoaLmI75q+0maBbNYy?= =?us-ascii?Q?Eib0xWoU3oApEhUWCR1+4nOxSIq04wvME7O8VooVIb0WvnQvaAKTa1Yh8m4O?= =?us-ascii?Q?C4HPUK3YrNKDFNLx6Z1D5L9khsQJNTusLZXA2ic9LfgMCZ7elWHp6alpJra6?= =?us-ascii?Q?Gb9CKWsF+qW50ZYV+R6W9P354c9dS1eU12F5m7SajtuecLZi5CA74evK0jZp?= =?us-ascii?Q?omIKHtsGYGG2YxKo1YSXUt3XzgBwhp2cOt5Hd0U1XB8JuBeOZtlk8crsDIQa?= =?us-ascii?Q?5zwh/PpQfTgqlDdo5OQQGe1iVVbctkuPlqrGEtWEH7li7gE/E1umvFa2qsnV?= =?us-ascii?Q?GIMHKIjKwNqOkO7vHZIps64UixYmUOuq6Ukohax2XtbvrfkZ+nIXj4WjnWG4?= =?us-ascii?Q?i+XbfSPDXBbQjYz0zNKJ+V4cZiOXu/3+2/Bc9tIoaQH6pOthjc00B43CVOuP?= =?us-ascii?Q?pwnEy62VnyMieAiupjXE/8mjCN8dSd39Zolc9KNy0SrYaeIfUtwJyl2SXxIs?= =?us-ascii?Q?76TjcGuaUFEndbtYQd7NhPUBq/3VZuefxXIpFyTV/5MEbVLReo3O9redwQ5w?= =?us-ascii?Q?tQ67JP/im/D0pPFDGOkzqZtXOf22tdSTZF0nNhzmMzIV51PMHAeYhW8g1YAc?= =?us-ascii?Q?HuLU0egQd9P10dFg6axHubrwvkxwzZtRS4DTqnxn+Hq84S9pZ6AGytJSimO6?= =?us-ascii?Q?jZ9o5WiCSwM2lpqUCLTrYTqIpFp5nqtWbRwvTBOeQ9Sz8n5fXrNJF6hBMhI5?= =?us-ascii?Q?+KMqP1mMIX8zEmL1yLTo78Ce3y66Bzro5IvZFVirVMZO9eAj7awvb1u7jPhu?= =?us-ascii?Q?fhWrkNRaETY2ekh3Q6jSAJ5LR9kt+wpJAoTSoZaJ+ohhxaszauwrwrHbEMG8?= =?us-ascii?Q?/Re3lgXMI8mmYdLiKduMkiTtuOeFpZtUP4ROeiAvsADHv+/IlFddLecC/50e?= =?us-ascii?Q?QBkLd32skYFUZ/De7H576PMen3iQviKMyqZTaaDKOsDXR5peM7BCEtKYR8pk?= =?us-ascii?Q?fDedVaaWcc7uui1nFo8sjSzYTMNs2aEF6ncOdt1uo1YrMfFzvzwUmxpUTzaT?= =?us-ascii?Q?byIvei+8z9k7dxmt/xSPvSHIlFWPKID4YdHWa5T9RWMKfGuPl8nTzffNi+mb?= =?us-ascii?Q?1gXXLoSg1iebG2DpPeVFlmn9pcNIRmz8/OStoT0t63weC9ugOICigxgTR3Vv?= =?us-ascii?Q?FeRWluec/LTvAZPhh4+yVYpZEppgceJAyTaWHnoGqjodB1cZ9O8bF+2krL9y?= =?us-ascii?Q?0myDNceUglBP7xIURQNulqs0brvtxrRMqsp0mnpnmgNz9RmkLpMosbiCK72s?= =?us-ascii?Q?w0CXy+FHJiyXFOb6u4++VBZSo9RVl1QYmXG2iXnhIGCA3QDieg5nzk3UjsIO?= =?us-ascii?Q?7rDM4b0AL8pZzFYUfETE4xYRouc37RWZ1WY5SbjYl1lfWTDeAmQ6h9s2UXNo?= =?us-ascii?Q?zBOghzKv83kFe4cOPA4JM2xmNBqYCeg=3D?= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 45a0181c-516e-4edd-f0f0-08da3a4dee07 X-MS-Exchange-CrossTenant-AuthSource: BLAPR10MB4835.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 May 2022 10:46:00.9392 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 4e2c6054-71cb-48f1-bd6c-3a9705aca71b X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: w4KVDkbZfVZxiOM7c7EgEs+BlFWWNAHf2J3KGT/evpstrEdQ/y6f2Qi/WgJhXlLQF6UZAVXfrfqnTRbj4AIkboXb31uaIQSJbffMBGiT2/U= X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN6PR10MB1378 X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:6.0.486, 18.0.874 definitions=2022-05-20_03:2022-05-20, 2022-05-20 signatures=0 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 mlxscore=0 malwarescore=0 suspectscore=0 mlxlogscore=999 adultscore=0 phishscore=0 spamscore=0 bulkscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2202240000 definitions=main-2205200079 X-Proofpoint-GUID: sDhVsyUJHR_USNKH1_FqX6_B1_Y_055D X-Proofpoint-ORIG-GUID: sDhVsyUJHR_USNKH1_FqX6_B1_Y_055D 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+importer2=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=205.220.165.32; envelope-from=joao.m.martins@oracle.com; helo=mx0a-00069f02.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, 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+importer2=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: pass (identity @oracle.com) X-ZM-MESSAGEID: 1653044127550100001 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Use the pre-initialized pci-host qdev and fetch the pci-hole64-size into pc_memory_init() newly added argument. piix needs a bit of care given all the !pci_enabled() and that the pci_hole64_size is private to i440fx. This is in preparation to determine that host-phys-bits are enough and for pci-hole64-size to be considered to relocate ram-above-4g to be at 1T (on AMD platforms). Signed-off-by: Joao Martins Reviewed-by: Igor Mammedov --- hw/i386/pc.c | 3 ++- hw/i386/pc_piix.c | 5 ++++- hw/i386/pc_q35.c | 8 +++++++- hw/pci-host/i440fx.c | 7 +++++++ include/hw/i386/pc.h | 3 ++- include/hw/pci-host/i440fx.h | 1 + 6 files changed, 23 insertions(+), 4 deletions(-) diff --git a/hw/i386/pc.c b/hw/i386/pc.c index f7da1d5dd40d..af52d4ff89ef 100644 --- a/hw/i386/pc.c +++ b/hw/i386/pc.c @@ -799,7 +799,8 @@ void xen_load_linux(PCMachineState *pcms) void pc_memory_init(PCMachineState *pcms, MemoryRegion *system_memory, MemoryRegion *rom_memory, - MemoryRegion **ram_memory) + MemoryRegion **ram_memory, + uint64_t pci_hole64_size) { int linux_boot, i; MemoryRegion *option_rom_mr; diff --git a/hw/i386/pc_piix.c b/hw/i386/pc_piix.c index 12d4a279c793..57bb5b8f2aea 100644 --- a/hw/i386/pc_piix.c +++ b/hw/i386/pc_piix.c @@ -91,6 +91,7 @@ static void pc_init1(MachineState *machine, MemoryRegion *pci_memory; MemoryRegion *rom_memory; ram_addr_t lowmem; + uint64_t hole64_size; DeviceState *i440fx_dev; =20 /* @@ -166,10 +167,12 @@ static void pc_init1(MachineState *machine, memory_region_init(pci_memory, NULL, "pci", UINT64_MAX); rom_memory =3D pci_memory; i440fx_dev =3D qdev_new(host_type); + hole64_size =3D i440fx_pci_hole64_size(i440fx_dev); } else { pci_memory =3D NULL; rom_memory =3D system_memory; i440fx_dev =3D NULL; + hole64_size =3D 0; } =20 pc_guest_info_init(pcms); @@ -186,7 +189,7 @@ static void pc_init1(MachineState *machine, /* allocate ram and load rom/bios */ if (!xen_enabled()) { pc_memory_init(pcms, system_memory, - rom_memory, &ram_memory); + rom_memory, &ram_memory, hole64_size); } else { pc_system_flash_cleanup_unused(pcms); if (machine->kernel_filename !=3D NULL) { diff --git a/hw/i386/pc_q35.c b/hw/i386/pc_q35.c index 8d867bdb274a..4d5c2fbd976b 100644 --- a/hw/i386/pc_q35.c +++ b/hw/i386/pc_q35.c @@ -138,6 +138,7 @@ static void pc_q35_init(MachineState *machine) MachineClass *mc =3D MACHINE_GET_CLASS(machine); bool acpi_pcihp; bool keep_pci_slot_hpc; + uint64_t pci_hole64_size =3D 0; =20 /* Check whether RAM fits below 4G (leaving 1/2 GByte for IO memory * and 256 Mbytes for PCI Express Enhanced Configuration Access Mapping @@ -206,8 +207,13 @@ static void pc_q35_init(MachineState *machine) /* create pci host bus */ q35_host =3D Q35_HOST_DEVICE(qdev_new(TYPE_Q35_HOST_DEVICE)); =20 + if (pcmc->pci_enabled) { + pci_hole64_size =3D q35_host->mch.pci_hole64_size; + } + /* allocate ram and load rom/bios */ - pc_memory_init(pcms, get_system_memory(), rom_memory, &ram_memory); + pc_memory_init(pcms, get_system_memory(), rom_memory, &ram_memory, + pci_hole64_size); =20 object_property_add_child(qdev_get_machine(), "q35", OBJECT(q35_host)); object_property_set_link(OBJECT(q35_host), MCH_HOST_PROP_RAM_MEM, diff --git a/hw/pci-host/i440fx.c b/hw/pci-host/i440fx.c index 5c1bab5c58ed..c5cc28250d5c 100644 --- a/hw/pci-host/i440fx.c +++ b/hw/pci-host/i440fx.c @@ -237,6 +237,13 @@ static void i440fx_realize(PCIDevice *dev, Error **err= p) } } =20 +uint64_t i440fx_pci_hole64_size(DeviceState *i440fx_dev) +{ + I440FXState *i440fx =3D I440FX_PCI_HOST_BRIDGE(i440fx_dev); + + return i440fx->pci_hole64_size; +} + PCIBus *i440fx_init(const char *host_type, const char *pci_type, DeviceState *dev, PCII440FXState **pi440fx_state, diff --git a/include/hw/i386/pc.h b/include/hw/i386/pc.h index ffcac5121ed9..9c847faea2f8 100644 --- a/include/hw/i386/pc.h +++ b/include/hw/i386/pc.h @@ -158,7 +158,8 @@ void xen_load_linux(PCMachineState *pcms); void pc_memory_init(PCMachineState *pcms, MemoryRegion *system_memory, MemoryRegion *rom_memory, - MemoryRegion **ram_memory); + MemoryRegion **ram_memory, + uint64_t pci_hole64_size); uint64_t pc_pci_hole64_start(void); DeviceState *pc_vga_init(ISABus *isa_bus, PCIBus *pci_bus); void pc_basic_device_init(struct PCMachineState *pcms, diff --git a/include/hw/pci-host/i440fx.h b/include/hw/pci-host/i440fx.h index c4710445e30a..1299d6a2b0e4 100644 --- a/include/hw/pci-host/i440fx.h +++ b/include/hw/pci-host/i440fx.h @@ -45,5 +45,6 @@ PCIBus *i440fx_init(const char *host_type, const char *pc= i_type, MemoryRegion *pci_memory, MemoryRegion *ram_memory); =20 +uint64_t i440fx_pci_hole64_size(DeviceState *i440fx_dev); =20 #endif --=20 2.17.2 From nobody Sun May 5 04:19:04 2024 Delivered-To: importer2@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+importer2=patchew.org@nongnu.org; arc=pass (i=1 dmarc=pass fromdomain=oracle.com); dmarc=pass(p=none dis=none) header.from=oracle.com ARC-Seal: i=2; a=rsa-sha256; t=1653044197; cv=pass; d=zohomail.com; s=zohoarc; b=gUrD7wGcoMsOIto+jFXDktz50jFgKhKHt6Aio0vxkffyIVufSzTvOHBTqAI77jyO4A6gn+HFExF5ldzoy+QmrQ+maCbW9sPJZxolf6Tmvd6AGYEXmnmJ++47zLwGGDNMSspa2Ej9nt8FCotmHB5XuNhWphVh/N52QHePFLndiF0= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1653044197; h=Content-Type: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=TuLsfapAXV/BoxeUeuJy79NqcrBXLJ8b2/kAkWuMx+c=; b=Gw9YwQp8xb8xT5J6DYxpbRu0ObErz8sVA012H/Sxon/PLh//+Umh4SLogPPrLwjxz/8v2Y9/FSTNBRkU/OMDseKIlWS0FveAjQGvLjy4aInkWbNP3gRZW5ypTo0yS29U8k91KLc85xATkOIYqtej5eTcl1RG7QdyAh1X+u6icY4= ARC-Authentication-Results: i=2; 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+importer2=patchew.org@nongnu.org; arc=pass (i=1 dmarc=pass fromdomain=oracle.com); dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1653044197617112.85449606461327; Fri, 20 May 2022 03:56:37 -0700 (PDT) Received: from localhost ([::1]:32800 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1ns0JA-00012B-4I for importer2@patchew.org; Fri, 20 May 2022 06:56:36 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:41818) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ns09D-00019T-BL for qemu-devel@nongnu.org; Fri, 20 May 2022 06:46:20 -0400 Received: from mx0b-00069f02.pphosted.com ([205.220.177.32]:22492) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ns096-00021Q-B8 for qemu-devel@nongnu.org; Fri, 20 May 2022 06:46:14 -0400 Received: from pps.filterd (m0246630.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.17.1.5/8.17.1.5) with ESMTP id 24K9eR8j025952; Fri, 20 May 2022 10:46:07 GMT Received: from phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta01.appoci.oracle.com [138.1.114.2]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3g22uce968-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Fri, 20 May 2022 10:46:07 +0000 Received: from pps.filterd (phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com [127.0.0.1]) by phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com (8.16.1.2/8.16.1.2) with SMTP id 24KAjsBf017063; Fri, 20 May 2022 10:46:06 GMT Received: from nam12-mw2-obe.outbound.protection.outlook.com (mail-mw2nam12lp2044.outbound.protection.outlook.com [104.47.66.44]) by phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com with ESMTP id 3g22v6c99t-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Fri, 20 May 2022 10:46:06 +0000 Received: from BLAPR10MB4835.namprd10.prod.outlook.com (2603:10b6:208:331::11) by BN6PR10MB1378.namprd10.prod.outlook.com (2603:10b6:404:44::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5250.16; Fri, 20 May 2022 10:46:03 +0000 Received: from BLAPR10MB4835.namprd10.prod.outlook.com ([fe80::b9e5:d1b6:b4be:f9d]) by BLAPR10MB4835.namprd10.prod.outlook.com ([fe80::b9e5:d1b6:b4be:f9d%5]) with mapi id 15.20.5273.018; Fri, 20 May 2022 10:46:03 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=from : to : cc : subject : date : message-id : in-reply-to : references : content-type : mime-version; s=corp-2021-07-09; bh=TuLsfapAXV/BoxeUeuJy79NqcrBXLJ8b2/kAkWuMx+c=; b=qRq6QYg+8A9ljxL9hPKyiR8Mic4HcG3rCQbTt2i8U0jiR1jXB7pMTi69e1eWXkSePtpw +H2qprARfe7fpsskkOzEuAIQqGvslF5WflYwAAtoi9QCK+IPBtQSw3yq/E2aZtEpXcOu 705n/xa+3QOi3C1djJXWkRZ1uB/qomyfAkUQwK+N1V9SyG6syvKJdy/W1y+RSQU9QXkI OOl7rRvmNIsJvbaz2MSyZm+wDBBB+oYgwIibX2J1nkge7Ru+F2pyMBYd7TOQi43pe92o JTY0/W92Xod4WWBx5OsdDnQc/5Q261lb/jXu1JD3S45rApl00nCbaAJHDR4uK1k8ltUa 9A== ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=C3K1RRx8dbFBaTIjUQ8gVo/fz/Jrye6yOwEIMk4Kkpsw79s5vePbfs6eUhta/n3HC1P72EdBrRQ+IlXNwG6dkyx21QHSlkn6h0Hqhrl9r1MFpXDH/BYb9MrOgAoGgFYre455PyEhE5xwmXpNTrOEiO/vFjuJ5nfw6HCgEmJp4YpAJ4tFwZxdlSeJ1a48KnbmazfGOHdHRPhDf84Ptt+DJeIuBB7c1scyKr2iCMx86A/kzIA1l1mt25KM8S4kuPzZtxsOOL9hRYL7FABsukLdqVfdgqPIF5QsHM2KE+d7I0TQoDqJT7Szz1mJ4H+FP2P4btZ7mHHaLjgF43Cz/3JfSQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=TuLsfapAXV/BoxeUeuJy79NqcrBXLJ8b2/kAkWuMx+c=; b=FwFDHRHkyuyHXAqcKbVYdZJI2qQh5Rj5Udf+tk+jFFuea+a8urgRJ9N9IMu0t6B0NeqCgyj9Cv8PP/QuCAwiKo8QxBQwS96rk1qpYO2ljyq17S5L7nybXx3ZFnhh3H6s9M2O5XEHoTGNZcxTQctIeSBJKBzXdfBvGGacQbAdIGh6nIZU6J5CUzjNZ2sIpfDt231adJh0kaXltSabcOisrwScZS2bm6iKrQtJlaESRmWLw1L/+6msG9enB3f1Um/lHWvbcYpoU/Sop+e/+VpbG49L8t+T+Ka097g9ZTvL3X7dirFUUIfBENzU7BRJV7MPfUPwRSKXLNGfUmfNmKpuUg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=oracle.com; dmarc=pass action=none header.from=oracle.com; dkim=pass header.d=oracle.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.onmicrosoft.com; s=selector2-oracle-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=TuLsfapAXV/BoxeUeuJy79NqcrBXLJ8b2/kAkWuMx+c=; b=fuRNyZG5wzv8FFW+WB1rU/ST30k24LJ9OyFVRHXwnNc7rzi3QFWUk1Gyzy9e8P/fedbUJKFodCRtrujCk6YalDnJpMBiw3CgHo9eB3M4JOgCTsrhfP86sfV2G6RHvgfgbpy/T3E0BNyYjaJpO/TvzHGCWs7eEuNYsctYZpQxGx8= From: Joao Martins To: qemu-devel@nongnu.org Cc: Eduardo Habkost , "Michael S. Tsirkin" , Richard Henderson , Daniel Jordan , David Edmondson , Alex Williamson , Paolo Bonzini , Ani Sinha , Marcel Apfelbaum , Igor Mammedov , Suravee Suthikulpanit , Joao Martins Subject: [PATCH v5 4/5] i386/pc: relocate 4g start to 1T where applicable Date: Fri, 20 May 2022 11:45:31 +0100 Message-Id: <20220520104532.9816-5-joao.m.martins@oracle.com> X-Mailer: git-send-email 2.11.0 In-Reply-To: <20220520104532.9816-1-joao.m.martins@oracle.com> References: <20220520104532.9816-1-joao.m.martins@oracle.com> X-ClientProxiedBy: LO2P265CA0392.GBRP265.PROD.OUTLOOK.COM (2603:10a6:600:f::20) To BLAPR10MB4835.namprd10.prod.outlook.com (2603:10b6:208:331::11) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 3ff818dc-c758-4a7e-82b7-08da3a4defc3 X-MS-TrafficTypeDiagnostic: BN6PR10MB1378:EE_ X-Microsoft-Antispam-PRVS: X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: /v/gtoj8rcsG8wtAX1DxwInL3AhStjU5f3fhdkahDm9+eE0iRt8X89haJVq3gAClkGP27zUPpxQ6cOk18RCB4JKdXxbeX01WOFuqHkTpln2n9j3nR5oASA+Nm8VgXV1L22oq8rIB6bW2DaRU15UV4FakHnuMI9sieQeRIAqQecjJAMJna09QqFThkzXQlvu97IAFxc68jDgJ2McznLrxdkKY2cohDdUiLTQ3ODA/v8d4KFR/jgCUpsax5AZcT/lTk8MUUyBMpvkQzxcBuKkiTO0kq+t0CtcXRILkKjSaPbSGGM2q2FMZC1Io50laWt4gVBwxaa11rKfoH+tIE04Xw2oLmD7KUZf577mVsqL27Rz8KwqdRzfyo9Y6ATu+wl7XyxprEgr526MvAtOCyPHQZWsS2BvkIfwtxmR/HlK0h3g9s+mOOLPVhppYrPFOHFlvBKJ6YLbGBgVYCLCp2EN/mKBVEJZgMKIWQPN+CSGl/Sf2fJRVwyor1AHTjnITPSSJvlJk38OX5vRz0n852jyceM4W550kKOKh3fGgGQpbuht2wt4oHtOmb9GBpwcsMDYoYPfzF0vxuDOa6krc2qq4UA39DbiK8HK91YvpWgwiOkFrZYjXz9jqkoYKnp0nZ1RHFyzXNScFa4bl/3vtXSImXxM8CYrtbNdtFKtUmiZbtz3KQ7BuhK7v320yglGiyUt0tw0BV++G5cpzpi3eQ+HA6A== X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:BLAPR10MB4835.namprd10.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230001)(366004)(5660300002)(8936002)(66946007)(6666004)(7416002)(83380400001)(508600001)(66476007)(54906003)(6916009)(66556008)(6512007)(8676002)(6506007)(4326008)(26005)(52116002)(2616005)(38350700002)(38100700002)(86362001)(316002)(186003)(1076003)(107886003)(103116003)(2906002)(6486002)(36756003); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?j5MIOPhglEGF4fx6p5mXtA5VfSF6SP0+BFgQmnORgBCTAK/5b9jcg3w5b7Et?= =?us-ascii?Q?FpPYm3qy7a6ew5ZGBVnVbKgzqwdbGmuDGEoukeDMiebXxGUahA904GBWZ4K/?= =?us-ascii?Q?2y8t6hXN1CsiLTHqIpUFE17fv0Y5QB/RhVlueEunHcvAsuxeTAXAW1KX/pp5?= =?us-ascii?Q?C7bdcvThk1zh0JTCy1LQmApuWD7+nL7XpYPtf1xStUfcxlq7CT37v811/t8T?= =?us-ascii?Q?ruzUNn2UuMS+tFIF6T9/GJJKMkWjgER1z9P8ezYxhfk2Kb1DcBpuN5DLgfkU?= =?us-ascii?Q?Qti96rSzxW1lTkRTDaEPInZCl1gfjkTCGROBAMU57301xGBzrAP3RHXZft38?= =?us-ascii?Q?mNz+RT+XBiN2Gy1Lb024ss7LR0XLbrjC9wCHlQL6VnFFnMxgE7QoyjPypVt4?= =?us-ascii?Q?0fV92kgPLVHbxFcOYzSqC5LhPkKjpInbiMHoAyLvpj57ICPzTQGYX2eXNrjL?= =?us-ascii?Q?X38Zb56wLNMlMngtRl56qzxXyhpWAhGOO+c74EFmz4AeVCPsQHUnLQ3X3LXa?= =?us-ascii?Q?Sb/yeI2nYWd1rPjcYMzZrXHuKFoFC8ry5mZp2fhVgz/04hbYLpWm2RUae8nn?= =?us-ascii?Q?02gQvzZy08N/0wahSe4AXssE0w2jaftiy9UcxWV+deOdsF4jQRbBGoZzAGxN?= =?us-ascii?Q?LKGee82WNChJs+rUDz8pWn6aNwRIJk8gdF28la1pHDAroLijduydLDAlRaZl?= =?us-ascii?Q?FSZJzZIb54llfgTpKHxid+ZYykZDCI0krcF8VKXBGaPNVuWE4Zkw3/E2/VEz?= =?us-ascii?Q?d5wjNKUSqXQORTb6zNx14caSBHvzpfQD0SYug0s9i9QjYqhWWW9Ay7av4Imt?= =?us-ascii?Q?e3bqUI1nyWQR3Kr8mT7XGAhtgXRbMuKgUjOygyR29pK0ZLVcrta7pGK/TUhL?= =?us-ascii?Q?IVolYOHzt1QUTMebr/V8M1VZzFpgEXHZrmmS/L/qg5JVHhjV84QjBcQTOJE1?= =?us-ascii?Q?TGRdlPwK+yLtBanDwuuV8cjX5vRFk5mBMznicnzwHmcHx7LlVfOA7hQCVf35?= =?us-ascii?Q?pj8JGlO+yM4FU3Crb59qyZPz41WlZ/HUljMLR8XbdxiAkBZPP7V8O+q6CU5f?= =?us-ascii?Q?cCsn50/KcoQVWLbuYyjnPhSNzTrztUZHSOiU7RamMIYWbwsnIGQTfzgD2GCK?= =?us-ascii?Q?vSPgEF/BiAbs5WUE+i/s7mUavoMQvIfUpJEpAPv7izZhqOxlEM7CVDe1T/HZ?= =?us-ascii?Q?unT7RXssNf3fEOujfl9ngUuzSP0n/b2hM8r82bEkkdx0gqOoeb3+IolbVzz+?= =?us-ascii?Q?ypkSfiPjiy5SIpYy9ujbQAtL68s4eQR9IFz633enOMFwYVpzt2Yllg7IAi8F?= =?us-ascii?Q?i1LoxmwxdcJV6ucisXMHVErHaFa3htgZCCfdNjFga/mSM0fGfz4dMriZ4RzO?= =?us-ascii?Q?YoGOdn2LZkvYTnbk8NiYOJzlWdrFd9kZVc9gvhsFLFyeHZfc/WGZ10TMgi0P?= =?us-ascii?Q?Is9YXXxJuh6kK3f7tctKNDXKMqCXuh8luoNmkfUUuHp0Letvbfkl3vg5TlvU?= =?us-ascii?Q?cUtTtDxiODVgKHnEggnfhkLcAU50gZdPCk3rkIW0PgBsSHwr8qr2d7fCQn0h?= =?us-ascii?Q?8EY8ZjaUEl27y9tB+ui3qMJ10vu8cw6yCYlWuXvACX5Cjd1nG4QLOtI5zxNU?= =?us-ascii?Q?f6p981L/Qhd/ECU3FRXosukufR4Qpv7my1I1nf9gPF4eUNnyzLIva1th/Bul?= =?us-ascii?Q?p2DASCFTjcXX1oZNFf/1jrNq+sef5Ahk/5SjEZicLz+j0v/C/6pBAAVoriv6?= =?us-ascii?Q?E3mpXq0z32buxusFJ/LyAvx/CAJU8BY=3D?= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 3ff818dc-c758-4a7e-82b7-08da3a4defc3 X-MS-Exchange-CrossTenant-AuthSource: BLAPR10MB4835.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 May 2022 10:46:03.8618 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 4e2c6054-71cb-48f1-bd6c-3a9705aca71b X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: 5KXb7+IQ/1BIHbfqnkyCCSgYoMfAb12l1Z+MOSsQK4RjvZtrBVnF+RgC5xdkpQNK6eIrMpmQ+DG4KuMUWBOdscBTki4uqntZvvYopZEswpQ= X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN6PR10MB1378 X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:6.0.486, 18.0.874 definitions=2022-05-20_03:2022-05-20, 2022-05-20 signatures=0 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 adultscore=0 phishscore=0 mlxlogscore=999 spamscore=0 suspectscore=0 malwarescore=0 mlxscore=0 bulkscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2202240000 definitions=main-2205200079 X-Proofpoint-GUID: BKmu5vUBdKPB4XQGtMwwWW63f0gNvKbg X-Proofpoint-ORIG-GUID: BKmu5vUBdKPB4XQGtMwwWW63f0gNvKbg 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+importer2=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=205.220.177.32; envelope-from=joao.m.martins@oracle.com; helo=mx0b-00069f02.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, 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+importer2=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: pass (identity @oracle.com) X-ZM-MESSAGEID: 1653044198683100001 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" It is assumed that the whole GPA space is available to be DMA addressable, within a given address space limit, expect for a tiny region before the 4G. Since Linux v5.4, VFIO validates whether the selected GPA is indeed valid i.e. not reserved by IOMMU on behalf of some specific devices or platform-defined restrictions, and thus failing the ioctl(VFIO_DMA_MAP) with -EINVAL. AMD systems with an IOMMU are examples of such platforms and particularly may only have these ranges as allowed: 0000000000000000 - 00000000fedfffff (0 .. 3.982G) 00000000fef00000 - 000000fcffffffff (3.983G .. 1011.9G) 0000010000000000 - ffffffffffffffff (1Tb .. 16Pb[*]) We already account for the 4G hole, albeit if the guest is big enough we will fail to allocate a guest with >1010G due to the ~12G hole at the 1Tb boundary, reserved for HyperTransport (HT). [*] there is another reserved region unrelated to HT that exists in the 256T boundaru in Fam 17h according to Errata #1286, documeted also in "Open-Source Register Reference for AMD Family 17h Processors (PUB)" When creating the region above 4G, take into account that on AMD platforms the HyperTransport range is reserved and hence it cannot be used either as GPAs. On those cases rather than establishing the start of ram-above-4g to be 4G, relocate instead to 1Tb. See AMD IOMMU spec, section 2.1.2 "IOMMU Logical Topology", for more information on the underlying restriction of IOVAs. After accounting for the 1Tb hole on AMD hosts, mtree should look like: 0000000000000000-000000007fffffff (prio 0, i/o): alias ram-below-4g @pc.ram 0000000000000000-000000007fffffff 0000010000000000-000001ff7fffffff (prio 0, i/o): alias ram-above-4g @pc.ram 0000000080000000-000000ffffffffff If the relocation is done, we also add the the reserved HT e820 range as reserved. Default phys-bits on Qemu is TCG_PHYS_ADDR_BITS (40) which is enough to address 1Tb (0xff ffff ffff). On AMD platforms, if a ram-above-4g relocation may be desired and the CPU wasn't configured with a big enough phys-bits, print an error message to the user and do not make the relocation of the above-4g-region if phys-bits is too low. Suggested-by: Igor Mammedov Signed-off-by: Joao Martins --- hw/i386/pc.c | 111 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 111 insertions(+) diff --git a/hw/i386/pc.c b/hw/i386/pc.c index af52d4ff89ef..652ae8ff9ccf 100644 --- a/hw/i386/pc.c +++ b/hw/i386/pc.c @@ -796,6 +796,110 @@ void xen_load_linux(PCMachineState *pcms) #define PC_ROM_ALIGN 0x800 #define PC_ROM_SIZE (PC_ROM_MAX - PC_ROM_MIN_VGA) =20 +/* + * AMD systems with an IOMMU have an additional hole close to the + * 1Tb, which are special GPAs that cannot be DMA mapped. Depending + * on kernel version, VFIO may or may not let you DMA map those ranges. + * Starting Linux v5.4 we validate it, and can't create guests on AMD mach= ines + * with certain memory sizes. It's also wrong to use those IOVA ranges + * in detriment of leading to IOMMU INVALID_DEVICE_REQUEST or worse. + * The ranges reserved for Hyper-Transport are: + * + * FD_0000_0000h - FF_FFFF_FFFFh + * + * The ranges represent the following: + * + * Base Address Top Address Use + * + * FD_0000_0000h FD_F7FF_FFFFh Reserved interrupt address space + * FD_F800_0000h FD_F8FF_FFFFh Interrupt/EOI IntCtl + * FD_F900_0000h FD_F90F_FFFFh Legacy PIC IACK + * FD_F910_0000h FD_F91F_FFFFh System Management + * FD_F920_0000h FD_FAFF_FFFFh Reserved Page Tables + * FD_FB00_0000h FD_FBFF_FFFFh Address Translation + * FD_FC00_0000h FD_FDFF_FFFFh I/O Space + * FD_FE00_0000h FD_FFFF_FFFFh Configuration + * FE_0000_0000h FE_1FFF_FFFFh Extended Configuration/Device Messages + * FE_2000_0000h FF_FFFF_FFFFh Reserved + * + * See AMD IOMMU spec, section 2.1.2 "IOMMU Logical Topology", + * Table 3: Special Address Controls (GPA) for more information. + */ +#define AMD_HT_START 0xfd00000000UL +#define AMD_HT_END 0xffffffffffUL +#define AMD_ABOVE_1TB_START (AMD_HT_END + 1) +#define AMD_HT_SIZE (AMD_ABOVE_1TB_START - AMD_HT_START) + +static hwaddr x86_max_phys_addr(PCMachineState *pcms, + hwaddr above_4g_mem_start, + uint64_t pci_hole64_size) +{ + PCMachineClass *pcmc =3D PC_MACHINE_GET_CLASS(pcms); + X86MachineState *x86ms =3D X86_MACHINE(pcms); + MachineState *machine =3D MACHINE(pcms); + ram_addr_t device_mem_size =3D 0; + hwaddr base; + + if (!x86ms->above_4g_mem_size) { + /* + * 32-bit pci hole goes from + * end-of-low-ram (@below_4g_mem_size) to IOAPIC. + */ + return IO_APIC_DEFAULT_ADDRESS - 1; + } + + if (pcmc->has_reserved_memory && + (machine->ram_size < machine->maxram_size)) { + device_mem_size =3D machine->maxram_size - machine->ram_size; + } + + base =3D ROUND_UP(above_4g_mem_start + x86ms->above_4g_mem_size + + pcms->sgx_epc.size, 1 * GiB); + + return base + device_mem_size + pci_hole64_size; +} + +static void x86_update_above_4g_mem_start(PCMachineState *pcms, + uint64_t pci_hole64_size) +{ + X86MachineState *x86ms =3D X86_MACHINE(pcms); + CPUX86State *env =3D &X86_CPU(first_cpu)->env; + hwaddr start =3D x86ms->above_4g_mem_start; + hwaddr maxphysaddr, maxusedaddr; + + /* + * The HyperTransport range close to the 1T boundary is unique to AMD + * hosts with IOMMUs enabled. Restrict the ram-above-4g relocation + * to above 1T to AMD vCPUs only. + */ + if (!IS_AMD_CPU(env)) { + return; + } + + /* Bail out if max possible address does not cross HT range */ + if (x86_max_phys_addr(pcms, start, pci_hole64_size) < AMD_HT_START) { + return; + } + + /* + * Relocating ram-above-4G requires more than TCG_PHYS_ADDR_BITS (40). + * So make sure phys-bits is required to be appropriately sized in ord= er + * to proceed with the above-4g-region relocation and thus boot. + */ + start =3D AMD_ABOVE_1TB_START; + maxphysaddr =3D ((hwaddr)1 << X86_CPU(first_cpu)->phys_bits) - 1; + maxusedaddr =3D x86_max_phys_addr(pcms, start, pci_hole64_size); + if (maxphysaddr < maxusedaddr) { + error_report("Address space limit 0x%"PRIx64" < 0x%"PRIx64 + " phys-bits too low (%u) cannot avoid AMD HT range", + maxphysaddr, maxusedaddr, X86_CPU(first_cpu)->phys_bi= ts); + exit(EXIT_FAILURE); + } + + + x86ms->above_4g_mem_start =3D start; +} + void pc_memory_init(PCMachineState *pcms, MemoryRegion *system_memory, MemoryRegion *rom_memory, @@ -817,6 +921,8 @@ void pc_memory_init(PCMachineState *pcms, =20 linux_boot =3D (machine->kernel_filename !=3D NULL); =20 + x86_update_above_4g_mem_start(pcms, pci_hole64_size); + /* * Split single memory region and use aliases to address portions of i= t, * done for backwards compatibility with older qemus. @@ -827,6 +933,11 @@ void pc_memory_init(PCMachineState *pcms, 0, x86ms->below_4g_mem_size); memory_region_add_subregion(system_memory, 0, ram_below_4g); e820_add_entry(0, x86ms->below_4g_mem_size, E820_RAM); + + if (x86ms->above_4g_mem_start =3D=3D AMD_ABOVE_1TB_START) { + e820_add_entry(AMD_HT_START, AMD_HT_SIZE, E820_RESERVED); + } + if (x86ms->above_4g_mem_size > 0) { ram_above_4g =3D g_malloc(sizeof(*ram_above_4g)); memory_region_init_alias(ram_above_4g, NULL, "ram-above-4g", --=20 2.17.2 From nobody Sun May 5 04:19:04 2024 Delivered-To: importer2@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+importer2=patchew.org@nongnu.org; arc=pass (i=1 dmarc=pass fromdomain=oracle.com); dmarc=pass(p=none dis=none) header.from=oracle.com ARC-Seal: i=2; a=rsa-sha256; t=1653043893; cv=pass; d=zohomail.com; s=zohoarc; b=Ka0l3JZasS+/OGK+TjFKNS0ZTOAq8nq3ypyaNvlvXMOKE/Me9qbcmlsRoGz4riJcvHFlD+H2B3HTtoRia2hdHjsSyy6ASK7y/kg2NjzGgV1Kcnf6UORPCChsUgLlMyoa3NFnLdLok4ISd9lIvOu1axp2QNU+25T1tLXvNNiSQPw= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1653043893; h=Content-Type: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=Ac6qu7TS08j8t9uCeQ0tkp3iCqkXOqQudZyRBY8Nkz4=; b=mOfM0AT7rawCtJen0t5jtqD49iU2ruoBEew2wGG+a/deYJOgT3QoeRQE4LhMXv3n7f9pm/8s0mab6C+sjeJQUB8MA6euXM1haicJhHDOQV3vPBqdRjANBRScYBqX8VKa0bpGEpyVfUK5kJH/LVIDrqlmiWOIWMZIX440YJgxRTI= ARC-Authentication-Results: i=2; 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+importer2=patchew.org@nongnu.org; arc=pass (i=1 dmarc=pass fromdomain=oracle.com); dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1653043893728753.512695427575; Fri, 20 May 2022 03:51:33 -0700 (PDT) Received: from localhost ([::1]:52582 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1ns0EG-0003gQ-Cu for importer2@patchew.org; Fri, 20 May 2022 06:51:32 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:41848) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ns09E-00019p-Et for qemu-devel@nongnu.org; Fri, 20 May 2022 06:46:24 -0400 Received: from mx0b-00069f02.pphosted.com ([205.220.177.32]:25550) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ns098-00021b-Rc for qemu-devel@nongnu.org; Fri, 20 May 2022 06:46:19 -0400 Received: from pps.filterd (m0246632.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.17.1.5/8.17.1.5) with ESMTP id 24K9bqtg002438; Fri, 20 May 2022 10:46:09 GMT Received: from phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta01.appoci.oracle.com [138.1.114.2]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3g241sepde-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Fri, 20 May 2022 10:46:09 +0000 Received: from pps.filterd (phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com [127.0.0.1]) by phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com (8.16.1.2/8.16.1.2) with SMTP id 24KAjteA017101; Fri, 20 May 2022 10:46:08 GMT Received: from nam12-mw2-obe.outbound.protection.outlook.com (mail-mw2nam12lp2041.outbound.protection.outlook.com [104.47.66.41]) by phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com with ESMTP id 3g22v6c9ad-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Fri, 20 May 2022 10:46:08 +0000 Received: from BLAPR10MB4835.namprd10.prod.outlook.com (2603:10b6:208:331::11) by BN6PR10MB1378.namprd10.prod.outlook.com (2603:10b6:404:44::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5250.16; Fri, 20 May 2022 10:46:06 +0000 Received: from BLAPR10MB4835.namprd10.prod.outlook.com ([fe80::b9e5:d1b6:b4be:f9d]) by BLAPR10MB4835.namprd10.prod.outlook.com ([fe80::b9e5:d1b6:b4be:f9d%5]) with mapi id 15.20.5273.018; Fri, 20 May 2022 10:46:06 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=from : to : cc : subject : date : message-id : in-reply-to : references : content-type : mime-version; s=corp-2021-07-09; bh=Ac6qu7TS08j8t9uCeQ0tkp3iCqkXOqQudZyRBY8Nkz4=; b=SHQ4UpJl79q8C/9KTHphUQoJG2Tsia5Gn4qKVcFhnuuUaDxSx7XQ8Qqf/Vbidp7s2PBS DdDXbVU6TI0yXEL8MgPRKL2GV423x0dZ2CZD6FVEJYmrsPS3kiwPYEd86vS0Q1Yxni7u Ij/6wXGeuvPGx3B9mm5SIxTalGkAqiumDyt0JhynVobNmKyDW5jISD1D8APbEbZEhc29 eF2VV9DDaf0g26riqyQVLcMZ7XitkhT9Z+15k7nJ12U9gFyZjABMp+ygCKyZ1WWGhyBL bqL/Qf2Hlmjee9BPWJgmjpavLIGBedYT7Bu4+dExOGUbmdAsZwRl1MeLSCpYoKqKxebs kA== ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=IRArKGS+S1w+wJEAW5AoaRNa2kuZx/qs9P46TgC9I3moRNHzQC1mOG58+zpFcF5SjcvmBL4LxXhZ3116mMUTbD9cymdSChM7qJp2l0BJM6jL2valjsQGV2jRcuxzIOd/rKDAkwbaQKi3B2vVMZh3eXxeyl+oAdUP/s+8UXu8BDnGTx15mw5lodHMBF9oKV8x8pOIAL9i6THINVprT3bmomEPfyMt5/iDV9ZAarlNNhy/fX9J1xjqprqSMPMeBL47+JiIemhYIoV48ipWY/zMP6fa6dk4DD6UHeTR3mCeq9e/6lkLXiwdDipDkrRd7SRFUCFpRv7aO8gZo3xyJx6wXA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=Ac6qu7TS08j8t9uCeQ0tkp3iCqkXOqQudZyRBY8Nkz4=; b=KzdqkZGC95pBdhH5cJhlI+EAsryVX41oNqosGf1z2WPMHw75+CuATZl+oQ8Z72nEep3OVE+gYH1nnjvYHVgv3ABJyQNZDrahmOIyjsQaHlgpsjdASk/PCaQII2CjBNcQlnc75v+36pTqpRftOn9Crga1zbkupR6/YVvXmrEnVNZ+U31x7L/8MB1FkNHtQHx98Vzuw9jbbZADlJ2E4oeOymb9hv7iHSXP4o2mgjvWmojD/so5hsl8WTZ98g/aLcWZzHapHOajBaLOZSJ1WD9rxYPOfCt90gHjdg6WmU5vGjmJbWd+yCggTXlKPDtzzUWIrDy0gL1/PHjWuweabCKchA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=oracle.com; dmarc=pass action=none header.from=oracle.com; dkim=pass header.d=oracle.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.onmicrosoft.com; s=selector2-oracle-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=Ac6qu7TS08j8t9uCeQ0tkp3iCqkXOqQudZyRBY8Nkz4=; b=XJMe3alcwoCjeNzXinWV+aC4ciJHrzEP8QlfXRbIoGRz0nYyhjTdYD4wJZRccg9PDM4UA+Q4nasANJrzAo+HilZWQv2HHxllppTL2OUZpWyykylxfGLCwpS+Z+OD1x+HqNUcjhCjzVpoipCIayWybXWqeZKX6125jnr12sN511k= From: Joao Martins To: qemu-devel@nongnu.org Cc: Eduardo Habkost , "Michael S. Tsirkin" , Richard Henderson , Daniel Jordan , David Edmondson , Alex Williamson , Paolo Bonzini , Ani Sinha , Marcel Apfelbaum , Igor Mammedov , Suravee Suthikulpanit , Joao Martins Subject: [PATCH v5 5/5] i386/pc: restrict AMD only enforcing of valid IOVAs to new machine type Date: Fri, 20 May 2022 11:45:32 +0100 Message-Id: <20220520104532.9816-6-joao.m.martins@oracle.com> X-Mailer: git-send-email 2.11.0 In-Reply-To: <20220520104532.9816-1-joao.m.martins@oracle.com> References: <20220520104532.9816-1-joao.m.martins@oracle.com> X-ClientProxiedBy: LO2P265CA0392.GBRP265.PROD.OUTLOOK.COM (2603:10a6:600:f::20) To BLAPR10MB4835.namprd10.prod.outlook.com (2603:10b6:208:331::11) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 6a4c46e3-51d0-4a42-a65b-08da3a4df12b X-MS-TrafficTypeDiagnostic: BN6PR10MB1378:EE_ X-Microsoft-Antispam-PRVS: X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: vJKH0k1xsmhXqH+AZTl9aRyubf8lQD8ahenL3StBAhYwuMW542n4EanCRD+LVaCL8uyfIR59P4l7Jd8wBtn6/oS7xN/1/4W2M7VW/XDA0iAOGvmACgTXu5o68dQmqJdB9pWWj4GFMEe2UnQKEIhBfZc/SRgV/TmPaC2u2nlNMHrXNtW6YivfOAjpEEJDHR9nxrImm2573vPXAHsCGQhjROkpbJq1RcF0B9XoKuPC3DFsU2Z+Pnbtx6E+FvqojRVpswYyWDlalXZtCslVpjwvErtKWWiQPEE2KkTRL6E1x2bQ9OH/b35kV8VngDln/WBvMDDRULgDpX8IfJCIo6Rd5Iiw5hittsq4p3AlJ3EvBbW/6RQmREM1jxT+d/WK44VHMVYl1Pq0f0l8RnLb4dkqog1Nxw2g7QbOF04AZsvo0Ahe+Q1nOTD//E/QJHmM1V3aWHDujiRAF9MgDPrzc86OH1PWpYZoYdTKAh4QJCSpXYl26imXtQFzAjD6Zhpv7LrZTkGE1GHkgETPK2WQ3Ih+c6lxlblLqG5cFc4mzj+nmd7S3dVgZhlek1G9UJfdsn8M/4b+pqCICUulQglR2lH8F9m2s1tN67c7YrCoAs5J/7y4X5dqZznUS925IareC+ty80nsXe4Trmya3iZvz/virT1yyF7ZXS2yMYcfn6NyEy4SN6HEUR1FPKp1KhsEZtTn7bemMC4P5tdyERWTcyiMrg== X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:BLAPR10MB4835.namprd10.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230001)(366004)(5660300002)(8936002)(66946007)(6666004)(7416002)(83380400001)(508600001)(66476007)(54906003)(6916009)(66556008)(6512007)(8676002)(6506007)(4326008)(26005)(52116002)(2616005)(38350700002)(38100700002)(86362001)(316002)(186003)(1076003)(107886003)(103116003)(2906002)(6486002)(36756003); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?Lq/NgRMScQAhXKJMOGvZDc/Am6p+puiYZMBaEWD7d3JcEnnwQHCVsIktALcQ?= =?us-ascii?Q?9MHtgyHmAoOkUtDiZCVavfw6/vPwivSPo4ibllvsDVrdrWpU5BLGwYT7N1TS?= =?us-ascii?Q?0uNyZa5QkdHuFwSpHrnkejzjsrczS/tvNq6kHdpampJu0szYf8CUIbhug4Tq?= =?us-ascii?Q?eKGrBG67bR8OE3YVcCmmQ3wJCVHJjECGgQnm9zNEA2PRJYhDx+CbDZ1Le362?= =?us-ascii?Q?8/0oFAEmLBbgp8z58J/dU+rbqTYHgFprlANZYy+pVbXNXa7vVHMZ9nvOJRkz?= =?us-ascii?Q?EiII1F1wp8SEr55EbOPHye5OMSiYblmEw3tKqNaL0kIzLZ5uR6YoeZhzsLk9?= =?us-ascii?Q?Z7Ykf/sqyEufa4XoNaP1mhllo6LQb3cPNw3pOXdsoTWeHnbWvS15g9ok1xYy?= =?us-ascii?Q?xcwA5AX4Bpw/ZwaqxDL7XRcWXnbmsmrOTikJJGv50pKShTVBMTDugfhto50q?= =?us-ascii?Q?N/Ktn3cZ4s6LfRa3nOJBA8RlOiOTKFrRNEQPHi81D3RGE+TjRi3MZFVc9jUu?= =?us-ascii?Q?JEx8XXsqMnm866EksL7Cod60Go8unDqm22rldNIwf12sZ1GvyrcDKnmRzWgc?= =?us-ascii?Q?4tNL5zs3JJA2dQG3ZqfpeaNIuwgv7MJdcAYWF7DyffcxlrvYC2JwJwDdcQY5?= =?us-ascii?Q?DQgTIM4O8/2B/AmDbS9FxUVu31Yy0xzBbYpgrO4UL+MVru83Owy58MzX+8zo?= =?us-ascii?Q?hZueXSnDdsUZi0qbgzzjacXIQC+wvr3O0UDkSzHinzdS3JugLzGZtlpHQ+gT?= =?us-ascii?Q?96iZi/YVbdubufRr68/lifxRJpU6a+sn1J5OpfrLSp7VJxdflXMK9TaR2WuO?= =?us-ascii?Q?OAFKcTlG96f33yvzSDRwln2uCFihO9PowIgC0uNQnrI1r5IBNSFDJ3JlJ9/E?= =?us-ascii?Q?udHCwSvXGgk5F6gt+EB/70eSmEKCMjgsXEiXcndh8zqWW0Qm8VsJE8192esl?= =?us-ascii?Q?eG0ox/yZ+4DbfNqGlNp0frD78ZqGJw6lR+4E4UssCS6z1dLrL3c45w0LcXkF?= =?us-ascii?Q?f8CfmSt/iP3FQy/1Rhrg/bojXlOWcYqMlWyLR2mwCVbZEBecz6S3pmEi/QyU?= =?us-ascii?Q?XYq+vdgY8hiR5MxnyZwm0fO9gpeKpSYxEU3T9FCx6j9gvS7mX+aV8UDoKY9n?= =?us-ascii?Q?X+5KJyETE3FHQiaRXK2l8vS23kjMAC7OszsPHZA8z3v5y7qDB02dxplHMzri?= =?us-ascii?Q?4VtAUCCDXm+dvTrmotwlo7fpTdbIzbnvPtFNA4PsX8ivAu1CfNiSI8mIgEOJ?= =?us-ascii?Q?RdEzyHclydnshnhLaGOov3YUiX3e4/CsQH4+AsqIWuY76dEpgFSIuyOhWyO/?= =?us-ascii?Q?CMQ1Uz+fn2VmZRkHuNpF5jDybQxnBXL5kNGfRAfUDWIoz8oipmzMQ48hcyDD?= =?us-ascii?Q?7raqscNvRa4h05wb7tZoLU4vn/148jX8qUVCzv/KpZUzvW3De4jW5z8NgSpp?= =?us-ascii?Q?UPMhCvrHWaMYsk02gVxDQBaTf/qTWjfkEmX2GbaKyMP/ODo6WYvo0wLkWg4i?= =?us-ascii?Q?dUFRJQrLEoT4PkqyFfMasmdlTeaP+SaHjflW5IsO3wBF9J4z4AtX75CwiIPV?= =?us-ascii?Q?DYJdfaMtQqmzx30cSZBQEJDC9U8q1y+kNwQn+LSRMmtHBCrhG7tVVu1Tuj8C?= =?us-ascii?Q?96n0LwYMbaJND7rO+AAXb6xaiiK+n3maGw5qcdUFuSssCbyt0G89iBMkNNE+?= =?us-ascii?Q?/yzUWJ3ySPNDlFJUIEf6QUC7Tyxna3yyQipZFS7TP5KsDF80RzmUKuMG6B/Z?= =?us-ascii?Q?2dTBqzZd9QEZWbz3y7YFayeaR/IlVtM=3D?= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 6a4c46e3-51d0-4a42-a65b-08da3a4df12b X-MS-Exchange-CrossTenant-AuthSource: BLAPR10MB4835.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 May 2022 10:46:06.2377 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 4e2c6054-71cb-48f1-bd6c-3a9705aca71b X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: yRQXCmWNUe9d2isNj01QNQu6IokhACgQpnJshGW7pfZGQLdwfPS+RMjVTJbApYEHYB8/BlQw4yB8s4YwRvCqJyL9UozKsrnNUKVYJHefvbc= X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN6PR10MB1378 X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:6.0.486, 18.0.874 definitions=2022-05-20_03:2022-05-20, 2022-05-20 signatures=0 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 adultscore=0 phishscore=0 mlxlogscore=999 spamscore=0 suspectscore=0 malwarescore=0 mlxscore=0 bulkscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2202240000 definitions=main-2205200079 X-Proofpoint-GUID: tPQq3-dTmgchROzatlSu43UYa3cETghQ X-Proofpoint-ORIG-GUID: tPQq3-dTmgchROzatlSu43UYa3cETghQ 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+importer2=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=205.220.177.32; envelope-from=joao.m.martins@oracle.com; helo=mx0b-00069f02.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, 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+importer2=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: pass (identity @oracle.com) X-ZM-MESSAGEID: 1653043895848100003 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" The added enforcing is only relevant in the case of AMD where the range right before the 1TB is restricted and cannot be DMA mapped by the kernel consequently leading to IOMMU INVALID_DEVICE_REQUEST or possibly other kinds of IOMMU events in the AMD IOMMU. Although, there's a case where it may make sense to disable the IOVA relocation/validation when migrating from a non-valid-IOVA-aware qemu to one that supports it. Relocating RAM regions to after the 1Tb hole has consequences for guest ABI because we are changing the memory mapping, so make sure that only new machine enforce but not older ones. Signed-off-by: Joao Martins --- hw/i386/pc.c | 7 +++++-- hw/i386/pc_piix.c | 2 ++ hw/i386/pc_q35.c | 2 ++ include/hw/i386/pc.h | 1 + 4 files changed, 10 insertions(+), 2 deletions(-) diff --git a/hw/i386/pc.c b/hw/i386/pc.c index 652ae8ff9ccf..62f9af91f19f 100644 --- a/hw/i386/pc.c +++ b/hw/i386/pc.c @@ -862,6 +862,7 @@ static hwaddr x86_max_phys_addr(PCMachineState *pcms, static void x86_update_above_4g_mem_start(PCMachineState *pcms, uint64_t pci_hole64_size) { + PCMachineClass *pcmc =3D PC_MACHINE_GET_CLASS(pcms); X86MachineState *x86ms =3D X86_MACHINE(pcms); CPUX86State *env =3D &X86_CPU(first_cpu)->env; hwaddr start =3D x86ms->above_4g_mem_start; @@ -870,9 +871,10 @@ static void x86_update_above_4g_mem_start(PCMachineSta= te *pcms, /* * The HyperTransport range close to the 1T boundary is unique to AMD * hosts with IOMMUs enabled. Restrict the ram-above-4g relocation - * to above 1T to AMD vCPUs only. + * to above 1T to AMD vCPUs only. @enforce_valid_iova is only false in + * older machine types (<=3D 7.0) for compatibility purposes. */ - if (!IS_AMD_CPU(env)) { + if (!IS_AMD_CPU(env) || !pcmc->enforce_valid_iova) { return; } =20 @@ -1881,6 +1883,7 @@ static void pc_machine_class_init(ObjectClass *oc, vo= id *data) pcmc->has_reserved_memory =3D true; pcmc->kvmclock_enabled =3D true; pcmc->enforce_aligned_dimm =3D true; + pcmc->enforce_valid_iova =3D true; /* BIOS ACPI tables: 128K. Other BIOS datastructures: less than 4K rep= orted * to be used at the moment, 32K should be enough for a while. */ pcmc->acpi_data_size =3D 0x20000 + 0x8000; diff --git a/hw/i386/pc_piix.c b/hw/i386/pc_piix.c index 57bb5b8f2aea..74176a210d56 100644 --- a/hw/i386/pc_piix.c +++ b/hw/i386/pc_piix.c @@ -437,9 +437,11 @@ DEFINE_I440FX_MACHINE(v7_1, "pc-i440fx-7.1", NULL, =20 static void pc_i440fx_7_0_machine_options(MachineClass *m) { + PCMachineClass *pcmc =3D PC_MACHINE_CLASS(m); pc_i440fx_7_1_machine_options(m); m->alias =3D NULL; m->is_default =3D false; + pcmc->enforce_valid_iova =3D false; compat_props_add(m->compat_props, hw_compat_7_0, hw_compat_7_0_len); compat_props_add(m->compat_props, pc_compat_7_0, pc_compat_7_0_len); } diff --git a/hw/i386/pc_q35.c b/hw/i386/pc_q35.c index 4d5c2fbd976b..bc38a6ba4c67 100644 --- a/hw/i386/pc_q35.c +++ b/hw/i386/pc_q35.c @@ -381,8 +381,10 @@ DEFINE_Q35_MACHINE(v7_1, "pc-q35-7.1", NULL, =20 static void pc_q35_7_0_machine_options(MachineClass *m) { + PCMachineClass *pcmc =3D PC_MACHINE_CLASS(m); pc_q35_7_1_machine_options(m); m->alias =3D NULL; + pcmc->enforce_valid_iova =3D false; compat_props_add(m->compat_props, hw_compat_7_0, hw_compat_7_0_len); compat_props_add(m->compat_props, pc_compat_7_0, pc_compat_7_0_len); } diff --git a/include/hw/i386/pc.h b/include/hw/i386/pc.h index 9c847faea2f8..22119131eca7 100644 --- a/include/hw/i386/pc.h +++ b/include/hw/i386/pc.h @@ -117,6 +117,7 @@ struct PCMachineClass { bool has_reserved_memory; bool enforce_aligned_dimm; bool broken_reserved_end; + bool enforce_valid_iova; =20 /* generate legacy CPU hotplug AML */ bool legacy_cpu_hotplug; --=20 2.17.2