From nobody Sat Jun 1 09:39:02 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; arc=pass (i=1 dmarc=pass fromdomain=oracle.com); dmarc=pass(p=none dis=none) header.from=oracle.com ARC-Seal: i=2; a=rsa-sha256; t=1694653511; cv=pass; d=zohomail.com; s=zohoarc; b=WlYjNsMqa/raxxIBW1AaAf85kx9TQfi4NzYwUgq+UemlBn2Fse0j/Vs5LEIRvR7bLEgooV4yPfoeXKb0Fib6RFC0tbHVxdtig5FNu2eDmK/GZC0nI9OxsgIwSCtd7Hgr3vMVmtGE7ErCxgsV6re2njo1OEfzd+NAN7Zg9N0cVXM= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1694653511; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=VDjMH15QvTorDnQEicGRQUIbqfla0KR8+0o1p10RMSk=; b=Gkc+n7Y+CsbEoRaVPw5prhpSp5S3jBkOGWDwuwv42lj1/B5k/tbLgTXR0+yLAO8vckCEIYcQvUuPi64WQh4qqtZaZ9xPRRTiTZ+73uf4Y94ASmAgaETOvt9lwTBH7U/5SgYBJEwD3iJkUHttQLTt90ZAOzp/KAVTC4d8BNkdZto= ARC-Authentication-Results: i=2; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; arc=pass (i=1 dmarc=pass fromdomain=oracle.com); dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1694653511543960.3655633180563; Wed, 13 Sep 2023 18:05:11 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qgalv-0000nR-0u; Wed, 13 Sep 2023 21:03:55 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qgalt-0000nC-NU for qemu-devel@nongnu.org; Wed, 13 Sep 2023 21:03:53 -0400 Received: from mx0b-00069f02.pphosted.com ([205.220.177.32]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qgalr-0008TX-0F for qemu-devel@nongnu.org; Wed, 13 Sep 2023 21:03:52 -0400 Received: from pps.filterd (m0246631.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 38E10OJt028872; Thu, 14 Sep 2023 01:03:48 GMT Received: from phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta02.appoci.oracle.com [147.154.114.232]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3t2y7kbkvg-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 14 Sep 2023 01:03:48 +0000 Received: from pps.filterd (phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com [127.0.0.1]) by phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (8.17.1.19/8.17.1.19) with ESMTP id 38E117OS023178; Thu, 14 Sep 2023 01:03:47 GMT Received: from nam04-bn8-obe.outbound.protection.outlook.com (mail-bn8nam04lp2040.outbound.protection.outlook.com [104.47.74.40]) by phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id 3t0f588p9a-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 14 Sep 2023 01:03:47 +0000 Received: from PH8PR10MB6597.namprd10.prod.outlook.com (2603:10b6:510:226::20) by DS7PR10MB4975.namprd10.prod.outlook.com (2603:10b6:5:3b1::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6792.20; Thu, 14 Sep 2023 01:03:21 +0000 Received: from PH8PR10MB6597.namprd10.prod.outlook.com ([fe80::35e3:7e4c:72b2:cf74]) by PH8PR10MB6597.namprd10.prod.outlook.com ([fe80::35e3:7e4c:72b2:cf74%7]) with mapi id 15.20.6768.029; Thu, 14 Sep 2023 01:03:20 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=from : to : cc : subject : date : message-id : in-reply-to : references : content-transfer-encoding : content-type : mime-version; s=corp-2023-03-30; bh=VDjMH15QvTorDnQEicGRQUIbqfla0KR8+0o1p10RMSk=; b=JBoeIDO4zoTWHkkzoadqKAcQJdgFxV5BfNn9KeVMApQVFgtVxwzopfUjGYBZFdnPvoUP CVUELA/vc7Tq/ndDca6Au+oIWZNBGl+ovtwO/eZGBnUlTsqoOQ710fGteLnDz4889h4J N+m93g3L20isx3NUhf8wUzBAPtW4juyTT/TpgFCTdWa+u3qEAhPsjYOXSEbZbg8xGI7A muPykO+U4S9eNi9aBYHI8Qg1ZgVzboyESVjzAz0NP7NnhcQPXKlKLs2iY1SxDLOtciaQ hnm9aUFKtXYWKeChG3M0yxIkB/91sNcoeBVp91/Bu7am/WbMQJBgqK1LRiSZGEUoGl5C qg== ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=BXlwRe99uhl1oiIX1V65SNV43zq9nbUETNDMMrgTQ/5hCqhzPZfuhlFrgu8FC4EAnM1ZTR+2FFb1Bru17okdBSw6/xiOiFrAJqlQkqw7OQaaSUEKfkYguLCvxOF9gSXgaaigNj3cLyPQEIixJ7tPSUqkCk3ryeMguHe+JsXBn0B+hO4wq1l0rpiEnFR2aQF4+plspgFU9rGmYLn+lAXs8M7YT3gp9j6+ffuaEvkPQ/Z+oD5HG4gQeAuNn0kDAnv/VySMwPOKsKPFFNUvegmsusLZq3ifucS8oFb7ijkc2+JHeZei9rOXUAGUPcY2nwlDMk/7R75TkH+4vfibA57B1w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=VDjMH15QvTorDnQEicGRQUIbqfla0KR8+0o1p10RMSk=; b=EU621zZFEhURdcnsG5PA12ZwlGHjcUJW+3+uy19fd4JHJgDS9zi8GXDkhUAMNtsRrci2IyiloU3Ks66TAduD50NhxS3Rl5HQTcdekomEXz67JflGA5QNV/L7dz9SfbqY55VH5w/O4JH+mmawe8q6DksPxgS9Don3JcpQ8fKD3F6rEZf6Hy2lqN3d3NmkfeVn0yTa+In7PUd4z8E9Bz//Hi/wL++kG22eARULsaKOmwn6XXYb7Jrx50U6eforDAk8N7w0WARzRdOIjtT6uWQ03GG0sJJkK4QGLQwNXoq4WksN9SNsRWdF4nS5ucRjMldwzbYBX8cVSLsICv+ooXXjhw== 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=VDjMH15QvTorDnQEicGRQUIbqfla0KR8+0o1p10RMSk=; b=FQLJY65qD2SxtVz0Q1LaqzgS6GWEdAthjJ9A/+dlkI9iGRw54U5SFzHAjQkLXDoYJF1zVIckWvIjJrhRn/zVGRk/wPmoHjOCwk1Eo622jFMKbsGjSpbSSmifCm1e6TpryAB9VvAgSUNM+NUIOK9fNs9VeFY8qsqpc+dOzfNjjj4= From: Stephen Brennan To: qemu-devel@nongnu.org Cc: linux-debuggers@vger.kernel.org, stephen.s.brennan@oracle.com, =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= , Omar Sandoval , Thomas Huth , =?UTF-8?q?Daniel=20P=20=2E=20Berrang=C3=A9?= Subject: [PATCH v2 qemu 1/3] dump: Pass DumpState to write_ functions Date: Wed, 13 Sep 2023 18:03:13 -0700 Message-Id: <20230914010315.945705-2-stephen.s.brennan@oracle.com> X-Mailer: git-send-email 2.39.3 In-Reply-To: <20230914010315.945705-1-stephen.s.brennan@oracle.com> References: <20230914010315.945705-1-stephen.s.brennan@oracle.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: SA9PR11CA0029.namprd11.prod.outlook.com (2603:10b6:806:6e::34) To PH8PR10MB6597.namprd10.prod.outlook.com (2603:10b6:510:226::20) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: PH8PR10MB6597:EE_|DS7PR10MB4975:EE_ X-MS-Office365-Filtering-Correlation-Id: 7c3e2e3b-2bd7-449a-29e7-08dbb4be6368 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: lTryy5K6CHSJ1C4d/EZQfF7rsRatDuZO5fDHXSAMSs9dx5nY2aaLVUhLErxXAbR3uTE5vqgp+huZahw4ILgjYv+a27umZWUoyM+97e74bLpaTPSxgw+8PKQYP6kfcXVmj08CE0Wh0+lzftomTyGgHy+6oFvAwj3RZxBetrv8VG+3EoxIOMTfjwUd5Wscg/sXUFzphYh5ezapoJt+HLf0PxYt3yCNxA+6gverxAL7Z67GMtkOnje7vmgj1PFvQ5gQ+yp8yFfl9CduwBJiPc9RgIR0GwhNdXRDu1fhzXP0FF1bYbpprBgy0NjU0Gt0SEvVGkb1fk3AuTkTNbQjAUXxkAuyrl47eybr+6vhufeS66CIi5cnd8Cm+fbgMNXcqMM7+oJXf+t/LEiEd9eEq3LIEFCBclkTSTThWxtykAxdRRMRGVb9QWnZCATER7ebeoxhhgmFUUN08+sIFCbmJKzEuiqj5YFap0f4J75jttUHt8pl1h3ytX68BcfMNmElTWXGsnhfPq9VBHXZRzG0Aadbaxz65fLV71s8HFQ+z1SvFgxCzkjpOjvH2zXBwpGvRDb0 X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:PH8PR10MB6597.namprd10.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230031)(366004)(396003)(136003)(346002)(376002)(39860400002)(451199024)(1800799009)(186009)(38100700002)(5660300002)(36756003)(86362001)(103116003)(83380400001)(66946007)(1076003)(66476007)(478600001)(66556008)(6506007)(6666004)(6486002)(6916009)(316002)(41300700001)(8676002)(8936002)(4326008)(54906003)(6512007)(2616005)(2906002); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?PuivxonRHvlwD0tIoMUWdeBoSI07hz3fTLCnf3pVQPri738iM8o+F4rUVUEZ?= =?us-ascii?Q?/HkNvodDXS9f6aYvZjTBL4PHwrpdfRM5EaooKvIpd7VzuQYKoGKTa0rIdz5g?= =?us-ascii?Q?y6Jn/xh9bCnyxQ1jKzPdDWALtzq3JWGoDqaHBH9NzeXPjOeZSkpll3sYu/kp?= =?us-ascii?Q?ok/ogktxHLGGdSUSzPhTYs7CMvkqodLYsQBQImAoCVhhiOHeZUq2pb+3p9lB?= =?us-ascii?Q?0f21f9NNi3WoQaouJ1HuNGc1xm62EZ8LihCh11ue27ioF89RQ2AoAEF5jRMN?= =?us-ascii?Q?MDjY4osIKBoEIXHFoLdWKf0zCXdfGN3rjABVCupIVW+Nq1mfHDq+oC8g5uUu?= =?us-ascii?Q?Z3Jov9hgmHneIJIIVoxlj2LUXwpWWG7vi5MYoCCQlzCVFAAnoeB7YnqF5AMk?= =?us-ascii?Q?fusACS6RX5TxemV4qs1/dPwrs2r9XZ6NogX4BcZwvH1+LxnmoCxk5pbWWOJD?= =?us-ascii?Q?EhSJI7ea74+frQ06k27jnAW6c2uwvrM7a5B8UZrxvBjccK2PtcHFYELdM49P?= =?us-ascii?Q?XLC4r6Q/izM4RJDEwdDn8B1BxdMbY5mMTnbbNZXFKmgI9HWTHAQ/rg1e7ivJ?= =?us-ascii?Q?p5mKpdndioDCyC9DkrbfzI//jcLHhnFfsA5ADEh6+rlL0i7kI6Yb4HunDnKQ?= =?us-ascii?Q?XQbliztng94nm/aaeNARQy6d8XoUrboRmmXuEP0I8XQLZH41mf8PyJxpKGOp?= =?us-ascii?Q?Wmx+T78o/RwpxLhoRChOnrR3uhw0swzfNblpes1meN2SgN2E+TBN2vstWHbo?= =?us-ascii?Q?20OtoI5yM+2gb5tTXjwqv+pKsBiw1HmMbzOtdikEkb2mcMoN7qohB3CreILf?= =?us-ascii?Q?59SUC1Cbw/Mfh3qrO6S2YWwNGD68W0dd7JkH9LaVu9WCIG68HbDgZIvHO7N+?= =?us-ascii?Q?fU0WfxMNJK/yKNn+abzcRG7bYaHC1WpqUw5hMzc7cDBGmskYwaKFRvj0zAGZ?= =?us-ascii?Q?BQotma9QVPONeb9K4Ng1u5KeJiCJCbvZuRfAa+x8yMQTu4m5oghsHzEpc86v?= =?us-ascii?Q?uBZu2NsM7OV4Ma0svddsROloca0SbeXGZ6XLhAp7+nNv8nnE8vkl3sj76IUx?= =?us-ascii?Q?vSqg6DyY6ubl28XLEv7gBROEHzP3K8urVKvUoH3E/ynj4KbOFjbh+/AtRe6b?= =?us-ascii?Q?iXq4FH7xVNhf6qtYdCN/1GuhxB5uPRmC6/YYf+KeVRwWYUdKgikZFnYC7sYI?= =?us-ascii?Q?RgRRt0oZGcDD4+qBuUljUj9GM82Q7MVJusQTLnYesv6yhqprOlKD4e5Ts6jb?= =?us-ascii?Q?x1t+ND1fCP9jYB+ef97RP775xoOjU5dyjY7Excdob0rGTXVpl4xkrA1SCuW7?= =?us-ascii?Q?dai04e7bF7qXXJ3EIOtpXiiZVbtp4gIxKC8nXkp7OedOEdEuR0kuprmOhpFR?= =?us-ascii?Q?1B9f7zHxbJTIKwt+moEUWazRIs0ogyEPsryL20VRixQJPjgqYAxKTGgTGIWi?= =?us-ascii?Q?ZFQc5nJJWqgskkfHNTR6bvFgiSPXs+TQsZGXesvAbU+t/6ihU/WK5eJT0Wvu?= =?us-ascii?Q?UwoUxS3rVgWFA2QrIV4ln2EMmFdW19oHkX0nGvPfU6oRvf9ehbSri9GTfV0G?= =?us-ascii?Q?HAUk90phUaNSgFiy0ZdHrV3IGnjFLMrjDDcng36XQ001rXrFo26+/K2xsIJK?= =?us-ascii?Q?yAS9iSNFxHCLuqAVynBuwHyuoVMIj/Or0Fj6/CRXcYAJ?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: Afhl1qkiA25xguKLwURpP2VLa+UT2QznfDD0Ecj5FZdtk2S628kJe/qsiB9QjCx3hdFnCX1tNJS1gmUKSyjCEEU5jDK+/yQ6gPWMJCpHB+qZWx6dbchsZCraipOCJel+20t59Ax0h6fcpIhrIogdHNmzJLaAAkdZfoLfOj5SxwqP6F7+ZwstlqUZjJh8XjEJ3V2I0gr19U216ESGgg1Y1AILt7x4n/h4oaALj+a6UW5by/xY62VJ2OQecrObHyI1SqEu82l/x4qTr7lcXuedMG6PndCF3n/tvzg93kqUs3MGGtT8JRlvPBhNKOxz3okvJgEN9iWBsmhglL6WYMfrl4QJKguD2NiUgDEmey5fGVcB03i1IL6NL1VrU9wPe6oNKUJ0gNgeN8wqdt9WY99g0NhALLUf8i6cQM8mFl+ikPSU8xIBFfqJEMq7+mXU7BnvlCNCEN1B7ltVtKkEPW7qgTWm6uB/Bu2RLrXD1VE5ic/7AG9yKJ0D0+S4yF0t5R7FJfZ/E8RBagq0NHnwEuZIeVv5F6JQqvLzK0VftoMdjBPq5do1Jbv6TTLgUynKF/vHA3YZezfGUXtKmgkSuCaiom3kXubYwRYzYva6dTx0z2yANbDxxHfylp5rudOqLGbvsQZSIZb4hj8qIUOu72AkrjKjeeA4QkSSBR0o+67WF5O0bqIeHggcCVnqkqTJuyUo2/F0HJgqhAgyYuRVh2XsnvUtC8jg3bHyQm5Kvj1K7vNbWpDzuxHNDOuiIy+qJXChdj7oc5W4xfHPAAVQhVQftSPH5Uku+YMjkWbwJV+s9IYclNaz7Odu3iSXRk8tWlihqABQLfWglA5kFf6aAo0un2cZod/Rfk10JrbDEsW6X3eVfKSW8q0qH5keoKhYkZ5Q X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 7c3e2e3b-2bd7-449a-29e7-08dbb4be6368 X-MS-Exchange-CrossTenant-AuthSource: PH8PR10MB6597.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 14 Sep 2023 01:03:20.9141 (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: Xr8FrhhkOCGjOMM3MO63/KdVgnk+GUrN+VwHmeAaoyN+aB2L3ktAVAT767lelZE1bVfx+aoVrWBsgjWm8DqAMHEO7lYvBKppTYAyaNmQkws= X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS7PR10MB4975 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.267,Aquarius:18.0.980,Hydra:6.0.601,FMLib:17.11.176.26 definitions=2023-09-13_19,2023-09-13_01,2023-05-22_02 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 suspectscore=0 adultscore=0 mlxlogscore=999 phishscore=0 malwarescore=0 mlxscore=0 spamscore=0 bulkscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2308100000 definitions=main-2309140008 X-Proofpoint-GUID: 72zAap1s_IPlSvk6vhNl2MsLff7FQHWk X-Proofpoint-ORIG-GUID: 72zAap1s_IPlSvk6vhNl2MsLff7FQHWk Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=205.220.177.32; envelope-from=stephen.s.brennan@oracle.com; helo=mx0b-00069f02.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H5=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @oracle.com) X-ZM-MESSAGEID: 1694653513354100003 Content-Type: text/plain; charset="utf-8" For the next patch, we need a reference to DumpState when writing data. Signed-off-by: Stephen Brennan --- dump/dump.c | 40 ++++++++++++++++++++-------------------- include/sysemu/dump.h | 2 +- 2 files changed, 21 insertions(+), 21 deletions(-) diff --git a/dump/dump.c b/dump/dump.c index d4ef713cd0..74071a1565 100644 --- a/dump/dump.c +++ b/dump/dump.c @@ -809,7 +809,7 @@ static void create_vmcore(DumpState *s, Error **errp) dump_end(s, errp); } =20 -static int write_start_flat_header(int fd) +static int write_start_flat_header(DumpState *s) { MakedumpfileHeader *mh; int ret =3D 0; @@ -824,7 +824,7 @@ static int write_start_flat_header(int fd) mh->version =3D cpu_to_be64(VERSION_FLAT_HEADER); =20 size_t written_size; - written_size =3D qemu_write_full(fd, mh, MAX_SIZE_MDF_HEADER); + written_size =3D qemu_write_full(s->fd, mh, MAX_SIZE_MDF_HEADER); if (written_size !=3D MAX_SIZE_MDF_HEADER) { ret =3D -1; } @@ -833,7 +833,7 @@ static int write_start_flat_header(int fd) return ret; } =20 -static int write_end_flat_header(int fd) +static int write_end_flat_header(DumpState *s) { MakedumpfileDataHeader mdh; =20 @@ -841,7 +841,7 @@ static int write_end_flat_header(int fd) mdh.buf_size =3D END_FLAG_FLAT_HEADER; =20 size_t written_size; - written_size =3D qemu_write_full(fd, &mdh, sizeof(mdh)); + written_size =3D qemu_write_full(s->fd, &mdh, sizeof(mdh)); if (written_size !=3D sizeof(mdh)) { return -1; } @@ -849,7 +849,7 @@ static int write_end_flat_header(int fd) return 0; } =20 -static int write_buffer(int fd, off_t offset, const void *buf, size_t size) +static int write_buffer(DumpState *s, off_t offset, const void *buf, size_= t size) { size_t written_size; MakedumpfileDataHeader mdh; @@ -857,12 +857,12 @@ static int write_buffer(int fd, off_t offset, const v= oid *buf, size_t size) mdh.offset =3D cpu_to_be64(offset); mdh.buf_size =3D cpu_to_be64(size); =20 - written_size =3D qemu_write_full(fd, &mdh, sizeof(mdh)); + written_size =3D qemu_write_full(s->fd, &mdh, sizeof(mdh)); if (written_size !=3D sizeof(mdh)) { return -1; } =20 - written_size =3D qemu_write_full(fd, buf, size); + written_size =3D qemu_write_full(s->fd, buf, size); if (written_size !=3D size) { return -1; } @@ -982,7 +982,7 @@ static void create_header32(DumpState *s, Error **errp) #endif dh->status =3D cpu_to_dump32(s, status); =20 - if (write_buffer(s->fd, 0, dh, size) < 0) { + if (write_buffer(s, 0, dh, size) < 0) { error_setg(errp, "dump: failed to write disk dump header"); goto out; } @@ -1012,7 +1012,7 @@ static void create_header32(DumpState *s, Error **err= p) kh->offset_note =3D cpu_to_dump64(s, offset_note); kh->note_size =3D cpu_to_dump32(s, s->note_size); =20 - if (write_buffer(s->fd, DISKDUMP_HEADER_BLOCKS * + if (write_buffer(s, DISKDUMP_HEADER_BLOCKS * block_size, kh, size) < 0) { error_setg(errp, "dump: failed to write kdump sub header"); goto out; @@ -1027,7 +1027,7 @@ static void create_header32(DumpState *s, Error **err= p) if (*errp) { goto out; } - if (write_buffer(s->fd, offset_note, s->note_buf, + if (write_buffer(s, offset_note, s->note_buf, s->note_size) < 0) { error_setg(errp, "dump: failed to write notes"); goto out; @@ -1093,7 +1093,7 @@ static void create_header64(DumpState *s, Error **err= p) #endif dh->status =3D cpu_to_dump32(s, status); =20 - if (write_buffer(s->fd, 0, dh, size) < 0) { + if (write_buffer(s, 0, dh, size) < 0) { error_setg(errp, "dump: failed to write disk dump header"); goto out; } @@ -1123,7 +1123,7 @@ static void create_header64(DumpState *s, Error **err= p) kh->offset_note =3D cpu_to_dump64(s, offset_note); kh->note_size =3D cpu_to_dump64(s, s->note_size); =20 - if (write_buffer(s->fd, DISKDUMP_HEADER_BLOCKS * + if (write_buffer(s, DISKDUMP_HEADER_BLOCKS * block_size, kh, size) < 0) { error_setg(errp, "dump: failed to write kdump sub header"); goto out; @@ -1139,7 +1139,7 @@ static void create_header64(DumpState *s, Error **err= p) goto out; } =20 - if (write_buffer(s->fd, offset_note, s->note_buf, + if (write_buffer(s, offset_note, s->note_buf, s->note_size) < 0) { error_setg(errp, "dump: failed to write notes"); goto out; @@ -1204,7 +1204,7 @@ static int set_dump_bitmap(uint64_t last_pfn, uint64_= t pfn, bool value, while (old_offset < new_offset) { /* calculate the offset and write dump_bitmap */ offset_bitmap1 =3D s->offset_dump_bitmap + old_offset; - if (write_buffer(s->fd, offset_bitmap1, buf, + if (write_buffer(s, offset_bitmap1, buf, bitmap_bufsize) < 0) { return -1; } @@ -1212,7 +1212,7 @@ static int set_dump_bitmap(uint64_t last_pfn, uint64_= t pfn, bool value, /* dump level 1 is chosen, so 1st and 2nd bitmap are same */ offset_bitmap2 =3D s->offset_dump_bitmap + s->len_dump_bitmap + old_offset; - if (write_buffer(s->fd, offset_bitmap2, buf, + if (write_buffer(s, offset_bitmap2, buf, bitmap_bufsize) < 0) { return -1; } @@ -1380,7 +1380,7 @@ out: static void prepare_data_cache(DataCache *data_cache, DumpState *s, off_t offset) { - data_cache->fd =3D s->fd; + data_cache->state =3D s; data_cache->data_size =3D 0; data_cache->buf_size =3D 4 * dump_bitmap_get_bufsize(s); data_cache->buf =3D g_malloc0(data_cache->buf_size); @@ -1399,11 +1399,11 @@ static int write_cache(DataCache *dc, const void *b= uf, size_t size, /* * if flag_sync is set, synchronize data in dc->buf into vmcore. * otherwise check if the space is enough for caching data in buf, if = not, - * write the data in dc->buf to dc->fd and reset dc->buf + * write the data in dc->buf to dc->state->fd and reset dc->buf */ if ((!flag_sync && dc->data_size + size > dc->buf_size) || (flag_sync && dc->data_size > 0)) { - if (write_buffer(dc->fd, dc->offset, dc->buf, dc->data_size) < 0) { + if (write_buffer(dc->state, dc->offset, dc->buf, dc->data_size) < = 0) { return -1; } =20 @@ -1644,7 +1644,7 @@ static void create_kdump_vmcore(DumpState *s, Error *= *errp) * +------------------------------------------+ */ =20 - ret =3D write_start_flat_header(s->fd); + ret =3D write_start_flat_header(s); if (ret < 0) { error_setg(errp, "dump: failed to write start flat header"); return; @@ -1665,7 +1665,7 @@ static void create_kdump_vmcore(DumpState *s, Error *= *errp) return; } =20 - ret =3D write_end_flat_header(s->fd); + ret =3D write_end_flat_header(s); if (ret < 0) { error_setg(errp, "dump: failed to write end flat header"); return; diff --git a/include/sysemu/dump.h b/include/sysemu/dump.h index 7008d43d04..e27af8fb34 100644 --- a/include/sysemu/dump.h +++ b/include/sysemu/dump.h @@ -137,7 +137,7 @@ typedef struct QEMU_PACKED KdumpSubHeader64 { } KdumpSubHeader64; =20 typedef struct DataCache { - int fd; /* fd of the file where to write the cached data */ + DumpState *state; /* dump state related to this data */ uint8_t *buf; /* buffer for cached data */ size_t buf_size; /* size of the buf */ size_t data_size; /* size of cached data in buf */ --=20 2.39.3 From nobody Sat Jun 1 09:39:02 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; arc=pass (i=1 dmarc=pass fromdomain=oracle.com); dmarc=pass(p=none dis=none) header.from=oracle.com ARC-Seal: i=2; a=rsa-sha256; t=1694653482; cv=pass; d=zohomail.com; s=zohoarc; b=IpiufmdryQADmjEEWlDToA42jJtQSsOT3wQdPh90Gw38Kb0CZE8bP0N9bqeYmpn7uiDScwd+on7XrLdyTG6YMAGSUb/+ciQTmSI8Bu4g2UDLn6rCvtjiIchi0ALJ/2Pv/EzMkuxY7U57UXXjnZIJ9Pi4Elogru32ify5qEQVVaE= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1694653482; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=s50DNF5qM5IN5dmRI7stW4xoSfcPGFYza1InsBgy2iU=; b=YN02U3o90mwYvnWusjVvuAAVF+kIws9Ia8JFkOdwtixEWlbWIbFzIjL3uOCoBFOftiiIA7F5YeVfa154istl38VhgLUyTkpnri5avMQ+5bnN3J+PA+t3KZktsRPA2H8FBGQ1TPJPBlZvi64FkqPNGnSuSJGqXeI8ajixNcWxohM= ARC-Authentication-Results: i=2; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; arc=pass (i=1 dmarc=pass fromdomain=oracle.com); dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1694653482822511.5645475656455; Wed, 13 Sep 2023 18:04:42 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qgamA-0000oL-EF; Wed, 13 Sep 2023 21:04:10 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qgam8-0000o7-6f for qemu-devel@nongnu.org; Wed, 13 Sep 2023 21:04:08 -0400 Received: from mx0b-00069f02.pphosted.com ([205.220.177.32]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qgam6-0008W6-8G for qemu-devel@nongnu.org; Wed, 13 Sep 2023 21:04:07 -0400 Received: from pps.filterd (m0246630.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 38DNMhS2015446; Thu, 14 Sep 2023 01:04:04 GMT Received: from phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta02.appoci.oracle.com [147.154.114.232]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3t37jr2w7b-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 14 Sep 2023 01:04:04 +0000 Received: from pps.filterd (phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com [127.0.0.1]) by phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (8.17.1.19/8.17.1.19) with ESMTP id 38E117OU023178; Thu, 14 Sep 2023 01:03:48 GMT Received: from nam04-bn8-obe.outbound.protection.outlook.com (mail-bn8nam04lp2040.outbound.protection.outlook.com [104.47.74.40]) by phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id 3t0f588p9a-2 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 14 Sep 2023 01:03:48 +0000 Received: from PH8PR10MB6597.namprd10.prod.outlook.com (2603:10b6:510:226::20) by DS7PR10MB4975.namprd10.prod.outlook.com (2603:10b6:5:3b1::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6792.20; Thu, 14 Sep 2023 01:03:22 +0000 Received: from PH8PR10MB6597.namprd10.prod.outlook.com ([fe80::35e3:7e4c:72b2:cf74]) by PH8PR10MB6597.namprd10.prod.outlook.com ([fe80::35e3:7e4c:72b2:cf74%7]) with mapi id 15.20.6768.029; Thu, 14 Sep 2023 01:03:22 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=from : to : cc : subject : date : message-id : in-reply-to : references : content-transfer-encoding : content-type : mime-version; s=corp-2023-03-30; bh=s50DNF5qM5IN5dmRI7stW4xoSfcPGFYza1InsBgy2iU=; b=qab7ti/1h7AmyP6aS6e+XRBcSV7BnQnh3/6IwEiSG3e3HCjUzTWHW0+5G5knmTc51Mjd yZ2h/0+VI1Ysemgpko5hOBtxlSJnvUsUDuIqOWHZIabUBLT2yNF9fVkMjiqTpYq8SSUb N/zulUcgHOrQD11rnTZhieEqoOQvC9pTO1rb3K7Eja1hsRdCq9f82Uqxvsq42pYq3kxx EowcjDNiHx+2IxrYbiGM1BS1DHbXUoPOgnP+ChUc+bmT4KLpOZ55CXDp6zATSvOHqR95 sY0/y/5NDGEk0bCCLHfxdpTZsbaYnersckslHrK5VUpye94X9ZWuo7j/mplxpVXBqjxE Pg== ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=KpIjGewM+m6EVqTW9pKJ0oREy176u/5gYMxH7oCJ6vONDPS0rpzemjN7IXRFQ0da/KKYGyD/ec4Ehn6I8nLGSdGqymcqvpg9iJxf9HfynnkMi6t9ggLNoWKbwbatuFfFeUC8bVENJ5tUvAbRPwk4tr7IRfALkpwCV3eO4RR1d4+WBTgi2koYa2/zfPwjGg85j2e9koE8/A6hRHrwAC27hJoUARbqW/EXevsScxBCRYGU+Xjtt8q/in94ct+wiafuHfhkhO+9mvlroIMBVETz1hXf3fa2NAJQmqQtXP7u3ls/VRigRlmR6MAK2PndwCPViFYc0hMTqCMpc0fM3fzsnQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=s50DNF5qM5IN5dmRI7stW4xoSfcPGFYza1InsBgy2iU=; b=cdIpPa7pk3HnrLrUgup3XL0H2erhFnHJYFylVhyvRp/Jlzqs+/+VVQSpP0evvjpLBrjuR/HBeqfhKVqwLgIYMIdl7TLwZJvhMKmjqog6ArZNSwR/gtAK43fh/72WrJe2Rd5o5knuyokTxF5Ciq9G7+obFwkVN/cJf/03cTE32uOCPWwSAbkOSxzvCYpx0ZTNcGPPnildBf/VGyVjn2T5HQAKs6Z+z0RdUKF2zuLCWthdndYsFAfhTPRRrCQoXyzsvhJNxHwZ5hPzn8l2TelK/uLuRuUIIcbCAPjLvfIQH1XwQ90/46AfYyRFk/LDsYibd4c7pDQEPniFGeJBiLwrDw== 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=s50DNF5qM5IN5dmRI7stW4xoSfcPGFYza1InsBgy2iU=; b=N7y99qHQ8eb38Myuqn1qzwLqDd8TUqfpPhoQy9jdnp+XYN23Xu5WPJMFgECXE84e9ZcLLEVnVgk4E61Zi+xqF/y4ZsWDgo0bBiApypIiYfFE2Pbd0gwX7mXbXQCfRWeRcTY6VsrNsU3z5tINkaDFnLGYh+j2ifbcazOvh/fE1qA= From: Stephen Brennan To: qemu-devel@nongnu.org Cc: linux-debuggers@vger.kernel.org, stephen.s.brennan@oracle.com, =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= , Omar Sandoval , Thomas Huth , =?UTF-8?q?Daniel=20P=20=2E=20Berrang=C3=A9?= Subject: [PATCH v2 qemu 2/3] dump: Allow directly outputting reassembled kdumps Date: Wed, 13 Sep 2023 18:03:14 -0700 Message-Id: <20230914010315.945705-3-stephen.s.brennan@oracle.com> X-Mailer: git-send-email 2.39.3 In-Reply-To: <20230914010315.945705-1-stephen.s.brennan@oracle.com> References: <20230914010315.945705-1-stephen.s.brennan@oracle.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: SA9PR13CA0050.namprd13.prod.outlook.com (2603:10b6:806:22::25) To PH8PR10MB6597.namprd10.prod.outlook.com (2603:10b6:510:226::20) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: PH8PR10MB6597:EE_|DS7PR10MB4975:EE_ X-MS-Office365-Filtering-Correlation-Id: 5e1b37cd-743c-40e3-d3f5-08dbb4be6483 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: s/PYHyRTK7iTE5Mjdkz0sDwdN/OxCXaeNWNr1Fa1GTXIHZYx7xbzSbYmuY+d3JdrMpKGr7JfWfNfq//BP8y9+Qw+4ral8Q7J7zuFugS15ltmb7wbIUgNkJHj/1HP0SB3OuehHoH10fm9yZ1yC2ko0cqHqlKy1YWpCVdgu4eUFfMhhI+DOa6lYmeJiE4CEVSa+7QzJ0mM4N/0FLQhynLRhuOGsCoznCA32uFcsx48tG40xX0FLTzKbhMq4nGqIJtBKqUvFVO+Cj13ghk1O7bSXI8VXoA0OO+uB/4MhSoh8Z3/zY6opE1uHS5c7MHGj3LmQ5MxKTUQq2XdgXzQI9nicQrGR4MUT50TkLiG9iMfRWFRoC48EMNHl3j/iDKZvP1CeHcA8sdfTiRjDdI+78wzbgiGMr0JvLflqkrH0vovqQbr/FmxX8FDStJgH9Xg5sa+pey+5EAs1d/w7cfkmK57rAsK6q2KkFs4dT8IcCqGnEUSxdxT6+hNLyNk8qrtIS6YiSCJtaerP9VIzMyK1LPdd51WdUy6a/EKIoTdsFoVWu0= X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:PH8PR10MB6597.namprd10.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230031)(366004)(396003)(136003)(346002)(376002)(39860400002)(451199024)(1800799009)(186009)(66899024)(38100700002)(5660300002)(36756003)(86362001)(103116003)(83380400001)(66946007)(1076003)(66476007)(478600001)(966005)(66556008)(6506007)(6666004)(6486002)(6916009)(316002)(41300700001)(8676002)(8936002)(4326008)(54906003)(6512007)(2616005)(2906002); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?voDw5cQ/LL8nHvXZ7ymO2Jvg1hvAlQYcAYKdsljHBNYHlMJamWb5daIpVj6D?= =?us-ascii?Q?SnZwKChTx4ySr/owOpvuRkPyYozK/HU8bCFxl4M06HxJpgfhvQYsCdHp5OI9?= =?us-ascii?Q?PLVt2RRbFECTQY6b/TcgLL0RK6CySsbjX6QYQeM6ERWrBw31FJudkoWjy7AH?= =?us-ascii?Q?bAkJqe4g4TXsFD5MbYqPVXcpuLeI9WFk4GxdtAMnKi++8pTAu8XT95zDMwhE?= =?us-ascii?Q?hePG4cwmUtFWDT6mYTz3CgsL1yvwmaric7lNpR84saOapHvqDNMLnhD2TWra?= =?us-ascii?Q?P58HlRwpcdEt/9DWoOUwucW60fXczC/7r1BHzb2xoxGrevXhkA+dRELxiwa+?= =?us-ascii?Q?BF728qXC0P8/Zvz1pt/X1dl4P2n19aQb9AtPK/8XAo21Bd7q+iI1JIFEH6+F?= =?us-ascii?Q?MGkBIGyeBuoVDoLfSP8KJnTB7ED8DV0dmpoMSZlZEEo2AW0c39gVmCFnEtad?= =?us-ascii?Q?oO6Vube6JmqUvI3QKhX3rcDAYGgyHmUABSPiuLNqBrSmQSTHs7X0XlTXQCRD?= =?us-ascii?Q?zEeS1LXO1Ntndr+KXAUtJx2FibGUF9Ch7osEfmZiUMGskbWuZoxJehBCfUXl?= =?us-ascii?Q?o+7syLo142Pkg3Y7zrtzSOTubmA646w7Zbh0Nrxe8wqzdTe5wvbyt+K09/Wi?= =?us-ascii?Q?fZUIyOLRhVTuzq2CtBB/2yKqy5eoUtQQtOlUAryAvLZTpfnVkz4YeKxxpvVt?= =?us-ascii?Q?3N3Z3ZH8y9e6aWP9BMXXLnSk2iIU0Gd6JQ4s0jrH2yyZSzGQHu8aiRj6JSMo?= =?us-ascii?Q?HsSrnGmrN4lNNUSs31r5vvoSeN+cCUlFzLW+MqrYlx0T508tLho9ybz3e3lz?= =?us-ascii?Q?QM/A+6oEq0Km6NLnmWKEKVmEB8um4M7uuI3QXMxETc59ttV5YPjfApY6N1Qc?= =?us-ascii?Q?TnrtHyj5FnpaDUHmpMWpSnCmj8V1JQoPfinkxQqJwgsP+WybZNKMrDUnXYCb?= =?us-ascii?Q?GaY44ZSBqLrF3pryHctoKwkta6BGPde4nCV/y0aKLQ7pFN3X4fNrN8CjOoMy?= =?us-ascii?Q?qpuB2M2EcqZS2Q99LaNZ9fzWtU3F38kRQKjVHpBaZSQlmRDWiIjFJZCGxww6?= =?us-ascii?Q?EdjKJm4i7TGTVTaF67gbDdYdozLTcs62ZJhS8uYN//OBTVMguQQHQaszTcyD?= =?us-ascii?Q?MWuEx6sp3hakRGiFQGi11KmYBq2hNgaWIMxZovsxv8OdFgGhw0MDrWi28YOz?= =?us-ascii?Q?o055iUxU5iP6gSembRKsoVzTTkwGha9H8TTFQjWNe5GMO+foKvMfCVTrYkIz?= =?us-ascii?Q?4Cx4x6morAWWZDPxVXoieOOrkXhdI/hNiP1tvQf4jY5MtqWY0c0DLx68ktxv?= =?us-ascii?Q?vUggTRLXYap2SLtBmB0CUpxCM2Sg6+Mk3fm+1PRC5G28Lw00NziXZYgy0DS4?= =?us-ascii?Q?Hnuca3PkVLWRavCj6LrFBxfvuBVR0zRfpm5DkLsR9O3VcwbLtNLxpeMPGRJM?= =?us-ascii?Q?KLZgcYY4SuKvuy+CE41+DFeqSDWP8QUv5Xvq/P1JtgirnLRTVAorFAcHaEtg?= =?us-ascii?Q?v2g7XoGpEkZ7H4b4O0vzTZ4KYDlT5tGZ8mH4/YufJShptwShHmv+AaziQ8mZ?= =?us-ascii?Q?pJ3bFpApUFXCHYeRek1cig9g+gQTuGqcd18/enHzsFs0cSkkxBgXS55Qix+8?= =?us-ascii?Q?0erx0I8RLBi5UxbZkwcetTmcaarmlFI6ge0GlItH+ulq?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: Epcnx0utwrIEOSPqkK59AkRDtZCzir2qOLVcXK4F0igwP1SQoj404Ez2HDxIuvFSKFr9nt9DtcxGcnDD739xFNOJ0LEqpQOCzmEbWjsnAWb9d2oeCMAXbs6xk5pU25lMtXkM/fU51U69O9L/kKiF+uZeqfkwGN4hfGXCqRt58iccZLJ+W4012zZwYlsDkMOcjD0mYsCyf7njkWBtmTV1nNCEm2evq6Zhh0ns79vpuRU0yXUE64t1q+Sf7CMsa3OKi4fqyDWrv7WA4uf4eOjJgcKws9FkCTEU2SIya+ewcXdUzwWR4XBa7Ebekbu+QXAWrKEshSvHNiaFMPcZM1Z0nnqHOa5nOpIasHDv26gDH2gwd6MhSXCCEbZKu0/30pmOGhHNCcIZ/Tj20atTIKCGW1CBmlcFtpR1Wk7gkWna+7OzxqzVip5+PQtvQp+KBuH4PsEwYtg7xJaCHsnw/u0mlj6Ew6kVq0eKXoNFnUvopltY0RtBQDip+9ODbIVSqFjP7wbD5p7dk8qkW2B6x8D6a/71gLZF+RbU0vF+Fe3aydrlq/oMqYL3cLzYfN5HLlgsSJerhfAPdEC5JF18qR1771BUER+oytDTCAV99YHKF3xktaOrZGoFO+ota50yk3qL8Y0CtVFLDjXsUCuiGjSZSojJuCIG39pGXmvIpTKJAlds7j3Iegzq1Q50G0+SA0k9MdYBv4+VDE+micBhypgkrPwK7ZvTdbVa72bQOhhCohXgpO7CMaUVYtG16V739tlvRQLnlHcmb884rIUzRcmXDOVOGsjodqvgzMF/dpVLK/8A9PaTOBIPZEvDx9t7FLyBrZhO/xaxfic42QZHy6uR9gdx2cZ2e4FNLZyW31NH7d1bP99ZObfqfa5LX61h5Ab2 X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 5e1b37cd-743c-40e3-d3f5-08dbb4be6483 X-MS-Exchange-CrossTenant-AuthSource: PH8PR10MB6597.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 14 Sep 2023 01:03:22.7215 (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: UXX189NANbqHoE0mocviVx3aq/vYkIdTkqzAVMj82EhR577svMax4g9tGUNu7VvR1o4oWxl9FoZyhAWllMUOVh7YgAjfvRZZFIyJLYh1Ofg= X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS7PR10MB4975 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.267,Aquarius:18.0.980,Hydra:6.0.601,FMLib:17.11.176.26 definitions=2023-09-13_19,2023-09-13_01,2023-05-22_02 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 suspectscore=0 adultscore=0 mlxlogscore=999 phishscore=0 malwarescore=0 mlxscore=0 spamscore=0 bulkscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2308100000 definitions=main-2309140008 X-Proofpoint-ORIG-GUID: GJITTWbyMCYYolOHewpUkGtlCIISdhW6 X-Proofpoint-GUID: GJITTWbyMCYYolOHewpUkGtlCIISdhW6 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=205.220.177.32; envelope-from=stephen.s.brennan@oracle.com; helo=mx0b-00069f02.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H5=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @oracle.com) X-ZM-MESSAGEID: 1694653483475100001 Content-Type: text/plain; charset="utf-8" The flattened format (currently output by qemu) is used by makedumpfile only when it is outputting a vmcore to a file which is not seekable. The flattened format functions essentially as a set of instructions of the form "seek to the given offset, then write the given bytes out". The flattened format can be reconstructed using makedumpfile -R, or makedumpfile-R.pl, but it is a slow process because it requires copying the entire vmcore. The flattened format can also be directly read by crash, but still, it requires a lengthy reassembly phase. To sum up, the flattened format is not an ideal one: it should only be used on files which are actually not seekable. This is the exact strategy which makedumpfile uses, as seen in the implementation of "write_buffer()" in makedumpfile [1]. However, Qemu has always used the flattened format. For compatibility it is best not to change the default output format without warning. So, add a flag to DumpState which changes the output to use the normal (i.e. reassembled) format. This flag will be added to the QMP commands in the next change. [1]: https://github.com/makedumpfile/makedumpfile/blob/f23bb943568188a2746d= bf9b6692668f5a2ac3b6/makedumpfile.c#L5008-L5040 Signed-off-by: Stephen Brennan --- dump/dump.c | 38 +++++++++++++++++++++++++++++++------- include/sysemu/dump.h | 1 + 2 files changed, 32 insertions(+), 7 deletions(-) diff --git a/dump/dump.c b/dump/dump.c index 74071a1565..fb9040cfbc 100644 --- a/dump/dump.c +++ b/dump/dump.c @@ -814,6 +814,16 @@ static int write_start_flat_header(DumpState *s) MakedumpfileHeader *mh; int ret =3D 0; =20 + /* The user can request we not use the flattened format, but + * if the file is not seekable, we need to fall back to flattened. */ + if (s->kdump_reassembled) { + if (lseek(s->fd, 0, SEEK_CUR) =3D=3D (loff_t) -1) { + s->kdump_reassembled =3D false; + } else { + return 0; + } + } + QEMU_BUILD_BUG_ON(sizeof *mh > MAX_SIZE_MDF_HEADER); mh =3D g_malloc0(MAX_SIZE_MDF_HEADER); =20 @@ -837,6 +847,10 @@ static int write_end_flat_header(DumpState *s) { MakedumpfileDataHeader mdh; =20 + if (s->kdump_reassembled) { + return 0; + } + mdh.offset =3D END_FLAG_FLAT_HEADER; mdh.buf_size =3D END_FLAG_FLAT_HEADER; =20 @@ -853,13 +867,21 @@ static int write_buffer(DumpState *s, off_t offset, c= onst void *buf, size_t size { size_t written_size; MakedumpfileDataHeader mdh; + loff_t seek_loc; =20 - mdh.offset =3D cpu_to_be64(offset); - mdh.buf_size =3D cpu_to_be64(size); + if (s->kdump_reassembled) { + seek_loc =3D lseek(s->fd, offset, SEEK_SET); + if (seek_loc =3D=3D (off_t) -1) { + return -1; + } + } else { + mdh.offset =3D cpu_to_be64(offset); + mdh.buf_size =3D cpu_to_be64(size); =20 - written_size =3D qemu_write_full(s->fd, &mdh, sizeof(mdh)); - if (written_size !=3D sizeof(mdh)) { - return -1; + written_size =3D qemu_write_full(s->fd, &mdh, sizeof(mdh)); + if (written_size !=3D sizeof(mdh)) { + return -1; + } } =20 written_size =3D qemu_write_full(s->fd, buf, size); @@ -1775,7 +1797,8 @@ static void vmcoreinfo_update_phys_base(DumpState *s) =20 static void dump_init(DumpState *s, int fd, bool has_format, DumpGuestMemoryFormat format, bool paging, bool has_= filter, - int64_t begin, int64_t length, Error **errp) + int64_t begin, int64_t length, bool kdump_reassemble= d, + Error **errp) { ERRP_GUARD(); VMCoreInfoState *vmci =3D vmcoreinfo_find(); @@ -1786,6 +1809,7 @@ static void dump_init(DumpState *s, int fd, bool has_= format, s->has_format =3D has_format; s->format =3D format; s->written_size =3D 0; + s->kdump_reassembled =3D kdump_reassembled; =20 /* kdump-compressed is conflict with paging and filter */ if (has_format && format !=3D DUMP_GUEST_MEMORY_FORMAT_ELF) { @@ -2168,7 +2192,7 @@ void qmp_dump_guest_memory(bool paging, const char *f= ile, dump_state_prepare(s); =20 dump_init(s, fd, has_format, format, paging, has_begin, - begin, length, errp); + begin, length, false, errp); if (*errp) { qatomic_set(&s->status, DUMP_STATUS_FAILED); return; diff --git a/include/sysemu/dump.h b/include/sysemu/dump.h index e27af8fb34..71ec492fce 100644 --- a/include/sysemu/dump.h +++ b/include/sysemu/dump.h @@ -157,6 +157,7 @@ typedef struct DumpState { MemoryMappingList list; bool resume; bool detached; + bool kdump_reassembled; hwaddr memory_offset; int fd; =20 --=20 2.39.3 From nobody Sat Jun 1 09:39:02 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; arc=pass (i=1 dmarc=pass fromdomain=oracle.com); dmarc=pass(p=none dis=none) header.from=oracle.com ARC-Seal: i=2; a=rsa-sha256; t=1694653482; cv=pass; d=zohomail.com; s=zohoarc; b=PObC90Kzausk0g/M91ogqlxrqqUMef8Gkb02XqO0aKLRwDQ3pdztV0BuR4A5JaZU2MDMIOA8hwGzFT+FqvYwh1hdko/SZ0yvYDpaszldXkQuGPZIFlzKJR35Xpvl0jTOqQJNFRQA5ArnnF4gOGQPV6+ArJDUVgdj00GczmH5T+c= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1694653482; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=KlqUrq9G5a/uFnwd8HATwVepaJrR2WQP413pDAqwaDE=; b=i9Jr2SkegerK/QljhJ48prQXILkn1zBgN2senNAaebWGTAJvRcQy/Dd9PEQyY8DUyilu1BOi0l8bXvvnFdXyL4VPyrSzhkXSDeu14Y0x4U3vGUr9w5GiGQtzQLtKGtC1JQkbyzObxQBx7yB+Nw0rPtRhyZzEb8pPy5IhxCDmubc= ARC-Authentication-Results: i=2; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; arc=pass (i=1 dmarc=pass fromdomain=oracle.com); dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 169465348267230.153016925922884; Wed, 13 Sep 2023 18:04:42 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qgalf-0000m3-8o; Wed, 13 Sep 2023 21:03:39 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qgald-0000lq-Eg for qemu-devel@nongnu.org; Wed, 13 Sep 2023 21:03:37 -0400 Received: from mx0a-00069f02.pphosted.com ([205.220.165.32]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qgalb-0008SW-KG for qemu-devel@nongnu.org; Wed, 13 Sep 2023 21:03:37 -0400 Received: from pps.filterd (m0246617.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 38DMqOjG014714; Thu, 14 Sep 2023 01:03:30 GMT Received: from iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta03.appoci.oracle.com [130.35.103.27]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3t2y7pkfxf-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 14 Sep 2023 01:03:30 +0000 Received: from pps.filterd (iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com [127.0.0.1]) by iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (8.17.1.19/8.17.1.19) with ESMTP id 38E02nLp033154; Thu, 14 Sep 2023 01:03:28 GMT Received: from nam12-mw2-obe.outbound.protection.outlook.com (mail-mw2nam12lp2043.outbound.protection.outlook.com [104.47.66.43]) by iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTPS id 3t0wkh9x4v-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 14 Sep 2023 01:03:28 +0000 Received: from PH8PR10MB6597.namprd10.prod.outlook.com (2603:10b6:510:226::20) by LV3PR10MB7963.namprd10.prod.outlook.com (2603:10b6:408:20e::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6768.38; Thu, 14 Sep 2023 01:03:25 +0000 Received: from PH8PR10MB6597.namprd10.prod.outlook.com ([fe80::35e3:7e4c:72b2:cf74]) by PH8PR10MB6597.namprd10.prod.outlook.com ([fe80::35e3:7e4c:72b2:cf74%7]) with mapi id 15.20.6768.029; Thu, 14 Sep 2023 01:03:24 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=from : to : cc : subject : date : message-id : in-reply-to : references : content-transfer-encoding : content-type : mime-version; s=corp-2023-03-30; bh=KlqUrq9G5a/uFnwd8HATwVepaJrR2WQP413pDAqwaDE=; b=xZHVQrIOAoYaZQu4r6ADnJwsTbWYwybaEV0MUk4TA0lUvNO4GHby7SuNJ5ow1gH6qeVU A7q2XePwijOaZ44AHBVgBqPOvtcA4g1WbfHECwnIdiahP8vIfATaBCUOPKJQ/HiuTBv9 /y/16OWm/GKbdhJEaBqujUb77KHtDGHZSRip3phB4CwI60u4+BUKLRb5obdqhBds8b9m GaEvY9FLC46+nxXpPxganXRl/XDGLz6jSlHlrGiSlMthNjmdD9Zdt8xr+kM+iMHVvMIM vw7XYL6fXkIZKpJw+F18hgGVZr++6IXkRZOT25sa4wcpD2ocTTJUqCT4TSnBpg1tTA/B 4w== ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=gzClQrZrRDu8m/cRd2aVkvkWYtiKhYPpCUXOiH2TPYEY6I7uP//R5vftqVz3VZd0mO59SlMtwv5G8+jrOTRu5NZgpUyAQF30cKs4jaMazvtgEYah5etyPpYQCgV80aWgHMk5GdAgPYpTwNw948XW57xKNEDssnhh+2g1yJwpQ/GjNcaGhMxaNpAJtElrhB+COgCd+EIchEQXuYKXnn9lEhcjr0yePYaX325yjGIce1VFPmGaNS3TbO9FLHHAcvPHFRHa3Awmfras12YiZcmRFTBShjqbyUzEM9OTx0zxxCVlFLZ3gtOqwjMqzqHSwq8d+uXMbrUeCFLlXYsi67ZZvA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=KlqUrq9G5a/uFnwd8HATwVepaJrR2WQP413pDAqwaDE=; b=ff2Kbt1QTZWyzmC7fYRnFAFXy1xkacAvGyzqPOpPsN+FXrgS8roYW+GVIScbkHge6yOEyqC7JUIYIyPid8E6ThnUbRvJ1BOnyK55ZmoagnYQd/2Yd8EHEMR7GWHxhSr7kpZGghZXUZqZcvXSau29XOc9wCf3kRm6ug/dueYfOmwtAALs420g3pGJ2Pm6jfp9DKuDnLuHVn46SAeO3i3Y0rARPoAr9OTWKTseWUShAYtenzE7MdubCq2qfZw/eK4ACLRe7limVHV9DEeiLmkIMe0iwxKBT0NBFKt89tpGIZZaoHNJ0ug77GER099CYlDEK4MJLrL5TZ9rPUdl8yb6QQ== 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=KlqUrq9G5a/uFnwd8HATwVepaJrR2WQP413pDAqwaDE=; b=Zxp0dZ/q1tykje7CjrybRqxYkxPmB880abn5tXpv73VhT/KF4cuUOb5pzHNyEXVQynb/k66QWgSKQIgS6yZ8irkdhevHtbyg6tcau0v6c3yrk7KZZAx3MZr3SN2PqrAdYplfv4zI45JuDGKXJKxsTeWTVyqsObu0MI9rFKPERuM= From: Stephen Brennan To: qemu-devel@nongnu.org Cc: linux-debuggers@vger.kernel.org, stephen.s.brennan@oracle.com, =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= , Omar Sandoval , Thomas Huth , =?UTF-8?q?Daniel=20P=20=2E=20Berrang=C3=A9?= Subject: [PATCH v2 qemu 3/3] dump: Add qmp argument "reassembled" Date: Wed, 13 Sep 2023 18:03:15 -0700 Message-Id: <20230914010315.945705-4-stephen.s.brennan@oracle.com> X-Mailer: git-send-email 2.39.3 In-Reply-To: <20230914010315.945705-1-stephen.s.brennan@oracle.com> References: <20230914010315.945705-1-stephen.s.brennan@oracle.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: SA9PR13CA0057.namprd13.prod.outlook.com (2603:10b6:806:22::32) To PH8PR10MB6597.namprd10.prod.outlook.com (2603:10b6:510:226::20) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: PH8PR10MB6597:EE_|LV3PR10MB7963:EE_ X-MS-Office365-Filtering-Correlation-Id: f27d36c7-2ad9-4df7-2a89-08dbb4be65cf X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: aMvbgWZpatx3GAd0v1q/g0dXqS5TbDdeGJDFXPpm4bus5hZ8QfVh7bnxWUBEvxjDEppet/Y124iuaOXmGMnbfkIuoSoho3+OeNjzEuDthkSJ1ebpTfAgMyHXYjXGmJq3PRs1YNidfdjGsP05x11tx7sMLw3BjhicuKLjqQiTOTqb7bsYmuUxQIjpQoa5m6bIvFT9m+vxbQ2PXjRYbkFq1qN6FaDjuJPV8/gPj9SBlbm658hTMUF/9Gm32eN8JCwl5bh32PlfMJdP72iwmcVTPBTSsrtRrumEqZ4G9+gBC5S7bw0Rp21mf0WihE/PbogwgkZQk6VpdpRmX/h+raRLiwRx5g8HEjWS8lXKc+1sWxBZ/BnoABYytcTmZSv/+ntWeAfvoc/Dl/ANm0ynP4gTJxBHCh5wTWI4dpLKFNdtgrSyxttgyMxpvMCd0uqN2ycAUyRFCUxuUV2PBDtru36UzFcvX01aRa92Y5KpFDwlYCRAGSLz+v5W2HvOBO4NdNpXcHoKTjGQToQDDZtApss0CBFwIY/LP6JYWw/Dl3zwdsMFepsNRFGkNT/j0BP40nO2 X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:PH8PR10MB6597.namprd10.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230031)(39860400002)(136003)(366004)(396003)(376002)(346002)(451199024)(1800799009)(186009)(1076003)(36756003)(2616005)(38100700002)(2906002)(83380400001)(4326008)(5660300002)(478600001)(6486002)(6506007)(8936002)(54906003)(8676002)(103116003)(6916009)(66476007)(6666004)(66946007)(66556008)(41300700001)(6512007)(86362001)(316002); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?cKFm9O+kAd+NbL5DMpS8p61cqDEYpSUBLGlJWSg96Dh3zwCH9JMYtnpP16gj?= =?us-ascii?Q?WuG4UVjMzEH6Rb7p+pCiAibPjWZmZbuFZqUAAYqxeLqMINCHV3kM9b3mhZiu?= =?us-ascii?Q?YkiiJEKnxnHe1ia6uFQ2sPulHl/w3cS6awre8ursqrJVfm1/4F1ZWp0ezMUP?= =?us-ascii?Q?J8rgJgIWPzC2LQhyaCXfUxTijqpM/AXM69LOeUgJq6RHi+VBDaVL9ggZ27mq?= =?us-ascii?Q?W/sVXsfNLWs+SPtYvSnXsJS4MLuedRe0yuUkCI89ccNj4a9sXr6KsQCvZcCu?= =?us-ascii?Q?Nm91t31Ob0doiIg7ku9ivWT/uuRcJYlhDyBWD6/XPuYVHNLpaPeByBK/t+JE?= =?us-ascii?Q?1RYI8SB+N2959KrGcM5gqItvMRxFr8dhlKIXZvVM9+7BQ/tKsiFIMuALDtMa?= =?us-ascii?Q?ES1BHLWGIIjsGZSbxNhxkvCLp+Z+7JuCD7ejRaGJyg0jPAZZuKOMp35rYX4X?= =?us-ascii?Q?bt2jVhtiq54MmhjfIQg9Zi/v34jEqmClbqektGuNYA8s+rPiw0dvEYyA7tvQ?= =?us-ascii?Q?zMHGxSPMlVlQTEaZO6k3QW+jlR31PS08VIDxgrUQywWgs7d2tfZ0jMwVO2YB?= =?us-ascii?Q?ZxZUipQxPiG8pMPmRsSPudjWUbOZdfu/ezKfKlfaoOIdT+8P5F+pFMjoTYk+?= =?us-ascii?Q?+fAtsHhurA1TLAzrAwgjeTnw6XHCBCakenDUwiqwsXsuMpq5Zh5qlbX1nk5h?= =?us-ascii?Q?9p1YqPe1HSCZkymcWcNvUSsZrDYNP9faTahTZQfYxxNNa8xq3K+ejr23fCX2?= =?us-ascii?Q?N/mBSIVW4u6DXmIRHDxugFXFwXHhcrN77bRArxF+HVODQ6kh6AXR3H3bVY7E?= =?us-ascii?Q?rrD0JqxO/wxxV6phg/cUfhtIhLM8i1Ysh3WSH0QqiI2jLGV7BDpodOyQ7MBX?= =?us-ascii?Q?ZrVbowj85oaO8882zWyU54E31if00greI7hC1lpgujHvE5uXUgHBxeORCRpX?= =?us-ascii?Q?/1C92vZwyIDMb9F8IlvUoRFQKnaONBcKTfYemHPyFF2HjgG7O388RwQinTeD?= =?us-ascii?Q?umzY9qZiBcBEF4mIOIECDyJ56Wok1vPgWicSyLXJUyMdMsf7/g2LZQww3Hdh?= =?us-ascii?Q?+z+seIsUfX8iqKgKHC6lCkc746tARZPfFzAWPiCvDb91ba8QWil7LfuAbdaI?= =?us-ascii?Q?jsnv+hnn7inOjIv2hr43JxFujhHM50sfGEOGeisJewkcDJf4Hj998iqkxNs9?= =?us-ascii?Q?qCNJhhKsphyCxhbSh6wC5aghp8071/e+MdXCJsPsH8vHsJgYTjEx/hhGJUhe?= =?us-ascii?Q?2aXqDvb3YHuVoU8j168StVMloqPFr/eMj6I56xUrZDWdJQ+3+r+eHv9SuSzz?= =?us-ascii?Q?0/w6X27L3qjm7k8VN1hXkWq0U2V/MyU8L7A80Dx3P/l34t/bb29lIr1u7MSq?= =?us-ascii?Q?L4ysz1QaZNG+lQQMskmTA71RL+nsFDCLyrD0/VvQyv75NTyrmYKtjpmYHByh?= =?us-ascii?Q?NhkpeYy0ur0kHVAZP6gXqUcKExrITQw1N2RO+x+3peeCnf30ycB4w20n26nU?= =?us-ascii?Q?J/XCspVwCqh3dVNHIhg2e4wNoj+wz/0mEHwwhhZtnjtqp41OAtgvpTVjS0pJ?= =?us-ascii?Q?VxWfwo0eAVxwFs+b3x1yNXSV9t6x2Ejn3y9JrV7PXAjCZEpPoK9C9QaIkqkn?= =?us-ascii?Q?oZ5T5W8QIHMi8vN49aPky+9k+X9+BNfyXx8q9XOj/xzE?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: kcv0tOxI3aYpT3YHLh+t62H4SR808x5ah13GO8bWuuQU3WOT+54prDiOXQdDV9quirpyHn4r9qwyA1u70r7p3kNStLfvoiCFDL4KRff0UbPUVGYaV3B9AbicPyh4FEExlPGP+ZmgVbNA5zlnp5j+SV46A3NB0W6Wzpl9+Vs5ZSpO3m6Bjn1yLYLnAKXx5H2qeekGR7zxiBif8nnoscp8GgZ5lGaUEKJRh22CDXQ3dC/9W12PYkiM5yNPsnOrqNZQjyYM+LcJ/of3M/MQRy9BPkHrDb268qgHtftpRV7KGWw5sM8qUEw2kTUSOTq5BBmt8umU5UNVwsJ26OKb1njCCINcGWe5zMQdiwfHaOmw7DNs/Q7gMvpozm/W6mg6UTEGqm1gXzbafY19dzLDfMOAqUQCbkZ094/AtzyBZsXLZsaFhaIYfIQzCvj4/k1cC3P5nJKeoaNOIIcE+GgD0s2wIbA807W/NLMqrsRMBlcciBPKXih1QD7QKYo08281x3dkBVy5LnEtNzF2Ayazycg3aNB4SwmVwNYGUmMS0y2wQsXo/rCY5k1OqkaGTUQjwfeyJHrbEQ+k8m38mBp4z91GWEiF43J7LfhTueTJWuWRlK62bfZGxOUk51PAzIdhOM1zoG/SxI7Jm+J7pUEz8j4mWtU389eKD3bMhuUMTHPGKDjaXKMUVpFdaCwzxWgJW4MgeEf7uygKywfuB1NVWJ633xui702xss/wR6b1EFm8wQGX+La0taGb10a9vk3d2MlGk2e4CWpBogWq8KiXuD0U89CRer5TrdRQ9nziq0yHk/xLy4KXxVGp1h9CHD4GNAr2NMjwo7TkwtHsayRBMHwWB1jn1WLSqT3eCRTkWv3mgNU1bs6v5JJIMaoa/4j0gQD/ X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: f27d36c7-2ad9-4df7-2a89-08dbb4be65cf X-MS-Exchange-CrossTenant-AuthSource: PH8PR10MB6597.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 14 Sep 2023 01:03:24.9261 (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: V2hEKuFmjtcA9GYPb92wNE7I2AbDfaxy7rv1M7+y7C4Y2y6tGAHzq0fFGt2hImgGEo+j4eJg1apP8QJJ/VaKUjjdPHvF/3Ar1D/RpNogow8= X-MS-Exchange-Transport-CrossTenantHeadersStamped: LV3PR10MB7963 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.267,Aquarius:18.0.980,Hydra:6.0.601,FMLib:17.11.176.26 definitions=2023-09-13_19,2023-09-13_01,2023-05-22_02 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 mlxscore=0 adultscore=0 phishscore=0 spamscore=0 mlxlogscore=999 bulkscore=0 suspectscore=0 malwarescore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2308100000 definitions=main-2309140007 X-Proofpoint-GUID: ZdebC5wDPqJlfr97gsOWmwxhUqAUn1iy X-Proofpoint-ORIG-GUID: ZdebC5wDPqJlfr97gsOWmwxhUqAUn1iy Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=205.220.165.32; envelope-from=stephen.s.brennan@oracle.com; helo=mx0a-00069f02.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H5=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @oracle.com) X-ZM-MESSAGEID: 1694653483781100003 Content-Type: text/plain; charset="utf-8" This can be used from QMP command line as "-R" to mirror the corresponding flag for makedumpfile. This enables the kdump_reassembled flag introduced in the previous patch. Signed-off-by: Stephen Brennan --- dump/dump-hmp-cmds.c | 8 +++++++- dump/dump.c | 12 +++++++++++- hmp-commands.hx | 7 +++++-- qapi/dump.json | 14 +++++++++++++- 4 files changed, 36 insertions(+), 5 deletions(-) diff --git a/dump/dump-hmp-cmds.c b/dump/dump-hmp-cmds.c index b038785fee..1d882e4bd8 100644 --- a/dump/dump-hmp-cmds.c +++ b/dump/dump-hmp-cmds.c @@ -24,9 +24,11 @@ void hmp_dump_guest_memory(Monitor *mon, const QDict *qd= ict) bool has_begin =3D qdict_haskey(qdict, "begin"); bool has_length =3D qdict_haskey(qdict, "length"); bool has_detach =3D qdict_haskey(qdict, "detach"); + bool has_reassembled =3D qdict_haskey(qdict, "reassembled"); int64_t begin =3D 0; int64_t length =3D 0; bool detach =3D false; + bool reassembled =3D false; enum DumpGuestMemoryFormat dump_format =3D DUMP_GUEST_MEMORY_FORMAT_EL= F; char *prot; =20 @@ -61,11 +63,15 @@ void hmp_dump_guest_memory(Monitor *mon, const QDict *q= dict) if (has_detach) { detach =3D qdict_get_bool(qdict, "detach"); } + if (has_reassembled) { + reassembled =3D qdict_get_bool(qdict, "reassembled"); + } =20 prot =3D g_strconcat("file:", file, NULL); =20 qmp_dump_guest_memory(paging, prot, true, detach, has_begin, begin, - has_length, length, true, dump_format, &err); + has_length, length, true, has_reassembled, + reassembled, dump_format, &err); hmp_handle_error(mon, err); g_free(prot); } diff --git a/dump/dump.c b/dump/dump.c index fb9040cfbc..42d4015fb3 100644 --- a/dump/dump.c +++ b/dump/dump.c @@ -2089,6 +2089,7 @@ void qmp_dump_guest_memory(bool paging, const char *f= ile, bool has_detach, bool detach, bool has_begin, int64_t begin, bool has_length, int64_t length, bool has_format, + bool has_reassembled, bool reassembled, DumpGuestMemoryFormat format, Error **errp) { ERRP_GUARD(); @@ -2119,6 +2120,12 @@ void qmp_dump_guest_memory(bool paging, const char *= file, "filter"); return; } + if (has_reassembled && format !=3D DUMP_GUEST_MEMORY_FORMAT_KDUMP_ZLIB + && format !=3D DUMP_GUEST_MEMORY_FORMAT_KDUMP_LZO + && format !=3D DUMP_GUEST_MEMORY_FORMAT_KDUMP_SNAP= PY) { + error_setg(errp, "'reassembled' only applies to kdump format"); + return; + } if (has_begin && !has_length) { error_setg(errp, QERR_MISSING_PARAMETER, "length"); return; @@ -2130,6 +2137,9 @@ void qmp_dump_guest_memory(bool paging, const char *f= ile, if (has_detach) { detach_p =3D detach; } + if (!has_reassembled) { + reassembled =3D false; + } =20 /* check whether lzo/snappy is supported */ #ifndef CONFIG_LZO @@ -2192,7 +2202,7 @@ void qmp_dump_guest_memory(bool paging, const char *f= ile, dump_state_prepare(s); =20 dump_init(s, fd, has_format, format, paging, has_begin, - begin, length, false, errp); + begin, length, reassembled, errp); if (*errp) { qatomic_set(&s->status, DUMP_STATUS_FAILED); return; diff --git a/hmp-commands.hx b/hmp-commands.hx index 2cbd0f77a0..c3062da470 100644 --- a/hmp-commands.hx +++ b/hmp-commands.hx @@ -1085,14 +1085,15 @@ ERST =20 { .name =3D "dump-guest-memory", - .args_type =3D "paging:-p,detach:-d,windmp:-w,zlib:-z,lzo:-l,snap= py:-s,filename:F,begin:l?,length:l?", - .params =3D "[-p] [-d] [-z|-l|-s|-w] filename [begin length]", + .args_type =3D "paging:-p,detach:-d,windmp:-w,zlib:-z,lzo:-l,snap= py:-s,reassembled:-R,filename:F,begin:l?,length:l?", + .params =3D "[-p] [-d] [-z|-l|-s|-w] [-R] filename [begin leng= th]", .help =3D "dump guest memory into file 'filename'.\n\t\t\t" "-p: do paging to get guest's memory mapping.\n\t\t\= t" "-d: return immediately (do not wait for completion)= .\n\t\t\t" "-z: dump in kdump-compressed format, with zlib comp= ression.\n\t\t\t" "-l: dump in kdump-compressed format, with lzo compr= ession.\n\t\t\t" "-s: dump in kdump-compressed format, with snappy co= mpression.\n\t\t\t" + "-R: when using kdump (-z, -l, -s), try to avoid the= flattened format.\n\t\t\t" "-w: dump in Windows crashdump format (can be used i= nstead of ELF-dump converting),\n\t\t\t" " for Windows x86 and x64 guests with vmcoreinfo = driver only.\n\t\t\t" "begin: the starting physical address.\n\t\t\t" @@ -1115,6 +1116,8 @@ SRST dump in kdump-compressed format, with lzo compression. ``-s`` dump in kdump-compressed format, with snappy compression. + ``-R`` + when using kdump (-z, -l, -s), try to avoid the flattened format. ``-w`` dump in Windows crashdump format (can be used instead of ELF-dump conv= erting), for Windows x64 guests with vmcoreinfo driver only diff --git a/qapi/dump.json b/qapi/dump.json index 4ae1f722a9..9cc7c3ea93 100644 --- a/qapi/dump.json +++ b/qapi/dump.json @@ -69,6 +69,18 @@ # to dump all guest's memory, please specify the start @begin and # @length # +# @reassembled: if false (the default), the kdump output formats will use = the +# "makedumpfile flattened" variant of the format, which is less broadly +# compatible with analysis tools. The flattened dump can be reassembled +# after the fact using the command "makedumpfile -R". If true, Qemu +# attempts to generate the standard kdump format. This requires a +# seekable file as output -- if the output file is not seekable, then +# the flattened format is still generated. The standard format is more +# broadly compatible with debugging tools, but generating it requires a +# seekable output file descriptor, and could use more system memory due +# to page cache utilization. This should be left unspecified for non-k= dump +# output formats. +# # @format: if specified, the format of guest memory dump. But non-elf # format is conflict with paging and filter, ie. @paging, @begin # and @length is not allowed to be specified with non-elf @format @@ -89,7 +101,7 @@ { 'command': 'dump-guest-memory', 'data': { 'paging': 'bool', 'protocol': 'str', '*detach': 'bool', '*begin': 'int', '*length': 'int', - '*format': 'DumpGuestMemoryFormat'} } + '*reassembled': 'bool', '*format': 'DumpGuestMemoryFormat'} } =20 ## # @DumpStatus: --=20 2.39.3