From patchwork Sat Feb 1 09:57:21 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: =?utf-8?q?=E2=80=9CWilliam_Roche?= X-Patchwork-Id: 13956157 Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com [205.220.165.32]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 0BF6F25761 for ; Sat, 1 Feb 2025 10:02:48 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=205.220.165.32 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1738404170; cv=fail; b=jhPRS23FrRhpQFcaOmg4F2a+skgqwYm/aduiKuxDDLFEyBO1rAoM+LphLtZ6kw2NET/gW0tFpCMvsg+5FBrfDIqWeLuggZdTy+uiY82Oy+KZqq0kT3YoVnfi4GsjKlU1/yVQ0P0QY2M8KZij7asl9afIC5TL0Ijgl/79ycYbJYY= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1738404170; c=relaxed/simple; bh=HgTRIO+3j7417Dde78ua+6G5wr6DJuW33MJiGOjsakg=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=INjYgjJS4YSx1j5o5BnQZBE80I18+9CKm+UFZXQxCO6TJRYuHZY639ukUUmLpmTDIJAcOtJkxo3fzNGSrXiOHKehMulRNthsqvaDtv0/ivHcMDvrRdQTYifxkrBqnw28Brvm7UwxNAMKU9bTWr5DOUlRGGToh7QDHt9j99B6khs= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oracle.com; spf=pass smtp.mailfrom=oracle.com; dkim=pass (2048-bit key) header.d=oracle.com header.i=@oracle.com header.b=PxWVQoi5; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b=ZTv51X8a; arc=fail smtp.client-ip=205.220.165.32 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oracle.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oracle.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=oracle.com header.i=@oracle.com header.b="PxWVQoi5"; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b="ZTv51X8a" Received: from pps.filterd (m0333521.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 5119SN9H011526; Sat, 1 Feb 2025 10:02:34 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=cc :content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s= corp-2023-11-20; bh=MMfRS/V+Hryx0stbzfEGRLl3krVuFC4yA62E4dGr76w=; b= PxWVQoi558rSxWam/ePKbfxgpHf/GHG9Ad6ee84rR0U+u6nYOJ+xqc/ey8NzWcXc 8/5vjzNQTLOnL25pAmdCauR0SZ9+hxGZljz5q/43IbiJSM/KqYeap2QGzGRsmmDA +BNx4b7m4dxM6aYdeNTh0OmViTcBRMUiGiei45VgtwF55YMnuCFsDFBGbs5bpwc7 Pz8qDDo6Nsz8mzJO+VP1lul+0tMvOKmC6Lpw4fmnMdeobxI97Q0RPnXjqd7gQvwY e2y684ABEV9EiXhe1SvJcK1LUHl42NHCultuBan27Yv7ax04/ZyaZBXcyyHy3BkB Sqs8UhFTDS8Hua5k31h04A== Received: from phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta03.appoci.oracle.com [138.1.37.129]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 44hfcgr3g9-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Sat, 01 Feb 2025 10:02:33 +0000 (GMT) Received: from pps.filterd (phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com [127.0.0.1]) by phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com (8.18.1.2/8.18.1.2) with ESMTP id 5118j85G008838; Sat, 1 Feb 2025 09:57:33 GMT Received: from nam04-dm6-obe.outbound.protection.outlook.com (mail-dm6nam04lp2044.outbound.protection.outlook.com [104.47.73.44]) by phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id 44ha25fbmy-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Sat, 01 Feb 2025 09:57:32 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=AVdXXY0QTWs+CHsvrZ+jS1KxP5zNzqNElt/OTtOz5Yqw1Fot+YTnkS5lyrMOxNdUZ4ToWRP3Fr9hX6KHH0fW36BnnnxfHof+7+0jURggwfp/+v/9B65pMJU/cCeygq7bf5pgYtmP8NZ1r9K+LbkZUfBESKsvHwTvWhyfoLEEUiHBx7D//f3RVP9wifj2lx2CPsGQFhgmGqk+vJ7oKxw47/mkgIL1xV6LwlghJmY9ZVNgkpk0fbzjjiV3LcnHcsTpQZahKbfhsJP7k1b48jaTFuGOtkVKnwkOdDF6Eht7lsbI+00eKeiJYNNqaqQk7v9LbZoJVljB2eMZHQfFLSIwPw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; 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=MMfRS/V+Hryx0stbzfEGRLl3krVuFC4yA62E4dGr76w=; b=uwx9aRUW9tZiJlSisJPDAcYLmi0Cl0dgguQztvWCepN+N1t/NLfeza5QY4w8Lc8O4RErWprZgMz6bbFb0R7bWJ/5NRWa1Hr/gKVdJ9HrO3zhtppAJXi4wMcHC1eVaRzsKl25z/sGxCbRcpLLt/en3b2HRdco6u8QDqoRQq6iXL71c6YkG2uaZ7OKK6T5fCgr5i8HB5i3S4B9KIsasoyG8RtiImBb+weFuMfwth9j5telVrEov1Ke+iElC/IVnAYWNsinWuOmSENkFiSHscuvc/O+hm3H8ZwMVr2K9qceVHnTMAEBWPMmwQdxjq373/I5FAETDkhNJics0b3oE4y1aw== 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=MMfRS/V+Hryx0stbzfEGRLl3krVuFC4yA62E4dGr76w=; b=ZTv51X8a96p+4gn4UGXbwHv4bQkBfKl6OZrFubjnLgf6mkVRV16wtG3kLMIxAcS3SpwbqEf6Utd/UZ2ZK+RBNaO4j4qpxlmY3zyojtPqVahXifLyJl5n1LAmHjjDlqQV7HXr7+MU9mI9PhbVg+tNCqi6vhKewK7RNCoVS6NF+WA= Received: from CH3PR10MB7329.namprd10.prod.outlook.com (2603:10b6:610:12c::16) by CO1PR10MB4418.namprd10.prod.outlook.com (2603:10b6:303:94::9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8398.22; Sat, 1 Feb 2025 09:57:30 +0000 Received: from CH3PR10MB7329.namprd10.prod.outlook.com ([fe80::f238:6143:104c:da23]) by CH3PR10MB7329.namprd10.prod.outlook.com ([fe80::f238:6143:104c:da23%6]) with mapi id 15.20.8398.018; Sat, 1 Feb 2025 09:57:30 +0000 From: =?utf-8?q?=E2=80=9CWilliam_Roche?= To: david@redhat.com, kvm@vger.kernel.org, qemu-devel@nongnu.org, qemu-arm@nongnu.org Cc: william.roche@oracle.com, peterx@redhat.com, pbonzini@redhat.com, richard.henderson@linaro.org, philmd@linaro.org, peter.maydell@linaro.org, mtosatti@redhat.com, imammedo@redhat.com, eduardo@habkost.net, marcel.apfelbaum@gmail.com, wangyanan55@huawei.com, zhao1.liu@intel.com, joao.m.martins@oracle.com Subject: [PATCH v7 1/6] system/physmem: handle hugetlb correctly in qemu_ram_remap() Date: Sat, 1 Feb 2025 09:57:21 +0000 Message-ID: <20250201095726.3768796-2-william.roche@oracle.com> X-Mailer: git-send-email 2.43.5 In-Reply-To: <20250201095726.3768796-1-william.roche@oracle.com> References: <20250201095726.3768796-1-william.roche@oracle.com> X-ClientProxiedBy: SJ0PR03CA0094.namprd03.prod.outlook.com (2603:10b6:a03:333::9) To CH3PR10MB7329.namprd10.prod.outlook.com (2603:10b6:610:12c::16) Precedence: bulk X-Mailing-List: kvm@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: CH3PR10MB7329:EE_|CO1PR10MB4418:EE_ X-MS-Office365-Filtering-Correlation-Id: 226f3f40-3b03-4a1c-eb52-08dd42a6d758 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|7416014|366016|1800799024|7053199007; X-Microsoft-Antispam-Message-Info: ED6T4UWfEX7plSpZpIznczQImlm7/IxwkTv8InH2kMtYsJk207B5tAGHQVLFOHaDQGDZetsW4sS3zEtH6fALwHmyKVkZhcM9rIoFVl6b2PEsHtAfuJ+ssY5rQiSZE43b3n5gJ8GF43h3P/zA4XK4I9NpQV6iSe9521nIiFkO80VFptKTzey6tUP7nP6yHpuMXIdNrzj8kiaNxi7b20SZtnKDOlfDl1HMvzC3MC6G6pIg3ByoyVdHmp/dwnUuEA2PLHG578DrcnuauTWITufRTPHxGMuvzqCmeGB3CQjTyU3UfY+hKYAuv503grJ8c4y8dcW4zPVjeAzV+pwntZoAjrWAktSGbkGsC5WfpB7BteXId3zz0KjdolMc0RtTyOFb33k6WKLeOKH8AYzM6Oh9eJOM+4lUrCY1Vbih+PPLji7kZdBDiwuCqg26GhlLq0VvjMmzpWBKVmb7bF4YUfwKTzr5cumOYGyfE2AAU935sHncPXgyY0kKRhT9x7Rvv+T3HwVNEc4ZOvXiGbTEE13670QqZURwML2vwA/DkwceRgibGOnn+ixddVh/PuvLX20638D1aQ6KmOwWIu+I8+fULuo17cbgcLk46j9vnUEjE9Iz9foatGEMVQBVZxx6M7p6x3cjnEVmuat5JY47aerZ8c8gbg/PVY1xpVCG/cqzssAIyStE0nIPuoe7lan/+DqdCzzNKAcs2sOUC+eV5kjkCZ7gYeMcdfw8eJiOf/bIH8BqnYvtE1nhTWM58rExjvwBMGjnKg4WmnMnGY7Yegmf2JgvOw+k1xwCaX54MtAvFktjsVhpm/fukqAafe0R3GVx8rtImPpENyqU94fhtf2AwmcBY/8dQwqnW94OD5xFEasXCsiMAwfUTq3gB7jZBznPbRQKZMDUGxzM6/ltl3OsZbZEBvXvzHt2VcrcDgT8zcmBFxp6wpoPwR4ZBe/G8fnrvLrau1mfl3uFR8Bc0EOhMhFON+tUydVomPFusYPNd9Awo737GlrBJ6BfZVuKyNa/NlMjkNfQp7AOVCUlb7vnu8W6e8Jjf4zAsfPdVaJDE89PwWX4/mzwnKNTav0utBPFuzwYuGdUhMxcis95PAPTifdBOr0QCTAABw8tA3uU/BfHSOQVitBA/AShYh/d+Ez4EvfJC9pZaFV6zLeB9ksxbWOT/lVRY5O9YysZFXnU1U4/xkzKfdMTkgNw7WM/KsIlH0Ti29KSSr7NWwU6Aye225qnORggJHRITGePutybABU8eQ16/Ilf0mfkmAawWRfuwhMM0pHe1BqPQHqNifa+3aGZhM9YGjR+BAjeD5Cu9fd6XTOHVybO0bN5Lk7D82LjdnlrEshV6Dnti8VFHdVHV7ABNf+vHL9KowVzd7EgE0pD5aqw1XCV4ZKz9pnc8n4u X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH3PR10MB7329.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(7416014)(366016)(1800799024)(7053199007);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: aqrWM0SmFnMe/aO76CGP5/veuHt/udXdRLDdMQOgqsdpFq8lxMc5UvmUTt5n9VDZlwQoez1ZBqmkLEFHx3gKC13kSSdd88jycEH3ImFAOnmcyoTssbg4vzEGs7RyL6x19iXZxo++WGTaWmZ3IpfWmqkX1AzSY4bhEMyzghTdCqPUriVoErg4mfNZx8KxTld/1/aoASX94M9hGsgVhTzVZadJpW6SR+jxc0m6nSq2ZvYeDsuZtE9j88r7zsPpXm0/lqqj2dvf9c/yY9FwQdH2jPzyKMbRAuJ0ht9TZOYGAbP7ML1YL6GYn2ZurF8JL9ahciIMwXy5vVCfZ/VfMsAuPIp14J/bCusxuhBzYkPHBtL+DOu0MyaFu+J65sH7Mzpjq5b8OEt5Nqsu2fAz6ojMRgtqVPiC28JvyhzExgRZQUQ0WDijj8WrJ0vcEQ1fmTa1TpfTGH97u6eSVBQ/y3mSHaDG9N7JBL7grNMWTCyzXp+akpZRsw105bl3g5Fkr6bEtjHAKhh0EY74A45J0Y8wgUQ5zb2G46wllFCKQNtEgCHTyEHV/4dBnx9aUIv/2se5avjddWkRtYkxmfPOfII7wVLuiVZjS+Oym+1MwIVh5LJA5lfurl46tW+D1x2grQxDEWZ8rY3Tej/4diffiQ4F77W2cKXs+4UvJAiR1X5lXHc+gkm62on6h/g5hOb0od2h757k7vYIW5U8dKZqSgXqIoWBtKBPY1nlYVxjlD2q+JB6AhO7L3IBLGgjBUvVU2OGnKxA2F68u7t/gAX969j7ZUNbQKKJEMaTEBJ68CCZka7SpCgN0siYcmRcqW/hyQSR/o+9Iz0upM40Xid78Ca51M15eX+EfMGPOG4dsS9PP0nVPkApQa0bu3YUZqSbWFttiGvFX/C98+7AECYNmR2V4CEfxV3/S74lqcEdtamjpa37PLnL9iAcQ3c/RGX6U4yoOpJK1gF0VakjHRLGdp/alsFVzEz3aJHniyvI6jIZAQrmp8QlKUbCQeqSIAKKbhRrBDPGkzD8M7V69lUWweE2ihPv4kR9PkhVKzoevQbhkbWoKOTGKPQF1pV9WSsSb0LkLF33SSAMgcwISmOrRzAmuAV1ai+80dWiV2BYZCP16FSCx7JhpN6zYTBNRtEvJmRDQMeb0fcVvvKM82czOM8Q/O6GKbAfiMn+IdwlWQSJPgxvEMZ3uiHnE/QFBo7UPoQKIpeWWt1KnTwSAhpk6o3x2OYQlxmR9jd7kv6Imzee3ouMLC0T7L2axupBgT67Bei+4EwapZCX4hHEt4zJ2tVPPdyXxG1BTRduuc8TtNfjxY+0T0OKzCZg9NA1dtLcDdvZMBXXcQUIzPu8ZPuZlbcwkI0WDVVAMSryxRSxqyo8o5wAdA3klEL3r2B1yAOFRGv0ZOr0mfdCIKNjjTnRdZIfAlG1TtcgRuEnJbBI4Q5L9zjpFOmsOGDMPDhf6jJiuI6JdW/93PKVGHv9ZYXoiY/X4jJuh2v8d4/wwtwajTBqmsiDXZJrBGgPDtEy9Mc96lu93uOPok1mpke3K5YtxYWweHlKPVn5tnnRIYcVaQjyaistjU798xV9CBpZhuBOlWoY4xkaoZsOs0+xrDQFqvfpEQ== X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: IGjdJ6bv6Za3EV9epQD22yxwvk5pdvLDvZoJcvAoicnCCs1w1vstZ89yc8FwL4QD5X9PYmyGkcCuvnxJaIpWyH+1ZhElol84bVBIk6xlHlTl9tjcOHLDX6NEHuINHsPNgh1w1OGfB5YkhJI0SafpTBZoGCpHymJ2ww3ex4QID6ZiMM0Tqum0/HZCdtQL0uCKipDpTOR7ANmNOqfw/TtSLYuUJ/zWQuKZZDQSh6nR3KWau3q5q5rDJYaqT05H8rjApylPUvBBgsP1fyVC++HZO1lcjKHSvhJAGlDalfOABYUQgEx2sF7+RLY86YyeCQS1Sz4juHwh54kz6SuGQQUFD8gRl0o/tp6gF1j8NRIw2lgHGcytxcEipSwwSO5Ij0OjsF67ZqQzTiHQGr8NGJj+DxJHg/9f79oVZ9ClAeEQL6QWXp9OEBY8AWMPWMgLMQkI3LuhxxlwpFlmA4+ZGvy/5tTbrbv47aqjREfrXSs7+h2uiO01FFjmzGDPJ9JtCWOsHVT0kZaT1VZlhiQxnl+MQl4CubQhZQ6FYNi3tlbWR17VHq9iDxIO9J698PXPtRstolHcrguTw5jTjrfS+tELZBYPpecHYomL/bQGgQX9rew= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 226f3f40-3b03-4a1c-eb52-08dd42a6d758 X-MS-Exchange-CrossTenant-AuthSource: CH3PR10MB7329.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 01 Feb 2025 09:57:30.4244 (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: JwC3KXweXquMcE3OvRhLzxMU4WMEh+G6EJ7TCHtVspPQvDgQg3GWyh723YsJ3qHXCESqRkouHcpj/1h0YGnfH5n6ifo1UK5gh4EGwiZGxmg= X-MS-Exchange-Transport-CrossTenantHeadersStamped: CO1PR10MB4418 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1057,Hydra:6.0.680,FMLib:17.12.68.34 definitions=2025-02-01_04,2025-01-31_02,2024-11-22_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 malwarescore=0 mlxlogscore=999 mlxscore=0 phishscore=0 spamscore=0 adultscore=0 suspectscore=0 bulkscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2501170000 definitions=main-2502010085 X-Proofpoint-GUID: o-2NZiEjKINZj8JZcFUKVV5DesK-Qwwo X-Proofpoint-ORIG-GUID: o-2NZiEjKINZj8JZcFUKVV5DesK-Qwwo From: William Roche The list of hwpoison pages used to remap the memory on reset is based on the backend real page size. To correctly handle hugetlb, we must mmap(MAP_FIXED) a complete hugetlb page; hugetlb pages cannot be partially mapped. Signed-off-by: William Roche Co-developed-by: David Hildenbrand Acked-by: David Hildenbrand --- accel/kvm/kvm-all.c | 2 +- include/exec/cpu-common.h | 2 +- system/physmem.c | 38 +++++++++++++++++++++++++++++--------- 3 files changed, 31 insertions(+), 11 deletions(-) diff --git a/accel/kvm/kvm-all.c b/accel/kvm/kvm-all.c index c65b790433..f89568bfa3 100644 --- a/accel/kvm/kvm-all.c +++ b/accel/kvm/kvm-all.c @@ -1288,7 +1288,7 @@ static void kvm_unpoison_all(void *param) QLIST_FOREACH_SAFE(page, &hwpoison_page_list, list, next_page) { QLIST_REMOVE(page, list); - qemu_ram_remap(page->ram_addr, TARGET_PAGE_SIZE); + qemu_ram_remap(page->ram_addr); g_free(page); } } diff --git a/include/exec/cpu-common.h b/include/exec/cpu-common.h index b1d76d6985..3771b2130c 100644 --- a/include/exec/cpu-common.h +++ b/include/exec/cpu-common.h @@ -67,7 +67,7 @@ typedef uintptr_t ram_addr_t; /* memory API */ -void qemu_ram_remap(ram_addr_t addr, ram_addr_t length); +void qemu_ram_remap(ram_addr_t addr); /* This should not be used by devices. */ ram_addr_t qemu_ram_addr_from_host(void *ptr); ram_addr_t qemu_ram_addr_from_host_nofail(void *ptr); diff --git a/system/physmem.c b/system/physmem.c index c76503aea8..3dd2adde73 100644 --- a/system/physmem.c +++ b/system/physmem.c @@ -2167,17 +2167,35 @@ void qemu_ram_free(RAMBlock *block) } #ifndef _WIN32 -void qemu_ram_remap(ram_addr_t addr, ram_addr_t length) +/* + * qemu_ram_remap - remap a single RAM page + * + * @addr: address in ram_addr_t address space. + * + * This function will try remapping a single page of guest RAM identified by + * @addr, essentially discarding memory to recover from previously poisoned + * memory (MCE). The page size depends on the RAMBlock (i.e., hugetlb). @addr + * does not have to point at the start of the page. + * + * This function is only to be used during system resets; it will kill the + * VM if remapping failed. + */ +void qemu_ram_remap(ram_addr_t addr) { RAMBlock *block; - ram_addr_t offset; + uint64_t offset; int flags; void *area, *vaddr; int prot; + size_t page_size; RAMBLOCK_FOREACH(block) { offset = addr - block->offset; if (offset < block->max_length) { + /* Respect the pagesize of our RAMBlock */ + page_size = qemu_ram_pagesize(block); + offset = QEMU_ALIGN_DOWN(offset, page_size); + vaddr = ramblock_ptr(block, offset); if (block->flags & RAM_PREALLOC) { ; @@ -2191,21 +2209,23 @@ void qemu_ram_remap(ram_addr_t addr, ram_addr_t length) prot = PROT_READ; prot |= block->flags & RAM_READONLY ? 0 : PROT_WRITE; if (block->fd >= 0) { - area = mmap(vaddr, length, prot, flags, block->fd, + area = mmap(vaddr, page_size, prot, flags, block->fd, offset + block->fd_offset); } else { flags |= MAP_ANONYMOUS; - area = mmap(vaddr, length, prot, flags, -1, 0); + area = mmap(vaddr, page_size, prot, flags, -1, 0); } if (area != vaddr) { - error_report("Could not remap addr: " - RAM_ADDR_FMT "@" RAM_ADDR_FMT "", - length, addr); + error_report("Could not remap RAM %s:%" PRIx64 "+%" PRIx64 + " +%zx", block->idstr, offset, + block->fd_offset, page_size); exit(1); } - memory_try_enable_merging(vaddr, length); - qemu_ram_setup_dump(vaddr, length); + memory_try_enable_merging(vaddr, page_size); + qemu_ram_setup_dump(vaddr, page_size); } + + break; } } } From patchwork Sat Feb 1 09:57:22 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: =?utf-8?q?=E2=80=9CWilliam_Roche?= X-Patchwork-Id: 13956153 Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com [205.220.165.32]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 3D57A149DFA for ; Sat, 1 Feb 2025 09:57:50 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=205.220.165.32 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1738403872; cv=fail; b=JOuAlIiDQR3fa6VlcAowq73sRGlTdXLBwEd2c4H1dsw61GgtdlMPk++yRIKb24wkEbLzlScp2QvMlsqMtTf5UX4wquoI7ZCfid0Mc+9zY3i+HrJ+4S1gJH7XtzJEhhNqtVQZS061b3aZlGK8CBEDy8VJyhn+dC3hc4MyJ2aIIm4= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1738403872; c=relaxed/simple; bh=rfIe1NYLX3k3cNFlLIW5ebJZWGZJMQcdqp8Cq6X5bKQ=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=uAk5bGNLs0Hn8I51XLtGryAyIUVfFPFaut+gU1CjZBKmrEyHiPqEIBoseG8sSsXjMlgkPC2IvnB5PeSeEAseKydoF+zdBIksvKrJ/CUV9ANgI6cYGfmVu95gxF+gEUXBd1xC2IfSQx7N67aL9Pc8z4CDRmnwd5DLMFuCTzUhFdk= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oracle.com; spf=pass smtp.mailfrom=oracle.com; dkim=pass (2048-bit key) header.d=oracle.com header.i=@oracle.com header.b=TiNpkg6d; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b=dnKBhqX+; arc=fail smtp.client-ip=205.220.165.32 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oracle.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oracle.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=oracle.com header.i=@oracle.com header.b="TiNpkg6d"; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b="dnKBhqX+" Received: from pps.filterd (m0333521.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 5117bTQp013468; Sat, 1 Feb 2025 09:57:36 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=cc :content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s= corp-2023-11-20; bh=NRPGY2xL24KNpo5IRIvaBIs3SCCk698KFm1h6Tc1JHQ=; b= TiNpkg6dmMoplC5ovVNhZYu9fU/eFwi+4ybH2m9T425Q8HzZTID1na4TUmQXkdMn dsJfrSwCzZ4KXeaBmO99j7KjR0pz8fESPRm1ol3SvWNtx2I14k1536V7OM0iNfky ZHV1CenYx4YHFuul56Jjlk3FJoBhio+6vId8QYy3P9IdaeET2D/3TghtW07MHEnx GkGrToEMHr8DIK6ywUP2Us53FCmWjfOejGmyCEvdOQlsZPUMFSYcGsQKN3cD9Qg0 MamNFNOnC1/kJ4Pnzx1IE61v9niUSElxqQOBe5xFiklTVVWP58MbLumSVXgku+Nd KwT9wstLf6siu+XmfBItyQ== Received: from phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta02.appoci.oracle.com [147.154.114.232]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 44hfcgr3be-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Sat, 01 Feb 2025 09:57:35 +0000 (GMT) Received: from pps.filterd (phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com [127.0.0.1]) by phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (8.18.1.2/8.18.1.2) with ESMTP id 511959fk029933; Sat, 1 Feb 2025 09:57:35 GMT Received: from nam04-dm6-obe.outbound.protection.outlook.com (mail-dm6nam04lp2047.outbound.protection.outlook.com [104.47.73.47]) by phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id 44ha25fbkw-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Sat, 01 Feb 2025 09:57:34 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=FkX9hDl5tnCjU6JR3uuIDfffLLI5IwVVlADOfxo2xBQxK0058tTQw0MiZXJih28Ix+2n1/AVbbleaF6GIf647jqKgVemGVB+CbzWxtCxg9zKkVRcqsBX/VJ8N6SIUY7fpc1hw8880jpMq5ELYd0HGkgdYeJBpAot1yffrRQIJYRXpWhGFioyr9BgXbCDNLIdnLo5fBXYrWitfw3aN8NRW8rzk7Tsp0mP3ehlbMJPtHOXNc8dWkmHrKEkimuxftp2JwUshZHebubYXMDyxPzqWd2352J2LJW/2nOP+cFoa41yc6vEXwOZDr1FJlIl3CcKr836NKuIwBDBsWa8uXO1vw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; 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=NRPGY2xL24KNpo5IRIvaBIs3SCCk698KFm1h6Tc1JHQ=; b=JAU93XIwqbZQLYZyGZCGCEsAkweQYJQEpGi+fl4wwNHbAQtE9AFhqLRoIJFzThRfJoy8howPrDwdxE9WbA1qIPZxhDQa2mz667rsibw5WZLFzearIi/5ll+ybNMZWOVTfWkv0XeOR3wL5vt8vRKbB7D4tdRJrExVBFUiNKx9Imih8vxhcejIbH8V1Rpul3D2Zwk9G+Z8vUn1dRy0Ceu8MlwLbh4sVKGuuWJfJ5VCGXIwMHg2UgiJi8x/8h3UargrYiB/F1XQOFBk7pMouPDAakGdB5/1oE4MFk1/qILr7UJp8+g/wwVLswX96h6/BXLCia9kiLCQNRKyf9Tce1d/8A== 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=NRPGY2xL24KNpo5IRIvaBIs3SCCk698KFm1h6Tc1JHQ=; b=dnKBhqX+4WORQjfZevhm3JZ0gDE68lHNNEc96RuXiOaXoCZtG+6zjjuJM23pem71mqAzXabFREoYshmYMksUm2EW0rRT95UEbFg13PiEEQKblEd5YoDmhmKso6F8Pew4ZZNM18x0to1U30wgY5oXzTZ5VfVw0jrFyPP0N2+8Kg0= Received: from CH3PR10MB7329.namprd10.prod.outlook.com (2603:10b6:610:12c::16) by CO1PR10MB4418.namprd10.prod.outlook.com (2603:10b6:303:94::9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8398.22; Sat, 1 Feb 2025 09:57:32 +0000 Received: from CH3PR10MB7329.namprd10.prod.outlook.com ([fe80::f238:6143:104c:da23]) by CH3PR10MB7329.namprd10.prod.outlook.com ([fe80::f238:6143:104c:da23%6]) with mapi id 15.20.8398.018; Sat, 1 Feb 2025 09:57:32 +0000 From: =?utf-8?q?=E2=80=9CWilliam_Roche?= To: david@redhat.com, kvm@vger.kernel.org, qemu-devel@nongnu.org, qemu-arm@nongnu.org Cc: william.roche@oracle.com, peterx@redhat.com, pbonzini@redhat.com, richard.henderson@linaro.org, philmd@linaro.org, peter.maydell@linaro.org, mtosatti@redhat.com, imammedo@redhat.com, eduardo@habkost.net, marcel.apfelbaum@gmail.com, wangyanan55@huawei.com, zhao1.liu@intel.com, joao.m.martins@oracle.com Subject: [PATCH v7 2/6] system/physmem: poisoned memory discard on reboot Date: Sat, 1 Feb 2025 09:57:22 +0000 Message-ID: <20250201095726.3768796-3-william.roche@oracle.com> X-Mailer: git-send-email 2.43.5 In-Reply-To: <20250201095726.3768796-1-william.roche@oracle.com> References: <20250201095726.3768796-1-william.roche@oracle.com> X-ClientProxiedBy: SJ0PR03CA0225.namprd03.prod.outlook.com (2603:10b6:a03:39f::20) To CH3PR10MB7329.namprd10.prod.outlook.com (2603:10b6:610:12c::16) Precedence: bulk X-Mailing-List: kvm@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: CH3PR10MB7329:EE_|CO1PR10MB4418:EE_ X-MS-Office365-Filtering-Correlation-Id: 8025aa18-7e66-425d-436f-08dd42a6d8a5 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|7416014|366016|1800799024|7053199007; X-Microsoft-Antispam-Message-Info: Nk3Qk25FrRVADUDNOpui4GBEkiZhEwQogZLBpibr9Keus2J6B+FFl3Gi7Hwyd3JR9uzNZs1MqCauQfEnN8bE8EagO8v1zvCmJroCZPA2Dfs4Vzdlp2VSw5a/c87EBl5cHOmt8buwF7HEyxk3B5UsXrLJS5bDfmlzyTA62th55+VibChn1JAX2H6VFHJ78dQzrgbqVsZYg1Ubn5GtCiDuZ7aePbMEv6gC7aiwQ9nGCEC7wKEho2zFrvpxSTT7el+g4StKkHRQ5+lU7Krj9qXcNhAwpQ67ToQdjhY/gZnvazlptCLXpLpKs+BONx2tE7/73abmgW+0Uay8t+YKzm+wpldHfYn5KvGyqtWIqbspZimjIgAcMH8a69U0XKeN58jb1E2hRDG8ElWvZicRNizgUgP8ZF1ni7MgsUvRyf/leTjF9LhfHFW8Ba82BGf10qTFOUy+Pl3NYAqZmEr0mZxs8KB/HCIRjIoAckRrhBMMo3RgiPwoRXleIcyKLtCytIHqnxd1aEMN1iHSRwwUW6993DoRHGD7ujpC5dfSzfe+pV918njGPkwc4RlDc73D+HpX/1wxU1qh+2S6RLFYPJ8YanHSSKjP2lzk7IC2lE/lGgKq2r4C5WqdGNhRfP2bkbE2UWGW2D9a0gi+Q/FuDESEsKVPqiYqCsInN/R6MhAivt1WZeFXsmjmp0Iq6nyMI3RG5pvyud2MryOGTEi9buE6+YYXJH/YkUxqniLu+W4rYu+KWR58mSdxtCRPvqJsVy+11pYGOEkfjhlQHvAwVRWNFlXh9r5EdP5cVFYobN7f8b2P+rkWtpwIE37OxHQC24SvERdOeJdZt3dyoBv7HJ12zfUJw/ZzA0jPtNq0ghQ1IY5iu3xjEwXoNQglsetcyRIrUfg3IIE8u/5NnvLwlsYYTa1Sb0+Pdj03H231oZlz12lds7x1rUPgns+fyFNkxmcEOkTIXh/OXSKkwPeED4UiNOk0UN2lbejwfBFtcqlRrrzpQZJXF2V5c023RNLqGC/K9/Z4dpeEI1bfgW6vfSCb0p7wCk75J4vyrpSgOaxvazH/pldLhTy7zm8PcxOG/WoOA/XhyiO/5sg9G42T7DNqAarHzFfYiTVoxN7Srad876FL0nBFOw1ycz47Coyodd0wph5J8Ku7fnwxv3ool8DCQcmsX6Li5aRAbwvslra7iubF3segZwIRQhqP53pA7WNX9IUfYaPbsXwX+x9KPOg7qIp+QTylh65awTSrlD1io7c6gJ87GCpe1QBACWUZkJZDcRS5YsSK9SsgKRHoCcMXOFBh8GMOZ1HPMlNdqszGsNFH8ImZkv4KglKkcq6EJ0LgfY0fbHrBI17/GJdsAgjkyZ8FNPVz0NlPdZ3DSk+Ogy7phrp9fAxGz/kbq7LkdtLX X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH3PR10MB7329.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(7416014)(366016)(1800799024)(7053199007);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: FWrf5L9+pjNVN9h5hDioU/+XVzdWap6taheZRQObOwHa0mjq72E5jLOefgqJe+lVA5WddhEkox28Cuxt6nFzpBIfh4c+YWEZuca2TKVpTzBghC8Mo/gM+5e2m4DbCc1ncNbdYII2kBoTOV7rpsVWZgdawoFHU//99RkKVM+/VMjLlwKNilEsvuox8RtgGYRTUnAEv3wutYFSRJANQf2cm2E1iQNQOGN3euV99wDs2R1aJRnH1Rf17GUfXTHWRhwJQumjPDMMrCRdsWUmmomRP7rAtutyDbAkVoKz1dgkDndLE7ge0ZoGBr/0FoTqOyDgnh063y58nSi8botst5DCeI1okBwSiIM9KP5f/6T3iWXo4Gp3+3ESPusshrMJYWg6mDVGcntgpzNGQK5MYliiMlbLSwbRoPVt87FjyaqOC55VJYe5MwFb0FdOm8xTl5sk5KhQBUm/szg43YTNnV3N6YlLC4KtKLrQVonqiXAxNn5hh9cl/s/BF0WWkXiDmr+4Y7UB93WCS9XXkaCM7Tcv/mxdUzZH7KJAq6HmVa/oydUrfQFutIac08vI5iYz7/g1sk5SojTb8ZfF6rw4YwnSuHBG1LKwDx9L3mJNVZGkxA9SJhCCte/kHdH4PMKoTD8Ii/PnI/BY0fOriRrNPNWL01siLhrcD1dIBYdmudjUIhxkIJzWZ4aVGRcncXJKFkKxKA7gulmm5fMLGx+oiEGuFWibNA608zLv0qV3GBa7BXEAvEOjbBArcQz1+3Kb8L0DyvbwpGPtHnNFOEIjhLxb30ttGA4z4ntONkzxNKgkIAni/aubV4CVkcJ9gK6+ykclT6WNEX50K8Fbyi2lXiy5Ha+wJmwcKNmR/vhuXCzBMoHYEWTy+J6lOcslTh1DngfONC1IJwlUnV4a3PWxORy7vEizNjmyrma9cwybYyNtbBBn8hiZgu1CuNDOwNG6jTkm1tvOARWjCNDF9OS9oFzJ1cak6NcG6gzTLpSBgkDc7A/jZq7EpRlwM1I/AVOqSyIAW2LhMQ7Srttrl21Yks4mQZ2Y3lu+Ol0tUi3ZN67T4TdXpaHjXRVN3AY0D6YdO19H93sS3Ea74tkUbPcSl8ttNvw3MU2cQqbD4JxH5Wf2lbwMHuk2c20TZRqLPJl/tB5QmL9vZri5SyB6K2Y4n5H97OTddRamkXxAP/QxwShzLnJzzLvjKbV/V2ZjvQtqKjphE2DQ2K8acsjg4goCBDSjcPqxXlKBJpDp635Cg0dZQH0hYZ+6SedEdI3O1WYCgr6W1L996HrDAtVTLk6QBL2L+GhxDXPrqnrcN6VS1OJ2CTnintpdvZOYox20XdmJv7aKkKnaz7aOUCwspeAgMEWLnri9hTcWswJbX6HByJe8chwJlwB0gRgtHY2wnlcUkFXurNq98VAq6xrtN8PepOqHz9JlNY6xlXX4w5PnCKrhlNXUH0vKJYUP7bqz+q/Sh5cb34cYFBZgdAjJrSlvYT19huFyw7mXGpI9P7L19oq0il9StM4J3WB0kOoy5rtTJk74brL2xxEzaqZPhblnzvWtsc+7jvYs0dXYt1oKAX/qrLN4PYMIdHlYvhh6zhubVcgvMBWYTfoa7Lw317EO9PiG1g== X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: fMOf+H62nyBJAdJsMCGBFjF12C0MP66N6wcM1XnFgcZ+IMe3RywLTAzYGFz2ToXK8E7ZpBxIfsPpVAYqSOOLm/Q/rgz7P52p0wp0YKfZVNCsJuOKH29jg+8N633fKgT1ym5Hw531ajDCZ3K6mtXyA+kqLjGCzszfboouYbtKW9fq5WFB1/hpHAjjXSPWH6mDSWZBMud9JkM0e0YZykVYXezuExKkW1LPFXwjhG9fzZfRrLPbJMZdSML5XzeztUv6VN6z8xgmiZ5jE1jJx0O6hD7Yuv8SnGROS6PnkyzDu4x1xB74ziVc7P+XjKTb9ag2c49vl90QtYEY4VffS2z8MDmk/kOI6gakQWQg7qNsU+85Uuo1x/12pVyCNHi7GrJI0i6SuRrGQ8RDWUaRRExPxgbIeulY8YEcGNjCtfxD9e+HsDZikJZgFa4b4BXvTrhquccvc5XsFvwdu1ACRtJnZOSS6hPJ+1S0AFDyVVxJ+gi//ADFOZY/E/aEmhUJmNkH+bvMto8BJPesm/1KvJw+4FlKAdXHdiTwYMNQcH3oV5Xb+lhnAxI1meu20DiUZtzM7lVjgqydcHmXyCVDXJLSwfUtYMaJLG8EkPxovZzcTSc= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 8025aa18-7e66-425d-436f-08dd42a6d8a5 X-MS-Exchange-CrossTenant-AuthSource: CH3PR10MB7329.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 01 Feb 2025 09:57:32.4810 (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: SYOrIKifDkOZEeQlrFdAVTv8I5Pub2heAuWEhuHnNT5dQreSBpvMhTWGPMNf0llO6npOTMJCEtnpMX2Kz6/cBfZYAQlCXAQ+NkkjZ+tolrk= X-MS-Exchange-Transport-CrossTenantHeadersStamped: CO1PR10MB4418 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1057,Hydra:6.0.680,FMLib:17.12.68.34 definitions=2025-02-01_04,2025-01-31_02,2024-11-22_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 mlxscore=0 spamscore=0 malwarescore=0 suspectscore=0 mlxlogscore=999 adultscore=0 bulkscore=0 phishscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2501170000 definitions=main-2502010085 X-Proofpoint-GUID: VaZMT_kxOODyQ7tnaWm3OIXGN_IPsxF3 X-Proofpoint-ORIG-GUID: VaZMT_kxOODyQ7tnaWm3OIXGN_IPsxF3 From: William Roche Repair poisoned memory location(s), calling ram_block_discard_range(): punching a hole in the backend file when necessary and regenerating a usable memory. If the kernel doesn't support the madvise calls used by this function and we are dealing with anonymous memory, fall back to remapping the location(s). Signed-off-by: William Roche Acked-by: David Hildenbrand --- system/physmem.c | 58 ++++++++++++++++++++++++++++++------------------ 1 file changed, 36 insertions(+), 22 deletions(-) diff --git a/system/physmem.c b/system/physmem.c index 3dd2adde73..e8ff930bc9 100644 --- a/system/physmem.c +++ b/system/physmem.c @@ -2167,6 +2167,23 @@ void qemu_ram_free(RAMBlock *block) } #ifndef _WIN32 +/* Simply remap the given VM memory location from start to start+length */ +static int qemu_ram_remap_mmap(RAMBlock *block, uint64_t start, size_t length) +{ + int flags, prot; + void *area; + void *host_startaddr = block->host + start; + + assert(block->fd < 0); + flags = MAP_FIXED | MAP_ANONYMOUS; + flags |= block->flags & RAM_SHARED ? MAP_SHARED : MAP_PRIVATE; + flags |= block->flags & RAM_NORESERVE ? MAP_NORESERVE : 0; + prot = PROT_READ; + prot |= block->flags & RAM_READONLY ? 0 : PROT_WRITE; + area = mmap(host_startaddr, length, prot, flags, -1, 0); + return area != host_startaddr ? -errno : 0; +} + /* * qemu_ram_remap - remap a single RAM page * @@ -2184,9 +2201,7 @@ void qemu_ram_remap(ram_addr_t addr) { RAMBlock *block; uint64_t offset; - int flags; - void *area, *vaddr; - int prot; + void *vaddr; size_t page_size; RAMBLOCK_FOREACH(block) { @@ -2201,25 +2216,24 @@ void qemu_ram_remap(ram_addr_t addr) ; } else if (xen_enabled()) { abort(); - } else { - flags = MAP_FIXED; - flags |= block->flags & RAM_SHARED ? - MAP_SHARED : MAP_PRIVATE; - flags |= block->flags & RAM_NORESERVE ? MAP_NORESERVE : 0; - prot = PROT_READ; - prot |= block->flags & RAM_READONLY ? 0 : PROT_WRITE; - if (block->fd >= 0) { - area = mmap(vaddr, page_size, prot, flags, block->fd, - offset + block->fd_offset); - } else { - flags |= MAP_ANONYMOUS; - area = mmap(vaddr, page_size, prot, flags, -1, 0); - } - if (area != vaddr) { - error_report("Could not remap RAM %s:%" PRIx64 "+%" PRIx64 - " +%zx", block->idstr, offset, - block->fd_offset, page_size); - exit(1); + if (ram_block_discard_range(block, offset, page_size) != 0) { + /* + * Fall back to using mmap() only for anonymous mapping, + * as if a backing file is associated we may not be able + * to recover the memory in all cases. + * So don't take the risk of using only mmap and fail now. + */ + if (block->fd >= 0) { + error_report("Could not remap RAM %s:%" PRIx64 "+%" + PRIx64 " +%zx", block->idstr, offset, + block->fd_offset, page_size); + exit(1); + } + if (qemu_ram_remap_mmap(block, offset, page_size) != 0) { + error_report("Could not remap RAM %s:%" PRIx64 " +%zx", + block->idstr, offset, page_size); + exit(1); + } } memory_try_enable_merging(vaddr, page_size); qemu_ram_setup_dump(vaddr, page_size); From patchwork Sat Feb 1 09:57:23 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: =?utf-8?q?=E2=80=9CWilliam_Roche?= X-Patchwork-Id: 13956152 Received: from mx0b-00069f02.pphosted.com (mx0b-00069f02.pphosted.com [205.220.177.32]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id BED8D2B9A9 for ; Sat, 1 Feb 2025 09:57:49 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=205.220.177.32 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1738403871; cv=fail; b=K/qPXrcVqPGeIzskfV6mgi0cMB2/rPyoXlRdejID3KKkClhGN9SGWikyGzLz516JqRdogAcfgSN5hCDDH6yAYNmw+ifYKPwwJRsdlhq0po+uGzJteGZNbMhzMThXQpO5tPIqb78JrVEfFnzTAAKYF6AcQqFusCY8DT66YegsulY= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1738403871; c=relaxed/simple; bh=L58q496luvmHNVBSaQEl04GAnUXNWUwwxhTs1orWQoY=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=oMbkxHEVO5z2sHSJfpVNju4iBTGp/fU3bsZSC8fGlTXzD9qeRp4qCNzfFKe6HmqsCbHcztGNasvVHV5xPAdsbjaEEZ0C98g5exwBB9DrUIIMIfLt8YuuGDeA2LBP2T1AqVy0P/68+zBlV78UfXbM8Tm6jnujkhmdxjpj/ZU46kI= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oracle.com; spf=pass smtp.mailfrom=oracle.com; dkim=pass (2048-bit key) header.d=oracle.com header.i=@oracle.com header.b=MtSyUtht; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b=MdXwa5y1; arc=fail smtp.client-ip=205.220.177.32 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oracle.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oracle.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=oracle.com header.i=@oracle.com header.b="MtSyUtht"; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b="MdXwa5y1" Received: from pps.filterd (m0246630.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 5119far2012494; Sat, 1 Feb 2025 09:57:37 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=cc :content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s= corp-2023-11-20; bh=tunOOa1ZpwSILBYIjJp42S90vtYmRyYVOmjGwUydsdY=; b= MtSyUtht8u8nJVOGToakkeIuUJGfgfdphTLp+yDSqo9pPUNu25n2KGwdJLFWimAG EQGqNOC6I6n/vxbjd3P/cit6y7ZiCcoIA2nZ63R1CGmiJoaqkNTpIh3DR7hPJUwN S9cCLY2IsyDu/g/1XKTAeXPzYbZTSLSvcffy2pE8v0dYzLeq9P7+VPvyeUG3udUf pFhxgZkCPaGBLvmLaPT/B3W1I8Ud2WgPevx0GC/dGimGgs05eqP8Oj/eLaV7yxRx fcS7o3aJ/ruk8e7i6sG07ThpNVBfPt8FzPny3TInG2HQ/AFuLkMlSHEwtoOfe24+ vDJd2deL8CHXJCHg01trJg== Received: from iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta02.appoci.oracle.com [147.154.18.20]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 44hh73g072-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Sat, 01 Feb 2025 09:57:37 +0000 (GMT) Received: from pps.filterd (iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com [127.0.0.1]) by iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com (8.18.1.2/8.18.1.2) with ESMTP id 5119XDCR033195; Sat, 1 Feb 2025 09:57:36 GMT Received: from nam04-dm6-obe.outbound.protection.outlook.com (mail-dm6nam04lp2041.outbound.protection.outlook.com [104.47.73.41]) by iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTPS id 44ha2byd9u-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Sat, 01 Feb 2025 09:57:36 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=hBeZxe4sUGHPOVpmJgSZngqP2zWpD30rn257paU+NbGsEuwIf1Dbbq0MxVzxdsmW7fNNV0OoXJ69EbOpFSbMrJqqyhWPCZoAtJC+63dSSsu7OQSxYeGSC2HDHLzqqmmUDkW8Elvo7Q7wY8N6g5CE+TzOk1906YLZCUFJe18TqLY97+hb0JSgKRa2O9V2FRUGdjl6t1cmYlXKVnmdLggvhP2oJhOEa+vbM7jYjl3bhk3x0gDGzwNPa1/RIGsq+otPf7XqToYoR8basLDLyciv0eE4bK2DTRVST3g8KPrW1nMQpLW1JQD5WrdgDn8UcWjo1gDURqWSYhjumyCr4wjm1w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; 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=tunOOa1ZpwSILBYIjJp42S90vtYmRyYVOmjGwUydsdY=; b=JYKi/MN9g0jYFZFDIHbd05Fiy4X8fRJ6Z5LSNZmKC7u9ruwuSE5Z9xqdLZinx86K1I3mAjpJ2eX1P4RbOIBSG3QVVPyI1RRUOE2syLxPFxXWU/zmTVFcAF4Q9DfjkmeLjUZaMnRjC51e1e5m1zs9vg8nqZRoPOlt38457Ow0e+h99c8UYdtsWjuHXGZbqCbuL7skWruYCIcYk4WWXo+zk+kQJEw4YPrQ31WSGjTxtvGmclfLgTYCzeKFCCPCazj0hgW5+LJtToprp/KA+veCRWYV4hh/OR3f1oGjbRW7lgL9VmJzttYat728StnvkFnWHzw1vs2h4IRyCUQ/vE/y2g== 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=tunOOa1ZpwSILBYIjJp42S90vtYmRyYVOmjGwUydsdY=; b=MdXwa5y185HydnA6+ZYOwphuwpxbjuxSuwSXXdl9Dapi7mOYjR4/EeycCdwcC7W7jIWcTJZlJILDD8gvQ6YYyKyXq8joIDt+u1cDV4XW9g/dZRTABp+Ll3KaXncLhsrnLmzh1PjKpa9xrwLNgJfhe1Mos/raEJgchJdLytidmk0= Received: from CH3PR10MB7329.namprd10.prod.outlook.com (2603:10b6:610:12c::16) by CO1PR10MB4418.namprd10.prod.outlook.com (2603:10b6:303:94::9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8398.22; Sat, 1 Feb 2025 09:57:34 +0000 Received: from CH3PR10MB7329.namprd10.prod.outlook.com ([fe80::f238:6143:104c:da23]) by CH3PR10MB7329.namprd10.prod.outlook.com ([fe80::f238:6143:104c:da23%6]) with mapi id 15.20.8398.018; Sat, 1 Feb 2025 09:57:34 +0000 From: =?utf-8?q?=E2=80=9CWilliam_Roche?= To: david@redhat.com, kvm@vger.kernel.org, qemu-devel@nongnu.org, qemu-arm@nongnu.org Cc: william.roche@oracle.com, peterx@redhat.com, pbonzini@redhat.com, richard.henderson@linaro.org, philmd@linaro.org, peter.maydell@linaro.org, mtosatti@redhat.com, imammedo@redhat.com, eduardo@habkost.net, marcel.apfelbaum@gmail.com, wangyanan55@huawei.com, zhao1.liu@intel.com, joao.m.martins@oracle.com Subject: [PATCH v7 3/6] accel/kvm: Report the loss of a large memory page Date: Sat, 1 Feb 2025 09:57:23 +0000 Message-ID: <20250201095726.3768796-4-william.roche@oracle.com> X-Mailer: git-send-email 2.43.5 In-Reply-To: <20250201095726.3768796-1-william.roche@oracle.com> References: <20250201095726.3768796-1-william.roche@oracle.com> X-ClientProxiedBy: BYAPR04CA0005.namprd04.prod.outlook.com (2603:10b6:a03:40::18) To CH3PR10MB7329.namprd10.prod.outlook.com (2603:10b6:610:12c::16) Precedence: bulk X-Mailing-List: kvm@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: CH3PR10MB7329:EE_|CO1PR10MB4418:EE_ X-MS-Office365-Filtering-Correlation-Id: 9b614496-231c-4f1e-6184-08dd42a6d9db X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|7416014|366016|1800799024; X-Microsoft-Antispam-Message-Info: 4Ze5Yse8LbepAe5WOm3zHt4viBcKqngGQwsaxn0R9FUFxPrPa7iTtn8sKAvTGpQ0KatfUXVaO9wUO9xtB2jL+lk7JAFyI9Vqs1t2n3Tdj9BwW6ZqitB4G+uYm4zZjOZUfwAp0z4zlSBoVuX9ppdLUl8Qz3ccDp5wSvlih0/pOZlWC6k2bahQjS9zFOoM3pF2cnNiDBB6q4zDlrjnkonUX+yJxTBu/EGkUydzJghGtABMmfk8UyUW0Dh3QqUb9a8zg1yvM6dafC6Nif7ZiLxSESL/vY9EarAQnBRRWxUDNJl11lp2FMQcGMOYo+OJ9zEqYe5t4ox6AV2Ni0UmjBoe2OwAoNKBsVmfh1z7MKrx9WucqZ5X4nmJhtV5wWpsKMR9sonJZk9YI7Ipr8kWSZNFKVk41jmiAzDzATMlDDUTF1udsZFWTzCRNohnHD6RgzRmnvl6TxUswp+nZgkuL7GDDVg/FcT3u/dzmz0+j9ydrWWe69PM1RawQWiwbgDn2f9RI23B+EAyuSPoep5MInsiiZ2GJs2z1jg74Yi8Tf3Bn1GZIlathH+5FLuED+lFCp1klrPVKf9b1xIOSBI5a1tzelSIAaDdrfEC1JxFeacr9RvqWp/LbCe+69gwtNLg4JJTFhtFMmnf1XDgSp1CASu1PK+5EDSIHklnbGUv948BTPzuwHJHIgQ1CXULD1l5K9rSUc5f0O0JtT0yakJWYe3svCAbQzI3FKwmbopoQ5EeRUhGJYZhZE5nWM/lBvOVr9MW9v5Vt0dMfiG2sXXr1vp+r65SVhBM2kHVLiwXayMeshLGNpvawL7c4inbq5DM7v2vuWh8SJd21W+9EgvYUBe8hsizr7mNyXs9u4dwR/XyDDV2pTDjMIszPX8UEFrWQdry3IH2cLeECRIiawy6nfjw5DP0WvttlljH15cp8rJNnhxNL/y0h5QqGZGc/QK9r5A2d2IW/23in5er+MMVdN4u8dFgoZO9yeOCQDl6IeeDDVkzP+8jw1ANC07HgIEddJcTVg/ckQXP9greOTaHmQrFUy8yj/nx/fniXsPf6SrqX32XSgLLJCpYIJ9X4P9tVHvNi2W6NbaXF/fFfxSAdko2iVtMLvlSzJsq9O6tiRqzSHEx41CTDcgkM9TPBcwGivtvAGq7Ay5b4yuG6ZUJ+ijBJkTKOt+Fj2IO6fNUK0Z5ZTYOszrV90pIavFEjw0DNxs6XxAukmQSXjCXldNjE59q7OYzayMFZ7cOphcehFqBnXSTQPxiEaP3VhKaBRHvyz6qPrle76H923EnrLcBlFQ4SauKUlu29PHKujs/AR0oGwMUT9kRH2w1PcPGM4YZyby6Z7ks1sLcaupaSDd/mmLYaj1+L0x1mJGkTqom1i8DkixUwcwmkRJ/FTD2gPkFTlWO X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH3PR10MB7329.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(7416014)(366016)(1800799024);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: Q6M8vzmBYI/DS8OzBi9OrPyFLDVOsEQ82wlUqpFFLElg6bsRqUmgfI8Xho98iJ9ugdaJEI/jqhX7acNl8i6JpwksfYpMACrF5eGW4Pv3IVF6ZNn0FGH7+q4soEZV6CPMQpIYHj5fDa038mhhC+2isBPGrTKvcAlAnJWCyNxLvl6hWtodotyEi2o/GUPINEKfupuG/cfctD4hKWEm+FcztSyq8uJdkFxhWPZsAkKb5nMZim7YcWnzDQBIpijp3M5FJqGZZpDxfa1vwwRBVW+yLLJZHfDZzCKzWldsPCGKYqMsNXkVg+fjvbtuO8rK4T+s8zcVzdkSii5M85UY6O/ufj6k2vQQD3k9Z+9sr94axo6NB9W9EUxhBhDf8G38aN8Yz0UF01bfxc/mwHylQstZ6F7EQf3oaIZ5Q53FCLpvlWblk78/DnBFqPdm3oftKCTEM5Xok9uhX39zC7Vyy07CUKyiRWK4/fa48f8A7p5ey0yA7mZiE1rnmOeKrkIZCjPoTiHlWihIYzyXzWkF0ItyW1unmrJCISu+h3RKektJjEbB2bSRLafbYxauZaSF9X9Gt6uHqxkwAmsky0mRwdR6iwXXN5j2z4viTaeTHXB0Iu7MYd9GxE245UQyUzrPkHMhdchSoCAObuSnEO/+kQO5+Jjev7lRbkBVdIYOKepQarp8dm4NWF81kE6oXFLS/6P6/dH7nBR+2XP46tcCc+SHKSgSp3mSHVnWwxnvstXV1ysGwOvMxjO2HO1erhkgA02uaqs6w+t+Nbf8ampF6CLHM+jEqVBrHOZIACRz5uQAMCGTpjrvBWGVlIetakAjltPwjc4u2IhLLtf0QmnrhQJyRjZq0AG0ehYp9wGM5BP/5W30ZDOBCmOToQJ0c0ij3TK0Svyz+4z5ErauuNx5BTR1hq9RxYGrit9OM3/U6weaTH6mKnGrJqe/GVhiTdTwJAjYRmDyVchnrcl1PlcIXztIcQIXKCn5XNzGvw+pjPuNJoAibweRfl4WUnn7cUO+sXlB+4OpgyK0LFYIRQNI+AScP45GGcFgBVOJGp2zVTIrjeUV7HlHjhhLF8PX+GEYudUZyDEYwJ0l+yuCFsUtiWvzz7svfnb83slJmoFbWBRP0ZOgS/LEyNEDn13lKzHRIu2l7zIP8eaAIXlYJdfkwV8vUJkg3nFF5K2bt3OeM2Y9T+9tv5d1PDSqm0T5P3tiymCUz8K52xn9pThKh6ADpBXuueiCSdXOPW9Pc64RzcxUAk6QYpOw3J6QaBfgmSiZQxPNJo/44SdtdFWM3SnIzxe9MUqPP8wa8xiHezWKD3GUaQ6TF4GpIPtxKpEPe6MGLVyK7a6uOZnBuHAvSc708O3ZER/ogPYmzyuBGUjJIcCnPYa1qlBYbNz8xoyOLAkk2uwf640LpZScwZV/v3SUKqbkQoYF4zxmCPWtnEkxUPXcn/2AG1YNl4X3JQlPLSlKg1bWt647H6iD/LwaVkVWZ92uDAnMuwYkXAjM6Y/JD036/ZA3JFmDBBHmtmdqClX9ngD9rZZ8pLdgc3oys4ESkAbHS8uYuIEI+nHfvfch1cMl9FrpT193WVFIAmuQDnscveSNdi7SjDdgz1DAKPFdn4dclg== X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: 6D6DbDN+6JAkmzxplKH3gTiPkHWl2tHw6trUuJuVNYFnCo/Ih+ArMH0QUgi1G3wl+yE/5QrmhdL9vWUD7OlaiHkZVz1EitWQQMaV2mPLTW3Cka8v7PsuxyVJjjZQ2+uBM+b5xqYd5KV1cIT9ImcYrgrNnQR6eRnaYtrKvWmnjITYMwsF0cLwlL9vlvztf6/BOYFEZwq8LQd8W6HPlun2UFKHqXagNyaIVqmhkE6Tbbe30uluyP6PyVNJtkorsW4miGYyRV3wibZaHfBHqPOmTTnLSey45GUTN43DeFDfxQ/orNGdJshDNPass/unuJCiWCITxT3ehplH/O5IY5Ap6nyKBFx5QUXwzMrxBS3j++xkeK1BhBcWUt3/+1lPr3k/y+K5VGctI2K83xDJi2WPJhVTB1Y6ZybCnQR2wrbYNoYir0zNS9eWFeRbthBJGA9hg6fJOS8cjMTY3Jkuq1aWehJhRBOoFr8oa29GE/JHkxiK4ZCSjNNmnKTnGupYpoWpLsrYRzsa2b52m3JA/rtjuu0+5BTYc/8HQjSpo3eTuurmkfJ5DGvcQXz3627QwCsDql/xFgu871xIxqy6Ul71H39XEdXYcuXSMpBoRwnn8W4= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 9b614496-231c-4f1e-6184-08dd42a6d9db X-MS-Exchange-CrossTenant-AuthSource: CH3PR10MB7329.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 01 Feb 2025 09:57:34.4589 (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: dvn3dLh8h2qFaq7AlZ7GPDEvExgUH1LTNHIALrbV+qEVSHVuZVJYO6HbcghdqJnrt7MX8z7c2zyo3cZBvneQ7smZOzrAWaKPz+VS5/3w8mc= X-MS-Exchange-Transport-CrossTenantHeadersStamped: CO1PR10MB4418 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1057,Hydra:6.0.680,FMLib:17.12.68.34 definitions=2025-02-01_04,2025-01-31_02,2024-11-22_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 mlxscore=0 bulkscore=0 adultscore=0 malwarescore=0 mlxlogscore=999 spamscore=0 phishscore=0 suspectscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2501170000 definitions=main-2502010085 X-Proofpoint-ORIG-GUID: fKtpGoi5UVfxK2vd9Rx-SMCxN2COAv5h X-Proofpoint-GUID: fKtpGoi5UVfxK2vd9Rx-SMCxN2COAv5h From: William Roche In case of a large page impacted by a memory error, provide an information about the impacted large page before the memory error injection message. This message would also appear on ras enabled ARM platforms, with the introduction of an x86 similar error injection message. In the case of a large page impacted, we now report: Memory Error on large page from :
+ + The + information is only provided with a file backend. Signed-off-by: William Roche --- accel/kvm/kvm-all.c | 18 ++++++++++++++++++ include/exec/cpu-common.h | 10 ++++++++++ system/physmem.c | 22 ++++++++++++++++++++++ target/arm/kvm.c | 3 +++ 4 files changed, 53 insertions(+) diff --git a/accel/kvm/kvm-all.c b/accel/kvm/kvm-all.c index f89568bfa3..9a0d970ce1 100644 --- a/accel/kvm/kvm-all.c +++ b/accel/kvm/kvm-all.c @@ -1296,6 +1296,24 @@ static void kvm_unpoison_all(void *param) void kvm_hwpoison_page_add(ram_addr_t ram_addr) { HWPoisonPage *page; + struct RAMBlockInfo rb_info; + + if (qemu_ram_block_info_from_addr(ram_addr, &rb_info)) { + size_t ps = rb_info.page_size; + + if (ps > TARGET_PAGE_SIZE) { + uint64_t offset = QEMU_ALIGN_DOWN(ram_addr - rb_info.offset, ps); + + if (rb_info.fd >= 0) { + error_report("Memory Error on large page from %s:%" PRIx64 + "+%" PRIx64 " +%zx", rb_info.idstr, offset, + rb_info.fd_offset, ps); + } else { + error_report("Memory Error on large page from %s:%" PRIx64 + " +%zx", rb_info.idstr, offset, ps); + } + } + } QLIST_FOREACH(page, &hwpoison_page_list, list) { if (page->ram_addr == ram_addr) { diff --git a/include/exec/cpu-common.h b/include/exec/cpu-common.h index 3771b2130c..190bd4f34a 100644 --- a/include/exec/cpu-common.h +++ b/include/exec/cpu-common.h @@ -110,6 +110,16 @@ int qemu_ram_get_fd(RAMBlock *rb); size_t qemu_ram_pagesize(RAMBlock *block); size_t qemu_ram_pagesize_largest(void); +struct RAMBlockInfo { + char idstr[256]; + ram_addr_t offset; + int fd; + uint64_t fd_offset; + size_t page_size; +}; +bool qemu_ram_block_info_from_addr(ram_addr_t ram_addr, + struct RAMBlockInfo *block); + /** * cpu_address_space_init: * @cpu: CPU to add this address space to diff --git a/system/physmem.c b/system/physmem.c index e8ff930bc9..686f569270 100644 --- a/system/physmem.c +++ b/system/physmem.c @@ -1678,6 +1678,28 @@ size_t qemu_ram_pagesize_largest(void) return largest; } +/* Copy RAMBlock information associated to the given ram_addr location */ +bool qemu_ram_block_info_from_addr(ram_addr_t ram_addr, + struct RAMBlockInfo *b_info) +{ + RAMBlock *rb; + + assert(b_info); + + RCU_READ_LOCK_GUARD(); + rb = qemu_get_ram_block(ram_addr); + if (!rb) { + return false; + } + + pstrcat(b_info->idstr, sizeof(b_info->idstr), rb->idstr); + b_info->offset = rb->offset; + b_info->fd = rb->fd; + b_info->fd_offset = rb->fd_offset; + b_info->page_size = rb->page_size; + return true; +} + static int memory_try_enable_merging(void *addr, size_t len) { if (!machine_mem_merge(current_machine)) { diff --git a/target/arm/kvm.c b/target/arm/kvm.c index da30bdbb23..d9dedc6d74 100644 --- a/target/arm/kvm.c +++ b/target/arm/kvm.c @@ -2389,6 +2389,9 @@ void kvm_arch_on_sigbus_vcpu(CPUState *c, int code, void *addr) kvm_cpu_synchronize_state(c); if (!acpi_ghes_memory_errors(ACPI_HEST_SRC_ID_SEA, paddr)) { kvm_inject_arm_sea(c); + error_report("Guest Memory Error at QEMU addr %p and " + "GUEST addr 0x%" HWADDR_PRIx " of type %s injected", + addr, paddr, "BUS_MCEERR_AR"); } else { error_report("failed to record the error"); abort(); From patchwork Sat Feb 1 09:57:24 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: =?utf-8?q?=E2=80=9CWilliam_Roche?= X-Patchwork-Id: 13956154 Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com [205.220.165.32]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 0A17614B955 for ; Sat, 1 Feb 2025 09:57:52 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=205.220.165.32 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1738403874; cv=fail; b=rzkbpN7O7UVqnmux4ByhqHW0f44iIUvPgDC+tv8wnbW0VE338UMGYf+mC8MZA8VDyPJ3I67O/rdTwnHiuktRQLwV1uJ/1fEnXZJBaPiPXEd5og9WPJ9O6K2kh5vvOm2gTuJc7rLK6/DX/rNATzQLUmjEpK1JcyWTWk774gfn/cI= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1738403874; c=relaxed/simple; bh=aNpMRJXKk9OOaRmpKqDRJVViqHNAHiMQghk6Jk6Ybh4=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=G8JFGE8colH43e1RLQGl84UGOcaiopK1/zfBmCER2MvsZTvbU6ZjXbMx7yXcIZ7yVbU5UCicC7zoswTDjbkqyNA8+D6rc6eyoBn3u0i6zooeIWviN6M5GfeyafVQrYiuh34P0b9IwPGhFwJrOVsaby0rSMBJ0cIRwVgKMYNNpXc= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oracle.com; spf=pass smtp.mailfrom=oracle.com; dkim=pass (2048-bit key) header.d=oracle.com header.i=@oracle.com header.b=Esln1uN/; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b=hTO6Q2hP; arc=fail smtp.client-ip=205.220.165.32 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oracle.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oracle.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=oracle.com header.i=@oracle.com header.b="Esln1uN/"; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b="hTO6Q2hP" Received: from pps.filterd (m0333521.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 5117xBvm013353; Sat, 1 Feb 2025 09:57:39 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=cc :content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s= corp-2023-11-20; bh=pk7S/ScHV2AT2dYzrlTNrkYTrifwfWjTdDPpGOZrxIw=; b= Esln1uN/LnwhEUhbh4I6vHOu7oVZQBKA2L2NMme5BkaDRuzSf4CjJ3/uyoqaQd91 cicunLfwtfBQ6wLpa9oEiCwISuBTPUVYf+qoPMGcjzvcu3dhoYUXOmGL6FrVwKjz 2ZzsREZd/pL0YZryNhzNGNoQ2unLj/mFMeLjvE25oDkZIhPJukLu2QQE/ETPNtn6 xqqrZYz4yQHAzTKA58ISXVBhKsgJAPWiRocAx3mP7rzJz6nTcLPD1o4YnYu+SPoe i1fxbltsf9Cjm/yCHBjMudETaQf31vLBmy+0Yvr86Pr8AvTwlZ+K8mOumsBxdnQZ nMPikXVBtAe23jSJub7BdA== Received: from phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta03.appoci.oracle.com [138.1.37.129]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 44hfcgr3bf-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Sat, 01 Feb 2025 09:57:39 +0000 (GMT) Received: from pps.filterd (phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com [127.0.0.1]) by phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com (8.18.1.2/8.18.1.2) with ESMTP id 5119IYWD008868; Sat, 1 Feb 2025 09:57:38 GMT Received: from nam04-mw2-obe.outbound.protection.outlook.com (mail-mw2nam04lp2174.outbound.protection.outlook.com [104.47.73.174]) by phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id 44ha25fbp3-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Sat, 01 Feb 2025 09:57:38 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=fUVbV5l0hMYEzYsgROq3AlUHOVK9el6giPcf9OXp3iAmhh4AAnSgK9ggEdMhszLuotmpxAgscIieqLje3q/pL4/ve9ISP0daIVIzDgBk3+MwDt3BZhF6Knb2TvsD0RXM9bF0vRxNTNZ672rkzZGntz1b8xekgMaAvLUzIeFbY45BQKaNTIMUAbNM/fnTMXDd8rDGkJsWPtceR196wF0Nj+zkZf67xtti38unfXUjEUOfpTsiPWJrMMtXj1767sLRdcvU61FiMuJFcB6XTID8F9GetO4XAuZZzdwkD3DD6t0TlWBJXKhjjIEAs/Dr5xiXlsbv/pVcsVqJa/LOM5I49A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; 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=pk7S/ScHV2AT2dYzrlTNrkYTrifwfWjTdDPpGOZrxIw=; b=g9IFghda+EHs7NsZlyCdlJoGRJYzRBx665wojpT5QsWVX3NEvs3NivaQ6vwQ6sqmrg/rq4wCGvDa9kW0neDSiMQWjzFxYj8Wc4UXV+ZH0TE4YL9Uq6X3/5UVKLKQstYyegUDBSXipV9ywKBZClgFX/Kpl4OzDkXhUvgs1fYaBQrAlPYlpIQ6bUjMbw2kWryBib18yjxwUqDjrB5wPJyfUSuR8jDzNdMhqk/qshym7eBlJyQ0dDMWfZCdIRWpVD1pF47C+SCfwjgLRUh7Vxvnkiqxstq3Ywez3S2ZxwnwqTQn317t+7ri3LCRr1dIweovWi3p7EwaJC666gA8qJZa5A== 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=pk7S/ScHV2AT2dYzrlTNrkYTrifwfWjTdDPpGOZrxIw=; b=hTO6Q2hPuBcnU4KYV9dStZX24YuxTL6oRl52X/SEML1CfgaFbmG3Z7MuSQIfjVVKQo1BdcmQJFHSeeueFdEhlNlLB+I/kIY0d4InZYXpYOsE7O+PNhJ/Oa4wU9D/GBfsNDkWuB1IrkP7u8aHy9eplCvIaS7tWlyKlEt5vQBhlIg= Received: from CH3PR10MB7329.namprd10.prod.outlook.com (2603:10b6:610:12c::16) by CO1PR10MB4418.namprd10.prod.outlook.com (2603:10b6:303:94::9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8398.22; Sat, 1 Feb 2025 09:57:36 +0000 Received: from CH3PR10MB7329.namprd10.prod.outlook.com ([fe80::f238:6143:104c:da23]) by CH3PR10MB7329.namprd10.prod.outlook.com ([fe80::f238:6143:104c:da23%6]) with mapi id 15.20.8398.018; Sat, 1 Feb 2025 09:57:36 +0000 From: =?utf-8?q?=E2=80=9CWilliam_Roche?= To: david@redhat.com, kvm@vger.kernel.org, qemu-devel@nongnu.org, qemu-arm@nongnu.org Cc: william.roche@oracle.com, peterx@redhat.com, pbonzini@redhat.com, richard.henderson@linaro.org, philmd@linaro.org, peter.maydell@linaro.org, mtosatti@redhat.com, imammedo@redhat.com, eduardo@habkost.net, marcel.apfelbaum@gmail.com, wangyanan55@huawei.com, zhao1.liu@intel.com, joao.m.martins@oracle.com Subject: [PATCH v7 4/6] numa: Introduce and use ram_block_notify_remap() Date: Sat, 1 Feb 2025 09:57:24 +0000 Message-ID: <20250201095726.3768796-5-william.roche@oracle.com> X-Mailer: git-send-email 2.43.5 In-Reply-To: <20250201095726.3768796-1-william.roche@oracle.com> References: <20250201095726.3768796-1-william.roche@oracle.com> X-ClientProxiedBy: BYAPR04CA0032.namprd04.prod.outlook.com (2603:10b6:a03:40::45) To CH3PR10MB7329.namprd10.prod.outlook.com (2603:10b6:610:12c::16) Precedence: bulk X-Mailing-List: kvm@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: CH3PR10MB7329:EE_|CO1PR10MB4418:EE_ X-MS-Office365-Filtering-Correlation-Id: 87b309e2-9b31-4a17-09f4-08dd42a6db2f X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|7416014|366016|1800799024|7053199007; X-Microsoft-Antispam-Message-Info: vl66heHXIuaBP6dmMTJceTl7AVjS+FOhkAMPIv3vfcXw0fO9h3xpI4HSDM07B0lts4UfakUSIZtICjvgbCTX3BPeuUfD3ZgF1GOHyFJkirOcdsCX1usI6fCaLatDKUD2NKH1CG5zGpqpfjfuIAAYcNT6n9WLmNjf53LbQAngwXSg6JuoIv+/5M7kUW1WUAoNCwFaxidwXneRW0KjoMr+JhEIL1Jx1XklB0xk+069C2SWrf6o9Pg22eqbHBdq2YVoDadRROUwlY3dYMkEi3XdaFwUGl4FlWiWsxYnK+wrpo1bd+bSgnvgGLetlVqmQhOT89UmAR9ctoZQVArgHNoLYNAmzp9lu7mu+AVG+/B9iJDD8v2iB+0o2MCU+NzO64StgnmOTqO9eUDtLIfmI8U2ggWN7f4+MZY7Gwd8qjVd/35Q8mN47feYxI4jE2F1hHRTchzjfLYR8xhOib02ubclmaYsAgbow3qq5z6zgEDMhnHQw9CMc5NEdqB3XuVU+iyIMlJpC+1EBkb/J8ifSAYqdeNQ4Edy+oucHOsM1YtaFgCaQ/dGDc1JlvEO765JRJyHByo89MFFA27qkkulDWqgxwU0aMGIG5i+Bc1suhxIgTOupBa598NGZi2kIz3nZkVCE+Ewlrjf5yuzNcmmNMxyuZMk/W6nViYNUTn2bmraG/n12d4BbX/2uyLiXFIdzp6wM8b4xhAh4hFA39kJIERQ1UdBL6mZ6meZpDFE9mpyEyzSCsxPFYKOmSvKeW8QpJJhIhGlUYaVtDD6BT1e+9w9zP2Gx9d+6FdvWRs1adP/EWcVKHwkGuAWmurcuEWmOV7OpQj76KJHA4MRJ93kby/+ZD7raGz/ajE501Mpkxr21P3wLJCCbYcbF2+ymqx1W/uG4aVQn/emuFPI5757J80eKa+/y5+P/0UbPTPx7UhPeIL28zOVDdWuO4GCS0Ftl0mEQ5YRV0Z+U/ppDKK6CTwvXq2ruNDIZt+B4OQO6p2R4sX9owNNnr4onjfin3+w3B0fhxh+QhTULgq4dM59iG9p7LklIvhb6BPgDl8k2v+P7/jUom0LLXPbZ4JV1zl0YTHVy73J+FfM7iBtrw+6CvvDl+zkyRYyyoeTBDRbiHSs1d9bKon0rlHtCjM3+L3/iftEQ4dFB2SMsGzfrCMZDoj2a88mwzeb6W+X79cTYqIMflQjjYv0Hec53cJijuExHpWvaPwOJRsaPN94QKAO0mMCg1Lu9weHaDlYg9DyZ2i+9KaASA3nWItKNaZXb1/POrrsCxoyiyxTckSR+E7SP+Ww/+ILRMbL50ByDtCSzHf00pZuRGNL5lydspOxPdcnH6VXAR5/wsL5YQ5zESWOB1uwME5yMqynxUcYtpRayPdQxeRhWuocbWxM0BtjFsrsXM4P X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH3PR10MB7329.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(7416014)(366016)(1800799024)(7053199007);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: RKL64lHm2jMG+o4EutE6jTrCZU59HVlbZFtAtNodQO1wcwvodo94uWnFV4IUrHRJIN/NKLE4UV0kdpp2S0k3KisyYVE6NxmaxahBS1yBcxidr2F6A9Cwzo1TF1zYoNGcuZL0OIdAYB24RPa0r0b39JrNA+SPsb7BADd1h5HQFVUBRFYAwreFXDjzsCsGsLcYJZFiMRmgr6QYVJMo4oHAJr7NSZs/cTK+ZmBePxkKFG13JWDD8lJyVzOUeaG3RlXq/eMatUrK4A7shSHF7y17r35SZOfbwdIf0ryp/8xRfmZ0JEDQjga7gIgQEpIdNbt9yLGKlY7AOD9aZYqGHJ/p3B+B4/Si6/tpEIQWHkzjWGykaKDDaOAXpgYZEZJgAtOKUisM+7jQejF8rMgVtEYRwQHNS3w+78vCBjbZdfcVm+kplm6pgIUQoqHFyZ48K/kRrt9iFAz/iNNS8JrtJdJfa18/mzMpqTZQZVrpJLorRvTCT0dYSXQCoTM0cYLv5ud8+LRfjWhNsf8IhOglvEhpoRswoScEXj1wG43c8twnRagjgMX8rymWw3S5NaGPV9IZyPHw2/P3iEI6hq4Hl8nqmxZdwUYFCUkYrNEOBTRAWUfoLyQNx5BSPUFwijN0NwIGbdQFmc++Z/adMV+0l5zXUHpIxej1vw0hBZ3ZWE2MYQH7U5YEzhQxQ3MShgl3WvQdz+Y9qu49b3toeqEU6hEeR0punlKWWusAOkSAX4GyCTNh+z/nHb+z/gsMPUjtZyKU6xSLbK4S58+3dofOVLrgZjWeDjqXjQXv3Cfcs9rDQB5SqQw6ei+N5UC88cU5jc2veYpwjgXbk3yXKldRJ4QKJeIOuSxt3IKo5YLqnP0BHAS+nCQ3zG7MDFlGQfufU144Ym1py2ZJ+KYo/t+bUWCgTLl4/Ct+G7fqs1PctC3IdmnLtmMr1OiGbakBE6hzHkYMA/SWhMsAfFkCW5+rQ43p1mypYgC54qAQtcm17paWHAlBBtbcak4cbR+AebVO3z6ixotaxMlrJeFxd0du3+GxDvYr2RaNX6WJL4n9O93GRzwf0+WN3SX2gn+2UghT0O5tzqtNcxjc779rM0PklinRYRkD833fwOQtePCzZibezfaGRSWSoIIDUgD/z/7vutAv612xeprcBF1jxA74wI+h61FEvQHqLEed3LqDCpfin5OQyunMRSzd4A+636jRLGfbGtzqnpOCUe6sGmNq5VD4k3Mdk+IUPPxLhnEle9vrctzDs8Gz4Uit1Z6nq6mtKZlFL0PofjEhVbv7M8guadBq7m0UtDMHctFpg3Zz68hvgxIKaMzUxDAptM4SpTt6tYMX6sCoQLOL31/6r571oaMIOWQn67zTVPgkvN/BFohk2J5x9zW44nFd++vtRoigzP08rWtc1mGWU/xeAi2gfoLMPD9oiL2xj0dny10v4PpSQDArLtiFSdiEBJwMuX957YPujj8VFUT/Jpr0+z1UdPUDd9IOa7RBGruV89sVlW1btrCLw0e1JBtgh6+isI8a+chd8+dn9OGM9UKuApZQdG1TWvW7okMk2yePNmH1ceY/Kz+aOiKsZag9KrnYAJdR8sdFxv6DaD1/zg4YAdtmjluAAg== X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: sw46fpPt9T1cV5LnghT4OvivnLqaT248Jt24hFB5IiW33fHRzXHHoyIwLXyklr8L15NS00kYvhUSVLmd1kKJAzd9b++jpvSInPecYivcQYpesZZj/UXR8NIHD35uXxHU4V5mIg+u9omEtXBOD1n8DYCejbfuSBQfYbFrhpUW5Y2d6iA48CL2RFWGdY5qQP0bAqo29WPpKHWb0GBZMnffV1o/+Iia174SKotTE/uO0xUKDYg4lNd0DV7OZaIEIKzLsC/dcVGQZ2iie5bz+AormYNpWyjbHc3KaetloDAP1/YqZl/JYrXmNcope8P+ga/q9/5bgc0AlS2k5ATQDh9iQF93a/I0eFj31bhNaFiK/ojyw5Ng31UxHG6hwZ1Xhd47h7Zn8L31esv5DS2SYh9BcpYg+20dE6ZoqjNWOGhpHD3yG0Qn7EdWvBvL5v/ByZpCy36AMdkMDg2cWBOLexBpvn2bT7lBS7QJ6xXL0WqYNnnl8o3R9fPXn+zQqkJeCbeqFY0NFN7R6p9/TyUhmVTMojXjNlV8cHLL1aIGjsDZNZ7AC4xutLLcFfb2fdmhI5GXY20SGsix4nFhGQoxiSmuowxgsZDTLoLOO9Ry04V+Bq8= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 87b309e2-9b31-4a17-09f4-08dd42a6db2f X-MS-Exchange-CrossTenant-AuthSource: CH3PR10MB7329.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 01 Feb 2025 09:57:36.6943 (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: 9R2162I92m9uwu6BPM0ZVgYxksTgVMWw7q9rkiqMrRt62o7H0nWrIc8tAV2OhQ9uU0mj7Pc6VMYmKeJEbzmLJe8/tcz6nxrem/4qj/XCM2A= X-MS-Exchange-Transport-CrossTenantHeadersStamped: CO1PR10MB4418 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1057,Hydra:6.0.680,FMLib:17.12.68.34 definitions=2025-02-01_04,2025-01-31_02,2024-11-22_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 malwarescore=0 mlxlogscore=999 mlxscore=0 phishscore=0 spamscore=0 adultscore=0 suspectscore=0 bulkscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2501170000 definitions=main-2502010085 X-Proofpoint-GUID: 7NhOsCMUCihelqK-xg0J1ZmkvMMkjnNh X-Proofpoint-ORIG-GUID: 7NhOsCMUCihelqK-xg0J1ZmkvMMkjnNh From: David Hildenbrand Notify registered listeners about the remap at the end of qemu_ram_remap() so e.g., a memory backend can re-apply its settings correctly. Signed-off-by: David Hildenbrand Signed-off-by: William Roche --- hw/core/numa.c | 11 +++++++++++ include/exec/ramlist.h | 3 +++ system/physmem.c | 1 + 3 files changed, 15 insertions(+) diff --git a/hw/core/numa.c b/hw/core/numa.c index 218576f745..003bcd8a66 100644 --- a/hw/core/numa.c +++ b/hw/core/numa.c @@ -895,3 +895,14 @@ void ram_block_notify_resize(void *host, size_t old_size, size_t new_size) } } } + +void ram_block_notify_remap(void *host, size_t offset, size_t size) +{ + RAMBlockNotifier *notifier; + + QLIST_FOREACH(notifier, &ram_list.ramblock_notifiers, next) { + if (notifier->ram_block_remapped) { + notifier->ram_block_remapped(notifier, host, offset, size); + } + } +} diff --git a/include/exec/ramlist.h b/include/exec/ramlist.h index d9cfe530be..c1dc785a57 100644 --- a/include/exec/ramlist.h +++ b/include/exec/ramlist.h @@ -72,6 +72,8 @@ struct RAMBlockNotifier { size_t max_size); void (*ram_block_resized)(RAMBlockNotifier *n, void *host, size_t old_size, size_t new_size); + void (*ram_block_remapped)(RAMBlockNotifier *n, void *host, size_t offset, + size_t size); QLIST_ENTRY(RAMBlockNotifier) next; }; @@ -80,6 +82,7 @@ void ram_block_notifier_remove(RAMBlockNotifier *n); void ram_block_notify_add(void *host, size_t size, size_t max_size); void ram_block_notify_remove(void *host, size_t size, size_t max_size); void ram_block_notify_resize(void *host, size_t old_size, size_t new_size); +void ram_block_notify_remap(void *host, size_t offset, size_t size); GString *ram_block_format(void); diff --git a/system/physmem.c b/system/physmem.c index 686f569270..561b2c38c0 100644 --- a/system/physmem.c +++ b/system/physmem.c @@ -2259,6 +2259,7 @@ void qemu_ram_remap(ram_addr_t addr) } memory_try_enable_merging(vaddr, page_size); qemu_ram_setup_dump(vaddr, page_size); + ram_block_notify_remap(block->host, offset, page_size); } break; From patchwork Sat Feb 1 09:57:25 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: =?utf-8?q?=E2=80=9CWilliam_Roche?= X-Patchwork-Id: 13956155 Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com [205.220.165.32]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 65B1E14F9ED for ; Sat, 1 Feb 2025 09:57:53 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=205.220.165.32 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1738403877; cv=fail; b=XiEJzaHIv+B2jC+p0SgKBcpEiE2AyyhP+O3YHc2ZoFm/3mxEH6oG+M+AsRH/QX0Yi+J04ow+kBLMScV+SySLOeJmlZ6OBbeznDez/tRiwwmUDuuMIUc4EIbuA5sz8Wzr1gDE4R5b0I9dc0qo+mS2f5vdvqycgPFF+or94WvEWCI= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1738403877; c=relaxed/simple; bh=Wa17K96WHsG+UwDL7GtcB408PTs+VpOZQSc9ceuddZo=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=IKPOYoBHE2XmI5kRCH4NNIdbwvDkxMnQXN1zOkfDhsE6R7pTgCKm9DpkbAKA2zCm5pUs80j51T2ikb0L39qcXTyd1QCV/Det+ed9piay3SllZYjOVZ3TycQxD2sqM/yX+YqFo/jjO/75APS4uyFDDK2uE9nJm1vPao2zvH1oaM4= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oracle.com; spf=pass smtp.mailfrom=oracle.com; dkim=pass (2048-bit key) header.d=oracle.com header.i=@oracle.com header.b=n6oyEBGT; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b=CzvZGd5R; arc=fail smtp.client-ip=205.220.165.32 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oracle.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oracle.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=oracle.com header.i=@oracle.com header.b="n6oyEBGT"; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b="CzvZGd5R" Received: from pps.filterd (m0333521.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 5117rLps005614; Sat, 1 Feb 2025 09:57:42 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=cc :content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s= corp-2023-11-20; bh=K+SxdrdX1InTxo5zQE56qa247cTBfeTJ3jhGnfvxBow=; b= n6oyEBGTYBDyicnhuIC5ljE04ZbyXK27z9XwBdsBKta47VODCUOknsCOFM0dXq3l efon7rf6UONMm2hR2EKzTGRF3fS7eRknl9NNnaYL6cnO6QXzC41TC/Csw2YjXQGt WMcgao4N6BuHZREL3NVRTfqOVwYUhQ/LN9LegvAk1QN0yeqYR5VQOouLTgpKovVj stcB9AQAw3oTD+n1uXL2itp6Q9z33YDwmkRFXmUmlGYQ/Lvymxxn8HxYAdrVh6do 6uC/2wpNtJv26SVHTQDvYNo2AlZhYiG/4vzgw4jZkLXHgRqu5xZAyqHHmYX12tFS uZbs1870kRG1qBNn0QkfKw== Received: from iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta02.appoci.oracle.com [147.154.18.20]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 44hfcgr3bg-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Sat, 01 Feb 2025 09:57:42 +0000 (GMT) Received: from pps.filterd (iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com [127.0.0.1]) by iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com (8.18.1.2/8.18.1.2) with ESMTP id 51190DNK033193; Sat, 1 Feb 2025 09:57:41 GMT Received: from nam10-mw2-obe.outbound.protection.outlook.com (mail-mw2nam10lp2049.outbound.protection.outlook.com [104.47.55.49]) by iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTPS id 44ha2byda9-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Sat, 01 Feb 2025 09:57:41 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=LBdL+ty3Qanx1nXH17a34CvIwgpq84JJ2xwgE8ilAcLv06116q8GtQbFV+1tfgDh3hLFe7LvSGLqBCfC+t/Cr3Ja3qchv04WiwU+PVO66XEIze1dndZq4RitL7gttxDXa3892/Q9eAMJ5MQdI5W4R8ehegDcbQTgGd6ay7oO0roBF2HHtiSXBwxjfiM+ftdLvEBGby3Bbuj+CPy6abj474VVEZgQZTYlj16VBkDlwUCY0KEjH+Ntx4xHrUiWDQ5VUyFhC+2B2/CDKlg4JUf6942xtM/czR/We+XrCjAfnMU3sIn38led4jimxCiH6dv8BccxKTtZ2RwBmnyLGi671g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; 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=K+SxdrdX1InTxo5zQE56qa247cTBfeTJ3jhGnfvxBow=; b=yfwPg4mUPpekjSEHvIkCOGc60ZeFZ6c+si0TQjKvgQFqpo0Spx8zV1HRgjwKKLpBhQwjI2Nwm1nfEXAV49QU1dUPZoQUFN0ymxP2bCl3eeFGSJXXnVN9mPwALjfE6LCSqneQ+JV2LEcGYlgnHt0zVy9E/SmRY88Ik5tRHnktV6pESjZyOzqVKq8fA9//x2BseEkHbKPheAQFSfUsJF8AuDpKtdZu4InMUHMah4QVj1DzPmRwDIFx8twoXjJeWbt9IQmvATlvPomuPJ+x2VAq4lsnwgs9dOsvvGrJ+4V/WawE/idD1/AohFvZ5cGIvp6tdBq/NvhcsejW1Q2o8ZzOFw== 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=K+SxdrdX1InTxo5zQE56qa247cTBfeTJ3jhGnfvxBow=; b=CzvZGd5R75YM48agHSlPxUOdMz4jKrq1WVowTU+TtEEAMJtKLLHrLN8jQEikDb9LZ27HUTNAQPegP0yxz1XWbVu0y0IDS5jEH/Lb3Zj6XbjcjFBKeORMLLvZWom+Fa6yMkLPrgOAsmOZSqu8KYY4GIKCE92l56TNHAY0bt03m48= Received: from CH3PR10MB7329.namprd10.prod.outlook.com (2603:10b6:610:12c::16) by CO1PR10MB4418.namprd10.prod.outlook.com (2603:10b6:303:94::9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8398.22; Sat, 1 Feb 2025 09:57:38 +0000 Received: from CH3PR10MB7329.namprd10.prod.outlook.com ([fe80::f238:6143:104c:da23]) by CH3PR10MB7329.namprd10.prod.outlook.com ([fe80::f238:6143:104c:da23%6]) with mapi id 15.20.8398.018; Sat, 1 Feb 2025 09:57:38 +0000 From: =?utf-8?q?=E2=80=9CWilliam_Roche?= To: david@redhat.com, kvm@vger.kernel.org, qemu-devel@nongnu.org, qemu-arm@nongnu.org Cc: william.roche@oracle.com, peterx@redhat.com, pbonzini@redhat.com, richard.henderson@linaro.org, philmd@linaro.org, peter.maydell@linaro.org, mtosatti@redhat.com, imammedo@redhat.com, eduardo@habkost.net, marcel.apfelbaum@gmail.com, wangyanan55@huawei.com, zhao1.liu@intel.com, joao.m.martins@oracle.com Subject: [PATCH v7 5/6] hostmem: Factor out applying settings Date: Sat, 1 Feb 2025 09:57:25 +0000 Message-ID: <20250201095726.3768796-6-william.roche@oracle.com> X-Mailer: git-send-email 2.43.5 In-Reply-To: <20250201095726.3768796-1-william.roche@oracle.com> References: <20250201095726.3768796-1-william.roche@oracle.com> X-ClientProxiedBy: SJ0PR13CA0143.namprd13.prod.outlook.com (2603:10b6:a03:2c6::28) To CH3PR10MB7329.namprd10.prod.outlook.com (2603:10b6:610:12c::16) Precedence: bulk X-Mailing-List: kvm@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: CH3PR10MB7329:EE_|CO1PR10MB4418:EE_ X-MS-Office365-Filtering-Correlation-Id: 951bb5cf-5014-454e-9529-08dd42a6dc5a X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|7416014|366016|1800799024|7053199007; X-Microsoft-Antispam-Message-Info: GCR/zVo6U2O2XZQB648dEOU4PG5w4mHw0Ve+v4d1hxdj+lGPH2CE1a5rtCVJmvcSkz6xYQSzpwsW5OqLk/hm40QquRTwImjY+T2Fqn88mPtBLKHqUIngiBoq3tyc+wadg4CyfYEcNEWZCiCdcbLBr6sUVx9liHRvYTVjOXrpt15byssOZjLqPziy96Ib2lsCYY+wwtI7lzL2YaECOiuf5t3wjJ4x5kyfu1ELGJHk5hHj2YC538Ih+Yat6FVjR4xN2RpI9utZDJ77lUjaGv/YQU78MI+JbA7D7kcXYD2JxML3H0pOoeAf67Vu8M+fe0gSSuJa+hdtk/SaG8p5FFoG5EvLEYcr2YOvFU1Q56IEHStfAOknY1BGmW2KLNwy/1r3W4ZbpzJKFfRQB3ivzIe1qgwsoVX2dwwKq56W2xJ3J2mmPxcebn45ZFWww9OlgGwYoLIbhSj5l1WqTUNn7aPYAOb6hCO0Ibd4lSgGlu923E3OToHeMCSo9nuNS1gLdWE0Fz+W/CRtRbZf8Jsh52czQrV6x8i/5/llAwzeAwpKiSykSOC7OR2yS02JLP26ZcThHOZ6fkPiN5/yZshYbGhvXxLUuOc0lFOAMVvdERcp1YeFEOvqF1ig9/QU3FTECU0jMSZc+L5edJZ8mJyDHHPJephxQ4vPqwxusURFeKA5zmK/p+oVXpR+pNjVkecnCbX5UFzAd1Y/C89DAIExA5sVdJos+mB2ifpe4baP0Sac17f/9JRGbsvnf0evfd3b35Y167owOBzyF4hyQuYSulZ4XOJv8EE2cyD/NEgBHPuqNydnj1dTlDe95GuXUYoT/cgvswa/RchJ3hflE8kSmL2jWGDszo7HKNacVj4Fx6dMovvUUbRv/lrNFqgv61gKOWnY6hFlDR/nWlx/MtUTwQ0A5JkMGzvZOUHXbgapQLaSzeI0YAzCPTWTcyCfs2l7zLv5JTKaEmQv2EVI1cfus0MFDjCYi+fdq2fAATv7jOyNY5FmPpn6XpkYTcigj/vwShikLPzo/VwbsdW79jc6bRQhgAHYglLOsGoCrVk6mTqg9UI+T1+SIJmjnf/2Vfyml1YZyUujfQOqyDmIru7fYPrYHoV0TAvUx4H1q8kaWU4A0E+CjGE0Zx97tk1V7KEcRH7gWi+LRZAgqQErJNcou6j44Jbq6O7a23/8gs0hp3BIZ5AWJBbqYgzBCn/UJZHpkG+j/z5RTHcjXsANJMUh9r9VbwWAxk5IxzbPa+wQk+b+JHqdQIUY+9uYcDv7jCI0YLx907NNncV/8dNmzHlENTnRkd8faarCbAtOJ6RQYEQjek2rPR6AmaD16iqQbmK2ivdLW0aJ757WQE1Mo6uicv0qj5IEV+UVld2kOUJX224JRHYTkHBsAhCpjQ/1vdtTeyKt X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH3PR10MB7329.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(7416014)(366016)(1800799024)(7053199007);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: Y1dbsvR5/SspwUd5Z7afYDO4nZwH8sLyAxBcKHW7qXZb4lw3Wfm+yC0uHu0vbCemLvZU4mGp7bH2rLgyFH2OW5SkbkXKal9YXRswUVl+7zZuE2kd3Yr7Z3tffxLqixE5JwCJzVaSREF7AH5MQgAjrFPNjcsUsihsFtTcJq4ceCW684oQgTjeYXrpgCUKlfIdyfBAk3QDndx8Zc33npZTef4Cq8j2LcMIk42cvD8w8dZ8o8jbMUobvjvQLSSUF4lcP+b8e6Ppqd1+5Kx3mJOJEhrzy4xObAnx+6GXkBpyGdEb8d/ukb8Qu4j++BfYh34nnCDW+umeGs7QHL5uNXTQKtlshnF6fe8uvLUG9w+cjBUuUdPG8s4DeYRaX/rSwfpECu2ksita50nWLrzIOEP7Zgu3GNj0RDf20qeLjusUgIZztnP0a/ERoISYWSsVATeD0uQXaeAmflFvSmbczSh+vhX5E/HeC54DGlFs5FZAsVaFH2MrLtvdI1K8KSyRjX4r0dsPOedhvg1cL5FBjL6nmRNKhvRcK/ysRlV5RymaL/JpCjMH3MKJBjjTGRGfeqn1JEqzODikLMeCELNei7H1n/mdNv1z9h8oA9l2dqkYewNjUzzgzCsZ+9Bibu2mi8xTpt5sTK/hbq/pzn3ue52CSINcbFTfLkzMk61EG1Zxd1A5FuN764wNtskUZqc/YEEURxJPBP8LRPxtiUQ7VJoy+yuq+GKZnfsy3XZFDmuZOZTEsTIg7AILItjfOdNkLUyJlgENWqbYP/GZaVLkoTsJQoM0T6WDp/Xg77Ly+Ey07kkTZ+9W3hncp2UUuEY6/ewFQGapHrZ1uevuYvz9CdfA//gHv1RcxDeJ5sWvryzrVui8aKfrqqHIvEcrrG2FHoIwoP4nY8U3hiLRzoDUx/1ojtl082CjKLOawooDrE0AgzbEiqW3+lPcuttu6vfl06PO+Kz2MwHb9dA+NArs1BMgK88NDpFb3Wff0YH55O8jf+zASCQgKBqYKi8hNKdYKAdKIakrdMOqZdDneeEuu/h/Vo5Hpm6joqjwxZFmSrZAtg5LyikWpeoth7hwIiVj0ectPmE6f6Q/Gcxu0AWSPTicryzAmJmX8QkhnipMRl+ITvQgCfWa7lpBswF7g2lNxCuxicF774x7hrfnM84Xp9Xm1ZCUA2iHY9G5bAxrC3QlIqy8iwTjHV2xwN/MyYVEDJBjy4D3fw4eSZL/1zwS9AleLHrs2H6GiwYwAV8Xa1GwKk6Rz3Ebs9ibXsGspTbi8qatpUWZ23zV/nGmbvA7nUN/nj4ejYVOWTPJV2BxfqeRp1DFMyKtC+jDssiLfFAF2b7+YzwTQz39gXZNesVDNk7Nc7y0ciXJzDlKfwdJHWD52uTTyCDwUr0/8LSw3c90CslG1hrspZlF/XRF/jNwP3zBMfBGUw74XqY72mhdsaxXcw8ph6XQMT2HqlaP3BILz7fYPu6j5O30mOnzBwguwk5n7NAtW/ifpp8qLdglPz5+zGvC1VZn2U/ocqAaBtWrJvRMu/f+Av9IcsrWqJKh+c5kE8P5+JAfNjbsovO9j45ZThqybambPB03FTQVsZP7cUdppXBYxvPVLg8EBaZ1/zeHYA== X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: 6TcHTvLQOynasmLrMncyE7f5WXRzvbpgm5rk6TQirpZv5kcp/5SHyG+Cq23hgWLJtkKIJt7uVfkdjIIy/qB16t5XJOV2nU4IF5o0/9Xjk4cEye0hLBT2mxg459jL8bpagJfuO+h1F37pFRMO0MbX9xf1/MkPVbTaorhROQ4n4SQQO6SfoItyVrOMm0GWnbDf0Nnay+Gy71GvuLKBtWkuSKMCBiCkvBImx1gnDXzLbHDYuh4PBM7ZdVGj4Wn9rlpvbk+EFokkrrVUEuPKqVzMqBDeSXdTdEbcXRtf+1qROLWwO5xOksU0PhX+Z29dECuvLPmJHe0ZEglWhoTp7v9Ykzp9kzrYfl3v5PQz2BFVleaULDYt7U6zwNqXLUdRlZnKkvZkCfHXzGCMYdlwfRr+lczWbjEMBX6lXiRVmqy0/PtTYUfG5IvvqwbydDHzNINZDIAAl1bb5l0Eu2z6tCKyzg3tvenmXwZ7m2Z59aQ3rw4RpmzVkRaFKyyeKy9uM8LW9BRb7Ng1d121k1qhp9Rx1cTDIuvjH6/Vh+G/Qg/tP30YKataHzfD6Ne+y/H7sGtgDL/P+dEB00ziBh8VgKYm/AzW+F0M1GvMMd8hJGleR8k= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 951bb5cf-5014-454e-9529-08dd42a6dc5a X-MS-Exchange-CrossTenant-AuthSource: CH3PR10MB7329.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 01 Feb 2025 09:57:38.7217 (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: +YaKyGFSbjFwFi1u5vDv82CGoBK7J0aFOn/T4Dze8dHx+3Y6ZtKEbutyLfBC6HB/cMyi6Xole5uyc2m/TKOWsL+XClwDBHIeTddkVOg2br8= X-MS-Exchange-Transport-CrossTenantHeadersStamped: CO1PR10MB4418 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1057,Hydra:6.0.680,FMLib:17.12.68.34 definitions=2025-02-01_04,2025-01-31_02,2024-11-22_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 mlxscore=0 bulkscore=0 adultscore=0 malwarescore=0 mlxlogscore=999 spamscore=0 phishscore=0 suspectscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2501170000 definitions=main-2502010085 X-Proofpoint-GUID: KpQdMPWyHg4XzcISaJ2UCK60LzJMtLR5 X-Proofpoint-ORIG-GUID: KpQdMPWyHg4XzcISaJ2UCK60LzJMtLR5 From: David Hildenbrand We want to reuse the functionality when remapping RAM. Signed-off-by: David Hildenbrand Signed-off-by: William Roche --- backends/hostmem.c | 155 ++++++++++++++++++++++++--------------------- 1 file changed, 82 insertions(+), 73 deletions(-) diff --git a/backends/hostmem.c b/backends/hostmem.c index bceca1a8d9..46d80f98b4 100644 --- a/backends/hostmem.c +++ b/backends/hostmem.c @@ -36,6 +36,87 @@ QEMU_BUILD_BUG_ON(HOST_MEM_POLICY_BIND != MPOL_BIND); QEMU_BUILD_BUG_ON(HOST_MEM_POLICY_INTERLEAVE != MPOL_INTERLEAVE); #endif +static void host_memory_backend_apply_settings(HostMemoryBackend *backend, + void *ptr, uint64_t size, + Error **errp) +{ + bool async = !phase_check(PHASE_LATE_BACKENDS_CREATED); + + if (backend->merge) { + qemu_madvise(ptr, size, QEMU_MADV_MERGEABLE); + } + if (!backend->dump) { + qemu_madvise(ptr, size, QEMU_MADV_DONTDUMP); + } +#ifdef CONFIG_NUMA + unsigned long lastbit = find_last_bit(backend->host_nodes, MAX_NODES); + /* lastbit == MAX_NODES means maxnode = 0 */ + unsigned long maxnode = (lastbit + 1) % (MAX_NODES + 1); + /* + * Ensure policy won't be ignored in case memory is preallocated + * before mbind(). note: MPOL_MF_STRICT is ignored on hugepages so + * this doesn't catch hugepage case. + */ + unsigned flags = MPOL_MF_STRICT | MPOL_MF_MOVE; + int mode = backend->policy; + + /* + * Check for invalid host-nodes and policies and give more verbose + * error messages than mbind(). + */ + if (maxnode && backend->policy == MPOL_DEFAULT) { + error_setg(errp, "host-nodes must be empty for policy default," + " or you should explicitly specify a policy other" + " than default"); + return; + } else if (maxnode == 0 && backend->policy != MPOL_DEFAULT) { + error_setg(errp, "host-nodes must be set for policy %s", + HostMemPolicy_str(backend->policy)); + return; + } + + /* + * We can have up to MAX_NODES nodes, but we need to pass maxnode+1 + * as argument to mbind() due to an old Linux bug (feature?) which + * cuts off the last specified node. This means backend->host_nodes + * must have MAX_NODES+1 bits available. + */ + assert(sizeof(backend->host_nodes) >= + BITS_TO_LONGS(MAX_NODES + 1) * sizeof(unsigned long)); + assert(maxnode <= MAX_NODES); + +#ifdef HAVE_NUMA_HAS_PREFERRED_MANY + if (mode == MPOL_PREFERRED && numa_has_preferred_many() > 0) { + /* + * Replace with MPOL_PREFERRED_MANY otherwise the mbind() below + * silently picks the first node. + */ + mode = MPOL_PREFERRED_MANY; + } +#endif + + if (maxnode && + mbind(ptr, size, mode, backend->host_nodes, maxnode + 1, flags)) { + if (backend->policy != MPOL_DEFAULT || errno != ENOSYS) { + error_setg_errno(errp, errno, + "cannot bind memory to host NUMA nodes"); + return; + } + } +#endif + /* + * Preallocate memory after the NUMA policy has been instantiated. + * This is necessary to guarantee memory is allocated with + * specified NUMA policy in place. + */ + if (backend->prealloc && + !qemu_prealloc_mem(memory_region_get_fd(&backend->mr), + ptr, size, backend->prealloc_threads, + backend->prealloc_context, async, errp)) { + return; + } +} + char * host_memory_backend_get_name(HostMemoryBackend *backend) { @@ -337,7 +418,6 @@ host_memory_backend_memory_complete(UserCreatable *uc, Error **errp) void *ptr; uint64_t sz; size_t pagesize; - bool async = !phase_check(PHASE_LATE_BACKENDS_CREATED); if (!bc->alloc) { return; @@ -357,78 +437,7 @@ host_memory_backend_memory_complete(UserCreatable *uc, Error **errp) return; } - if (backend->merge) { - qemu_madvise(ptr, sz, QEMU_MADV_MERGEABLE); - } - if (!backend->dump) { - qemu_madvise(ptr, sz, QEMU_MADV_DONTDUMP); - } -#ifdef CONFIG_NUMA - unsigned long lastbit = find_last_bit(backend->host_nodes, MAX_NODES); - /* lastbit == MAX_NODES means maxnode = 0 */ - unsigned long maxnode = (lastbit + 1) % (MAX_NODES + 1); - /* - * Ensure policy won't be ignored in case memory is preallocated - * before mbind(). note: MPOL_MF_STRICT is ignored on hugepages so - * this doesn't catch hugepage case. - */ - unsigned flags = MPOL_MF_STRICT | MPOL_MF_MOVE; - int mode = backend->policy; - - /* check for invalid host-nodes and policies and give more verbose - * error messages than mbind(). */ - if (maxnode && backend->policy == MPOL_DEFAULT) { - error_setg(errp, "host-nodes must be empty for policy default," - " or you should explicitly specify a policy other" - " than default"); - return; - } else if (maxnode == 0 && backend->policy != MPOL_DEFAULT) { - error_setg(errp, "host-nodes must be set for policy %s", - HostMemPolicy_str(backend->policy)); - return; - } - - /* - * We can have up to MAX_NODES nodes, but we need to pass maxnode+1 - * as argument to mbind() due to an old Linux bug (feature?) which - * cuts off the last specified node. This means backend->host_nodes - * must have MAX_NODES+1 bits available. - */ - assert(sizeof(backend->host_nodes) >= - BITS_TO_LONGS(MAX_NODES + 1) * sizeof(unsigned long)); - assert(maxnode <= MAX_NODES); - -#ifdef HAVE_NUMA_HAS_PREFERRED_MANY - if (mode == MPOL_PREFERRED && numa_has_preferred_many() > 0) { - /* - * Replace with MPOL_PREFERRED_MANY otherwise the mbind() below - * silently picks the first node. - */ - mode = MPOL_PREFERRED_MANY; - } -#endif - - if (maxnode && - mbind(ptr, sz, mode, backend->host_nodes, maxnode + 1, flags)) { - if (backend->policy != MPOL_DEFAULT || errno != ENOSYS) { - error_setg_errno(errp, errno, - "cannot bind memory to host NUMA nodes"); - return; - } - } -#endif - /* - * Preallocate memory after the NUMA policy has been instantiated. - * This is necessary to guarantee memory is allocated with - * specified NUMA policy in place. - */ - if (backend->prealloc && !qemu_prealloc_mem(memory_region_get_fd(&backend->mr), - ptr, sz, - backend->prealloc_threads, - backend->prealloc_context, - async, errp)) { - return; - } + host_memory_backend_apply_settings(backend, ptr, sz, errp); } static bool From patchwork Sat Feb 1 09:57:26 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: =?utf-8?q?=E2=80=9CWilliam_Roche?= X-Patchwork-Id: 13956158 Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com [205.220.165.32]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 2E3F646447 for ; Sat, 1 Feb 2025 10:02:58 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=205.220.165.32 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1738404180; cv=fail; b=K82Lz+nrPzz/fsUYbQwyoDsNV96mDQZ30Eyb+ANMStfY+worrAz8Wy1X4DYIcvAt/r7n/8lmMmxb32/iGMZn2aylMkVliWH/10PJMcWv+ALBUlhSve0+4s8fKNjTKEmm1ela2+C0QuK1QXsHGRgTtGX0vyMIGCOmCrWmP+byAwA= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1738404180; c=relaxed/simple; bh=NiV3fnNU9ZgFImQgPTU8FXCv3w8EO9Lrl+UusSIouNg=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=i/N4MUpZt60Lu9NCYAxQQvnnWTqxAb9jUKZOyWWJbeMDGpXXzaujo3kgxi1ImW9pCWBC49+cyfySmYVfXmfIkDiJiv/dxgJCCQbv1LjzHzGHvnak7U04b6qqdooxk5V6GXT2USwtbw9AcOjbz4GnLYN5cVKO1vRyI1Zui8RtoBk= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oracle.com; spf=pass smtp.mailfrom=oracle.com; dkim=pass (2048-bit key) header.d=oracle.com header.i=@oracle.com header.b=eaj2pF5v; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b=wvmbT1w0; arc=fail smtp.client-ip=205.220.165.32 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oracle.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oracle.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=oracle.com header.i=@oracle.com header.b="eaj2pF5v"; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b="wvmbT1w0" Received: from pps.filterd (m0333521.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 5117bAKP013219; Sat, 1 Feb 2025 10:02:44 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=cc :content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s= corp-2023-11-20; bh=vL2jjElpiN5znzBZn2+JD/k0LAksvx183MJLEFUYI4c=; b= eaj2pF5vHZRgftLD2n0ndMLj0zcMwHMHRRLcOqU2r32bpNp5VTQi1kMRG59I8DvQ ruf0u1MIdr8s8CFdMobpNq5f5j9RrUUIJRa5RSZqU5hY3vIKRlc091BBMXoA7YLe FcGyOgF8SZa/WciK2PPnC+vpYggHMymzZyik9Y3hwzO4ZlInrisuCibeNdKiRTjn QSalRlVLcHgRN6i5cYxnCWdwTN2TZFPGKbMqeYKTLQ2NgoI5hh0GQkD2GFzRvkRf lI1P/WGhJw71td38xUcST9atOQaKv2nQLl5Qje5ODPXgzgpxivY/S6WB9RaAWHOh lyZPQPOZZTklb5GRodNNtA== Received: from phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta03.appoci.oracle.com [138.1.37.129]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 44hfcgr3gk-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Sat, 01 Feb 2025 10:02:43 +0000 (GMT) Received: from pps.filterd (phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com [127.0.0.1]) by phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com (8.18.1.2/8.18.1.2) with ESMTP id 5119F6IP008788; Sat, 1 Feb 2025 09:57:43 GMT Received: from nam04-dm6-obe.outbound.protection.outlook.com (mail-dm6nam04lp2047.outbound.protection.outlook.com [104.47.73.47]) by phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id 44ha25fbpm-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Sat, 01 Feb 2025 09:57:43 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=lSHC5QMjunzMtIUfiTxGNqY75BdEBi9mJE+ztdbNJqVVSzac5QZeiIBhYB6bc4UMUnNYr/PbBOIYJTwhxAyS0COmLEsEoEx3VdPG7M2T9yxsDiQf+8jLQooXe/x5nftepHbgRNPu6AV5puNlI2TLHFtFk/WjbVM1EgazJO5VM5RSHMPe0CJjjIevoPKeH1YLSA+nn9/qmUkzFyjxBJ8SP0yLS5SnkfJBeO7Emz+ZYEs4Lm7Y0h2iWttkXaS5qicUnXCFZJkEJc/ohCTu4xwtwvkboOqpF1CoIGshOVEK9aZsEfsCTbSgSR1yfwh7QyUcF2HzI2v7TUUmqA06Glj8JA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; 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=vL2jjElpiN5znzBZn2+JD/k0LAksvx183MJLEFUYI4c=; b=mmIYsG1SGd9+aSYfCUbVj9AgHoCTjYKyPjDEBvvyQE27/wD+fDB5W5mfIMGDdVeL+74FxUZXtptKV8OzXS3ZvbnOKGER4T2tkhZte/8/XzmDkdTZSlppkHDGPooo2w2ckHsMuAr86tu+BbUSrF26EMD1ii8zAwmBVbMjcbI67gLm97Hn4PZvDRoDa+SULFYCeeTmM7ym3NHvOz42IIRws5054WQ4ixsGA9SectrmvgfWNJIuBPtyQHfEKGdQcw4Imvlq2hPGWX4NpI5c2JflBLGsM3PS2VFonx/5MFobcm1m8S2rW3e+RnrZon47OSrTDKq+WwNvAnVZ2IAH7ZfUHA== 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=vL2jjElpiN5znzBZn2+JD/k0LAksvx183MJLEFUYI4c=; b=wvmbT1w0RW9ORBkgyDZERe8P/a4ViHgKTDCJbwcahr40nhBB4GeQGNiLS6MZKWJpfBGgTZ1QExtDfX8wWwQlufXLlvHxefYlYFg/gy7ijVZFGUI+hW/zMk4WYqk6SUrBcJfzugOjVUGlnhhXRxDNXe6/aAr6QsBG7Agp7ddM+zU= Received: from CH3PR10MB7329.namprd10.prod.outlook.com (2603:10b6:610:12c::16) by CO1PR10MB4418.namprd10.prod.outlook.com (2603:10b6:303:94::9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8398.22; Sat, 1 Feb 2025 09:57:40 +0000 Received: from CH3PR10MB7329.namprd10.prod.outlook.com ([fe80::f238:6143:104c:da23]) by CH3PR10MB7329.namprd10.prod.outlook.com ([fe80::f238:6143:104c:da23%6]) with mapi id 15.20.8398.018; Sat, 1 Feb 2025 09:57:40 +0000 From: =?utf-8?q?=E2=80=9CWilliam_Roche?= To: david@redhat.com, kvm@vger.kernel.org, qemu-devel@nongnu.org, qemu-arm@nongnu.org Cc: william.roche@oracle.com, peterx@redhat.com, pbonzini@redhat.com, richard.henderson@linaro.org, philmd@linaro.org, peter.maydell@linaro.org, mtosatti@redhat.com, imammedo@redhat.com, eduardo@habkost.net, marcel.apfelbaum@gmail.com, wangyanan55@huawei.com, zhao1.liu@intel.com, joao.m.martins@oracle.com Subject: [PATCH v7 6/6] hostmem: Handle remapping of RAM Date: Sat, 1 Feb 2025 09:57:26 +0000 Message-ID: <20250201095726.3768796-7-william.roche@oracle.com> X-Mailer: git-send-email 2.43.5 In-Reply-To: <20250201095726.3768796-1-william.roche@oracle.com> References: <20250201095726.3768796-1-william.roche@oracle.com> X-ClientProxiedBy: BY1P220CA0022.NAMP220.PROD.OUTLOOK.COM (2603:10b6:a03:5c3::14) To CH3PR10MB7329.namprd10.prod.outlook.com (2603:10b6:610:12c::16) Precedence: bulk X-Mailing-List: kvm@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: CH3PR10MB7329:EE_|CO1PR10MB4418:EE_ X-MS-Office365-Filtering-Correlation-Id: f5c1fbe5-ec5d-46b7-44ca-08dd42a6dd9d X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|7416014|366016|1800799024|7053199007; X-Microsoft-Antispam-Message-Info: loaURQGNAYBqPH4SVSDxt63su/9HJD4ccBoGweYfE/FpTX2t5aQZDOdRgQZ/7CnDhGJmIVCm5+9dpU6519T0rVYrZ1yrlVWq9mtanvAEXpJnVVMuD9zI4fAGgXulY6gj/ECmsWaETx7nP/50Jzrb9v1G06QV78zXpgFeuO1Z1ULlS0awGNFyQQAFBW7kx194hO2H2a3xAr1MuqlMWvVhVy6efm0vER6d/mQRGgPKzOhWwEgtNgq75XYiCfJc8pS8v+kineGZw63BTjGQFQw4QYbRkU8pdtGK7mD9Y1tQrUaOlD8h1wQFo57hSA4It+h7HUKXzzgl8uxQXtDcX35qbK4Iw6MC50wSGuTlAVA2ECfdy/6aNNzmbNDocOhl/wOwiEuh9yGZ5ZLTnUA3notDa16W833HVo1RrF1ZdE62ZDvvuj9HL9DQWwNCjE93RPDt3ENjv1AfBCQKJN+cM5awxorLBEUJHEixIUuGEa7ocCOphepvjENm9PzJAICBzQyAScefFhR+enQSqo9mGijV6vxVZLTrctjOiySVntc9C4gEX9X6DnXB00DQccUKLEnUsyskbofawn+y0qOhRMoyFsQDw9S/7amUTNHInRBP3666sphfmUXRI3IELCOiALmyD8bH0t/BtauivF9f4qSFf65WkRJLFu8VkudL2Ix1Qs0tgPU+KKwYDmT8GF3k6eCy1auHW5JEX3HLpyZVEVGX1n7HfSMntA/vYrjt41QiksFAItVhSXu0JafuMKsmwu9L+AUEq4cLBJft42kOQHX4Qjd5XzeX6GfqxhbKdTuQ49f0cmME45fCDXdUoIERoHSU6VJnM67lk3LctjIe80xRphuQ4Z7jqaI8H4E1VrGnqs1P+jL2Sfh9MdGscQJ1MJ+4yxgH6jETIpnMZpNksNCmgIgjXAPMKxDg/IkzVbf6s5AADOpfihA3ZAnpTgtffVV5h3HPR//pUI082SvOrkSw4RLzHC9/BEDLOdg2k8ymrCESU9lgGUN2y+C0IpF+bbqu02MIlIp8+G3M36bN8OY+5uzGDNLs99l7wKKRu4M1YUW92q4jiC4xoi1vrCPzfzWJx7aa5LePAfR8R+GfGE/jPFhzRKxKv20nd72v97SpT8N4PNTF1jn6oA7Kwf7/l6sVX3qspCAMvGsTk4zvL16jfJArZDLOTE+j2hHrmjVKfV907W/znn83A58Rp9o8E3giHFX1CYAqhoecVIeagGSTokoLvcSF+SJmi/OfW7QMzmeHAUszmpltjan38/4LPaCEslqC+y0uPlHhD0JbgI0vvsjKreYc/JK46xp3TU0dyvTz9z99U0UvY7PcWlNWJ2MLAGVmVbA7sI8PVpgjL8+ncqgRCJt6bme6u5EmJG1dftmhw6IVqi4Pk2syPg1zXOa5 X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH3PR10MB7329.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(7416014)(366016)(1800799024)(7053199007);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: 8TTH6c4WgxGJu3sqzSgom9FILAbQ2lSbQZwf2eawIlULQIG0D6BdnOj63WRoW4QBj3hrvf2FEzhUW5809xSDngssKr1l/STlTOl2w+RefjYKwV1wdEpQJhn0gsX3+94jyQlvm/WxPxpKDfOtC6BvE5Zj+exgVMeXL8B6IaXBphhd916MCaXJCkSU3CMzAa+LTHnMg4PNXI35sKOF7vtOxNe+P1ggmtwUKhvQJqY5VmP0e9zIyCgpakcHYRqsd4jK9fYBK3vNbGhyxkcpPYi2jzY1D/FEjEuWANibEfmR20KFGU9Q4bjTzi2hxqmuuwIcLsUMWBDVgqtdRtFXT/S/8UuZY+XQ5YFBB+j+7q52na5c55fHHi/ccGhlPiQQkIbSb7kctpDRJc0/dMfPnCqleIAsjVg3GQIXCBGdLKF62JguqNxZnFEFzhNf86a2U0eOCNIjH/qnBlRQK3By+y4tle5CYmp7fkNekL5xt/OhlQyNEIPKGwiRCBmF7DqAyAptrHkwGjLapDyR1dCtTBoZYF1pkmwrj7tqfMdK7rstOq12ZEXy4CsqHGlA9b9i1QHPXs+HJE/AySSSPBK+nxShIEuYANXWpcaWcPX2w7KGeBJq6TACRMSroHTbv4/dR+meVpAMokpDDtWU/9ueYKCguLs3CfqqnOKD3qblJFV8OiZWddJjgTGNU8BYDAo0bpVJjilw2ynF4VHACpdzZrUWPFbwrw3JQS3yAeUDnwD1kcuiGyoVcjSGVA9sLmwGsovUrZEnMTD/8YuJPLVF8hQK6XXI+coHAYUnYxcGmtsbS/iO5gm2YxAFJbME6PW1XxYVzsWx4hJ/bw/ANZEy4clXRSGMBeZKP36SdaI8VTeYShZRhsAAceKCBmWGAalxqH57MK4IzhLZ13Neg/lkBhiMbOabebjDj46SziYEPPsU00OMsMEjDjcW3OegHoedhmAcaZxno81F4achhsid3UeUfvtz8SK950sBaaM0mDXhH+Yypf6Et+M1FS9e2iHPR1DqymCSSD8NATdGrQEgkRyYNVNHtSEPjjtgPy0u4I6mceD50BCc4irIDtuz/KHuLvVe5jGn7GchrqwYvr6DcHPt6EC+qux6b+rKalSBCj5jia6EHGIWUwEYJ7KkEQa7faG0yMcj1ieerprpQy+GJLph5HAMP6EifpXYp5QNpRNNjAKmEdJoSogoHTKXbpQbj4QxHsOlRhFo4VCfV9blItsrecnzXuAepZEkYCEDoTYY3STpxzcbhh24FFqivrZ0CCrI+12E+51qazoOJuR2mGzzoQ7KcUqkQ+rYldO9VagZmyJSGlEGZmqo1Jx60pZKPkCxRD76JOM+mJT4Qa5N+hoP2r3ADAyGF+gEd9oDInouUmcP1BjCRkeJeGKEmRjwvjxgo3YEGmSjHqdQ0+w86eMGSrhl7igx8QMpOnK6OwZY13nJ6+6C6b+6d9IWgnjUyguXPdogbLQ4QT6zsu1IE7RIHG+hd9VcPn5EbOZrf9VvOGRL1BmzH+0jfjd/7nGMXeSEo1wYvYFlKBa90xMoF3TQ7NU4DwQCTrFhbgORE7horfwgDwyuQw/3XI11+DdmobYFzooiQgliLdklTvhMRwvidw== X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: Y7vWNDNFwjUrAOQbluz+x7kpesfYxceEKssVnXsdCmQ8iwDBANnwMBAuXMn0jWBR/LIjolmjzgd+Hiok5JTtZHS5vRHJWxDNVTLV3K/w5Tq1v2zmuIkhIQQs3D3ikSIt5+sJhqkgaIWA4feWMxR/9Zw9Y6iKoljBwu0W48FLZY2ykzkeNU53vaRbsMAkO9o4lwgJMUTnSQceH/ksEcVeMHYZ7PdPoElJOa5p9YBNrW044B7bf7V7v5WJkeIS/mo1LnTEo2fFbIwsUMeC52T0Ziv9wqX4T0L3x9vaSjSsvskduQVqpDuhTxEuNgKGEMGIMAZTlAzON9Li936Pf4svwZ1xBmb7lx1i2eQ3YL0CHhTjsza2kGyWadrfkYfBw/Yb1qaRkUXBB0i++PiDLKglLT8xHQu5i/UKSEOpwkhpSyOz5xejxW1100hOcbeO+cW6lrb9s+Ur0C1y9IA9Wi7Uoc2AKYOCQOdC9vCMWsOdNDVOJP+VBAFoMTRyGGm5Vhz0b/rrhPQyGeWMunUy4KVwU0a2BI7tCnjCjXq6Ri4W9t14zSAWvEeZpE5r5L1iDPQO3AHPLuVMlZlYLXG1UgF9qnACXvG3/eYzse8epzN9GYs= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: f5c1fbe5-ec5d-46b7-44ca-08dd42a6dd9d X-MS-Exchange-CrossTenant-AuthSource: CH3PR10MB7329.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 01 Feb 2025 09:57:40.7962 (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: WAbIsdh/W2J6kGest7Kg13RHC35OI1hKfSj6qPuIBqnvKi4LaEiq+aONCpzKtXon3ceJQSiPr9BBPGv2Lw6uDYDGoGzkRUwJBUDq1HNrOhA= X-MS-Exchange-Transport-CrossTenantHeadersStamped: CO1PR10MB4418 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1057,Hydra:6.0.680,FMLib:17.12.68.34 definitions=2025-02-01_04,2025-01-31_02,2024-11-22_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 malwarescore=0 mlxlogscore=999 mlxscore=0 phishscore=0 spamscore=0 adultscore=0 suspectscore=0 bulkscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2501170000 definitions=main-2502010085 X-Proofpoint-GUID: JR-YDj-r3Vbo3pX-j4qHyBG6ecqMeVBq X-Proofpoint-ORIG-GUID: JR-YDj-r3Vbo3pX-j4qHyBG6ecqMeVBq From: William Roche Let's register a RAM block notifier and react on remap notifications. Simply re-apply the settings. Exit if something goes wrong. Merging and dump settings are handled by the remap notification in addition to memory policy and preallocation. Co-developed-by: David Hildenbrand Signed-off-by: William Roche --- backends/hostmem.c | 34 ++++++++++++++++++++++++++++++++++ include/system/hostmem.h | 1 + system/physmem.c | 4 ---- 3 files changed, 35 insertions(+), 4 deletions(-) diff --git a/backends/hostmem.c b/backends/hostmem.c index 46d80f98b4..4589467c77 100644 --- a/backends/hostmem.c +++ b/backends/hostmem.c @@ -361,11 +361,37 @@ static void host_memory_backend_set_prealloc_threads(Object *obj, Visitor *v, backend->prealloc_threads = value; } +static void host_memory_backend_ram_remapped(RAMBlockNotifier *n, void *host, + size_t offset, size_t size) +{ + HostMemoryBackend *backend = container_of(n, HostMemoryBackend, + ram_notifier); + Error *err = NULL; + + if (!host_memory_backend_mr_inited(backend) || + memory_region_get_ram_ptr(&backend->mr) != host) { + return; + } + + host_memory_backend_apply_settings(backend, host + offset, size, &err); + if (err) { + /* + * If memory settings can't be successfully applied on remap, + * don't take the risk to continue without them. + */ + error_report_err(err); + exit(1); + } +} + static void host_memory_backend_init(Object *obj) { HostMemoryBackend *backend = MEMORY_BACKEND(obj); MachineState *machine = MACHINE(qdev_get_machine()); + backend->ram_notifier.ram_block_remapped = host_memory_backend_ram_remapped; + ram_block_notifier_add(&backend->ram_notifier); + /* TODO: convert access to globals to compat properties */ backend->merge = machine_mem_merge(machine); backend->dump = machine_dump_guest_core(machine); @@ -379,6 +405,13 @@ static void host_memory_backend_post_init(Object *obj) object_apply_compat_props(obj); } +static void host_memory_backend_finalize(Object *obj) +{ + HostMemoryBackend *backend = MEMORY_BACKEND(obj); + + ram_block_notifier_remove(&backend->ram_notifier); +} + bool host_memory_backend_mr_inited(HostMemoryBackend *backend) { /* @@ -595,6 +628,7 @@ static const TypeInfo host_memory_backend_info = { .instance_size = sizeof(HostMemoryBackend), .instance_init = host_memory_backend_init, .instance_post_init = host_memory_backend_post_init, + .instance_finalize = host_memory_backend_finalize, .interfaces = (InterfaceInfo[]) { { TYPE_USER_CREATABLE }, { } diff --git a/include/system/hostmem.h b/include/system/hostmem.h index 5c21ca55c0..170849e8a4 100644 --- a/include/system/hostmem.h +++ b/include/system/hostmem.h @@ -83,6 +83,7 @@ struct HostMemoryBackend { HostMemPolicy policy; MemoryRegion mr; + RAMBlockNotifier ram_notifier; }; bool host_memory_backend_mr_inited(HostMemoryBackend *backend); diff --git a/system/physmem.c b/system/physmem.c index 561b2c38c0..a047fd680e 100644 --- a/system/physmem.c +++ b/system/physmem.c @@ -2223,7 +2223,6 @@ void qemu_ram_remap(ram_addr_t addr) { RAMBlock *block; uint64_t offset; - void *vaddr; size_t page_size; RAMBLOCK_FOREACH(block) { @@ -2233,7 +2232,6 @@ void qemu_ram_remap(ram_addr_t addr) page_size = qemu_ram_pagesize(block); offset = QEMU_ALIGN_DOWN(offset, page_size); - vaddr = ramblock_ptr(block, offset); if (block->flags & RAM_PREALLOC) { ; } else if (xen_enabled()) { @@ -2257,8 +2255,6 @@ void qemu_ram_remap(ram_addr_t addr) exit(1); } } - memory_try_enable_merging(vaddr, page_size); - qemu_ram_setup_dump(vaddr, page_size); ram_block_notify_remap(block->host, offset, page_size); }