From nobody Fri May 17 19:02:14 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; 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=1650486616; cv=pass; d=zohomail.com; s=zohoarc; b=fGzZDmZAPK9NPlEfIv5fWZw60QJ6dg4a+gAL8YUu6hNf5BfS3w1ff/UvXV0YGpZCO3DACcUXZC7nGDMox63TeRE8bx5GoHQuep9SBtuyQxHo0l3GfogarCUj5wYLl6r4JLw16A2PW6MV7LdHpk4qtwJBqJu2qCNrtqSFvlNDVw4= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1650486616; 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=NmAcsd1L3QgMreyXiqYBK6d+LnBCtsRfS0+iOayHWLQ=; b=lyUo55thWOGWlBsgy38Uycs592F68UzuS909fWLVYNEDQUgmRrKtheT0tv6vdoG1C0w4ROpte9zhQr3ZXpkajeCfH7NIdjVs3slykhZYaxL0UY4usVU/jjAjLU+xBXVVH7h2a7Y8R5Y1/JSCvdGL+2LPpqRt+yiyaXLyjoaiTC0= 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 1650486616007392.51238674439753; Wed, 20 Apr 2022 13:30:16 -0700 (PDT) Received: from localhost ([::1]:53172 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1nhGxq-0007ov-Tp for importer@patchew.org; Wed, 20 Apr 2022 16:30:14 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:50694) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1nhGgQ-0008EX-4m for qemu-devel@nongnu.org; Wed, 20 Apr 2022 16:12:14 -0400 Received: from mx0a-00069f02.pphosted.com ([205.220.165.32]:31098) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1nhGgN-00046p-AQ for qemu-devel@nongnu.org; Wed, 20 Apr 2022 16:12:13 -0400 Received: from pps.filterd (m0246629.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.16.1.2/8.16.1.2) with SMTP id 23KHsQpr024754; Wed, 20 Apr 2022 20:11:58 GMT Received: from phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta02.appoci.oracle.com [147.154.114.232]) by mx0b-00069f02.pphosted.com with ESMTP id 3ffnp9hxyx-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 20 Apr 2022 20:11:58 +0000 Received: from pps.filterd (phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com [127.0.0.1]) by phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (8.16.1.2/8.16.1.2) with SMTP id 23KKAkkC028909; Wed, 20 Apr 2022 20:11:57 GMT Received: from nam04-dm6-obe.outbound.protection.outlook.com (mail-dm6nam08lp2043.outbound.protection.outlook.com [104.47.73.43]) by phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com with ESMTP id 3ffm8872xr-2 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 20 Apr 2022 20:11:57 +0000 Received: from BLAPR10MB4835.namprd10.prod.outlook.com (2603:10b6:208:331::11) by PH0PR10MB5644.namprd10.prod.outlook.com (2603:10b6:510:fb::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5186.14; Wed, 20 Apr 2022 20:11:53 +0000 Received: from BLAPR10MB4835.namprd10.prod.outlook.com ([fe80::d17f:a2a4:ca0c:cb49]) by BLAPR10MB4835.namprd10.prod.outlook.com ([fe80::d17f:a2a4:ca0c:cb49%4]) with mapi id 15.20.5186.013; Wed, 20 Apr 2022 20:11:53 +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=NmAcsd1L3QgMreyXiqYBK6d+LnBCtsRfS0+iOayHWLQ=; b=OQy0oJ+Yee2xtGQgbXrijv81KggFX1UpZ/dAFgPTQKxjqCoOn7yVzTdkvbzUM8QJFUuA T67O4kWuLlij0BnrnHttVkVkInZcl+ur31wPMhzTZ10D3lePPxDVafxv5PFjZaPHnJDk raUAsIVAAXIKkuJnoBlq+lSmxnR1d3if1xxdn8wcMSg9pcMXYt4GQ3GFfPDTbqtxEAE3 DxGD3aTG9GlS5S+s+nOjJLmKIVmIoGmqPUoEwEx/W4YrSN6sGmuSP5W4DrQjYhD+i6Fh kBxwBbglVkrJQjICuZig1lppbieZkj53tzoIqSa/fF6ii1RB4/K7EMhE9+9KYHNneOtt 5Q== ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Sf2Zi94ZtnvrrC5KZbsS8cANJr81Y62TWQZ7WL71Glh42EYKILUE35Uxn7SLLjCljN1wegoJcvsik6LKBgo17V5pRHR8qamDGkKAJT6+z5sKAqt8nhgGLj8RcwT34ZQNZEaaa7VJXl/xXgZAzS9XPf797vacWZaca/tR5MxxZFMrjCohitsTQRCho+FZppqb9R2Quq87FkPxpkOHXEDrxuvlPDDEs7m8cJj6RcNfx9Zbs/HqTjNuzyAZcl6plsLLBdHC5pHA64Jip18YsmxUtNCJJ50oqpLrR/d1QQVpwqMIpbm8GOH9gyM59vkIw3BeyaCi+5BrBJItTBtsEpCLxg== 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=NmAcsd1L3QgMreyXiqYBK6d+LnBCtsRfS0+iOayHWLQ=; b=K44jr4Pu/iNIUZhmVD3lUkDcFcqDQd4d3qPViWeQ3JGgOlSrIKaDQhn6nC6RGWPHKi1MirBiCl9olMWkPnQ7vT9A2Pvs2ZieV7BgisfQ0R8e9zrgOZ4ofjrUeUfudBDAjCN6qNt7jR0m5PCGq92S72jTFuAlLBSg7Q/Hyf+4VF8RNr9xZA+jp9C3Lp8cewqF/flOq7WyhppBnjyM0MEBNI7X+MOIVZf9DSzUU4Tn0Jlzv+TW3O3I042e9wclqsjZgoezroN3ZrKK6n/pFFPA0qCFYwjUKLzBaYcpJCCi6pHn7rbpRKM6DsWeFne71v36kKg/A+5Qf4Ua1DYy4FtINg== 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=NmAcsd1L3QgMreyXiqYBK6d+LnBCtsRfS0+iOayHWLQ=; b=U/WCDy8sWS1e0YIDdAlS/kb/pQAk9Z1YGJZBE+fNsuCN8HHdAoPpK2W9n1URXO+LMnScy95ECyLHO7sP023vh2AFwWxOYCaG4oLeKkI4mISNBdBpV0TfmkGanBLMOteQyGy/t7AUcvw/9x6yXtkYX+A92m+JK+RNjHz/RpIPVO4= From: Joao Martins To: qemu-devel@nongnu.org Subject: [PATCH v4 1/5] hw/i386: add 4g boundary start to X86MachineState Date: Wed, 20 Apr 2022 21:11:34 +0100 Message-Id: <20220420201138.23854-2-joao.m.martins@oracle.com> X-Mailer: git-send-email 2.11.0 In-Reply-To: <20220420201138.23854-1-joao.m.martins@oracle.com> References: <20220420201138.23854-1-joao.m.martins@oracle.com> X-ClientProxiedBy: LO4P265CA0016.GBRP265.PROD.OUTLOOK.COM (2603:10a6:600:2ad::10) 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: 3fb7f643-2f34-434d-21f0-08da230a02f7 X-MS-TrafficTypeDiagnostic: PH0PR10MB5644: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: t7Ddjv+tHTwmQsd5iX0eVo2wm8FJ7IF6Wrv/sJpb363Ik+BNA+T7fsSePU/1BWJKPKFtXSk60oZa/lqErEqP3LrMWkCd7K7+YqmxusIADVWeYX6JaVCmVSDbD1JINOysfCKt8Hd2C9y3popKCvJlwgh2IDKWGoFpK1z2O/QPK2yxHOwGpphK1Lthu8Kl/Lsi1epEGuFreoFIrMXOvkv8+tG/m5M94mK398IuVtetFmoG0cnSE3rwYuD8SI79eNeW8GGU9DP7JEjHGs9thlCurSzFd6/IB3XBBHSsXHboP76xflxkmgv5R9nET4kmO38fLWZE++xrt61AKZHiT7jTZLWC0AxurnPcOM3Px52kMWRJMdHY2ygH9FlRthQRlOWU8deScVGThRTn70z1Se0ybtFMFrCAscLtVedbOZ65+0S8EeNA232HSDwlVP//kBkxY6V6ZwNoxb/8pGux41/eQoJ/y8vPoiRmeU5c3bgJOeDEYsPlMeVepheNXMTJa3lFADgLAaTRoiPj7bcxYL97I8+yTmigZxj1PyqS5zi0N/TkmgVnOVmBjH2Sbuzjp9YxJY93pqC4ZW/a3+C/p7fKUNqtNnjEu+yv1hVzplp2HX3gOSP9rTacUrJdSV/z0cZu0RJm3XrrUdbXOo/T5CSTGP7ezkQ30tLgmH62m+Msheo7LhwtoeuBSGJMdIRyLA+TaEkK5V8a1Y8nSW+EPaBR9A== 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)(107886003)(26005)(6512007)(2616005)(6506007)(83380400001)(52116002)(36756003)(6666004)(8936002)(38100700002)(2906002)(6916009)(54906003)(38350700002)(6486002)(5660300002)(508600001)(7416002)(66476007)(66556008)(66946007)(8676002)(4326008)(316002)(86362001)(103116003); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?pn9n1eZFGvzsZ+ZSdJD4sXNjAGDGP7WKVwUlfqHjDgiPt5UUrgQXjmc3PrHP?= =?us-ascii?Q?vAaNWHbtH6X8V4Jcqnm/W506U4ShL1Tv7EWFD3fWoaLj3mx9LnWZ6SZ5tbKj?= =?us-ascii?Q?6DkaoSYoan7ZSkpnrSS3uEgLPMLIGJKX3Jcm+QWB9zzsb741r6nKi+i002dk?= =?us-ascii?Q?pOwU7tzrGVmzCpSfH6APjs/oxzOefV0pvh4Y/aj4USEqPnL79580nfFL4IFk?= =?us-ascii?Q?beBY1KT7UwQQHELSPn8z3MrZ8BnWEOPXixWMVqRHME7qHFKy/bfWj2vtz2gU?= =?us-ascii?Q?59Ld38QQiE9x57vSdweDb7xzBI8ovoVoeShkN9NxmfMZhajUaz6VSkIsu5s9?= =?us-ascii?Q?h1ckn1QqVbKb/89su05NpAVl5f/Tj/CaHKmao9FvKKJV6m2Hee4r9e+PYV5m?= =?us-ascii?Q?WWn9sOoNsWIcdK9piBO0EfialiwCcGEPLxylt2lShTUujWsWm7otMfFD7Aad?= =?us-ascii?Q?gZfoJ6VhsZC3SYxdIeQB1xVIdRk4wbgsQPAoX32/A89XP1auya/ocPY9Ws/0?= =?us-ascii?Q?kXzJkTLR7G9+i/K5mCvw+Vq4kV4f+HhxZmVTxyqGyHJefy653UN5Ipk/UEqR?= =?us-ascii?Q?SPVNZThLPWW7KfUnLhVG5lAkWjTxY7DQwgb/VypJPCJgzar/p2EoE7lSJMa+?= =?us-ascii?Q?uCO3/5qlm7vdqbfAU38lC2tzn3+YP8cmazqvak/1ziwXXUn0e+zRBpO8MvsG?= =?us-ascii?Q?eJBWilibS9lyvyTAM1VZ8d1+fQwAkM0Yy1fJa1nSi9cspMRJsDfxV1YkxUff?= =?us-ascii?Q?IAQ2lEwkXG2XpQuqSZi8Sp66VeDt/hajWAL/PZbyt3u/bTSad2zcfbJtgQRj?= =?us-ascii?Q?Zof4G4qFFH7jLvg6zrYcbf27yUo9IDToUz/cCggcViAAADSzmjEUoZSFxMaO?= =?us-ascii?Q?C0NvF1GAwNCm/R4x/Xm8HWt10cTipGjHlknZnUveBNKwcYrsJPC9krm0muGB?= =?us-ascii?Q?m1RgnH8sV60lM/JxInze3us78GZmQOd0VwxZNtmQQEsVm0CV6izi0FLaMYTI?= =?us-ascii?Q?56+oKubb9IFqOjKwjuBcnWIpZ/IAKhZ2JOvVpZKL/urr/BdSmW56FyKc/OXF?= =?us-ascii?Q?51XQpugKBFK5pqPZwmOc0F2ZIuLYXFnU8C0lqauiwOb+tJ2eKnHj4vowQxY7?= =?us-ascii?Q?xuBIwlhwU7As5mW5iHePG+0OEWKRfHDp9QCDYkUex2NEW/F+jTYr56gegkZp?= =?us-ascii?Q?Dgw84Ixyu4fbbS6i6Qf7bNl0EcUTtdgItGmUPGQhgPQ5nzx2m5bLWKaSHrSj?= =?us-ascii?Q?7SLIerNhzDEfE6/i+mzPMxy6eV2NuYiZ3IG+0ldbVIVs3u4q2zQczd9ZPH5x?= =?us-ascii?Q?V6xhvJ1tkNfvTCe07DcfQxQKSX0jvrZmB6UGHyEmkxJAG0OKMuyWriI8w6hB?= =?us-ascii?Q?MHiKNz3nj1Nqj3ak8nGnRHYju+W3/oJgVRXJNsB0CoMqayQiSwui0aYM0WEr?= =?us-ascii?Q?p6mj2808u1gO4VLal6XUhfaY60799g4NRGweK4r3mn0jp6XuP4L8xVxCaIDH?= =?us-ascii?Q?PE6znzFSMHtMPm+Ar7hNGe0A9yk7gbAr7wzPQb5LT5Knc/Lids2nZ/WR7IWr?= =?us-ascii?Q?IESARBYJy5qZeSIe4D0IVVK+b+bZYsW/Yoan9afuYNVPEgJH5Q57XWsu8ymb?= =?us-ascii?Q?g7+Qhq8r3Yi6NLwjk6Dp5SrFTQvgrkaIHbej5fPhZfCos5EV8DK2R/H7YoDX?= =?us-ascii?Q?EwUAPaymbHVZ/mlmORRL1l/RQBn76ctTlYUzEvO8DFkU6FnzUy9Ah5ndnxcI?= =?us-ascii?Q?V65niAZaEoSfcZw37ckDV/zhUT/rMvg=3D?= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 3fb7f643-2f34-434d-21f0-08da230a02f7 X-MS-Exchange-CrossTenant-AuthSource: BLAPR10MB4835.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 Apr 2022 20:11:53.3991 (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: dCd663M4EAkCUEbmlplxg05EuscMStwmddlPDwkd4UkDFH6KmjFnLOl6vNRq+6DzcPDO5v7AyVCdIAcedMTjZLvTWWVOksXvph0fq4EbyGA= X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH0PR10MB5644 X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:6.0.486, 18.0.858 definitions=2022-04-20_05:2022-04-20, 2022-04-20 signatures=0 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 phishscore=0 bulkscore=0 suspectscore=0 malwarescore=0 mlxlogscore=999 adultscore=0 mlxscore=0 spamscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2202240000 definitions=main-2204200119 X-Proofpoint-ORIG-GUID: mE3PJIN5_nIEYzwy-uoTDW_osH7duCeB X-Proofpoint-GUID: mE3PJIN5_nIEYzwy-uoTDW_osH7duCeB 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 , Suravee Suthikulpanit , "Michael S . Tsirkin" , Richard Henderson , Daniel Jordan , David Edmondson , Alex Williamson , Igor Mammedov , Ani Sinha , Paolo Bonzini , Joao Martins Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: pass (identity @oracle.onmicrosoft.com) X-ZM-MESSAGEID: 1650486616993100001 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 dcf6ece3d043..d8d4c4a7ffc7 100644 --- a/hw/i386/acpi-build.c +++ b/hw/i386/acpi-build.c @@ -2071,7 +2071,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 23bba9d82c12..177d98164bdf 100644 --- a/hw/i386/pc.c +++ b/hw/i386/pc.c @@ -838,9 +838,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) { @@ -881,7 +882,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 @@ -973,7 +974,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 bb6727279097..2790250a0457 100644 --- a/hw/i386/x86.c +++ b/hw/i386/x86.c @@ -1305,6 +1305,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 916cc325eeb1..86de493c39f0 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 */ + 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 Fri May 17 19:02:14 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; 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=1650486900; cv=pass; d=zohomail.com; s=zohoarc; b=GOcN5fIcJJPpF2smznQWA9xK9vSzIsc4Otiv90xFGd3vOxBCbnq6TMr52mSKI03Il+8Rc6LXIcXz3+jeEegff34TREFsew7gOYAVWD9CCG9mad7DO35jrzXQzwGOldh0zkvRUJNyppyte2uG7aH/bZuGpDIZs58K0Wnc2xseyYQ= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1650486900; 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=bkCBpaEdMfwp5++DTO+dPJHgqI7Gi2vI9EplTww8tJo=; b=hTn+JkGY7ZgLYu+YTQzwogsjmUi1wr0zwMnRJV6natlpHAxp/jL6kFhGii2Gjs9qht/peOoFEL5I3SreKoUCMzXlPMcrpPjvYXaoC9aktw7VHh8gUJWrXGM94zgdTm1HqG64uEhiHvTmBbiuCgEU7zk3eLYZuGNEy0ypI84/yRA= 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 1650486900544338.3692738132412; Wed, 20 Apr 2022 13:35:00 -0700 (PDT) Received: from localhost ([::1]:32848 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1nhH2Q-0005Gl-Mz for importer@patchew.org; Wed, 20 Apr 2022 16:34:58 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:50696) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1nhGgP-0008Ef-Oc for qemu-devel@nongnu.org; Wed, 20 Apr 2022 16:12:13 -0400 Received: from mx0a-00069f02.pphosted.com ([205.220.165.32]:31100) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1nhGgM-00046q-MA for qemu-devel@nongnu.org; Wed, 20 Apr 2022 16:12:13 -0400 Received: from pps.filterd (m0246629.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.16.1.2/8.16.1.2) with SMTP id 23KHtmlc024600; Wed, 20 Apr 2022 20:12:00 GMT Received: from phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta02.appoci.oracle.com [147.154.114.232]) by mx0b-00069f02.pphosted.com with ESMTP id 3ffnp9hxyy-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 20 Apr 2022 20:11:59 +0000 Received: from pps.filterd (phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com [127.0.0.1]) by phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (8.16.1.2/8.16.1.2) with SMTP id 23KKAkkD028909; Wed, 20 Apr 2022 20:11:58 GMT Received: from nam04-dm6-obe.outbound.protection.outlook.com (mail-dm6nam08lp2043.outbound.protection.outlook.com [104.47.73.43]) by phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com with ESMTP id 3ffm8872xr-3 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 20 Apr 2022 20:11:58 +0000 Received: from BLAPR10MB4835.namprd10.prod.outlook.com (2603:10b6:208:331::11) by PH0PR10MB5644.namprd10.prod.outlook.com (2603:10b6:510:fb::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5186.14; Wed, 20 Apr 2022 20:11:55 +0000 Received: from BLAPR10MB4835.namprd10.prod.outlook.com ([fe80::d17f:a2a4:ca0c:cb49]) by BLAPR10MB4835.namprd10.prod.outlook.com ([fe80::d17f:a2a4:ca0c:cb49%4]) with mapi id 15.20.5186.013; Wed, 20 Apr 2022 20:11: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=bkCBpaEdMfwp5++DTO+dPJHgqI7Gi2vI9EplTww8tJo=; b=QxifX5jvrQRB6wxOGzvFiiryZlEWq+DRxYMTNJwLhI6+g/yMLkSO8QCNRLdLh6nSEjTX R7EY+jQkBhz/pBj0GZZhKdijgqGYGzzMBxyzY2cNOMMzUlVkwxx3keYzHGlsexlt9Cqt d2M/FSMjjo9GPG54zS+k3TkuxPODjg58lq7Yl2QG5kL/EdLjvxdh+4J+xZZoUglKji9l w888X5sIfNFi23xDCDMmPdg31/1KM50fjwzx/xMssoT1+SwpPmqPoWbqDr4tfJ0mLyQB bt/txVj5jzHqfjWeq1k8E//wsIJ67nM8UtHoyktJ2iehuB2uifBkArszy3UxOXd9ayzm kw== ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=JxwhgoFAZIVXjN612e+bfq1gpXdwIFWc5B3mn8JUkeDQTI3Y0D/Wt7iMSUNnVfmwA1CEIzW0LB2h/vy2hHFclB21XKNtYq+Rjx6e9zAyCcjHJFyaveLdJW0OLd6863JgEYvsWIGhLfxnZXG4ZMuCU+xtKfSjL7gaKiuKTt8L67meytcHPIuXKmgY9s9yfr4lUuW1bYfpumoACQ6XcgUaQ/A6F4av9tVOozr1+HpvAwA6TwcW3mRBxlL3qEXapfXH2z5ZcZhnjpGUVCVfrT7u4TEUBWuJijsp6DVSa02+cAA9f0VYC1VWFgVncllvgCaj+KliJ8rW+Z2UzcUk1Jx5JA== 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=bkCBpaEdMfwp5++DTO+dPJHgqI7Gi2vI9EplTww8tJo=; b=fOQfIBZWE1oe9WHQvn5hwghGXDGAkicsNMzQV5WEELAKrlKcBKzriTXT0uT2dag/lsvZs8Fct045kuhse5eOcs72CwBZTL6dr3X/lZ4NMRAc3aKQEp+ZGLOHdargLF/b4tNnQ8iY3IMejb2CZTWLz4LmbnUsKdSOag/DL2oZiZWzhBVIR0PKqfSihWE7/S3aCAH8F7pAlu+AmBwF1CG3deY2+gzIk7Dy1F2k3HCsaTohr46Xiq/auOlUZEDj/OhR3xEWXGcW1dhO8nztPULuSNHE0XVZAwIoVBxnKj+Q/SsDAfiq/BXxyR+dJfFu4P9vFkMcuiqtaWXScA5CZQVfgA== 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=bkCBpaEdMfwp5++DTO+dPJHgqI7Gi2vI9EplTww8tJo=; b=Y5s15bnlfi0YiEPE9Gx/AFmJ6insH9KKmt/D2TbHGs8paKMhDHVwPhCJF0dvKDKqhRHqlBhp2RkISV/emWeFeAsNzT9AMifGNzcgtbqBiPk4CSUaOnndwciaSS519sBPotFCjPerMyxHLRJNntzNiNCyQ3D5PsURoESJcrNZDdw= From: Joao Martins To: qemu-devel@nongnu.org Subject: [PATCH v4 2/5] i386/pc: create pci-host qdev prior to pc_memory_init() Date: Wed, 20 Apr 2022 21:11:35 +0100 Message-Id: <20220420201138.23854-3-joao.m.martins@oracle.com> X-Mailer: git-send-email 2.11.0 In-Reply-To: <20220420201138.23854-1-joao.m.martins@oracle.com> References: <20220420201138.23854-1-joao.m.martins@oracle.com> X-ClientProxiedBy: LO4P265CA0016.GBRP265.PROD.OUTLOOK.COM (2603:10a6:600:2ad::10) 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: aec42b05-fa05-46aa-711c-08da230a0447 X-MS-TrafficTypeDiagnostic: PH0PR10MB5644: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: Z0tcA7BW8ma7bpBGtFZ38aFvkuvzv+ljsz+PvafUzyKZoBZUvEd1z2zi028wqMXm9fVWqTf/cMqSOs2pm/tb5wmg9K6M1wXXJM/jojeGNOYj1gqqIQV+Oj16KumXf9SeUffOTYhLkLOMNlj7KXSu7I3ChiWl4nG4talMKXpOpNnD5Pqi2FmCzuOJcYUTZqLmhZ9QYMayK2mNZbUn3a5+6a4twQMkeCJas0HSsaRqLd+E+1ElaKlPQgCBBk9PngGJIto7rrMLrYoskMKe5/ty4tnmxhhdGZNSqEizHo2mFmHzJZKkLWNWv7azw2ZvqaJm+YlvegY1hUhIEox5oWmfoMSSgX7gyhOcVt13lDMqVXr7cPn7dd0Giz6rmBzVc9AWEX+1AAvXUgJ1Rot/lyDu9RXsMLnDF4RiUjolOTBkEOZJznD88/Q+MciEuQWRFwygKEa57r+syt0apZU8yvoHT6ZJNhSJxSuEAt75BGSRE0ZWpoyeH7GfNvgJ0s/yw1kgfgL1O1qt0zrwaFIA4DL4NUH0ebpO0vF6JJVnuejFQHNyPqgH7spzax4swKYJpqDRdLEVkbU9xlGT1+XXAzz74Ai0K0WJEMcPgV4Na9MZ0DSZIV28iRWCLrMRUzr4xglDRwtKPA9GccfyPaeUDvyRaWmijTV93sf/+FseCqDWj9Rrb1xlvbk/zaB85bTily8VlZkw3NCoKxKAgEpM16WMEw== 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)(107886003)(26005)(6512007)(2616005)(6506007)(83380400001)(52116002)(36756003)(6666004)(8936002)(38100700002)(2906002)(6916009)(54906003)(38350700002)(6486002)(5660300002)(508600001)(7416002)(66476007)(66556008)(66946007)(8676002)(4326008)(316002)(86362001)(103116003); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?rYN7+NhlHY+FLpio7CUScFgRnzk+V+ObDVzhaoxgKGaYY/AQ9nf2nuqjFNsN?= =?us-ascii?Q?B1DMpUMnGubDoVsr863ktiW9y91TxQvPXq+SK2HGYE81Wj8ID8I+osvOyoio?= =?us-ascii?Q?AgzlYgeaLYlEopT1hqbs57peQ9I4JeJAG7ed4pRtgn4E2Z9BkU6tSKCnjojg?= =?us-ascii?Q?RYCkD/Bs1BC9OV+VOofUHoTNv44rMeF9WrxSpYUFoublXO+KJXrp2wWTsfTc?= =?us-ascii?Q?EAB2x1yCoTikxvOP1e4yInVB1VmwgFM11Ata8HBXIHL/XZjjxJN7gqAPPqUl?= =?us-ascii?Q?N3DGMuntYvB5lAaG1yA81MhpsOD9UsTMDvRnIzSM965YYOBqC0YEhxjl63kY?= =?us-ascii?Q?hELsfDjOfYNWroK3lZyKWwoP6HEl+xJVL40kEjsoNWyCauVZo2WnnWsPwxmW?= =?us-ascii?Q?CfG7htjrFYiKfPUsYWfiLoKS9PVFy/Mjp//w2A5CM8nK2GrHEG+4G2A8D9dS?= =?us-ascii?Q?JHqu9XEVUFX+Qw7uPFj6kMBFKte/LkhNogK9/5CWklDEXWzYPH9GfZ0XMJ4n?= =?us-ascii?Q?u9N3v2KDdu2099CYrf0TwBFluie0mY1v2O9+azOW7zaozeuAUwsOi/uVw87d?= =?us-ascii?Q?TOB4+LrLoxZb5ZyYuQgtAjCB3GdoR4CZpjoPoCtxGxWeA3/L0ggh78CiVlUc?= =?us-ascii?Q?ecIk2Mc4W29x5p/C+0L0V9ZqiM6hNoKNk9Bh2FKlnrmJ5zsNX4z7hKiPlL89?= =?us-ascii?Q?X8Qrlme9HlfkbagYXja6EofNiBBTtKvmWJf+7PFLWc6OHvTvw4W5ZQ9ecKzB?= =?us-ascii?Q?JQExWj6c7fFSHteDb6VZ51oIPMqBD7UROdEZO+QJgiKJ+0mDX0ggvZzEetHj?= =?us-ascii?Q?ki+h/No6CQEW5Xn+U4kvLGI75dLYHjClHeaJX9zZaZT4Xh9yfT19czblQ8Xr?= =?us-ascii?Q?BBpCyO9CekWRaGtGn8kMy9QZJofDvk6nCSooaiiAGX3G16E9Lzpqt8oG6oM0?= =?us-ascii?Q?aiyZwQ8aYUjS/2l7j138BhnsU8VjOSRNvyiQRcvwRD7r9XHDQJSXz7wG3Xkf?= =?us-ascii?Q?ZDJ7S05PTg1MdyuM9q84LOruZ3Fe962np841sjyMeO/70R3lkZ61X+EwdEmG?= =?us-ascii?Q?qeTNegdsBGgYll/2ipdjmEepCtIL5Gw8X+YVADojsRlbpZQg49WJlfj90wif?= =?us-ascii?Q?YytTNrz/+xxcTrwcR/kxVnzviVB91g+2czmJmWj4c/Vda5E/e+v/KymhgmSh?= =?us-ascii?Q?2fS9ARWUH46J1PuWu2FxwcQI2MwlaEj5aOEJQ53m/hAtW4geWwko69Q5wUt7?= =?us-ascii?Q?RbOE00lgYzry0BRHRkGjo7zXiaZzIQR8StW2KK+rBPG/37oCAzUdFEdl3Eh2?= =?us-ascii?Q?Y/KqGUD7nOBfe0j727EAdkAXS0XkEEQHruOfvYhOTH8zgbD5w6Se+JcgKpPd?= =?us-ascii?Q?nptuvkjqXZaQ8mqv2t8LTYAENqRW30UnSUl4AXZ10Mg8Qid9RcTysEjENpRg?= =?us-ascii?Q?HWUqQiCNhTXNUB+Y31F6BGYHtSHXcVHo0l129y/CLxSHbUcMBPPm6/hCcIC+?= =?us-ascii?Q?Yb3ZGF3eTF5i02BY/LjDcLedqdQQ1b7mWWo6QcdL7iIMsQlR6lLEvvY3pKf9?= =?us-ascii?Q?WHreE8uG1hU596wbzLl3NXOrbt1URSjpUrzHO/wNXlLUmpOaYaoxEvKZryB1?= =?us-ascii?Q?46WvNrvQIDwlo2lu1xKFZtInIFopzOaIHfR57y66+k8d23UghZYSbdX3vRId?= =?us-ascii?Q?RgHVjl3WTC2yeMiSEECqrTDA2kz8I4k/C1wIows0dAaCps+CU972yAv4FbEA?= =?us-ascii?Q?E6W0ly2w8yjjCgkXKDwMxc6j4fHjpiA=3D?= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: aec42b05-fa05-46aa-711c-08da230a0447 X-MS-Exchange-CrossTenant-AuthSource: BLAPR10MB4835.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 Apr 2022 20:11:55.6188 (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: nS05q8gLALbownNruitbRfE96J9TwNmGzS4WOz9NpvQxHAhLu7M0CkxcoMbxDhGRyEWm6/NQTnyjICsHq1LxWIaPtK4ClOfpJBUNs8QGRgw= X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH0PR10MB5644 X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:6.0.486, 18.0.858 definitions=2022-04-20_05:2022-04-20, 2022-04-20 signatures=0 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 phishscore=0 bulkscore=0 suspectscore=0 malwarescore=0 mlxlogscore=999 adultscore=0 mlxscore=0 spamscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2202240000 definitions=main-2204200119 X-Proofpoint-ORIG-GUID: AvGVCsm9Re6wnBMrjAS_0IBNy_WvLqLQ X-Proofpoint-GUID: AvGVCsm9Re6wnBMrjAS_0IBNy_WvLqLQ 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 , Suravee Suthikulpanit , "Michael S . Tsirkin" , Richard Henderson , Daniel Jordan , David Edmondson , Alex Williamson , Igor Mammedov , Ani Sinha , Paolo Bonzini , Joao Martins Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: pass (identity @oracle.onmicrosoft.com) X-ZM-MESSAGEID: 1650486902659100001 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 --- 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 4c185c72d014..8f985ff939cc 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 302288342a91..62b85ad6bede 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 Fri May 17 19:02:14 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; 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=1650485647; cv=pass; d=zohomail.com; s=zohoarc; b=RzQ9f1de0VgM87argtZ3NDsxKaWy5dDYioXDdUKMG5mFVNuvXbmsat9ZdEjtFNMxqKQJLaFIFpx77gpfYfKBtM4clBggA+t974jcK5hcDbleudkD4OsZvDM5dsBZmYS0VlMcTC3gDzISEcrVHSPnKzfJRuVEkMveG2u7sqPdipo= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1650485647; 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=ZFfdqyQjddt+HuYNb7Sy6JB8MQ0PtzLb81xq+TrgiSQ=; b=lk573PHG6OGjaOsW86uywXlXwEgSZzeZj8TPJ6Q6ubirk/U82/wkaCzxnLIj44N6AQ8hs/zrLocxl0++U2P44/QZtZP9WOY45G5/7Hqp24yvybs7YCTr+GtP7B6tSxd+wbzIMjxKUOU+7lquiUOaeTs71xS2tNnl6WX7RsPtBCU= 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 1650485647016107.40483559187237; Wed, 20 Apr 2022 13:14:07 -0700 (PDT) Received: from localhost ([::1]:40004 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1nhGiD-0002Uf-Av for importer@patchew.org; Wed, 20 Apr 2022 16:14:05 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:50722) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1nhGgR-0008J2-7V for qemu-devel@nongnu.org; Wed, 20 Apr 2022 16:12:15 -0400 Received: from mx0a-00069f02.pphosted.com ([205.220.165.32]:31204) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1nhGgM-00046r-TU for qemu-devel@nongnu.org; Wed, 20 Apr 2022 16:12:14 -0400 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 23KIMeGc019753; Wed, 20 Apr 2022 20:12:01 GMT Received: from phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta02.appoci.oracle.com [147.154.114.232]) by mx0b-00069f02.pphosted.com with ESMTP id 3ffmd1aa3x-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 20 Apr 2022 20:12:01 +0000 Received: from pps.filterd (phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com [127.0.0.1]) by phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (8.16.1.2/8.16.1.2) with SMTP id 23KKAgWH028562; Wed, 20 Apr 2022 20:12:00 GMT Received: from nam04-dm6-obe.outbound.protection.outlook.com (mail-dm6nam08lp2049.outbound.protection.outlook.com [104.47.73.49]) by phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com with ESMTP id 3ffm88733r-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 20 Apr 2022 20:12:00 +0000 Received: from BLAPR10MB4835.namprd10.prod.outlook.com (2603:10b6:208:331::11) by PH0PR10MB5644.namprd10.prod.outlook.com (2603:10b6:510:fb::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5186.14; Wed, 20 Apr 2022 20:11:58 +0000 Received: from BLAPR10MB4835.namprd10.prod.outlook.com ([fe80::d17f:a2a4:ca0c:cb49]) by BLAPR10MB4835.namprd10.prod.outlook.com ([fe80::d17f:a2a4:ca0c:cb49%4]) with mapi id 15.20.5186.013; Wed, 20 Apr 2022 20:11: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=ZFfdqyQjddt+HuYNb7Sy6JB8MQ0PtzLb81xq+TrgiSQ=; b=PbB3hAGfvZgP0xqa1HDTUM1BKlDg8i49aEeOd9212xSOw6COxUuG3CRDZ9VPCtXXQxBJ 8OEwt0wP9WAIKnWFSsG8MfDX4XYBLej+wvRMjbh4RZmgWxUrO74A1w5/fa0mbEEH8m+g AwayP9yR6wlwDmC41xzJ9xC5Wl6cy+CG8IANFDcsUiGhhOHZVsNrD3CYx/Q+mztMNIZX KnjS+y5GAW3ONJCkK20aKV1N6XSheiV3Ny4maDr4wk9cnYLli5tjd3LawTlu7a+YBMjJ dYaSRmjiRgQQ2p+2jnyOd3y4UqVfxYZj/H/bKdxJeE+uqH/0IcEsXeHd9KUurbYjkXsZ 8g== ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=bUWj09pvnpbH7IaRbRBnLD3loFJLAxFZCVgwrBCjlSvkFa3ebBDYFuL+wTP+IPsttN5eVEVr8nEeu4hbobhQXXa9aBT7KpW7H/Yfb0qtdVbfNkc1OF4qh4OSO2ipmbutivJ0MslehMvLU5QEdHzyO0OOjPdU2wNooSbE7yIi+GPVqlaJpjIsl556CpNhppx+d1vTTZ5f0l5YxCzkzQg2v4+tAzpSBNhHpM9wPK5dYICO8de1Pw7sVzy5HmwzwKG6NLick/+XGAbwYfELBgGtzwkTmQ58Nx6YssHyfZ7eKXNtjalEOWqaWm++4IDHWFQXcVh+ciwvkSbzPIec8xHk+g== 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=ZFfdqyQjddt+HuYNb7Sy6JB8MQ0PtzLb81xq+TrgiSQ=; b=VFwqmLi/AoVa8LgNuOwMPl+mb6i4WIoF/foX9ABrtcUbWo3dkx1kelaaXtzT4bh4t3jLUcI3caxoLaciTSbefgS9mawCMdnFIznyDJCSULDlxCxju5aGhJrsN8XE//RO6hDxUC44c209NbepmwvY3Y4ZtWgpKzvoZK52BI2NsLnqJYV4P3T/kF70FBtstJvPGkFWnr+VPUmalcbJlRy5giUzSCiqAlXFjJJjIV0v8Y/y1VUIKCqp6i0MCjalqnkREcuBiyfZBfCYszR8GBR1d3pCP0biZ0huchipaUNjUjNZAxlZGPnRFjtcRD6lgocbH1gt6y176M0gyxNBmW7ztA== 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=ZFfdqyQjddt+HuYNb7Sy6JB8MQ0PtzLb81xq+TrgiSQ=; b=BijoC9mg4clQAmGyJ8AfIG1aesZQN8+si59VjJfq3AtC+MON3tY6K/IjbjL2dp9K3szq9Yf2O6zDPuqisqQiYJYCe9o7sMe7w6dU5o6AWwkVQDkt3mJcAMfLeVrMa32JNLDjTiux8jkvRR+kp9AIkMjfKLEqPmmzoNGV/CwV2Q4= From: Joao Martins To: qemu-devel@nongnu.org Subject: [PATCH v4 3/5] i386/pc: pass pci_hole64_size to pc_memory_init() Date: Wed, 20 Apr 2022 21:11:36 +0100 Message-Id: <20220420201138.23854-4-joao.m.martins@oracle.com> X-Mailer: git-send-email 2.11.0 In-Reply-To: <20220420201138.23854-1-joao.m.martins@oracle.com> References: <20220420201138.23854-1-joao.m.martins@oracle.com> X-ClientProxiedBy: LO4P265CA0016.GBRP265.PROD.OUTLOOK.COM (2603:10a6:600:2ad::10) 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: 96c3ad4e-49b5-48dd-c02a-08da230a059e X-MS-TrafficTypeDiagnostic: PH0PR10MB5644: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: hIs+Ye+AcxlOnZ/D9k+jy1NyWrPd42XICDpQYTgkdrNxxpXXonPFBmUWmkH+tUVi7I7uTMN7rUyK4PNuH3ypXtVVpo8ZgsmpPa525z0uXC5rBPMrbC7Q0ikHu2J9eaWefTVUDbqXVcKx7KGTw6V3TvGAmu0qv0z66cEd8RtB+dLuyJbhCtzG99mzO93TKbr/g3fuMi5IpImceJ0DO/xv6Xr+wXiYx6RR2IIEgvKW69vb6qwCQWL7w4bglAhaz+8bzOfSnxOQH/snM6glO2M1aS8SknPxySUH3vGWPsmcT65SzwH7fTBPU9C+ReU0ABqG8yYjP6XMbj5XEbmnPKVCebW164mbMFtxiMXAMrtx5bzlnRe1M5gz7VSDVFrfnqHRNjj46do1/aVO6Q3Wbbaq2cfMZUdfsuhEFDmMpMOhEtJmIIT7+Zv+GPu6+7oGIWO81BwIDfJf9Ozm7y/GpmBI7hwrpr+AQOL38ae916pK7ryr2btwrZ56R36h0J8pTzONPf1e+HPO/Lf784xKlOVtCqY0QvvBEWIVoETXoNnpMyfCkaiV2aMQTn8WMxrRwmOjZjfPKmhL4Hy4NIUm5ve/51Sdu1mYhOnuQklUkmnh7DCv1+m4e2JudCAJMi+PbWGExKAxNo7DuCNEf0qMigSJVYRypnNE8/Ml+YMT6DnjeVjTDEzvGU87i8suIdrjdSAUz5LBEz9CrKdRFZ8D90qzLg== 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)(107886003)(26005)(6512007)(2616005)(6506007)(83380400001)(52116002)(36756003)(6666004)(8936002)(38100700002)(2906002)(6916009)(54906003)(38350700002)(6486002)(5660300002)(508600001)(7416002)(66476007)(66556008)(66946007)(8676002)(4326008)(316002)(86362001)(103116003); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?5vf2Dp650FdCH7mR+iruSkxtKzHxDbeVu4Ck/qrTajOUAB6VOw7nvRkLpW2Z?= =?us-ascii?Q?kBaFbVddAsOWMldhOQxjjdfPWo+ZoC9XFWKWP6clEKrihquW3V1Y/SN30+Mt?= =?us-ascii?Q?4jD/+0es7b9HxY4fZ99u1c7kg0nLPeEJ1QWxmSsmlG8NO92fseE1KYE3DvSi?= =?us-ascii?Q?l6aT1RV3MpFQbWUiUy8HBkPukhJYFCJn9lo5V+Abns6ZzQ2Qc8OqbQTRIJJ7?= =?us-ascii?Q?B90uRChZpqKJgE1rU+t/9mD8dEjeuSJv+VE9Gfuyg4/M37k9g5HzzYUw9kWq?= =?us-ascii?Q?lc5/1Idwnsx8sKu9FXxbaniOm0NDzFJnOqTRTCcMiM27yu47XBU/bX+ClJCg?= =?us-ascii?Q?9LQg6JYoobBDYgswk2LwegQnol0Dh3t9zKE9Hu0C2KWLMaE63yPj4R3HaEFN?= =?us-ascii?Q?AqCimEUdX5iP56I3l5RKzlgbAqXhDtLPvIzoDCVWdm42Kso7eGYBou5t6Zma?= =?us-ascii?Q?bjYbIU6+qGeLIrp/ZZvWDOkP/T24LMyBJxi/osV+hxBNYvjHYiNDetBMvxlm?= =?us-ascii?Q?K+s4IFzK9FYMzZLbQSvpNtx03imxvOscMv0yUXGiJ9C+s0WHirynWhYsYcFk?= =?us-ascii?Q?wI/aIUG+9I9xbaMk76Z/2cf3K2LjkXukHFMEbyRTgs9JqdOrEsYt5lbxor7l?= =?us-ascii?Q?7oYPRrIN2jAJgkTETmeiImqzlM0Gk/0PZQCVWvcdFsKLt1Ej15a7GoQHktnX?= =?us-ascii?Q?1ds178PUrmTpqowoU4ylwPcKnWI06Ckv2hN22Uv0xJcyly44pqqGUloFcP/L?= =?us-ascii?Q?67LJyH7JpRf9EtXYINsUus20lS+EfmUZilWu06xp2sJcoNa5QQ64NwtBpaqc?= =?us-ascii?Q?vpIko2xqTdC/nWlHmceFVn8Dy3Wv1gx5OSaPVD6WeKoASUNv3ZirKZraMV19?= =?us-ascii?Q?bUi+0KD3ngl/BTANyRQjpTTTysLnGNMdp9EgxhOxnXwQVsOk+Os8mrPz81Ue?= =?us-ascii?Q?Chx9dkMXjWE9hGfRquRTbUlbtnK8vQTcojZ5tZBx/7oQDK73bSxXPeNYZ2gh?= =?us-ascii?Q?Wq+QpgCtmTfbqWQaqVfzqla2xKczwPk39Yza45+8hd+psYybnCHyupWQh+Hu?= =?us-ascii?Q?Y2AlsmvC6AkV62ZdVvnMbzZQLx3zfHvED68AJEldLbH4PkdlAoSqHveU1vBf?= =?us-ascii?Q?sym5ngI7y00Cjs+EWAIG4KZeyh3xmRf3+EsvUrS47O2xhHFrIMXLXZ8pI1TO?= =?us-ascii?Q?58cnuFsHoM+m1F5+0qoWQRltO4em5CNLhkRVaaffJM4EW9YVXCgQ4oAieMGk?= =?us-ascii?Q?JW4JmjlQZdzW8r7Wf8kSM2KaW+tsknYpNj0aY+bW+6DS9Pgo5p8w8p3cY0Hr?= =?us-ascii?Q?tliBGpY7Nc1jElDwQPZKJli54gmyEUtd0rIKjzJFjU50QDSYz70/BI0pVaj6?= =?us-ascii?Q?4jFwOdH/lkLdxserufcgJjPdj4L9XuF6OuCckWHDusshWLV10x8ygKyN/r3I?= =?us-ascii?Q?yaK5iUE/xNmnQHQ5a4g1bYNhy885lZPt2Hy8IB1FxsxqBal+pawk1WSuHudy?= =?us-ascii?Q?F7bxIZm1ocOGFhW2c48AUHS2VE90yPSYwhL9RUZ2Pq4aozHja2oLe2GengKo?= =?us-ascii?Q?onSVsBsGbX0beCL+9ii6vQJHWPODHCpdPHmOhB0/R1KaqEj9vJZm/XAVPepP?= =?us-ascii?Q?WuIRhADb356lS96/MYy7iv4gO3FbBWn3IJmNJHgb5RYbDyckKqqw1ZPJ016T?= =?us-ascii?Q?+YLgeeRsCdD1IQQ8KZUoI0c25YNe31EBEijA21rIyMLHaxjqYAtgIw1BzrdC?= =?us-ascii?Q?dx9+0jdj1BniUZfPBW8cnIh294bDqsA=3D?= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 96c3ad4e-49b5-48dd-c02a-08da230a059e X-MS-Exchange-CrossTenant-AuthSource: BLAPR10MB4835.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 Apr 2022 20:11:58.1030 (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: X9chj9gBmULdaKYqyNIDohMJub6vOC3qVGmlXOWoF6mMBxa+PbPWasph9ivC8QvBGgKoU2WJ1RyoCX0xutOlFOnYT5oo3QyPNZvAZ4Vv0aY= X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH0PR10MB5644 X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:6.0.486, 18.0.858 definitions=2022-04-20_05:2022-04-20, 2022-04-20 signatures=0 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 phishscore=0 bulkscore=0 suspectscore=0 malwarescore=0 mlxlogscore=999 adultscore=0 mlxscore=0 spamscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2202240000 definitions=main-2204200119 X-Proofpoint-ORIG-GUID: mwOZsPZ4QvqVehYcVTtDcxZCEAVbXSI1 X-Proofpoint-GUID: mwOZsPZ4QvqVehYcVTtDcxZCEAVbXSI1 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 , Suravee Suthikulpanit , "Michael S . Tsirkin" , Richard Henderson , Daniel Jordan , David Edmondson , Alex Williamson , Igor Mammedov , Ani Sinha , Paolo Bonzini , Joao Martins Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: pass (identity @oracle.onmicrosoft.com) X-ZM-MESSAGEID: 1650485648241100001 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 --- 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 177d98164bdf..8eaa32ee2106 100644 --- a/hw/i386/pc.c +++ b/hw/i386/pc.c @@ -806,7 +806,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 8f985ff939cc..00b4391e2e78 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 62b85ad6bede..233aaf5ac50b 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 637367dc5fae..b707d690a6d3 100644 --- a/include/hw/i386/pc.h +++ b/include/hw/i386/pc.h @@ -160,7 +160,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 Fri May 17 19:02:14 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; 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=1650486310; cv=pass; d=zohomail.com; s=zohoarc; b=hNEBcp72b6VtH5JDxTE9YiBWszIuSYwhOdRjvhAaiBYAF+XGSrJ0KRpcOdOnxHPk0vy9yh3GNUENQWu6B/1iewLZ61hnFlXfuiSDQQ4sx3rjO3tdtMngG+wSHRUC6+Jjwr27ebMYkBdJXId96WssdSqOq120VQlmrNQQotcK/L0= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1650486310; 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=7yo6jtfExb5/w0duTVww5gvXQFnsIH/tAVUO0p2IsgI=; b=Dnt/l9lQ+fR3C4AfQ1yJd40aSUqwuTPqmW/N7CKy6iJ813uPzEoFlmetPTe/BdFlSIgTx9H60pDIEAAcLWZtBoz5fI/rQoT+AIF8FeWBU2oiAbVWrpdftZnV2A92ZZLbgkjv+I5Psw3GtYoAXgQaHAXuPObxJOvcYybHo3FZjgw= 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 1650486310546313.4015193041845; Wed, 20 Apr 2022 13:25:10 -0700 (PDT) Received: from localhost ([::1]:42230 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1nhGsr-0007mm-AI for importer@patchew.org; Wed, 20 Apr 2022 16:25:05 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:50748) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1nhGgb-0000M9-4c for qemu-devel@nongnu.org; Wed, 20 Apr 2022 16:12:25 -0400 Received: from mx0a-00069f02.pphosted.com ([205.220.165.32]:64774) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1nhGgY-000481-35 for qemu-devel@nongnu.org; Wed, 20 Apr 2022 16:12:24 -0400 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 23KIcDlQ019815; Wed, 20 Apr 2022 20:12:14 GMT Received: from phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta01.appoci.oracle.com [138.1.114.2]) by mx0b-00069f02.pphosted.com with ESMTP id 3ffmd1aa4m-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 20 Apr 2022 20:12:13 +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 23KKC9SS027514; Wed, 20 Apr 2022 20:12:12 GMT Received: from nam04-dm6-obe.outbound.protection.outlook.com (mail-dm6nam08lp2048.outbound.protection.outlook.com [104.47.73.48]) by phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com with ESMTP id 3ffm87vune-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 20 Apr 2022 20:12:12 +0000 Received: from BLAPR10MB4835.namprd10.prod.outlook.com (2603:10b6:208:331::11) by PH0PR10MB5644.namprd10.prod.outlook.com (2603:10b6:510:fb::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5186.14; Wed, 20 Apr 2022 20:12:00 +0000 Received: from BLAPR10MB4835.namprd10.prod.outlook.com ([fe80::d17f:a2a4:ca0c:cb49]) by BLAPR10MB4835.namprd10.prod.outlook.com ([fe80::d17f:a2a4:ca0c:cb49%4]) with mapi id 15.20.5186.013; Wed, 20 Apr 2022 20:12:00 +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=7yo6jtfExb5/w0duTVww5gvXQFnsIH/tAVUO0p2IsgI=; b=BZW8V4vKT5cDY9lIP+Iu5qc5AFuuPIYPNBfFYoPPcv0OTEI8UL3GyXLTwO6zolXDuQtv HPO2oRbIita//GfMVoZfs084aiEtaY14qozC9H444vJ1dIFD5OWHRmyLwNgiZnSxUFFI v16+YzAR6bHw62ktQFbuiQSnPA7MT0kApuQ6VRHMCYGiJMhPHW5zWYpRgjpMS9cxzkES 8tg70eDBB2Awc5FGpbUwwFEPjevxrnGSpIEKl3iCEOnoI8S21Qp5wJ4L/FX5VJvfwnNx zxeON/1C857nXvDNRzjssdFIYhd7AzZa/PC5qPMzJrpmdfX0kRzxhGpdwvQc7ufSQhWd 0A== ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=MgOycZ6Mw3J8+X2rGMB0s6AeSJKC0/5T7UqTFmu8n6dEkgJjh56CeQ1IgnTEjjRNd/uZlA165RI2Osh+RyR6GvQrXX4asVvqqIqSMw2Q/FNTWHtNwvTx3h47mG7NSYsVpuazwQMxzAa0TjxVSI2LigSN1L820MtXtQakwGpJws+x4/AdGbNPFtJ+tJ8U7AROdCTN9Jwk1NNrL8eiOfXnpuxEmJjpW0RH+m3ISc4dBaXI5LBE+Sv5rovhz57jEG576eDnb+mIMs2ViMy2MlKMw+Z3u60XjbMaH7Jyc1hfPpaLoqsWr2Vmzzhd1D9xm3E1s4/G3RIMuJ+uPoFHgHUijw== 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=7yo6jtfExb5/w0duTVww5gvXQFnsIH/tAVUO0p2IsgI=; b=cSup+HJrPxyhMA4i5XvnIh/Ikxm26BsEpwYaDgcGyYO8+yG5plw1TMMFA2+6xUKW/yuEjnYeqTkgFnC2yWVD3ensZclQiMvtC/mA+EEOzOWO6348+UhvbbjQbht7F+ndWRHRPc+o4ikDWr/O/Xlr5N7LQJAEnaU8xlja2EC9ZjiVO1KM9crsYq+eriJ/yvogW7mNKQqGCFZinClt0toBqBGLNe9rKjTsFbNbYPUcf7CLAdGoKfRPKbf4zP4fmT7vndeV5h6P2X0vxKqMlcg38foMvbA+WuuikowOfnZ/kX/GwvaUSQxcS0Dq7RwU6Y0q93BmsW+xYS9lM5CijWe6bg== 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=7yo6jtfExb5/w0duTVww5gvXQFnsIH/tAVUO0p2IsgI=; b=kUnUIO/edd2PbWLLxmHCRAr8Co8hexhUu0R98d5YZML36B8S9WH9Nhmc5bCBgtV3e3Wcplny62z+MPS1fPIa4ksKVCFj0aYNubUPqCud+t6efWVARvPQC0u/rmd+TQhozQgyVb5DypWB/0z51uaH4pdBb1+Y6LJwZ0v563athEc= From: Joao Martins To: qemu-devel@nongnu.org Subject: [PATCH v4 4/5] i386/pc: relocate 4g start to 1T where applicable Date: Wed, 20 Apr 2022 21:11:37 +0100 Message-Id: <20220420201138.23854-5-joao.m.martins@oracle.com> X-Mailer: git-send-email 2.11.0 In-Reply-To: <20220420201138.23854-1-joao.m.martins@oracle.com> References: <20220420201138.23854-1-joao.m.martins@oracle.com> X-ClientProxiedBy: LO4P265CA0016.GBRP265.PROD.OUTLOOK.COM (2603:10a6:600:2ad::10) 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: afac9936-6e90-4ccd-ede4-08da230a073d X-MS-TrafficTypeDiagnostic: PH0PR10MB5644: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: P5qBcoJMnJSjlUAQ/EZLDn29Hd716rPo9+kTD5M6CyebvEifGaqiqSFm16hv2dgMOj6dWf8Z0bS/X1jI4yfkvlJX91h+wiU3/avU8Kij4jvqaHjTXgGqxSLnwu5k3+4S462u+cTBvhgTzVmZ+7j4sZMGCME1SkEzh/eBabUeVGqKSFwduVnMIsSBNXTNv3eFyeWFM75Z+SH5cJ1YgDfCtzDykEj260+i8y3FETUTSrlkjqrKLD8uGJsbTW7Yc6s1PUanBTLlvgNcbnEG6nhb5aIP3EbhNXdEF0gbTrpOmEEKMhOZ//VuxjnexaaobBtyWCci9ffZU++GbtQyK3eupsJOVYKYCvyTzWw1GcPrz8JcujjqqFNbT4F8xduMWvYmdrvZl5fpugK76vKSvPMBMLHdNnX1m9QxF5fgBivExiH3bvp2+2IB16dTJZi2QQota81v3D28Grx8H2t2RoTjtmqbguqaFDVXKyJrS/po+Mf7BgKMe8Zh0S2BhpySxxzhPkETDLy4dYQ6JMMqyVMkMP9e3SXCzooUFoSSx339HuRjUM8DkUCuv236HQgA1p7W7E/AujpIBCRIMGkagcFeYP6ENykRBTCvNvSOimVcrC/05LfP31guaT0imTa2c8bQ031VLA2V5ybfHlQfDZounw5HvFm8mxCOVoMSEf0ITNg1Qub42Jwi2i5/zSdlZbEjrb6/5LOw3nTaTzkNiZTG3g== 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)(107886003)(26005)(6512007)(2616005)(6506007)(83380400001)(52116002)(36756003)(6666004)(8936002)(38100700002)(2906002)(6916009)(54906003)(38350700002)(6486002)(5660300002)(508600001)(7416002)(66476007)(66556008)(66946007)(8676002)(4326008)(316002)(86362001)(103116003); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?++6+DDPEW7XCRqJYDH5T1LRYoFKyU57zucdIUKwFhKvBzO0a4ew5xezCMPeH?= =?us-ascii?Q?WWe/M3GOyZQn4aGg1qmrRuf1Ayc/syYkt4anG3ay1W4RfLQKXpHL0Nq/SKYD?= =?us-ascii?Q?X8+AcYEbqyHwaEiTJLupqMoLgTln+kutRUL0TrG3U0ibyv63i1Qj5IoeZqTB?= =?us-ascii?Q?Qq5jpOABZdimJhJTHGKPppcVf9vzjAG71g4bs57BbV77upOzUsT5VPwdIa7y?= =?us-ascii?Q?K+jV4gKTAyp8DI5EpqumZw1bDgVu+SHJm9tTqKnbhLPZCJ1oyTYUW50GstfR?= =?us-ascii?Q?BeOo9rOKYWjoCIGx+cax5gAroZ/XBGCJpC4ZLdGqP/+9t37a+os1XbUsdcTQ?= =?us-ascii?Q?1XQ+XmmKur6Bs69u+/UioukMxMwch8QgclSKnAjw88f/40MYDfq3PtifxcJp?= =?us-ascii?Q?lZSQZqzQAI5CTndhQ5/SLEoM4ymLqBEfp7FGjW9WgXfSvSzZ50CW0BMgGVCO?= =?us-ascii?Q?S/fRWq4IQsdDAIMqjCdBRz/iWI/sbS6yZnziahiSzlv9RhoeBnWIsAXs/LDg?= =?us-ascii?Q?umP7mNLMIntdGsRPSZ4XhbHsZWIlvXyHSvzZzcmhshIbk5ocUie+n9eoAbV5?= =?us-ascii?Q?+hZXjjOcOdKaVbH+Gdqcr70h8N25beeXK3d4NkHtOrvo6oyAQVRkZq7mCHjc?= =?us-ascii?Q?estZJISVON/Oruos4REBh5Lx0IzCJmiPEZ2mVvNbop8zFtMtRgSPXTrSQBoN?= =?us-ascii?Q?mo3+qY5Br7rIcggLTJmNkijN/ikJkWV0WY8Ychf1E7N2mObzPaE432/RrT4k?= =?us-ascii?Q?Znwt6VOS/1VoZ+GTUplZFTz+yvByC5lusa8BFlMmFQiAC4Hy/3c0mmwkosAn?= =?us-ascii?Q?y0UVq6xrRo+G2T+Y21NR/5M8m5YGXhsNW/jlwF23RkqjghVcbiOiRamwVSh3?= =?us-ascii?Q?4Ip9uAJqFhAvyrVa9FLw0AhJKzI3mIJPThbIG92pZlKleFalChywXS70Vv1t?= =?us-ascii?Q?kjctiKlg0qYxbLYFleVgSIfHZ/xRfjZDvNUp3phhx8vzLik8mgxxiuVK157o?= =?us-ascii?Q?7QE2CrRccxlzoCtSwrT5ONj3PpOb4EKcNywkQvppHIHi8zkGBUVPP4PR9HAA?= =?us-ascii?Q?p0uVkLUj/7i/fNSjqfLIS6x0G5lTEjqLLw8Adjba6nVwa0YbK1ZmAJrzeDWt?= =?us-ascii?Q?WDjz07K5d/HzyZouYlAzDFKDqE4+SH5TtRZog15+wkbE8guZwUSFnN/TLBEi?= =?us-ascii?Q?9t2PzpotLvL0FUiSHWjjWfyBrGW6On0FGcvSV6NhM1x6Fi6TJNQFYi9MgRld?= =?us-ascii?Q?LnvHVu+LRjJachD44oOJkEOrdZVggd/9fim8L44EOW6220vMI8pUvrFRwYgZ?= =?us-ascii?Q?TYkUsdm9zFg3uNksibbseIfifOKlsSSqqW1Topt6OKZ7APLNT49CYZ2y5ZdW?= =?us-ascii?Q?l37hWVafTmqoBDh42A2cEHntbjUNQlruEzwbrlTW3+/6Y7lVoamgfjTb1qRX?= =?us-ascii?Q?xBdOpAddhaqK4bDtfxtitvPHx9MKX7lrfxIZCS38VxF8fZWMp5NbdfCjPNmK?= =?us-ascii?Q?v83RX5Bi9BeoNuOCSAu8E55vKoypTM6VbzviLYT2ENj6gEe8r6+OgdXigUHh?= =?us-ascii?Q?sfd+b0a4PO3CUyAhGKHFWrSpnL22Y0sxLDIN2ZdDfQPRL15OtD8qxojXYt0k?= =?us-ascii?Q?up84kXhwDM+01k7gdhmJFgk7edzLHysJ+usqumQLfGGQEpHKNY6dM27BMWU+?= =?us-ascii?Q?cebizbRNGYxZv8hdtr1RW4F+qjO0rsxK88/WBwgvnxXje27zBNlSgsJ9J6xV?= =?us-ascii?Q?3/iigKUkOctIAJxo97/rfenYJwhw/is=3D?= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: afac9936-6e90-4ccd-ede4-08da230a073d X-MS-Exchange-CrossTenant-AuthSource: BLAPR10MB4835.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 Apr 2022 20:12:00.6834 (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: qwofPLFhArW6PEGKUKBwg/xZc+/0usscoltt8a1vRbYFKM7xImlzsyXcF067fwadhGzJk9NzvOuze1mAoFNVSNa9nqUlWU7M2BeyoQ+cWTI= X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH0PR10MB5644 X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:6.0.486, 18.0.858 definitions=2022-04-20_05:2022-04-20, 2022-04-20 signatures=0 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 phishscore=0 adultscore=0 malwarescore=0 mlxlogscore=999 suspectscore=0 spamscore=0 bulkscore=0 mlxscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2202240000 definitions=main-2204200119 X-Proofpoint-ORIG-GUID: 2sD0pKdyT9RqlLwCWsyPflwtyrx2NEAm X-Proofpoint-GUID: 2sD0pKdyT9RqlLwCWsyPflwtyrx2NEAm 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 , Suravee Suthikulpanit , "Michael S . Tsirkin" , Richard Henderson , Daniel Jordan , David Edmondson , Alex Williamson , Igor Mammedov , Ani Sinha , Paolo Bonzini , Joao Martins Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: pass (identity @oracle.onmicrosoft.com) X-ZM-MESSAGEID: 1650486311462100001 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_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 8eaa32ee2106..aac32ba0bd02 100644 --- a/hw/i386/pc.c +++ b/hw/i386/pc.c @@ -803,6 +803,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_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, @@ -823,6 +927,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. @@ -833,6 +939,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 Fri May 17 19:02:14 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; 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=1650485795; cv=pass; d=zohomail.com; s=zohoarc; b=fKr9csGvFRckfROF1FVZnGffU6HNzNwbsptMl5zQFjteUhSDcz/J5w+jf26AHPyZz9tnIQuCi6Mimt2SgRKymX2e0HdI47CwmDTjA9ArnVA1QePwdkaBJgPsB8XRUFD1aNd42hbEK6yYSL7sPew0kEyRyq7dD/5WsHOy1E4XEgs= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1650485795; 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=QzlP5MoJgft5qU4CI76F5zDkTCEEEuVgL58CuV6KK40=; b=QgJji8DMmlbItKdv9v2nIRlX4xF1CgZfQB1wz2T/+gvTvms66XXZQHeY1zQ4xad7QaMD7u36irPg28eV7porAY/AaFu1cTmYFss71PnjnNZnUisoHgtm9inqKyv55y8g7bvCmTWBnD0M7zkIrSnD2g3I4r8xLP3gr4ezcTjuTCo= 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 1650485795425937.8080514335566; Wed, 20 Apr 2022 13:16:35 -0700 (PDT) Received: from localhost ([::1]:47518 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1nhGkc-0007lP-7l for importer@patchew.org; Wed, 20 Apr 2022 16:16:34 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:50724) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1nhGgR-0008JF-9y for qemu-devel@nongnu.org; Wed, 20 Apr 2022 16:12:15 -0400 Received: from mx0a-00069f02.pphosted.com ([205.220.165.32]:41296) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1nhGgO-000476-JB for qemu-devel@nongnu.org; Wed, 20 Apr 2022 16:12:14 -0400 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 23KIcDlO019815; Wed, 20 Apr 2022 20:12:06 GMT Received: from phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta02.appoci.oracle.com [147.154.114.232]) by mx0b-00069f02.pphosted.com with ESMTP id 3ffmd1aa47-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 20 Apr 2022 20:12:06 +0000 Received: from pps.filterd (phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com [127.0.0.1]) by phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (8.16.1.2/8.16.1.2) with SMTP id 23KKAhBw028667; Wed, 20 Apr 2022 20:12:05 GMT Received: from nam10-mw2-obe.outbound.protection.outlook.com (mail-mw2nam10lp2106.outbound.protection.outlook.com [104.47.55.106]) by phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com with ESMTP id 3ffm88736v-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 20 Apr 2022 20:12:05 +0000 Received: from BLAPR10MB4835.namprd10.prod.outlook.com (2603:10b6:208:331::11) by SJ0PR10MB5438.namprd10.prod.outlook.com (2603:10b6:a03:3b8::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5164.25; Wed, 20 Apr 2022 20:12:03 +0000 Received: from BLAPR10MB4835.namprd10.prod.outlook.com ([fe80::d17f:a2a4:ca0c:cb49]) by BLAPR10MB4835.namprd10.prod.outlook.com ([fe80::d17f:a2a4:ca0c:cb49%4]) with mapi id 15.20.5186.013; Wed, 20 Apr 2022 20:12: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=QzlP5MoJgft5qU4CI76F5zDkTCEEEuVgL58CuV6KK40=; b=OUw0nOVviTdakwLKUvDjiFp0hLYGgAW6by35eQr0LI3SVZSP41Okey7yaa137+X9zukU pixFzVXJDJ3Ph1uKbbLCCyV2LS4hyiy/drTe717VBWtUlGTnNeBhnog42QFu5NxKk/8W Za/WZ6epqTMsyB5fI0dfDbTuw3YDDkMuThYpc4A2KkQX2zC3P3lOMQ/uSyM2Y0/8K+dT R0DoTNaxb+zq4FCO3giLRE+LaTpiYQ6OV6tI8dQxkUr1DcEeb0EeqnHKwTgXvsV9Hwkh iLQSNEpVGYwpI5q9ZpIX2JJPv44StkGkomzryQkZpXqps+N5WmK5+kLLRf1VI0v8pZ52 bg== ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=chcg4x6b8xfE6hw04fFVrPXR3s5i5RxChDTInNnb7xYUnQ+3PQmjhMcZjU2LSSJmOGOXpATRJA0QprmqmZ/pDhSae30KTkpIbimxYTEWucGLVxcvX5c3eGnS/hmafYnip2dgGblBeUWS8d1PVwFps6lruce4UMC4ajxnts844wHAEZFkeZqA3+OSUhaIpg7FHAeWchxlTLisVSAZXGKFwHzCJ7IwFtco62DHTtCqOtIhv6USc97Ebl2bhc4h1yZV2DycyPLMEZJYFjn2MQO4SU8kHbfUj/4Pv4Szq75nLvbw3kwbuCqFyCsCr6w2nYBCxYBULdwgjltyysiSyeylVA== 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=QzlP5MoJgft5qU4CI76F5zDkTCEEEuVgL58CuV6KK40=; b=VAwePk/+DyuUyOSHymmpejMxvLlL6QJhJoJ27yJgwciYegNE7ONvYXstHsMR3Mm+nqTXS//+bfHhjTIsnr8txqSLuuZcw9tWv4+Otiezc2/wTxR/OBzVN0exYLtlZH7ek6pfuYXN4pYbHMqXIs96416XI+SbZZ9VIbGLiC+nE2uEX4ucpOLT8iZHNbzMyPOhqhwlqCTk9fpX4GA4tVcZIKhso90+4utMKE0OTF2GBPJTcHx6dAeeSwFDO5IoG8/HkxmXgbnjuiSxDeg52LBRkMaM2QnYwcH4i3VFyWBkrntdCVAangUwJnl0iXz+bLbtAiSa+SMoYFIW/aSlSlJEjA== 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=QzlP5MoJgft5qU4CI76F5zDkTCEEEuVgL58CuV6KK40=; b=md8ahB1lm27VVcTef6oXbgfCk783Ih1r0i/v8bPR8sMwVCcmicelYi+M7sWMMdFCOmdxDlVZHOPxsx8kqw2yhj5fQqwcEU3/rp2WPW6FpM3yrgs9TvgCsvQSiOGRE5zi0BablCE0rTd0DF/gNJ5xDCvTk5Wju2I4pCXY0MI+2iQ= From: Joao Martins To: qemu-devel@nongnu.org Subject: [PATCH v4 5/5] i386/pc: restrict AMD only enforcing of valid IOVAs to new machine type Date: Wed, 20 Apr 2022 21:11:38 +0100 Message-Id: <20220420201138.23854-6-joao.m.martins@oracle.com> X-Mailer: git-send-email 2.11.0 In-Reply-To: <20220420201138.23854-1-joao.m.martins@oracle.com> References: <20220420201138.23854-1-joao.m.martins@oracle.com> X-ClientProxiedBy: LO4P265CA0016.GBRP265.PROD.OUTLOOK.COM (2603:10a6:600:2ad::10) 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: aca7c611-f870-4d00-8015-08da230a08a1 X-MS-TrafficTypeDiagnostic: SJ0PR10MB5438: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: g2CFbLtETtW25/L0P7oCTCs8k/iou7lviJ/VBnSHW616gdKm5Pc7PiAqBGLfutDi2Io9csj/lK9p/95MAVFpZJMmP+gtT3KQOs5PeOEAes7f62SFZL2pPO2krw/PCvWi7F48Wt0IA65z1q1rdKbj6EuFZ2+EjO6MGMsfPS3eABG7qPeRjXCDLPs2u331jKUJ2VgwDbw29FxMHZiFbePSKDmk4SPON9bB7v0YCZCaqSKSzrn0foi3sTbxmYOuRyIUvqGjZhvom9yWsOKUhEdNUP24DPuP+X276a0R10w4lFcDfckNfHbnbyPfOiRT6D28XfaUGQGimRC3xCE0RwxRwUcPBy8RbYKQvKqvFE75H5/IRj+QETghQ8o5xuBTRUxFogGY1eNDOQm8gYKTxc8uTNwKn9zklgPQ/JNl5YNkPgmjwW3EUpZFOrkMD9BwPiP3nDQe5umZPC9GDfhetIqr3j62xfZMEH6G0VVF8+MIijdVbkgiE+KlMn9354km9qPKDkyftjYiCLoJvBONiVVQ/vBDTjFjH18c5z2MfBP4PMAnnc42IHtiTBNk6tqIaUue6SYCydGnz6mkUyf7859PoARNpkvIwaxXFzkdiEGeumvZdLqp3OUBXTCX3tZkcJKEqOKO/T3ebbLYVgNliyPUQcL2J+gQ8tXamMn+GNuizlAqu8hqb3qBnHrHiJIr/J2q8C4zDSEqOSqkX/gmZFR0Rw== 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)(6916009)(8676002)(103116003)(2906002)(38100700002)(2616005)(107886003)(54906003)(508600001)(6666004)(7416002)(8936002)(5660300002)(66556008)(316002)(66476007)(6486002)(86362001)(4326008)(6512007)(52116002)(1076003)(186003)(83380400001)(38350700002)(6506007)(36756003)(26005)(66946007); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?kl/hWHhwS+AMeB+lqlafTHfoWOJ/YErCU0Wmhyd5o2YUJJbjK6E+TT5MFMk+?= =?us-ascii?Q?T1W2Bu0iQ5SZE8y6dkjtWj5+yOHgZvXAmCkV4x2sLsjpg32+AIvYZ8BKD1Ef?= =?us-ascii?Q?8zzGHGdkNTsuUaOCDlAd3rKtHfSPxssiSjr9rDVwUShmgaLD1pEMm78p5DJ9?= =?us-ascii?Q?z6qWH6gZVAtWvHQzfneZScH/2h34EIiEDucSyavROQA2bDpmU/+5o2D0c0te?= =?us-ascii?Q?fq8uSj+AjnsPLXJ8eA+1jUw23XZ5U50LpVu3zRO+LnLZ6BdT8hRbaLHsO7/9?= =?us-ascii?Q?bNq9sY4203DbQJDu2j/Z5CChrH5grWazocONU9zy3SD4/14BExxLYSasAD3O?= =?us-ascii?Q?wV5p/Y1mPBx75p/X3nvFDzRtmE24W1/bBjCNjD6T09K+bf+aN195n8kHWZmz?= =?us-ascii?Q?8ChcOwWqnGdWCOCw77FF0Dg/Cv7w9ZP3bUAhDwGFmqwHdFUZkaFX21TiLmHv?= =?us-ascii?Q?rOhMycOvT9pZiPPKjSp+rWBjwgd7IA/48Q7ycOndd0LTCF+vIX8kvU6KSuIp?= =?us-ascii?Q?A1yN3n3+dT3S8YunnNXlTUX3ZjBLPklpcXyeqLIOxU8CBsju1c+bKig6wK3l?= =?us-ascii?Q?vVKudV+6GYcDT4wOCgStFznLlYL1JCwDmSz9cgqKgd7mdutHQmHHVaN54JJ7?= =?us-ascii?Q?+/ruiw9SIABijuImm9+1czdGJcayI4EdaPSfYi1vM8gk5KnfVKRrkvLF4KGb?= =?us-ascii?Q?LZedYoiTYnmQ6YPdrvqqqtgu5d1zx9RYN/AJK/7vxiwVor70pPAx1yvtL21H?= =?us-ascii?Q?oOx4LevB4qiYKVdJqVWbfDDjV/RDgMDfBfAnKhHjzG9X65SfwoJONUjqt9VT?= =?us-ascii?Q?mVrVEVUUMGwKmyFK2+d5ikXK6WqIzsN9NVyfm4axUu3XMwq9VGTPQ9He5R6m?= =?us-ascii?Q?hPengQ7Kzc/Q1fzUzJf95qTMT2sbmwghxBRADeqXICU3RHkqHJ5V1JwtUwwt?= =?us-ascii?Q?xTzUvK9neyUZNKHxeKdzh0HsD7nuKhvEY6yZEC1ClzVwSYOAf270la4SWjWP?= =?us-ascii?Q?mQh7r4UUn6u5uIQtvwrCsK0n7VdFWEYHA2avRvsWF1L2i/nIrzg3EwhDrUjm?= =?us-ascii?Q?eZ23vfVnz4RXkcmAb8HPG1T04HPA16d9LObmkqrHIp4vmxKj5Fe0IIVT/qK3?= =?us-ascii?Q?LQUcoJswpExkN7YofS/9OfT+GIlKU/2Bbk8e5kXxxFka78LQc2B8oA7VZuCa?= =?us-ascii?Q?v691uiX1oSF1tzjpYKRv1GcE9qJADtQSe9v3TcGpMYxAMjMxeT7ogvQiyo5K?= =?us-ascii?Q?WSxOmO/CtpaHiR+JqpVB9UMELSXtti0OPtJECe3Y66VyNOThAhmf6UQGYq5I?= =?us-ascii?Q?g57BfcJIPt/nFzE6P5/AsTOC4z+wuNtcwPIsNxbaIWPAHrUZfqWK2xuYer7W?= =?us-ascii?Q?R1WlLn7NciZUkr8AoNucCWDiPFdeM78xmo1ia/gOb8vrxkNJy9XiWJRpZ1Bv?= =?us-ascii?Q?FC1b57ZDzxKVH/30oZjA0ZDBJtfiosxSOgKFjZAoYF0SbBFsnIF3UDmsv4QO?= =?us-ascii?Q?X54R6f23Lif3jfnsNpBA3z7hJ4Hhs4Aa2g6nHfKOX9W4GND1FsLAmaBHoK8F?= =?us-ascii?Q?8rMFvZgARRYiMihhpbM9EtRzZg2ttGItw3vJZe9qfIpttf6/dAHOnxdKh9t+?= =?us-ascii?Q?odWHwIBBKLAFF3S7eOGY+tB8wMsix60Pl08X2svupARQb2RUzCcGB/+IBjtT?= =?us-ascii?Q?PzRm1dYZgGUGApgEN5i5V8N312m7GVmHNbK3P00fcvQILVw7hs9GDd9X4tX6?= =?us-ascii?Q?iHzUAcWabU1kd1VRP5a7zfLMCVM/ZmM=3D?= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: aca7c611-f870-4d00-8015-08da230a08a1 X-MS-Exchange-CrossTenant-AuthSource: BLAPR10MB4835.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 Apr 2022 20:12:03.1542 (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: RLjf70GPfU+DBQD9Qhb4HTnzY4GieoME6NIJ3p53HPBHCrqTxU1YRAhHTGXoAT4OvyLpBdW+dNXtRrS4+6leNGQ0YvdNkD4bfLYBhsb69+w= X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ0PR10MB5438 X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:6.0.486, 18.0.858 definitions=2022-04-20_05:2022-04-20, 2022-04-20 signatures=0 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 phishscore=0 bulkscore=0 suspectscore=0 malwarescore=0 mlxlogscore=999 adultscore=0 mlxscore=0 spamscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2202240000 definitions=main-2204200119 X-Proofpoint-ORIG-GUID: l5e0DhgpphkS4F4sguTjbdCNj-WiIIDw X-Proofpoint-GUID: l5e0DhgpphkS4F4sguTjbdCNj-WiIIDw 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 , Suravee Suthikulpanit , "Michael S . Tsirkin" , Richard Henderson , Daniel Jordan , David Edmondson , Alex Williamson , Igor Mammedov , Ani Sinha , Paolo Bonzini , Joao Martins Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: pass (identity @oracle.onmicrosoft.com) X-ZM-MESSAGEID: 1650485796904100001 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 aac32ba0bd02..77d8747ef79b 100644 --- a/hw/i386/pc.c +++ b/hw/i386/pc.c @@ -869,6 +869,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; @@ -877,9 +878,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 @@ -1848,6 +1850,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 00b4391e2e78..e12a40103be1 100644 --- a/hw/i386/pc_piix.c +++ b/hw/i386/pc_piix.c @@ -435,9 +435,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 233aaf5ac50b..e7ff131601ec 100644 --- a/hw/i386/pc_q35.c +++ b/hw/i386/pc_q35.c @@ -379,8 +379,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 b707d690a6d3..29b45a7847c4 100644 --- a/include/hw/i386/pc.h +++ b/include/hw/i386/pc.h @@ -119,6 +119,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