{"id":2225176,"url":"http://patchwork.ozlabs.org/api/1.1/patches/2225176/?format=json","web_url":"http://patchwork.ozlabs.org/project/qemu-devel/patch/20260420140552.104369-7-eric.auger@redhat.com/","project":{"id":14,"url":"http://patchwork.ozlabs.org/api/1.1/projects/14/?format=json","name":"QEMU Development","link_name":"qemu-devel","list_id":"qemu-devel.nongnu.org","list_email":"qemu-devel@nongnu.org","web_url":"","scm_url":"","webscm_url":""},"msgid":"<20260420140552.104369-7-eric.auger@redhat.com>","date":"2026-04-20T14:03:56","name":"[v10,6/7] target/arm/helper: Define cpreg migration tolerance for DGBDTR_EL0","commit_ref":null,"pull_url":null,"state":"new","archived":false,"hash":"4c4a5a8172ef5c393c6ea3499854ef675ac7fdbf","submitter":{"id":69187,"url":"http://patchwork.ozlabs.org/api/1.1/people/69187/?format=json","name":"Eric Auger","email":"eric.auger@redhat.com"},"delegate":null,"mbox":"http://patchwork.ozlabs.org/project/qemu-devel/patch/20260420140552.104369-7-eric.auger@redhat.com/mbox/","series":[{"id":500612,"url":"http://patchwork.ozlabs.org/api/1.1/series/500612/?format=json","web_url":"http://patchwork.ozlabs.org/project/qemu-devel/list/?series=500612","date":"2026-04-20T14:03:52","name":"[v10,1/7] target/arm/cpu: Introduce the infrastructure for cpreg migration tolerances","version":10,"mbox":"http://patchwork.ozlabs.org/series/500612/mbox/"}],"comments":"http://patchwork.ozlabs.org/api/patches/2225176/comments/","check":"pending","checks":"http://patchwork.ozlabs.org/api/patches/2225176/checks/","tags":{},"headers":{"Return-Path":"<qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org>","X-Original-To":"incoming@patchwork.ozlabs.org","Delivered-To":"patchwork-incoming@legolas.ozlabs.org","Authentication-Results":["legolas.ozlabs.org;\n\tdkim=pass (1024-bit key;\n unprotected) header.d=redhat.com header.i=@redhat.com header.a=rsa-sha256\n header.s=mimecast20190719 header.b=IR9heNT4;\n\tdkim-atps=neutral","legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=nongnu.org\n (client-ip=209.51.188.17; helo=lists1p.gnu.org;\n envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org;\n receiver=patchwork.ozlabs.org)"],"Received":["from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17])\n\t(using TLSv1.2 with cipher ECDHE-ECDSA-AES256-GCM-SHA384 (256/256 bits))\n\t(No client certificate requested)\n\tby legolas.ozlabs.org (Postfix) with ESMTPS id 4fznQp42gzz1yGs\n\tfor <incoming@patchwork.ozlabs.org>; Tue, 21 Apr 2026 00:08:50 +1000 (AEST)","from localhost ([::1] helo=lists1p.gnu.org)\n\tby lists1p.gnu.org with esmtp (Exim 4.90_1)\n\t(envelope-from <qemu-devel-bounces@nongnu.org>)\n\tid 1wEpH1-00034m-8n; Mon, 20 Apr 2026 10:06:52 -0400","from eggs.gnu.org ([2001:470:142:3::10])\n by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)\n (Exim 4.90_1) (envelope-from <eric.auger@redhat.com>)\n id 1wEpGr-00031m-TM\n for qemu-devel@nongnu.org; Mon, 20 Apr 2026 10:06:42 -0400","from us-smtp-delivery-124.mimecast.com ([170.10.129.124])\n by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)\n (Exim 4.90_1) (envelope-from <eric.auger@redhat.com>)\n id 1wEpGn-0001Qa-27\n for qemu-devel@nongnu.org; Mon, 20 Apr 2026 10:06:41 -0400","from mx-prod-mc-06.mail-002.prod.us-west-2.aws.redhat.com\n (ec2-35-165-154-97.us-west-2.compute.amazonaws.com [35.165.154.97]) by\n relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3,\n cipher=TLS_AES_256_GCM_SHA384) id us-mta-377-gHgHs0kpOi2hVK3pHtnZVg-1; Mon,\n 20 Apr 2026 10:06:28 -0400","from mx-prod-int-06.mail-002.prod.us-west-2.aws.redhat.com\n (mx-prod-int-06.mail-002.prod.us-west-2.aws.redhat.com [10.30.177.93])\n (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest\n SHA256)\n (No client certificate requested)\n by mx-prod-mc-06.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS\n id 47C4F1800473; Mon, 20 Apr 2026 14:06:27 +0000 (UTC)","from laptop.redhat.com (unknown [10.44.32.74])\n by mx-prod-int-06.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTP\n id A7C2E180047F; Mon, 20 Apr 2026 14:06:23 +0000 (UTC)"],"DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com;\n s=mimecast20190719; t=1776693992;\n h=from:from:reply-to:subject:subject:date:date:message-id:message-id:\n to:to:cc:mime-version:mime-version:\n content-transfer-encoding:content-transfer-encoding:\n in-reply-to:in-reply-to:references:references;\n bh=fT7aqYcG+mYJXqhu2vC1MHijVy5kS5S7OSHT4/LP03E=;\n b=IR9heNT49mXk/sML0ixByv9P3HhU7rcXpJs4f8uJAyEha6G8x559Vpn8HenGBUnXJcr44N\n UkAxnR2xf9DiOEIIdn9UgYt5MlbdqDxQxTHsfwJgewUOgvq/WD/Zm8ISukTSiGDm9W91Rx\n zDLO2V0KyNLEyc+oucnqmuu1kwdvhlc=","X-MC-Unique":"gHgHs0kpOi2hVK3pHtnZVg-1","X-Mimecast-MFC-AGG-ID":"gHgHs0kpOi2hVK3pHtnZVg_1776693987","From":"Eric Auger <eric.auger@redhat.com>","To":"eric.auger.pro@gmail.com, eric.auger@redhat.com, qemu-devel@nongnu.org,\n qemu-arm@nongnu.org, peter.maydell@linaro.org, cohuck@redhat.com,\n sebott@redhat.com, peterx@redhat.com, philmd@linaro.org,\n alex.bennee@linaro.org","Subject":"[PATCH v10 6/7] target/arm/helper: Define cpreg migration tolerance\n for DGBDTR_EL0","Date":"Mon, 20 Apr 2026 16:03:56 +0200","Message-ID":"<20260420140552.104369-7-eric.auger@redhat.com>","In-Reply-To":"<20260420140552.104369-1-eric.auger@redhat.com>","References":"<20260420140552.104369-1-eric.auger@redhat.com>","MIME-Version":"1.0","Content-Transfer-Encoding":"8bit","X-Scanned-By":"MIMEDefang 3.4.1 on 10.30.177.93","Received-SPF":"pass client-ip=170.10.129.124;\n envelope-from=eric.auger@redhat.com; helo=us-smtp-delivery-124.mimecast.com","X-Spam_score_int":"-20","X-Spam_score":"-2.1","X-Spam_bar":"--","X-Spam_report":"(-2.1 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001,\n DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1,\n RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H4=0.001, RCVD_IN_MSPIKE_WL=0.001,\n SPF_HELO_PASS=-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":"qemu development <qemu-devel.nongnu.org>","List-Unsubscribe":"<https://lists.nongnu.org/mailman/options/qemu-devel>,\n <mailto:qemu-devel-request@nongnu.org?subject=unsubscribe>","List-Archive":"<https://lists.nongnu.org/archive/html/qemu-devel>","List-Post":"<mailto:qemu-devel@nongnu.org>","List-Help":"<mailto:qemu-devel-request@nongnu.org?subject=help>","List-Subscribe":"<https://lists.nongnu.org/mailman/listinfo/qemu-devel>,\n <mailto:qemu-devel-request@nongnu.org?subject=subscribe>","Errors-To":"qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org","Sender":"qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org"},"content":"We want to remove AArch32 DBGDTRTX which was erroneously exposed.\nThis was attempted by 655659a74a36b (\"target/arm: Correct encoding\nof Debug Communications Channel registers\") but it was discovered\nthat the removal of this debug register broke forward migration on\nTCG. Now we have the cpreg migration tolerance infrastructure, we\ncan declare one for the DBGDTRTX. This allow to revert the reinstate\npatch.\n\nSigned-off-by: Eric Auger <eric.auger@redhat.com>\nReviewed-by: Sebastian Ott <sebott@redhat.com>\n\n---\n\nv9 -> v10\n- Adding a comment explaining why we want a migratoin tolerance\n  for that cpreg\n---\n target/arm/helper.c | 15 +++++++++++++++\n 1 file changed, 15 insertions(+)","diff":"diff --git a/target/arm/helper.c b/target/arm/helper.c\nindex 7389f2988c4..d80899cd096 100644\n--- a/target/arm/helper.c\n+++ b/target/arm/helper.c\n@@ -6426,9 +6426,24 @@ void register_cp_regs_for_features(ARMCPU *cpu)\n             .fgt = FGT_CLIDR_EL1,\n             .resetvalue = GET_IDREG(isar, CLIDR)\n         };\n+        uint64_t dbgtr_el0_kvmidx =\n+            cpreg_to_kvm_id(ENCODE_CP_REG(14, 0, 1, 0, 5, 3, 0));\n+\n         define_one_arm_cp_reg(cpu, &clidr);\n         define_arm_cp_regs(cpu, v7_cp_reginfo);\n         define_debug_regs(cpu);\n+        /**\n+         * AArch32 DBGDTRTX has been introduced with a wrong encoding.\n+         * This was fixed by commit 655659a74a36 (\"target/arm: Correct\n+         * encoding of Debug Communications Channel registers\") by the\n+         * introduction of correct separate cpreg definitions\n+         * for AA64 and AA32 versions. However the old cpreg definition\n+         * couldn't be removed without breaking the migration. From qemu 11.1\n+         * onwards we can use the migration tolerance infrastructure to\n+         * remove it.\n+         */\n+        arm_register_cpreg_mig_tolerance(cpu, dbgtr_el0_kvmidx,\n+                                         0, 0, ToleranceNotOnBothEnds);\n     } else {\n         define_arm_cp_regs(cpu, not_v7_cp_reginfo);\n     }\n","prefixes":["v10","6/7"]}