From nobody Mon Feb 9 19:11:05 2026 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; arc=pass (i=1 dmarc=pass fromdomain=oracle.com); dmarc=fail(p=none dis=none) header.from=oracle.com ARC-Seal: i=2; a=rsa-sha256; t=1644265716; cv=pass; d=zohomail.com; s=zohoarc; b=jn8HIXdEEG/eff+yhIg9YPWGu4oRlCIwRHiqVww0+ocD/zMmOnySwld1z6sidn+CJJy8MXYSMvMtj96zcjCPcfpAyfZVuYuimCvNbNNE1PT60bfg043eWdh9+g7Bb5IHcomeZIUbotl/PrKPNWHPJULUYsrHCNB75XLijxu9bmA= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1644265716; 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=KN4k+7iaJ1yH/YKjZNo8y6/W07GwzLgBwWIVP3Lov/8=; b=Dv4VTFv3Hvs+CxzuZV2xvbo4OT0yRVDq+TlfXHRxM7aTszX7H7GD3FP9AbiOMdFnd/9r0kvUh2+EyHK0xIN1Qyqdlft+qB1KLDapzy/xR5PuhIBi3z4uxE9Y5SpxgYh6it4OjznuezIBGUwcEf1VnXWF4X3H22xnlOlZd0QOAFI= 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+importer=patchew.org@nongnu.org; arc=pass (i=1 dmarc=pass fromdomain=oracle.com); dmarc=fail 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 1644265716863179.06847711598164; Mon, 7 Feb 2022 12:28:36 -0800 (PST) Received: from localhost ([::1]:38292 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1nHAcl-00077V-Az for importer@patchew.org; Mon, 07 Feb 2022 15:28:35 -0500 Received: from eggs.gnu.org ([209.51.188.92]:60428) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1nHAZA-0004Pu-15 for qemu-devel@nongnu.org; Mon, 07 Feb 2022 15:24:52 -0500 Received: from mx0b-00069f02.pphosted.com ([205.220.177.32]:27178) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1nHAZ7-0001uN-I9 for qemu-devel@nongnu.org; Mon, 07 Feb 2022 15:24:51 -0500 Received: from pps.filterd (m0246632.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.16.1.2/8.16.1.2) with SMTP id 217IhmU9011786; Mon, 7 Feb 2022 20:24:43 GMT Received: from userp3030.oracle.com (userp3030.oracle.com [156.151.31.80]) by mx0b-00069f02.pphosted.com with ESMTP id 3e345sh72g-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 07 Feb 2022 20:24:43 +0000 Received: from pps.filterd (userp3030.oracle.com [127.0.0.1]) by userp3030.oracle.com (8.16.1.2/8.16.1.2) with SMTP id 217KLi8C169415; Mon, 7 Feb 2022 20:24:42 GMT Received: from nam10-bn7-obe.outbound.protection.outlook.com (mail-bn7nam10lp2103.outbound.protection.outlook.com [104.47.70.103]) by userp3030.oracle.com with ESMTP id 3e1ebxpwan-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 07 Feb 2022 20:24:42 +0000 Received: from BLAPR10MB4835.namprd10.prod.outlook.com (2603:10b6:208:331::11) by BN6PR10MB1826.namprd10.prod.outlook.com (2603:10b6:404:fe::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4951.11; Mon, 7 Feb 2022 20:24:40 +0000 Received: from BLAPR10MB4835.namprd10.prod.outlook.com ([fe80::4910:964a:4156:242a]) by BLAPR10MB4835.namprd10.prod.outlook.com ([fe80::4910:964a:4156:242a%4]) with mapi id 15.20.4951.019; Mon, 7 Feb 2022 20:24:40 +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=KN4k+7iaJ1yH/YKjZNo8y6/W07GwzLgBwWIVP3Lov/8=; b=bxYs8mF2Uk/gjzVD4CqnXyN9s6a9s5HHnLLo+ZZxI/1ZRlOMp9DYgZoJHeJo9OmKuwve IwRcI6PuR46B9hzO7dM049OHuXZoFQhRhSg1qHJdMI9WPBlqo6DGV8juWJlLJtiPAJWa SR776+XP4sIJ3PxLuyzN6pG2P8LpVE0rZD9v0+PLst0jHvfjAIZNkp3JXg28+NZsq8QR Ibq509bbABjQcvTuD4YM/nUV9OpCCAgBNFAAAK1f3yYbe0XSWo/clm6pkPEsp6kXr5RZ EY7+DZmntkhyWlLIIdGXPu8tPMNlK21TpJzIjK0WoRLp9PUxa+bT4TFRI84CGRG9rrXr GA== ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=VvD5rL3FeQohXsI0GB62kh/NI4JCN10mvws6HbBXM2yDVl0rOvpQgNp28RKF9w+LSKMRkIdsNTGDXqFwm2GRn8zLko7JdiV2Gm68MMDaU7aJ8ycIIfNUbNiWmetx/c6cq2nQslTA1BpXYvXBVTdb+IZw6A6aaA5uIrBvKvgunlx1VzYbRKZmGBNOU9mMdjGGFzFKOjFtuY2LS8wuOVv03pIHTYNZQr521VG8IAqMPe5q243wQy7jJF7Pcu8s37jComYbbfCw6H3geFLhFE2zIwt5gtQu0byAXYuoCUjwG2xrC3cp8bH96JBX5Df/PbDaS8ahlmF83EswYMHEiShBjg== 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=KN4k+7iaJ1yH/YKjZNo8y6/W07GwzLgBwWIVP3Lov/8=; b=Ede/mwMSERJgOHyIhywhfb1O5ROr0CvfYWWLc+PbWIbp1LrWHepym77vUEmrZ8VtLU1ekrxBYnSJMQIWCigTPqpjG0NXTCpTR/sqZf2UfHjVu2NaddoBsDqU5D07DasM37FnVoQ/0c0eT4SJ6BmHV/Fhaht8B0GqvIFmDB9iWvMByYPoOZhDdyq3QyKV7j2uex/c/XvnO6h6u/jLOUek8u+NWSjctROCAPU9ALcStouwEooaOGfNqmr8TDcQbsKK4FF6CVUtK7ENEZ/DBCmbwoZvpDtFFzPStLSyrJO0xu8Ouui0gkTPI2y8YJv2Vx//MpRhg9Myx6PDPZxUrtb1xg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=none; dmarc=none; dkim=none; 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=KN4k+7iaJ1yH/YKjZNo8y6/W07GwzLgBwWIVP3Lov/8=; b=HkiXSQLKi773DWk8yroUae18uAcPOqh5VXqMjykh0TKNy6h00CGFwkLQJr7rHQPmH3Y+7bZBk1NAvd57gnG5b2wJ7PskCkwXarI5SlBs02xCd7dUupZpVWWlj9TaIQWV+YFtOTJ0zK7NP+haoTUJQdTpAeXjz/JfwUv3/Zr5vww= From: Joao Martins To: qemu-devel@nongnu.org Subject: [PATCH RFCv2 1/4] hw/i386: add 4g boundary start to X86MachineState Date: Mon, 7 Feb 2022 20:24:19 +0000 Message-Id: <20220207202422.31582-2-joao.m.martins@oracle.com> X-Mailer: git-send-email 2.11.0 In-Reply-To: <20220207202422.31582-1-joao.m.martins@oracle.com> References: <20220207202422.31582-1-joao.m.martins@oracle.com> X-ClientProxiedBy: LO4P265CA0032.GBRP265.PROD.OUTLOOK.COM (2603:10a6:600:2ae::18) 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: caf377af-d675-4feb-ddb2-08d9ea77de41 X-MS-TrafficTypeDiagnostic: BN6PR10MB1826:EE_ X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:229; X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 0UOk/n00aWhpitHQfNnxCQOCkyCfEA2o5AOLXvxSOni7BmZG8GpQPuMmhnKBmw7A3ZEH3r15tir/NBvBzolvCxIoOIE/4dXq2eLwnJywYYKFHdZ3aYfvY7HRBfJ1gw6x3DMWLXtYyfI8OletFo0imxC/FNbkUFeFy6zFH2vHY78f4Xr1cUc2Ywdv2fhH7xRKQS8K/2SeCF8G6Yy9K40P925JJNRo94S5MeviNK0/4/rnposzcotLXOAcE3hJQow6UB+MP7evErfGOAe2vLU+IvnDLlm5ixm+zPoPUFmGg3czCIWnuj0bjFEUjLBgjWK27Wp76NhAqJPLfJPfsnRAiXUQqc+KHFZmyhOFKqmGnyVN3adcgvNP0VuijWtyJRM8J4SfNmCU5AM2K2AlzY6wuqfZKmLoAj5wfQA2poVxtekGjrYEkiYlNdvpfjlWjp0ASmvN9UkG6sgfO1tpJ4Vlx8BnbFaefQ3kYw7HjP2tKe7k5DyY/RLF+3WcGXIl/kDkje4kImZV2cy5SFkVxjTI8Q3VkSWjn/vB9+vX0cIWyzJeitG0vlOY/wSoBPNiTYorebgcNk0iwe5B+r/0waXiWx6K0MvEZwGbwoqofEPrMaWqOI8N6oyCU0B6jBjTOeDIHTjOAVjRTLk2K40jPF6oNQVqzlLEMRFkY7WZ0eVTrkrxnlna6X+fhPjQwOUnOoLY4BtMR+Ot5ByqkDwM3W1WaA== 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)(1076003)(186003)(2906002)(26005)(54906003)(4326008)(6916009)(8936002)(8676002)(52116002)(66946007)(107886003)(66556008)(66476007)(316002)(36756003)(5660300002)(7416002)(83380400001)(2616005)(6506007)(38350700002)(38100700002)(6512007)(6666004)(86362001)(508600001)(103116003)(6486002); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?TvOqiTti8prd50b1tRu6zNhBGKJ+Q6php4hHGx4pooj5dH/GYUGpIvm6mNIM?= =?us-ascii?Q?BSr2SbIO1fEtqrCZPKqkiXJuA+k014Dvk2onNJU2xxF926Kfr5dLor70NSs1?= =?us-ascii?Q?QvMM/KwrrWpKYA5uboUBjgEMccnwXj76CF6QbXSdRZZzWzFwlauKsb0AuGjT?= =?us-ascii?Q?V9ThjRxL/W+1c8O16OeuMKmSdFiDf2yHicFhZhaN557wexcspxhl7tnVGBiZ?= =?us-ascii?Q?9680RJ/Tb/E8bUShSPZgJRL1CMQD6ZF4/x3v+lTLesBQlTFCJk6VhCwPyTGI?= =?us-ascii?Q?llMBGdktgJAoYzVa0eUWfKBeTaTNwoENyAtLFMqJN4ji2t06g//kZ4xr86pJ?= =?us-ascii?Q?/Kg0nwVpyLNNYNs/lqMH4La3OLN9k+luG7YsmAui85IYoLyQ23c15sCZXVYZ?= =?us-ascii?Q?AGaevmacFegc2XGBAq02/e0AY59kVM8ynrcLvmFVqrEnJgFRBxH83A1bt31Z?= =?us-ascii?Q?jFXO8BuLMu6x8BFd09MQOABvhiJagFmRDQ08iOd4qIoeqDNBGrsEUIZNlaNB?= =?us-ascii?Q?Sh1jz4CMI8LePLI82BDhqH0DVUZ9AjjOXEebt7LJbFGnri7N6c5/Qf0FfyFk?= =?us-ascii?Q?2j1F8XgMT4YXxazOosi3UBY/W9Z2jlONvxeFoiWgJvncsTQ4Pqk2NQK6+b+J?= =?us-ascii?Q?Ik189znrXtwmNIuS6yXKdM8QYaYvX6hwbrKQe8+Tm/RNFUc7mo1m19RLIdJJ?= =?us-ascii?Q?G+XlM7uZthLJ9CC6ttHxoFuH6Dr6qb1dkm+HOSs2PkaITeZ378CwnnnE4caz?= =?us-ascii?Q?W22izFKI+HCAxrbPD5Uh50GoDgFnUWCvqiua2KyhmX3TxcWcL9yKMdFtOvmt?= =?us-ascii?Q?tFVtWIPcWwQ9v3rSQnRczx3biBdffa3e8DJI7bfWX8ySMZtMEJBFb9d1xX3P?= =?us-ascii?Q?MSvmYVnfPyTzkxZUKdJBywE2zaDhlVz0rUenL0BvJ3RtHpMo06YZZLhMIv+W?= =?us-ascii?Q?B3xr6CQQh1BNS8rPzYlyh1jQlhS57ruSgNNgJAvFhngbrxF/ezQroryLCsHd?= =?us-ascii?Q?aXxB05VrirPj25mAJf54CNLNLXSHq+v34cicpCmfIP5wkvaU3GkLqVPpEpDi?= =?us-ascii?Q?h8fssvtNJLFOOgRv1XTFDGNxdpHQuIUDtcvW4eML94xRAvXDsiTN5OyhYGkc?= =?us-ascii?Q?iUvlu5PBxEjdMBH4Wht+K6aR7+jrsjDjQE6I44eqjedyLLspxVqJQAJbKeY1?= =?us-ascii?Q?HZKOGnY1IfgGT8U8IPT9AXrCX61PGw1diHcAl0SC3wn+YQR6biB8AOoK11Cr?= =?us-ascii?Q?P/ge/roYAhD02JeoL+XF0LCfmGDtnUj7Wjt6nD/+Nm+OAdFiGkMUMfX6EsNh?= =?us-ascii?Q?09HKlU1y+w2dBc29K/4wQAZdkIzYa1WK4I1Tj4q9CLnCJGHuHb/hCLaDEysU?= =?us-ascii?Q?imLpciu0oSvCC4PXo7mDb5oAZCje474Vdk/POsrE4FKHpGQ2vNc59sx7DVLz?= =?us-ascii?Q?+tL9atwWnrcsy5VBrzI3DMQGq2sZf1mcE7RNUhdjbWUCkoCe9SjlKkWrXW4t?= =?us-ascii?Q?aePNGCv7wdTHRtsF2hHi4+VCdczPUkj3GCK7ODWog/ozsY2mKYM3lHeMPUwR?= =?us-ascii?Q?0+Pt9k/Yyzaw2VHGZauxOmRGimxVQT6V/5HammXWmJp8ooJgQXlBPFdjk31O?= =?us-ascii?Q?kmUgWTjwGf7w6+mMXE7ZAcM6HwIH6C/eqebo098g6y32xLE59ibIEwjpOdBK?= =?us-ascii?Q?zNouGw=3D=3D?= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: caf377af-d675-4feb-ddb2-08d9ea77de41 X-MS-Exchange-CrossTenant-AuthSource: BLAPR10MB4835.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 07 Feb 2022 20:24:40.2376 (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: +g14awVxyUA+8ELn1XJfTiS4SQgbUNEn8y8mrop0wzJhKBND5rVEBNuXmsPlJNhGkOQvW8OphzoAzSLE5oLfxWwHss9BTeGdS82WSrSJd5I= X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN6PR10MB1826 X-Proofpoint-Virus-Version: vendor=nai engine=6300 definitions=10251 signatures=673430 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 phishscore=0 bulkscore=0 suspectscore=0 mlxlogscore=999 mlxscore=0 adultscore=0 malwarescore=0 spamscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2201110000 definitions=main-2202070119 X-Proofpoint-GUID: -tbgJYL6UfYrSQK_7glrW9Y-f01KAka- X-Proofpoint-ORIG-GUID: -tbgJYL6UfYrSQK_7glrW9Y-f01KAka- 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=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_H5=0.001, RCVD_IN_MSPIKE_WL=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: , Cc: Eduardo Habkost , "Michael S . Tsirkin" , Richard Henderson , Daniel Jordan , David Edmondson , Alex Williamson , Paolo Bonzini , Ani Sinha , Igor Mammedov , Joao Martins , Suravee Suthikulpanit Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: pass (identity @oracle.onmicrosoft.com) X-ZM-MESSAGEID: 1644265719049100001 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 --- 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 ebd47aa26fd8..4bf54ccdab91 100644 --- a/hw/i386/acpi-build.c +++ b/hw/i386/acpi-build.c @@ -2063,7 +2063,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 c8696ac01e85..7de0e87f4a3f 100644 --- a/hw/i386/pc.c +++ b/hw/i386/pc.c @@ -837,9 +837,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) { @@ -880,7 +881,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 @@ -972,7 +973,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 a2b318dd9387..164ee1ddb8de 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 b84840a1bb99..912e96718ee8 100644 --- a/hw/i386/x86.c +++ b/hw/i386/x86.c @@ -1319,6 +1319,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 a145a303703f..2de7ec046b75 100644 --- a/include/hw/i386/x86.h +++ b/include/hw/i386/x86.h @@ -58,6 +58,9 @@ struct X86MachineState { /* RAM information (sizes, addresses, configuration): */ ram_addr_t below_4g_mem_size, above_4g_mem_size; =20 + /* RAM information when there's a hole in 1Tb */ + ram_addr_t above_4g_mem_start; + /* CPU and apic information: */ bool apic_xrupt_override; unsigned pci_irq_mask; --=20 2.17.2 From nobody Mon Feb 9 19:11:05 2026 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; arc=pass (i=1 dmarc=pass fromdomain=oracle.com); dmarc=fail(p=none dis=none) header.from=oracle.com ARC-Seal: i=2; a=rsa-sha256; t=1644265905; cv=pass; d=zohomail.com; s=zohoarc; b=eXXLuciFgTixLGDd8B9E0I2D93rzIBF9aRcbREpXgavC2hlNMgm0yyKRUT/aicUDwxlXxTid5F92mEG+jEFTQlie/fgoBRzBcT2KFAC5R8WbK6J5+DGglhTrEg9MXnClGgR1adNqCOd7I7brdFuCX0vNfL8DfaQHhEx3qqfS62Y= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1644265905; 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=04jii+/F9ViBz/nWXpXXiMCbK6QHU4TjhoiyVXboTuE=; b=WMrDjPuoeDtRPnKWxGk7K9LfGGBQjdGv69b5piQbjIe8AvTml4FC9gnr4c6Zdm+0DgSQFihelGQ5shr6PFbxJ9jVwIbLWOIx3ioFQ0goPFE8rmYFlWSwu2aEWCc0Zsf8fFtIrNHWFMxs5cia/LT4JsE5pPSv/VcitDvIsv1f5eg= 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+importer=patchew.org@nongnu.org; arc=pass (i=1 dmarc=pass fromdomain=oracle.com); dmarc=fail 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 1644265905765225.75134860594005; Mon, 7 Feb 2022 12:31:45 -0800 (PST) Received: from localhost ([::1]:44102 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1nHAfo-0002iW-W5 for importer@patchew.org; Mon, 07 Feb 2022 15:31:45 -0500 Received: from eggs.gnu.org ([209.51.188.92]:60434) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1nHAZB-0004Q2-3t for qemu-devel@nongnu.org; Mon, 07 Feb 2022 15:24:53 -0500 Received: from mx0b-00069f02.pphosted.com ([205.220.177.32]:34182) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1nHAZ8-0001uU-Nx for qemu-devel@nongnu.org; Mon, 07 Feb 2022 15:24:52 -0500 Received: from pps.filterd (m0246631.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.16.1.2/8.16.1.2) with SMTP id 217IcxaW004446; Mon, 7 Feb 2022 20:24:46 GMT Received: from userp3020.oracle.com (userp3020.oracle.com [156.151.31.79]) by mx0b-00069f02.pphosted.com with ESMTP id 3e1g13qey3-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 07 Feb 2022 20:24:45 +0000 Received: from pps.filterd (userp3020.oracle.com [127.0.0.1]) by userp3020.oracle.com (8.16.1.2/8.16.1.2) with SMTP id 217KLR5i194417; Mon, 7 Feb 2022 20:24:44 GMT Received: from nam12-bn8-obe.outbound.protection.outlook.com (mail-bn8nam12lp2173.outbound.protection.outlook.com [104.47.55.173]) by userp3020.oracle.com with ESMTP id 3e1jpp4hwm-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 07 Feb 2022 20:24:44 +0000 Received: from BLAPR10MB4835.namprd10.prod.outlook.com (2603:10b6:208:331::11) by BN6PR10MB1826.namprd10.prod.outlook.com (2603:10b6:404:fe::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4951.11; Mon, 7 Feb 2022 20:24:42 +0000 Received: from BLAPR10MB4835.namprd10.prod.outlook.com ([fe80::4910:964a:4156:242a]) by BLAPR10MB4835.namprd10.prod.outlook.com ([fe80::4910:964a:4156:242a%4]) with mapi id 15.20.4951.019; Mon, 7 Feb 2022 20:24:42 +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=04jii+/F9ViBz/nWXpXXiMCbK6QHU4TjhoiyVXboTuE=; b=eFZSJx74S1oEbwkULIs5qAEBp7AP/ikdMDbhESZQupizwj0mzDSc3ibTOf5fbKxTEonM uOP6hIC3RnVw3JrbsE2972VH47/82ugEbfUnFcDxuvtglTqm1g800LD7CRZQjDYRNf/X ei+H9xlOymCiLveygc/qTakiyYzXnOKbend6sGqpffe0OVpCtBCYtH3qeEdaEirL9SLF Rx4EZIuOLhPVltNHknM7mdgbL5HbOKhJk+dc3wB32adpm9AQXEXP6oYarlIrpPMwpMm5 I0JF9KXyUDr6nNOppi9ReCpQzG/gSOG+jyZmoPYk38j68FdiJKcS1c7taszdlH0trvxE UQ== ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=ForrVVk8/UusxBlCCyKVgdQfcrO6ubMaI1XmdPhB6cKnxQ3ekcf3kJg3hocGmk+RQPjfyFTolWI7jp90PoYs7M+/9uGbU9gdd4jI6AXiGcn0PLd+JbEXVED9H9ZlgWdZykWPDdkvQr0hv/duO0iZMoEj++heOoALruMBxt5kzq5j0yYTvG/mVxSzJNpGk12ICcCMpytW250tVPugpSu5Lo+CE0UYxtiIj3MVJA2kLu1F7R4Gw9ZeNmhUBMUeaQGEY5Uj/GyLj/uO2waVSkSc0nqyGkSHGSgFWXmoVMRV9AdcEdHn5rujwX3AA5DDA14m5pQNJ4f2ROAm+FIq0Ke/WA== 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=04jii+/F9ViBz/nWXpXXiMCbK6QHU4TjhoiyVXboTuE=; b=LPdw2PNXERCK2mM3Q3kATCUPVd+x/mXrITl/rPleGOgsqHIkK9L5ifVkdssT5/D8ah1BG7jmGt1sTPOdBvl7Yq9A/5na1DUs02EudGEgCcEZtgMD6eJWsNxBtz66TvAEwFYi7xP/ZxXNb2jeBJ9gNXGcdm9cFd/9aHegMfiL2rR7MuHK8VB7UIqJ2LY3//ZfJqXkiTa3muPV2LHzO3i3KWwhJSap9e0xQR7WeFrVlTmRM2+DTOLhDcPRjNPBWKlbPV+aVP2EgCYOH30yAuTpagEKZlmnwr5f1h+sZf1dA0zCwC4P26ACRBTUbMEjgd9YhMRHA+Xd1sbYAOvtEUMDcQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=none; dmarc=none; dkim=none; 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=04jii+/F9ViBz/nWXpXXiMCbK6QHU4TjhoiyVXboTuE=; b=hBcjPs0EdtuxqpPb0gvwzYJN25x3NHY+4yjXvbU2+t3eHX47SCgFO7V6zrpwAJnX0AmhSs8FliVffdHb2fg4L+G+KogVGlHSVPzIjtveOnVK5AHFlzoBM19TnihLtGVgNpcVafYpSkOXjbObU25owMP3dYs8Qu3xnqMrEctjbfg= From: Joao Martins To: qemu-devel@nongnu.org Subject: [PATCH RFCv2 2/4] i386/pc: relocate 4g start to 1T where applicable Date: Mon, 7 Feb 2022 20:24:20 +0000 Message-Id: <20220207202422.31582-3-joao.m.martins@oracle.com> X-Mailer: git-send-email 2.11.0 In-Reply-To: <20220207202422.31582-1-joao.m.martins@oracle.com> References: <20220207202422.31582-1-joao.m.martins@oracle.com> X-ClientProxiedBy: LO4P265CA0032.GBRP265.PROD.OUTLOOK.COM (2603:10a6:600:2ae::18) 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: 006be659-54a1-413f-0670-08d9ea77df92 X-MS-TrafficTypeDiagnostic: BN6PR10MB1826:EE_ X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:5797; X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 6BTFD27RgAqTw3e+kHc4gO+3NIk5X6Hwlhe/Q72AbZqt6os6vzgeFu8MWwbv0FAk6EXVaHNt2+/0S/c5dRu3QGBAEtL/Kp9FuPI/AF0kDC8e/DqrI27WjwDPhTWuX4qIABPGNpheVDKWmgIKAaGuoDm27g8arGqFODq1uNTpGa/943bLznr+YDBrcESCKalnC5EGfEou2fUySUjONXJ5ImmVcMb/vYi6gaZOi/JcbioGFHx6lC4Yd3qWORzn2gAa6gFApV3Tv2EJXfkaTVA8xSTtEI/m/gmHANG6bXvXtKoedu1u6WCGze19W+ujG5PreX5g7WbFgd0+rsEqvOTCkR9j29YW1h8M2ycdpBMzrU/K/GKu3nuJVfk+SYeICZ2ssp5niXmPlNH/xrcekC8l8FGn7E5jAghNsQC0Vp2cX1w4QIVncJY13IxAW8/FNOi3BH0/1j466ahhwJa0nMLhBXB6JyRTpuCJsT7kh7PfjSjPTRtpA7kjVbY7fbImY220Fvwr6a2A/L1HT1rt/pqLLs3TXZVT4liqKCwB4Yy8JByioIE8seTnZzz7fBF7wtfs8UeekddAcjB3vloH82vcBVjWFkyc3rgPcosyN3tc+ffmTjnrZKyfLSEln61lKkr2dU7VoPlg8IznnK011mCoB60zYyqlEWJjxOtcz8ZDe3Hgpj7/JdDFbigxmOg4YWRTFpzzpMTl5ODM5QuHISzFyQ== 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)(1076003)(186003)(2906002)(26005)(54906003)(4326008)(6916009)(8936002)(8676002)(52116002)(66946007)(107886003)(66556008)(66476007)(316002)(36756003)(5660300002)(7416002)(83380400001)(2616005)(6506007)(38350700002)(38100700002)(6512007)(6666004)(86362001)(508600001)(103116003)(6486002); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?pB09Bhbndy7KQ31mIUe4J9nJBwQdYW2dbReBbSerZW9+MaJ8schXU7erZeSS?= =?us-ascii?Q?W8scb+BHHr5ZR7ksuzGFwSyMI+J3zS/cu3NobZD+fZthHPrJ+x8v5fvXts7p?= =?us-ascii?Q?tpY+zC0F/42PHnJCg783SXx35tV4XUGamZB7/1/Te8y0V4R9KKNbTxdcEo78?= =?us-ascii?Q?A1hsC6f6b/956dDwGfja6sUAk3A0mrldnvxqGrFlOgB4MPTbeBaAxAffkVd7?= =?us-ascii?Q?waXVuKvM3zGkSs6ioMjx1ibeLMjQZx4jOq07rE634r7WQ1LHjImZL2RM22IV?= =?us-ascii?Q?0CE16pokGHTQ1JTVlqtlBmZsUl1UYqVTRLii7Zd+eQDqPW9zAnI9r3FqH6PG?= =?us-ascii?Q?cR5jlhbFyJpVGkV3R2psMCxJEtoVhQm+SEMXVliXIMA1q/r7mOg7J28pBEBe?= =?us-ascii?Q?+roDJd/Cq5Va03reNc6kw4Ny7qjZUbEP/8jz0InHPaU+J7I/sSsh/nxh3ZO8?= =?us-ascii?Q?+4IzkzPo0jEDZsZsDf/wAisFirGOPoIYvUxbCUWwsGM0iOyXGqa4V1BF60ol?= =?us-ascii?Q?7+bWnshmKIACPd7sEjM03M4mXUdqT00mRGs42UMKwZ/9ekpAviDEGjYoHOb+?= =?us-ascii?Q?wRqsFoqDQ925VjT7Ti+Ep1hVo/QWYG6lRDucbcq0jksXt92bEgfg8Y0x6qSj?= =?us-ascii?Q?XcDfEeqUf22YjokbvN7O9UNv2gts0HC+xfNUddShTIhi4zOcjOfoeSHQTyHH?= =?us-ascii?Q?L+WIA2B78lI8NTeeQ/uMBPoJb9nrhW/XyVNs2qhrVDbW78l7He6qJKPAVgXF?= =?us-ascii?Q?UF5gD8ejUeU1n66IZQA+qGHxMaUW7ViFwBM5MHy5kkSS37YRhNU1nLdmXLcU?= =?us-ascii?Q?3tVM88PORKiTQBwyP59MgRCeJdrUh5YmlvS9eBwRUrGjR9k8w8BFPEGCY7u0?= =?us-ascii?Q?RR9+hZZd6NKr4IcNASs9iu33ZDwmqrJNnEoXerd4Ln+Kw6H4EdHaM4F6Kpl5?= =?us-ascii?Q?hueFemz5ESF1kCmYCtPo9/G/XYFShGt0G3nUBg3ovUFQSkVcxkuk5SFG7YHt?= =?us-ascii?Q?3i/LsY16XAsIrYwuCyeRr/dWx8ZUQhsBdCiQ23OaUazwRWPGTSCwoAyaGH2q?= =?us-ascii?Q?yIx+CP3jCCaTNFrsfpaUwXUGk+igF/2DHTBLFUFJ3QlCaxoP4IOcomCxj/jh?= =?us-ascii?Q?J1LzFbacxUyNvbC+LJJrE+BnBYTjL1tQDQITPzbMnGS/ouFd6C6lWUQLYF7v?= =?us-ascii?Q?zYk24qsbncFlZgNs0gcwphi19vh+HYpKZYU4GPE83mfEu603VjsGXZ7WSvqm?= =?us-ascii?Q?JjIXVQs8YhUzIymT3gTl2hNCUnr1v3PbPkMteY+fwiY9sYRubvfto3c5YR46?= =?us-ascii?Q?sJ16wP1TbNeY01iPeAvVxyqK3OUV9Pyym04meXh4VTb5W0Y7MLQ4XuyMEJpJ?= =?us-ascii?Q?YM9YwLsE3ihpp+N5U3AGoGdAY1lvZ5KEPN6O6HNyvIzNurWQ6KstUYyO0iVl?= =?us-ascii?Q?2YWj8exeHUlsj7Cevrz9IwPgogmD1UOuEa+vkt7MRaVlkxy681DuHLrU09gC?= =?us-ascii?Q?qcu19QSew6rOjwKA7zlOWH5Xbd0dgKXQi2uPGUaTmyey3b/oiR/gMQjCsX9d?= =?us-ascii?Q?/0e6ZlJMMwGKtD1gzA9QuKqCtua3+c5/EuErU+gdvm6ppIf2K4vvWum+dTxf?= =?us-ascii?Q?HtFpCiUT/UHCcQ4sXUOodQ3vAEy+t0XNqEqTmB8Lmbk4FjzBbCdt6/K7+xJA?= =?us-ascii?Q?Jh98YA=3D=3D?= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 006be659-54a1-413f-0670-08d9ea77df92 X-MS-Exchange-CrossTenant-AuthSource: BLAPR10MB4835.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 07 Feb 2022 20:24:42.4876 (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: JOmCiWCjHIF/CDH4bBDXrGAYXH6nEQli3fDWESTkn//VnlVJKhmPcy4Pt9bQ7Rj5npdDyJjDHE4MpLaNJZrxollZuys9amWYmZWbdhxKTGY= X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN6PR10MB1826 X-Proofpoint-Virus-Version: vendor=nai engine=6300 definitions=10251 signatures=673430 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 mlxlogscore=953 mlxscore=0 bulkscore=0 malwarescore=0 suspectscore=0 phishscore=0 adultscore=0 spamscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2201110000 definitions=main-2202070119 X-Proofpoint-GUID: ax4YjLCQPt7ulcwCv1axqSwBFSCh2VCt X-Proofpoint-ORIG-GUID: ax4YjLCQPt7ulcwCv1axqSwBFSCh2VCt 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=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_H5=0.001, RCVD_IN_MSPIKE_WL=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: , Cc: Eduardo Habkost , "Michael S . Tsirkin" , Richard Henderson , Daniel Jordan , David Edmondson , Alex Williamson , Paolo Bonzini , Ani Sinha , Igor Mammedov , Joao Martins , Suravee Suthikulpanit Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: pass (identity @oracle.onmicrosoft.com) X-ZM-MESSAGEID: 1644265908321100002 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. Suggested-by: Igor Mammedov Signed-off-by: Joao Martins --- hw/i386/pc.c | 66 +++++++++++++++++++++++++++++++++++++++++++++++ target/i386/cpu.h | 4 +++ 2 files changed, 70 insertions(+) diff --git a/hw/i386/pc.c b/hw/i386/pc.c index 7de0e87f4a3f..b060aedd38f3 100644 --- a/hw/i386/pc.c +++ b/hw/i386/pc.c @@ -802,6 +802,65 @@ 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 void relocate_4g(MachineState *machine, PCMachineState *pcms) +{ + PCMachineClass *pcmc =3D PC_MACHINE_GET_CLASS(pcms); + X86MachineState *x86ms =3D X86_MACHINE(pcms); + ram_addr_t device_mem_size =3D 0; + uint32_t eax, vendor[3]; + + host_cpuid(0x0, 0, &eax, &vendor[0], &vendor[2], &vendor[1]); + if (!IS_AMD_VENDOR(vendor)) { + return; + } + + if (pcmc->has_reserved_memory && + (machine->ram_size < machine->maxram_size)) { + device_mem_size =3D machine->maxram_size - machine->ram_size; + } + + if ((x86ms->above_4g_mem_start + x86ms->above_4g_mem_size + + device_mem_size) < AMD_HT_START) { + return; + } + + x86ms->above_4g_mem_start =3D AMD_ABOVE_1TB_START; +} + void pc_memory_init(PCMachineState *pcms, MemoryRegion *system_memory, MemoryRegion *rom_memory, @@ -821,6 +880,8 @@ void pc_memory_init(PCMachineState *pcms, =20 linux_boot =3D (machine->kernel_filename !=3D NULL); =20 + relocate_4g(machine, pcms); + /* * Split single memory region and use aliases to address portions of i= t, * done for backwards compatibility with older qemus. @@ -831,6 +892,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", diff --git a/target/i386/cpu.h b/target/i386/cpu.h index 9911d7c8711b..1acebc569b02 100644 --- a/target/i386/cpu.h +++ b/target/i386/cpu.h @@ -906,6 +906,10 @@ typedef uint64_t FeatureWordArray[FEATURE_WORDS]; #define IS_AMD_CPU(env) ((env)->cpuid_vendor1 =3D=3D CPUID_VENDOR_AMD_1 &&= \ (env)->cpuid_vendor2 =3D=3D CPUID_VENDOR_AMD_2 &&= \ (env)->cpuid_vendor3 =3D=3D CPUID_VENDOR_AMD_3) +#define IS_AMD_VENDOR(vendor) ((vendor[0]) =3D=3D CPUID_VENDOR_AMD_1 && \ + (vendor[1]) =3D=3D CPUID_VENDOR_AMD_2 && \ + (vendor[2]) =3D=3D CPUID_VENDOR_AMD_3) + =20 #define CPUID_MWAIT_IBE (1U << 1) /* Interrupts can exit capability */ #define CPUID_MWAIT_EMX (1U << 0) /* enumeration supported */ --=20 2.17.2 From nobody Mon Feb 9 19:11:05 2026 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; arc=pass (i=1 dmarc=pass fromdomain=oracle.com); dmarc=fail(p=none dis=none) header.from=oracle.com ARC-Seal: i=2; a=rsa-sha256; t=1644265720; cv=pass; d=zohomail.com; s=zohoarc; b=LOnkoh7/85PAGlLG4oVz/rnqf7TtItaIpdsgIJB3l2gI3ablvpBPS0yFabzaVVzvheqV61nf7Ain8PRyCCqFUQd0YBzoic3J00OiPiECWVonv6XhwkYVI4i8lbG23L48oPQOUQoAnftM8aIqS3M+6zMcymDbTKLMJzn8FCBEe2I= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1644265720; 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=aWfCcMprSwC9iidqyB8XW4PBGTOmS4Gt7lBo8Y4r90A=; b=GUpqAVp76T0LxSul0lrTFFoOLx/j6b7Xl04LwxPs4qmuqHCCt1ljKQJ7axkt9h+m+tuLooQNFQ91nflL9B8AGngLdpLVsGXD6s6w3TZRZBJlYUtVz4FrDwnpJmEdSZQ5KVr0HyNnpRDR+3mpd410J6OUMPdCnCnjkiroitzqUfo= 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+importer=patchew.org@nongnu.org; arc=pass (i=1 dmarc=pass fromdomain=oracle.com); dmarc=fail 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 1644265720111688.9515844373054; Mon, 7 Feb 2022 12:28:40 -0800 (PST) Received: from localhost ([::1]:38586 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1nHAcp-0007Ic-3Q for importer@patchew.org; Mon, 07 Feb 2022 15:28:39 -0500 Received: from eggs.gnu.org ([209.51.188.92]:60466) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1nHAZE-0004U0-5h for qemu-devel@nongnu.org; Mon, 07 Feb 2022 15:24:56 -0500 Received: from mx0a-00069f02.pphosted.com ([205.220.165.32]:30662) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1nHAZB-0001uf-TF for qemu-devel@nongnu.org; Mon, 07 Feb 2022 15:24:55 -0500 Received: from pps.filterd (m0246627.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.16.1.2/8.16.1.2) with SMTP id 217Iti11008244; Mon, 7 Feb 2022 20:24:48 GMT Received: from aserp3030.oracle.com (aserp3030.oracle.com [141.146.126.71]) by mx0b-00069f02.pphosted.com with ESMTP id 3e1fu2qdks-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 07 Feb 2022 20:24:48 +0000 Received: from pps.filterd (aserp3030.oracle.com [127.0.0.1]) by aserp3030.oracle.com (8.16.1.2/8.16.1.2) with SMTP id 217KK11a024569; Mon, 7 Feb 2022 20:24:47 GMT Received: from nam10-dm6-obe.outbound.protection.outlook.com (mail-dm6nam10lp2104.outbound.protection.outlook.com [104.47.58.104]) by aserp3030.oracle.com with ESMTP id 3e1f9dxjbc-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 07 Feb 2022 20:24:46 +0000 Received: from BLAPR10MB4835.namprd10.prod.outlook.com (2603:10b6:208:331::11) by BN8PR10MB3649.namprd10.prod.outlook.com (2603:10b6:408:b1::16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4951.12; Mon, 7 Feb 2022 20:24:45 +0000 Received: from BLAPR10MB4835.namprd10.prod.outlook.com ([fe80::4910:964a:4156:242a]) by BLAPR10MB4835.namprd10.prod.outlook.com ([fe80::4910:964a:4156:242a%4]) with mapi id 15.20.4951.019; Mon, 7 Feb 2022 20:24:45 +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=aWfCcMprSwC9iidqyB8XW4PBGTOmS4Gt7lBo8Y4r90A=; b=ptaZOl2PljwcH4v4u+sz521Wf4X3ZEq5YGAVoj9JwfSg16a9kJr5U3SufoMjf9Bp3VLv 9zMXGDQKZMdKNpupCvfR1OsPAPxuySO56lPWAwlMiiGLcclDoHSvatNdBcmbe+d3oUV8 bHJQx9QPR1WEHHY3qs+9L4lXH1zXQ5Kli2C/5/mQ9r2qv8nrFKYdD3x5nbql+7TkPd1v f4bLh7cdVXhjE1Gw+sBh9h2JAXGxK3hG2q4qppW1nr98cseiGtje29PyP/NMNaqFDCM1 C7VS7k7rYmPe46EoFiFd4wEv6+rqifgknhsYCot6ClCRBjiGzzNH6/uiIHrTkBO2X4H2 Cg== ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=D21mFq7hVCEjUNqs/YUuHxbK2yqsj2TEZc/uLo/hxjnS44M0r2DccvoNYnSYqcgbQwz0ItXi53y6JREgHVuF5C6MoUtmOisruwKjKRAeKpByzZFWtAjDc0+URtS+8PyAqVoAF8oh60FV3Zxx0iFQrkUEJ1BwdDnAdKU4+0wECD7MikKCR2A+eGaYmW2Y4VuDuFiLNA0D2XjUqI6uij+wKTbLb2SvH0+RIJyfoVtBeEbzX0FuHBM3wvQ38Ki6ZV7j5YKQkpwuiuRsEcbf/fbGYUs54RnYCNZGMKJembSwAp3lyTK0sXiQkl0MxxjmEIZoGTCPlBJWrUoL4xsPg2Zcaw== 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=aWfCcMprSwC9iidqyB8XW4PBGTOmS4Gt7lBo8Y4r90A=; b=lfTGlDCWQ2I76ZUfwWxc1hqonOhignU91lECXhCyrQrKIMRefCSy4Yd17QDifdPb6iSa8ESLhPbVdjG+qUZfuUYyE59YP5S01HeFFtII18LkgWmna23BRLDakoqy+ICEpdVhV7DPNocAdqfQM2SZfHNciYWLFHN7FRsEinIjoRVrUfmZead0fXsiP7QKCr3iD0OzaJH1A9v4h2fmhettowZAuw8CHCrBgR9q99idnD454jpyN7U0GYOyRuM5D0B/ywxX9RxtVwg2yFBsG/8QhtZ6dLVpnYSDfc45rGyHuNaHeA7v3s6/P7RYzJ6rQMpqFBRdvjuAxhmS2B89Y0pq8Q== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=none; dmarc=none; dkim=none; 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=aWfCcMprSwC9iidqyB8XW4PBGTOmS4Gt7lBo8Y4r90A=; b=JR0ariLbq+XxvukO0DZb8Q3LJEtffAFNRhQRTmcgfnUj4jGz4l7RU4ISOLFkA8cy02B60No199gE31tdbivf6n2Bnt9L44YnFUQvD7kkZomM4JXcI/G52kN+KcxwuybOyufrQRN6fsLfl0n2/HVu+uTVyqYcEBHhXJvfb9P8O0E= From: Joao Martins To: qemu-devel@nongnu.org Subject: [PATCH RFCv2 3/4] i386/pc: warn if phys-bits is too low Date: Mon, 7 Feb 2022 20:24:21 +0000 Message-Id: <20220207202422.31582-4-joao.m.martins@oracle.com> X-Mailer: git-send-email 2.11.0 In-Reply-To: <20220207202422.31582-1-joao.m.martins@oracle.com> References: <20220207202422.31582-1-joao.m.martins@oracle.com> X-ClientProxiedBy: LO4P265CA0032.GBRP265.PROD.OUTLOOK.COM (2603:10a6:600:2ae::18) 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: d845299f-71dd-4f54-9eb2-08d9ea77e12e X-MS-TrafficTypeDiagnostic: BN8PR10MB3649:EE_ X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:3513; X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: pwN3yfNgyQzeDgNOM3EtvFPcFYqg/7ydFoJdezsyyE1z0KLTUgU3GQt4Wkpcp5TOlDlNFBpwHrHGRG14QUahg1AXIXjlG31NxV7uVhroKBXyflZBUnuqVfkiPJOZE7lfUa7yQzBv8HA9f5A4btqSAxTlMpDsjhAhXrKh+6Zcg+CJBBeGR5+DB1JQBpiB97kg20fU+cZ2ogGNd8tTVGzjQtyw95lrRJkLHrc5Dps241Re0Tkq0qa/RXQ3JllU2RLR0j+YvDzLHjAhNy/KEM77mQYYl5oKdc+sP04e6GLhzpCxUngWKxnHpPH/EXsis0xi0lr6mYXq3jYJ4+3wrCzTcKtTvYNrT5L6eErW3wPDBjE01qQnep3S3wL9iThC8gh491W8yUqrvSMCE24RVTuWzSvIQUmLAEYeuVGOuh3z0s5dpoQFmwa1skm7Ce0Lm9qhLbw4K6pgOp0TRUvfjKq1l3UaY5m5tmdqHI+Vd/NGGFJ1JkTHimzaOErRMRApbvRtVDE/9XL5NTtOFdXB1g4R72V2UfE2BFynNGFcZlCMJIUEd3E3Lz72KCPOGFPbDSMfMPCL4Z7t1EJV8xGKfSKG+mhXmsY5f1vkBz6KbW+1rQk8YUW0mFY22VpoSqiZga4K/T022mxgEzAOILio3DkXrvJjV8OEeKDZrFTgPqmiZLcRXResCpEui6+ur4nU+QIL53MTypJ9WNxQ9CG1NR5Ezw== 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)(107886003)(2906002)(26005)(1076003)(186003)(6916009)(54906003)(2616005)(7416002)(316002)(6486002)(508600001)(36756003)(103116003)(86362001)(52116002)(38100700002)(6666004)(38350700002)(66946007)(4326008)(6512007)(66556008)(83380400001)(5660300002)(8936002)(8676002)(66476007)(6506007); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?jU+odBRO5hnZCkakBzKyaBxiC/zaqpxdwgUenBJA8RQFuhdrQ5Nh5GAWe0lh?= =?us-ascii?Q?iWs6NLPOnYX7kcgiSVi8ahNOlQdlrRMSMx7TXV1eXRGfVG8+zu3BBlnmnsFn?= =?us-ascii?Q?D4dPAmKhZuxcmI3Uc/AbyPXvKVcoe3UujUcsmdCmYZOmbGHp1CEz1W/T/OV2?= =?us-ascii?Q?IwvE12zX9mlc6x+L4tfxShydBrQHSl9vP/UGW1rqgjYkNSgxxdHPlAh0CBZp?= =?us-ascii?Q?azzvicEgI0J4rEwQHS4FHizW9RhzrK+ChDrnNmHZgMoYiwJleH/Ux7hjnNDI?= =?us-ascii?Q?Ny5dG9PCjXlPoqj2UUncc1vJytouTmfXD108ucLMyHY2SifQVlnyLxWtPqfI?= =?us-ascii?Q?sQjijDgH4dO0wH0byAvW2ww6aFGDlJfWOg7RCpn0nemoiA4gWwmOr6dlIEGP?= =?us-ascii?Q?uRDEiXm/lYL4PhpRK6dXLVRDuMj5GXr4LrIY8JqR9KBaet0AZdTzCf8p8qsM?= =?us-ascii?Q?2Q0Ws6ud3cFiTzYcKoVDnVKkX+D87F1RuOT/E2uW1YTHL9KaVkk9kviuqNAR?= =?us-ascii?Q?k1Eb6BBYRDklP2E+jsGLjvRkYbnrp0l/hd80/+c0rXSHxdG3GEjRa8nbqxDc?= =?us-ascii?Q?bWR84eYdQmiwFyCQCJHLac1nFnheg+52FLkuWNNfwWqw53fe2ztlRV1qqI19?= =?us-ascii?Q?9pMy5tGDWJKw/9HFkLO6IG5ADwT9/t8CalZ2z0XeZmVs8PuZhXWrJ3ZJhF3u?= =?us-ascii?Q?3y9JKusvPqjIf4CpgPZV8+IOHuR/MqVECnYzwRVMbMuBmAL/e+qy/R5sdP97?= =?us-ascii?Q?L64zo7l2A3w+i3lBfaiUwuu/68Qr1zH/itXth6ll6sAxmwzxUiNoefKx8cSf?= =?us-ascii?Q?Kp1Lc92P6cfl1sBvZv+1NesViQ7vSLr59T7kD3UkHIY6Qnioo2l4iPlQ/7HH?= =?us-ascii?Q?3UzN+HaT9Iu9eVswI/D5l467LpCWM5DQuFsyW7BxCIQFaOZtR+CU3pcfbtYg?= =?us-ascii?Q?w8aNC21q2oSXs3OgsOqFeALL5tvdZeUyAKPQehtoC/3ZbxFrzhyuDJ6usVIc?= =?us-ascii?Q?2JVGHaaREjBqGIfFP+8SQMzD/U5SZMXRHXnHROyoQ7FjiCV7q2HVjggF+IGO?= =?us-ascii?Q?dq8L2/UW0oySKgNkRUqC8OL4Akz4oDo3TBACBToPn17MGw5Vbi0zsYJm3kfK?= =?us-ascii?Q?HJYOgnjv5N6oiSEjoszDtjG5tcowFkn+Otg5+jjy+bbKlr8lMFGTZ7MgVHjJ?= =?us-ascii?Q?bFTFn4wD0wI79dRBorgKxc6tmk8sLHkWtPY0MQmIK6JaogDdM7deEeoNIMK/?= =?us-ascii?Q?1WAeiND4fHInDTlxks7MZ1h7YbGDXFX9Ht8VeWrcGJ+Viqy8ms2goYDBxtB9?= =?us-ascii?Q?ELZdi+o/zeU4BBtMUEFodqFkERN+zVfzCbvHyHtQS5Z6YNhSSAI2U9DqKEN3?= =?us-ascii?Q?NcPjrX+Dsx8KNiyrSbzCMmvrc81kZUtmjNNeh5ke1q2OC9gLazzgFk2W1Qhc?= =?us-ascii?Q?pnSrmkN635v3V684h5QGyIV+47wNRf6+/ywnDNwoN2fSGy/8pL3HPscbI2fd?= =?us-ascii?Q?c+Z/p07EvvgGtCeB5H2clmZxxEqcJB2/Ga5smV7x7SWQKUzL0C4gwbgdqRPk?= =?us-ascii?Q?WKB3QL7G7kJfuVVqLwDCXu5zg1D8+jsGCn0B0vHTic4NcPI/dvVUhlUzM4AK?= =?us-ascii?Q?CDjNSn76dewiTTiwKeJKS91BOV5V5B5zn2kRmnnVt1ublJ9NM3rjfnakyt1V?= =?us-ascii?Q?0bIhrQ=3D=3D?= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: d845299f-71dd-4f54-9eb2-08d9ea77e12e X-MS-Exchange-CrossTenant-AuthSource: BLAPR10MB4835.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 07 Feb 2022 20:24:45.1447 (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: FLggf0mmkQSYR0N7jkKz5CcGedNTNsO8pfFdXbPR4chMJJCY86mJ2ZKX8aSOl/xAzAW9OBqwdbW8FFA8+xMfVBHpRS+GFlkBK2cbK036g8o= X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN8PR10MB3649 X-Proofpoint-Virus-Version: vendor=nai engine=6300 definitions=10251 signatures=673430 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 bulkscore=0 spamscore=0 adultscore=0 mlxlogscore=999 suspectscore=0 mlxscore=0 phishscore=0 malwarescore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2201110000 definitions=main-2202070119 X-Proofpoint-ORIG-GUID: WeTXRKMkz14IkGWlOguYBnH7IFK2J2eD X-Proofpoint-GUID: WeTXRKMkz14IkGWlOguYBnH7IFK2J2eD 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=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, RCVD_IN_MSPIKE_H5=0.001, RCVD_IN_MSPIKE_WL=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: , Cc: Eduardo Habkost , "Michael S . Tsirkin" , Richard Henderson , Daniel Jordan , David Edmondson , Alex Williamson , Paolo Bonzini , Ani Sinha , Igor Mammedov , Joao Martins , Suravee Suthikulpanit Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: pass (identity @oracle.onmicrosoft.com) X-ZM-MESSAGEID: 1644265722877100005 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Default phys-bits on Qemu is TCG_PHYS_BITS (40) which is enough to address 1Tb (0xff ffff ffff). On AMD platforms, if a ram-above-4g relocation happens and the CPU wasn't configured with a big enough phys-bits, warn the user. There isn't a catastrophic failure exactly, the guest will still boot, but most likely won't be able to use more than ~4G of RAM. Signed-off-by: Joao Martins --- hw/i386/pc.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/hw/i386/pc.c b/hw/i386/pc.c index b060aedd38f3..f8712eb8427e 100644 --- a/hw/i386/pc.c +++ b/hw/i386/pc.c @@ -842,6 +842,7 @@ static void relocate_4g(MachineState *machine, PCMachin= eState *pcms) X86MachineState *x86ms =3D X86_MACHINE(pcms); ram_addr_t device_mem_size =3D 0; uint32_t eax, vendor[3]; + hwaddr maxphysaddr; =20 host_cpuid(0x0, 0, &eax, &vendor[0], &vendor[2], &vendor[1]); if (!IS_AMD_VENDOR(vendor)) { @@ -858,6 +859,12 @@ static void relocate_4g(MachineState *machine, PCMachi= neState *pcms) return; } =20 + maxphysaddr =3D ((hwaddr)1 << X86_CPU(first_cpu)->phys_bits) - 1; + if (maxphysaddr < AMD_ABOVE_1TB_START) + warn_report("Relocated RAM above 4G to start at %lu " + "phys-bits too low (%u)", + AMD_ABOVE_1TB_START, X86_CPU(first_cpu)->phys_bits); + x86ms->above_4g_mem_start =3D AMD_ABOVE_1TB_START; } =20 --=20 2.17.2 From nobody Mon Feb 9 19:11:05 2026 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; arc=pass (i=1 dmarc=pass fromdomain=oracle.com); dmarc=fail(p=none dis=none) header.from=oracle.com ARC-Seal: i=2; a=rsa-sha256; t=1644265719; cv=pass; d=zohomail.com; s=zohoarc; b=K0ky15N7Nv6W0cap6MlGnY9wKad5Q6jdXSKClI/MKRcQbPiNaASIDFPCFO+qhuRZNB91rMeickcQp57MKJN3txFUPQUQCEIzff8JV2NVca13Xi+GbmntaLx8EgB/RA+ERt+Gg4s+syrwMYSe1f/m1aJAtbaLds+YutyJi3TpJPI= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1644265719; 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=EmYL7wB6OhiNtsvM4E0Ct4EMN15ex1hn7CWdNsPvrsM=; b=e0u8XXgEn/LBRV1Jxcz5EeoU/T1EVp8IVjtovZhP4lGfyWIt0CGhs/lSKA7fpwXXvXWU+TQ62alWbVwbLx0fvj8PhZDFpz9JDP0KcZ8uFv4QIzRjqsVbr9dxJNpPodI5WNsOiKHpj1wmzuhkmtrUOREB65HPRHvShEReTdYmhmc= 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+importer=patchew.org@nongnu.org; arc=pass (i=1 dmarc=pass fromdomain=oracle.com); dmarc=fail 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 1644265719351413.7145445602147; Mon, 7 Feb 2022 12:28:39 -0800 (PST) Received: from localhost ([::1]:38546 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1nHAco-0007HK-Gp for importer@patchew.org; Mon, 07 Feb 2022 15:28:38 -0500 Received: from eggs.gnu.org ([209.51.188.92]:60462) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1nHAZD-0004SA-8t for qemu-devel@nongnu.org; Mon, 07 Feb 2022 15:24:55 -0500 Received: from mx0b-00069f02.pphosted.com ([205.220.177.32]:39234) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1nHAZB-0001ug-E7 for qemu-devel@nongnu.org; Mon, 07 Feb 2022 15:24:54 -0500 Received: from pps.filterd (m0246632.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.16.1.2/8.16.1.2) with SMTP id 217IgkBF011806; Mon, 7 Feb 2022 20:24:50 GMT Received: from aserp3020.oracle.com (aserp3020.oracle.com [141.146.126.70]) by mx0b-00069f02.pphosted.com with ESMTP id 3e345sh72t-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 07 Feb 2022 20:24:50 +0000 Received: from pps.filterd (aserp3020.oracle.com [127.0.0.1]) by aserp3020.oracle.com (8.16.1.2/8.16.1.2) with SMTP id 217KLU1Z136781; Mon, 7 Feb 2022 20:24:49 GMT Received: from nam10-dm6-obe.outbound.protection.outlook.com (mail-dm6nam10lp2102.outbound.protection.outlook.com [104.47.58.102]) by aserp3020.oracle.com with ESMTP id 3e1h24vgpr-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 07 Feb 2022 20:24:49 +0000 Received: from BLAPR10MB4835.namprd10.prod.outlook.com (2603:10b6:208:331::11) by BN8PR10MB3649.namprd10.prod.outlook.com (2603:10b6:408:b1::16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4951.12; Mon, 7 Feb 2022 20:24:47 +0000 Received: from BLAPR10MB4835.namprd10.prod.outlook.com ([fe80::4910:964a:4156:242a]) by BLAPR10MB4835.namprd10.prod.outlook.com ([fe80::4910:964a:4156:242a%4]) with mapi id 15.20.4951.019; Mon, 7 Feb 2022 20:24:47 +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=EmYL7wB6OhiNtsvM4E0Ct4EMN15ex1hn7CWdNsPvrsM=; b=SIeugqCAVYatNkB1TD7b8JLfxgtkQpbwaA3s4/QzN/WxNDkyQpEhnVhBGnYDV+7ptXkn lyDmZULqYPXQ/Bj+31tcgjSv++BKXuROgKJxiNG8sSg53/gyFws7TA/eK8rU41JLufI3 gkIwjY4IA/gV7ivjtMJ3jntVyDktF9LqNMtLYcKRlHlq2dIMymtNdGEdmvkyFOZvOnYa 3VOklyZVbvBhA/2LnJBZmGLcZBjkFQXnyxr7Oqov4D2NjyexRvIIjTBMlSsm66d1iYVK FIW6zoTPeQHDvCfmmR5+zTIJV5Sk5n1B0rgGUsAA8pdw8q8MD+x3aR27VGREMZKDLjUa Hg== ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=jCR2i/SiYKsiTj5m/sKdChPk7h31kbulGBQUrO6MIMQkkTb0WA0GeNFd2928gRgukJ34IvLJU3kTtR3d/mxoY700/uxyRn8cLY0y/Lq9rm/5IijJbIK05XcS5CGHM/QzA3oyY4vYg3+BvDi3XC7Scway+mgv9u+XpfmazTycX3QO9wyDHqCLm2KRhSEqG56A9WMdrxjFDEIiJeYcq3SfjcHSsihI6r/aXQntmclYI5Vk5SFaNnlfPnLWt06OGKjrT1RR+yL71B719Dpeqc/GNk48L51TFafVr29W2rNhHj7Cjsc3HhVhKFWdP9QtV6CWvJEfbnucgxEOrBPcUsSZ9g== 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=EmYL7wB6OhiNtsvM4E0Ct4EMN15ex1hn7CWdNsPvrsM=; b=I8mPo6LRg00Oc4c9s+6+95hLQJKhWC+L16IKYd2Vk6dAkagHX/dVwqEGSYg0Ge82RLM7zIXnnBi2KbWRNGunzzpKbg3ThBTlXa87NDdbPMrZuJXliJ51MVJiGYzX/2Mb8CMJI8ZFsxuRw5AqZWkTHOpk47gjWsW+RjJdGnIyaJjNnnwhaXL9Nt+J4uYdOe3jHzNprBnbBWR4yGYD6LaiKw0C8FsWfLGi1tLY4B/tfCnTCOsVmN2PrzwEcuc7Mhzj9+i/PBEb0Gnz1dOAM9TWCOt6lf5VWoWzvuyUps1UrZZhhVRYEioV0PHo+8yrhOgqOfvr0zx5Csh+09WnECjrvA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=none; dmarc=none; dkim=none; 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=EmYL7wB6OhiNtsvM4E0Ct4EMN15ex1hn7CWdNsPvrsM=; b=i0ojgDamt5nkenhr3iuYPsXjHqrdx9LqK2FP+S0kP0PIgtDEKlr9nMv+/qEFvwtMPbfWO+xNBY6MGj5bJHUX2/ivZqKXz4tkPNQWHMZCp8bLOZ9Ie2SnkAVpRevIueduMiXq+W9oQ+j8b6YoCYY/VT7LSHm/zOGt/pB2MATw1c8= From: Joao Martins To: qemu-devel@nongnu.org Subject: [PATCH RFCv2 4/4] i386/pc: Restrict AMD-only enforcing of valid IOVAs to new machine type Date: Mon, 7 Feb 2022 20:24:22 +0000 Message-Id: <20220207202422.31582-5-joao.m.martins@oracle.com> X-Mailer: git-send-email 2.11.0 In-Reply-To: <20220207202422.31582-1-joao.m.martins@oracle.com> References: <20220207202422.31582-1-joao.m.martins@oracle.com> X-ClientProxiedBy: LO4P265CA0032.GBRP265.PROD.OUTLOOK.COM (2603:10a6:600:2ae::18) 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: 7ab8b2c5-0306-4bfa-5291-08d9ea77e27f X-MS-TrafficTypeDiagnostic: BN8PR10MB3649:EE_ X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:8882; X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: z88q5+zAuBTUpyLXYx1MLp6UzQJSYnTWjTfwb9xHDMk0nnjmXKUsCOislEv1egeg7JPtxCA0jwDam+mDpVG44VRKMyc0yl/fmwdbSijn4uAR/nItaiw+u3xIwZiAcKuH4LXTlKL3L3TMcblu92thzaSzyl+scH/oy30zNCjIpt2CatjleE3YCZgpXVIQLBPDd3GJ9Ae9lpnV/7AOaEeTrO8Kwr2m1JE2rL3Vr/C1mmuGjiYHxRc3BfxBM6QDbLcvxm4FGHnMk4OunjJKXxTJWpGKq7ZZZLGl+J1Sn0vYboBvGy2ivfT7pWXLL4JTep+NSeSzCtXs7hQnmc1bsmTWQUS6odkIglJKRMJq9ptQrItvj8k1PsvNN+SoNXPRoJMOOHJvqXKFxMN0DzZB2+Z+AQnz4gUA0AaC4C2jmKwVItpUnMstuX5+VQ8M/P/HzTvyRN16rFrnM3rJFalVVNLzYaI4ZRXw6HM+O4nYJMLEwpRDvdLRAhnfVyrvefW9rZlvnZ/5mKN2GlM4BhvIukA5NmGMcoqFcHMOCryUv4iFo9ZEdXJPPVZjFJfs0sEzajOcTTCdlYxJsSqdfeHdh/Dhku9gt+vugRx6A/56f75xb1qBWJQd4ZH2x9wij/xjcVtNNsDWWnHVouvRlL41DTHFcu9h/K2wTv9laCqJWGkpY+2eZEIrFPA9gFFVX9Tmd3zSV9ZRDAQaSugtJeczxgY8Ew== 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)(107886003)(2906002)(26005)(1076003)(186003)(6916009)(54906003)(2616005)(7416002)(316002)(6486002)(508600001)(36756003)(103116003)(86362001)(52116002)(38100700002)(6666004)(38350700002)(66946007)(4326008)(6512007)(66556008)(83380400001)(5660300002)(8936002)(8676002)(66476007)(6506007); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?qmisTC+3e31m0yyxCLfNzDu9ykcGnx/3EEJofT6Wwlx/3l1eeK4m1mZk+0+O?= =?us-ascii?Q?lypmYhSeGgsiZ00LUKTmOCbnZTNUbDPXUVS23Bty/PS7AatwV9jeTyn11vdl?= =?us-ascii?Q?hI5UgQiadsavoK/NX0NPYx7ZS789IDFbshlD0y6AxN4myMjNEsHIb1wFTkvR?= =?us-ascii?Q?IUf0ck00IBNJ2Ppo9Mvpdcxy1qYryAXxQKkpbpTSro+F6vkZcVtWeGRgndej?= =?us-ascii?Q?6TVOO8XsAxsrnSK5LF86B0Uc0CI/DMXGKtxVGu/rsDVQT7SgcVpyRkMHE00K?= =?us-ascii?Q?1JaBh4/RL+ud4DlGe4bSvoEyyhRQgXMXNfLI1sz2Uz0yS96PDsQa14EuFmdk?= =?us-ascii?Q?yRXwdBy05cdaGl8Tm9w2e48+hN83SnOmumTu60zrhHMjEsSs/CgDVuXDeNRm?= =?us-ascii?Q?uIifRP7PZQeKIp0b9zos8xCoGrAt155ap3DsZF2ktw3RjT2FsvOyYzBvlpsV?= =?us-ascii?Q?nFRUVa1pjtD18ZsgYLAcOY6E5r65jd+Zv5ZrKuRmtwbXKyNBZYWLUQ51tZJV?= =?us-ascii?Q?C6xKYDVSPUIdgk+bOXPc9gFD410xNpTgkDDOCrWGNS5qmUCq8YRGeYL+YEuJ?= =?us-ascii?Q?ackPVpZuJCJc3lxs7OLCUcQ6RjOuPFaTueTtkB1mfdQVaqUB9RCUHWcUPo6i?= =?us-ascii?Q?aywFIqBDa2OoOr6sAGv5s+IzUZtJn5SZlzG+x131XF173tZfb3ujeUQS8RCt?= =?us-ascii?Q?sgFM0Br+d5Ph4/WJSrOGDD4QkrV9tG3gm49uG+PGqox0QDTq+n7/kZJJT9Wm?= =?us-ascii?Q?c6fkd+kwpWAJ8OavRc7a/YOhZ3qfGOw95XlesmTAX/uV/7BOQE/GljXqeZPJ?= =?us-ascii?Q?X3IIhOYbO/VyRvo9UagcyTaNXoUqnbaJgN1KTpBIG3hNweX+UoXvTAC/UCSl?= =?us-ascii?Q?LL+Ezyc/F3Y2C+fkc5bllS04QS91LDk0z3u0aaMVzgrnIxKUw95ngxNqP6Vp?= =?us-ascii?Q?ptUit078oNUSA2gpjuGsOUyF23inP4z8DxkcvZk1fqyb61AVkf+LZw0ElG72?= =?us-ascii?Q?mJs88WEGk4pJWTm8X7Z095CYqTEYCVvuQx41JWueoAfkRL6jh/ozZHfxpk4b?= =?us-ascii?Q?Faz2BgTEL825uHEcFOHz3XaRc/8BBfV0s9G32lOWIIuPzDrWcp6OMvI++r6L?= =?us-ascii?Q?U50efw9HZKB/63+d0oE1pjL3q2wpTAwjr9xt08TimS/6U5MFVjmwhXDfeivD?= =?us-ascii?Q?QBtpGwI0X7JtN7j5b9bda0wMr6k6at7ERTmBQBd5cinFQ7o2mn9pKuYwARft?= =?us-ascii?Q?v1vRh0FaLkYYcT6CGuAJtc3wgBeSR8XFtXe6E0WXhx3Egtq5iIOrOGRQ/eSc?= =?us-ascii?Q?3E9T4gstrIJAM7BN9evKZPRSPlErK3CNKCFFwiztjqto6pCprCqcA0pHxVgH?= =?us-ascii?Q?TxuX1i7J8cWeVaMnAkFWfu0W0J0AsY7mADGjBOlkb/hqkkMqpl5Ex/FIB25A?= =?us-ascii?Q?3Xfa0U66FwJ/m/kqp9WvdkTkiCwPKjMjNyzOAnTC2ROqXR1ljAhERJYpGhEN?= =?us-ascii?Q?gPKfwBxR3Oh+vTqMZY97cvQQbVGfQrzaZytkc8zAH8FxWw4+MIfGwaK72WA2?= =?us-ascii?Q?k9Z0HoqEQmENt4GOx47RROonNJjQh55uWvpCI5sfgvxaozZ1NTnv0z9kJnFp?= =?us-ascii?Q?qmI42JOYhl+0R4/To1tzAWyclytacxDYyOaBiwONxF9aBDjhErRt9eSEamoi?= =?us-ascii?Q?bOsIqA=3D=3D?= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 7ab8b2c5-0306-4bfa-5291-08d9ea77e27f X-MS-Exchange-CrossTenant-AuthSource: BLAPR10MB4835.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 07 Feb 2022 20:24:47.3682 (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: MwAxm5B4l84+w2o2J9ra9gpEhMCQyl8Yspx8lmIN3+0GawsHGHJfT1uR9tamarzSsqHH3UE7sytXOqS+0UVfAJraokNXbQ46CaajYjCZUno= X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN8PR10MB3649 X-Proofpoint-Virus-Version: vendor=nai engine=6300 definitions=10251 signatures=673430 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 suspectscore=0 mlxscore=0 bulkscore=0 phishscore=0 malwarescore=0 mlxlogscore=999 adultscore=0 spamscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2201110000 definitions=main-2202070119 X-Proofpoint-GUID: NlnzxHr6CAEzefFaLVhiiW4pOYjOK1e2 X-Proofpoint-ORIG-GUID: NlnzxHr6CAEzefFaLVhiiW4pOYjOK1e2 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=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_H5=0.001, RCVD_IN_MSPIKE_WL=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: , Cc: Eduardo Habkost , "Michael S . Tsirkin" , Richard Henderson , Daniel Jordan , David Edmondson , Alex Williamson , Paolo Bonzini , Ani Sinha , Igor Mammedov , Joao Martins , Suravee Suthikulpanit Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: pass (identity @oracle.onmicrosoft.com) X-ZM-MESSAGEID: 1644265720871100003 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 | 5 +++++ hw/i386/pc_piix.c | 2 ++ hw/i386/pc_q35.c | 2 ++ include/hw/i386/pc.h | 1 + 4 files changed, 10 insertions(+) diff --git a/hw/i386/pc.c b/hw/i386/pc.c index f8712eb8427e..e62d446b28c7 100644 --- a/hw/i386/pc.c +++ b/hw/i386/pc.c @@ -844,6 +844,10 @@ static void relocate_4g(MachineState *machine, PCMachi= neState *pcms) uint32_t eax, vendor[3]; hwaddr maxphysaddr; =20 + if (!pcmc->enforce_valid_iova) { + return; + } + host_cpuid(0x0, 0, &eax, &vendor[0], &vendor[2], &vendor[1]); if (!IS_AMD_VENDOR(vendor)) { return; @@ -1787,6 +1791,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 d9b344248dac..ccf8b6d9895f 100644 --- a/hw/i386/pc_piix.c +++ b/hw/i386/pc_piix.c @@ -429,9 +429,11 @@ DEFINE_I440FX_MACHINE(v7_0, "pc-i440fx-7.0", NULL, =20 static void pc_i440fx_6_2_machine_options(MachineClass *m) { + PCMachineClass *pcmc =3D PC_MACHINE_CLASS(m); pc_i440fx_7_0_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_6_2, hw_compat_6_2_len); compat_props_add(m->compat_props, pc_compat_6_2, pc_compat_6_2_len); } diff --git a/hw/i386/pc_q35.c b/hw/i386/pc_q35.c index 1780f79bc127..1022abf4953d 100644 --- a/hw/i386/pc_q35.c +++ b/hw/i386/pc_q35.c @@ -373,8 +373,10 @@ DEFINE_Q35_MACHINE(v7_0, "pc-q35-7.0", NULL, =20 static void pc_q35_6_2_machine_options(MachineClass *m) { + PCMachineClass *pcmc =3D PC_MACHINE_CLASS(m); pc_q35_7_0_machine_options(m); m->alias =3D NULL; + pcmc->enforce_valid_iova =3D false; compat_props_add(m->compat_props, hw_compat_6_2, hw_compat_6_2_len); compat_props_add(m->compat_props, pc_compat_6_2, pc_compat_6_2_len); } diff --git a/include/hw/i386/pc.h b/include/hw/i386/pc.h index 9c9f4ac74810..10dba9767861 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