From nobody Sun Feb 8 19:01:23 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1763343719; cv=none; d=zohomail.com; s=zohoarc; b=UrCjsOyB2Wm+nOXG3wBx2h/NNAA7yIuZDVmup238/gM4AcffHIVZ3GHo+R0scMstJAiQStiC6uh9uf7kw/2UPAY3Fj/diAnlL9CdvYLftztxJJBIago5p9dvtbjEq8XVWAeqi1fSkkLfP8CP46Anxpvf3ms/8JbDUTyM+LzEVrw= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1763343719; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=m2A5GWnHOQC8XSLxxTgeSs8GTkOh183X479Ep5HPGBQ=; b=mnHOiCLcQ6dvP9E5dJbwM6Agn0Tu2B5q7IUnhGI/GYE+ErpFPywEMCYUH0km0BjqIGMyH4bRh/ORxapKxdhwrdtiiQicslNpPbEF/LgdhjWaRSXLl5Pdog+IfEvyeFGoN7NyA/YO4IGv2euK9a5an+kdP3MQuxt9H3txZbgKXbI= ARC-Authentication-Results: i=1; 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; 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 1763343719447276.5692342764544; Sun, 16 Nov 2025 17:41:59 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vKoF9-000311-A3; Sun, 16 Nov 2025 20:41:32 -0500 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 1vKoEY-0002VD-HN for qemu-devel@nongnu.org; Sun, 16 Nov 2025 20:40:48 -0500 Received: from mail-qv1-xf31.google.com ([2607:f8b0:4864:20::f31]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1vKoEV-0005wr-Jg for qemu-devel@nongnu.org; Sun, 16 Nov 2025 20:40:45 -0500 Received: by mail-qv1-xf31.google.com with SMTP id 6a1803df08f44-8824888ce97so58076126d6.2 for ; Sun, 16 Nov 2025 17:40:43 -0800 (PST) Received: from [10.0.0.22] ([185.213.193.149]) by smtp.gmail.com with ESMTPSA id d75a77b69052e-4ee1c21ea34sm18246551cf.30.2025.11.16.17.40.41 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 16 Nov 2025 17:40:41 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1763343642; x=1763948442; darn=nongnu.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=m2A5GWnHOQC8XSLxxTgeSs8GTkOh183X479Ep5HPGBQ=; b=m2ifpCDp/dAbLCxqeVN7URcvZXVFtVPg251V4P+UgUi0ZTEk4S66BNkNciyGT71TcN t3BcMDW7ONtdgUDjfT+qdoddzYIV+3uLll60qVWXvNx1GTLBJKhCaCG2ejEs0YOKQQZd hYRePwcTTCiwC26w52kKccGlZVjwbG5j/43GwBZQEeiDaUeFMjPWukt61VFVz063Fo1e LmKUe5ysg8nXPNIRyvqO/IonxdKNbkZLViSrWdpiIhD1O2iC2aYzyVVlk+GN4PvCQ4h3 IO0GzOD8fWX0C0vB9npfs0fWI6KJlwd/rYT3FDJKI/ewDYXz05tvvtP60u0asOA2HE76 c0fg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1763343642; x=1763948442; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=m2A5GWnHOQC8XSLxxTgeSs8GTkOh183X479Ep5HPGBQ=; b=fIAXYVTE0AzpJnnl5dUqbF9mjks6l4iHdRoaKpcwYOnG2/Zr7FAJMSjR8GVbo32AQL K2kZG1TPkD/caWxZg9IjZGCIELMh6REb40aui9u6dOXPnw1GsqqVc+ZerUpYL5DQG7Q/ qzQ7d6Sal1FT4hgouCF+L6NQCQ2NhkU6dOciukp2YXRE2tuIVAzt/0Djsv2c+8sZeDHk /anDaXhHXZvIOEZgtPcvdp/drO4VQ5XeTSG0IywWgrVPOCkblZHK24ygsbzTa1XBduBQ 8Z+JZM48CA+kFSKzuQnXoMiKP9p/YX/XyqQqcRoxVyGr0b/AYi9RPomWOEcS3EUzgF1K RVDg== X-Gm-Message-State: AOJu0YytFdLDYZqWSHzxEQ7D+ZZHyhvCTd9XixWAADEMrMzWy9Ef6ZDW KKKnYSJgV74oiuuw2KqmRuSkjEx2yU5sH4ekFAbLT4CZzEmFL9FRhGmT X-Gm-Gg: ASbGnctNxPJ8rdrwtj03f7W0NmcXh8+/kqdzXGwH/kFBU64ua/MOqrfoZIlA/Qx0uQe oTd5Ie0T9SfUSR/N12l0JNSm7Xdya2VKOmCy/2+TlUAI7vXjODHH35jgpSeC/pU+sh90fstraJd AEgqm/WcBYAEbcE3dddsxoLvpugxjGwtNb71lyJvhFXlIzy3qZfVXakAxRh+yk5YdGt6RlbIuSg NH2FlCDT1wwAbSo1Y0JbAUSHZbHwdlViJTMNf0eYz1dCsUVmbfDMDHSvAAPeYHSePg20A14yO/y Tk4KcskUB6iNxB3o7lBVR6ZaWhF3MLvo4CdXKz5nIrKKZ+4TQoqgIWb+qR9GLqNDseHLjd0cEHh 1FGYPZ/FEDa+umQgPOgzSvwwynprlcj3FeM3qJS8jL91k3Q7DqHjw+At1u9A9IxhSgRRIOaDT6t y4y5/HurLjgBbPy/12PoY= X-Google-Smtp-Source: AGHT+IHvgumXTfQ60PCLEj6Zwrc4I3xFmLGgf/blQagn4A1FwGjDEaJ9YxsCKNwx28ro1x3iLOyZLg== X-Received: by 2002:a05:6214:234e:b0:880:4ec0:417a with SMTP id 6a1803df08f44-8829272618dmr159798076d6.55.1763343642435; Sun, 16 Nov 2025 17:40:42 -0800 (PST) From: Gabriel Brookman Date: Sun, 16 Nov 2025 20:40:18 -0500 Subject: [PATCH RFC v2 01/10] target/arm: explicitly disable MTE4 for max MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20251116-feat-mte4-v2-1-9a7122b7fa76@gmail.com> References: <20251116-feat-mte4-v2-0-9a7122b7fa76@gmail.com> In-Reply-To: <20251116-feat-mte4-v2-0-9a7122b7fa76@gmail.com> To: qemu-devel@nongnu.org Cc: Peter Maydell , Gustavo Romero , qemu-arm@nongnu.org, Gabriel Brookman X-Mailer: b4 0.14.3 X-Developer-Signature: v=1; a=ed25519-sha256; t=1763343639; l=1507; i=brookmangabriel@gmail.com; s=20251009; h=from:subject:message-id; bh=c/+Syb9Ieiqx7Vbsr+h6scCyHLibAd0uOiBYc91rJtI=; b=hQKZNO43Xtn9ZcbpMlL1tpg6a4d4xomBYBOZ5sYwmU1KutGQXbK6MrD05ya6PBnL6h9rLI4gf yQh6iu2WvaWD2x0OJ0PhihYbfJU9Qiyz39TVDXf2F9UmPTMdX7/Px/+ X-Developer-Key: i=brookmangabriel@gmail.com; a=ed25519; pk=m9TtPDal6WzoHNnQiHHKf8dTrv3DUCPUUTujuo8vNrw= 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=2607:f8b0:4864:20::f31; envelope-from=brookmangabriel@gmail.com; helo=mail-qv1-xf31.google.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, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, 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 @gmail.com) X-ZM-MESSAGEID: 1763343721290158500 Previously, the bits used to advertise the various MTE4 features were not explicitly set for -cpu max. This commit calls out these bits and explicitly unsets them. At the end of the patch series, a second commit will explicitly set all of them. Signed-off-by: Gabriel Brookman --- target/arm/tcg/cpu64.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/target/arm/tcg/cpu64.c b/target/arm/tcg/cpu64.c index 6871956382..ca9557f4cf 100644 --- a/target/arm/tcg/cpu64.c +++ b/target/arm/tcg/cpu64.c @@ -1281,8 +1281,16 @@ void aarch64_max_tcg_initfn(Object *obj) t =3D FIELD_DP64(t, ID_AA64PFR1, CSV2_FRAC, 0); /* FEAT_CSV2_3 */ t =3D FIELD_DP64(t, ID_AA64PFR1, NMI, 1); /* FEAT_NMI */ t =3D FIELD_DP64(t, ID_AA64PFR1, GCS, 1); /* FEAT_GCS */ + t =3D FIELD_DP64(t, ID_AA64PFR1, + MTEX, 0); /* FEAT_MTE_NO_ADDRESS_TAGS + FEAT_MTE_CANONICAL_T= AGS */ SET_IDREG(isar, ID_AA64PFR1, t); =20 + t =3D GET_IDREG(isar, ID_AA64PFR2); + t =3D FIELD_DP64(t, ID_AA64PFR2, MTEFAR, 0); /* FEAT_MTE_TAGGED_FAR= */ + t =3D FIELD_DP64(t, ID_AA64PFR2, MTESTOREONLY, 0); /* FEAT_MTE_STORE= _ONLY */ + t =3D FIELD_DP64(t, ID_AA64PFR2, MTEPERM, 0); /* FEAT_MTE_PERM */ + SET_IDREG(isar, ID_AA64PFR2, t); + t =3D GET_IDREG(isar, ID_AA64MMFR0); t =3D FIELD_DP64(t, ID_AA64MMFR0, PARANGE, 6); /* FEAT_LPA: 52 bits */ t =3D FIELD_DP64(t, ID_AA64MMFR0, TGRAN16, 1); /* 16k pages supporte= d */ --=20 2.51.2 From nobody Sun Feb 8 19:01:23 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1763343796; cv=none; d=zohomail.com; s=zohoarc; b=BZV2ez6MLdln5EHUbpq4qfj4Wqg8+7mOCPotkbIgusWNcI+l/LvgHC6kV6Ye1pjYKykIgRGDE/NSf+TfgeQvRaeg5wCTP+wWyU7Jr1lgmJgqMdwdrSoZr3NRgytpSkQx6Ol0UKFvRT55255hFexMCQx4whynnRXtQeOkyDx+X2s= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1763343796; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=dJg7o0njSoHw1PElRLxS8S96IWORDRuuiBXNi4x95ZY=; b=IXpW5+R/ofkloN5/Sl8pJv6ceXAYzNzCX8a64/I8k7FybolBZNf6GFtpzPzaLJ1gcAW8z6oYxw2Vcux9EvdgXprWUEZLAap5W69T/xk8hAA10BOhKR0fMhQGgZiZ0nxq1AMebiB5wEO1vQYajkatpnlQEPrgtw04hoOMtrv/0NE= ARC-Authentication-Results: i=1; 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; 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 1763343796848365.3492234474944; Sun, 16 Nov 2025 17:43:16 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vKoF1-0002rt-3F; Sun, 16 Nov 2025 20:41:15 -0500 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 1vKoEZ-0002VG-69 for qemu-devel@nongnu.org; Sun, 16 Nov 2025 20:40:48 -0500 Received: from mail-qt1-x82b.google.com ([2607:f8b0:4864:20::82b]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1vKoEX-0005wz-6L for qemu-devel@nongnu.org; Sun, 16 Nov 2025 20:40:46 -0500 Received: by mail-qt1-x82b.google.com with SMTP id d75a77b69052e-4b109c6b9fcso32119181cf.3 for ; Sun, 16 Nov 2025 17:40:44 -0800 (PST) Received: from [10.0.0.22] ([185.213.193.149]) by smtp.gmail.com with ESMTPSA id d75a77b69052e-4ee1c21ea34sm18246551cf.30.2025.11.16.17.40.42 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 16 Nov 2025 17:40:42 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1763343643; x=1763948443; darn=nongnu.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=dJg7o0njSoHw1PElRLxS8S96IWORDRuuiBXNi4x95ZY=; b=e58LTR10ytv8TUpFj90XrW8GvQ9GKsIVHf012q6LyWiR2qQrmUqF66S6AdQHyI9wQH wIjAk5vDJfBmumD+xkHJzpYuhxhBbqH9Euj+EF3j0yA7rePcZY/g91qzUc5hgoT2PiH8 krxA/00eV7HThRk7oMPYSrGvvUAYI8Z5HbnQJ7JfV4PRMkX9W9Hs6KJOOdf90o9D9G+6 ykRwJtMfvkMIZEhSmU66GKVeYseH3KdyR9ibhe0PraLz2BPKXRtmNOAcZlA1oBXsfYly C9Czcm14Dlz2qRULaEmTBShwJOAp1826l5WPjkWAMGY3X4+y4WJyRR2IxjVkH6YyE0nm YCDw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1763343643; x=1763948443; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=dJg7o0njSoHw1PElRLxS8S96IWORDRuuiBXNi4x95ZY=; b=Uo6D/CRvu4WbGJi/qxmAYWZqZsxZFuQeH/QblSpf6Tp2M4cvfrGinp4VhzmOFQ90Bu egCALQ2Pc3rMeFBNpBvtwHmMgufB4elvLttY7+iRts9fJdR0hOqswBbjjWh3ya0RVeIV tqYzb/lxWwowCAut0+rAj55fjrJfcGnhGTTviIUOFwvL21qBX65+TvQN9/TMKilcovBR Ajso8VuGRXMXdM9C/v//tSFY1lRgsCIJNT/WdTYjZVcFvj2DmePC9Xbk8kB+da/0cJxa smVjS/FPFUSK3vw6sec+058xvaYwbQNF0KVKiiAGs0oU/Kwm2utw2k0brmoyoCRGCD99 P8dg== X-Gm-Message-State: AOJu0YwgimO/qXNohV6tNXSwl8RylPBxiXH+dTAZ45YIGzHMDbyZyfJ0 wBk08C5hR6TpnOw2qskdVrloufbP/8uMqlvE4HBv0N4BqhygKbRVEVrc X-Gm-Gg: ASbGncuL8KESntvxmjrilzO7h/LDeCAqHziIYszz52tuZxa5kHbS9BxXF84RhNcL/s/ 4/Bx2Afag31AKKPUvf3RBSXUgQBVEJcJ8HHEj5fXJlWdIpJxTzcYAWuV8uWWaS9YkQq4VoZlR0P NRS/q+eN0xBwR1hpWwe24+YKFaY04o1up+TPZYWfvHVStt6/qEndKQ/fhhPtfFYzGhLiIydaAVU pQuhLVaSyb+P/E6PMp4af4lpmJUk2vP7GRv59e1TlTGzLz34RgKME28JSs5njQF3yzWUB9W7fCg nVfIelSOfteFnTcq/GBfNwvrBVorFG8uU4pqPZDcPEtGFChYV9EiXi6QzXOivuni0MsvTxLlV+T kGvOPmQF7AEjfDoDcO7KQhIKUDAqOZX1bifvrWxemhbz4zNY/srFypi/e5TkdiNpb8SQrIF7UWn rEabnT/Q0Bl5ZEX83qzIk= X-Google-Smtp-Source: AGHT+IFFj+4raECEysCuphQUuhGNp8KIK/ny0z6sl7nSvcuN1GQqnL7VSI7TtSrOgLK4m7h9HDNa/g== X-Received: by 2002:ac8:7d94:0:b0:4ed:e337:2e52 with SMTP id d75a77b69052e-4edf20569bfmr187316451cf.30.1763343643421; Sun, 16 Nov 2025 17:40:43 -0800 (PST) From: Gabriel Brookman Date: Sun, 16 Nov 2025 20:40:19 -0500 Subject: [PATCH RFC v2 02/10] tests/tcg: added test for MTE FAR MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20251116-feat-mte4-v2-2-9a7122b7fa76@gmail.com> References: <20251116-feat-mte4-v2-0-9a7122b7fa76@gmail.com> In-Reply-To: <20251116-feat-mte4-v2-0-9a7122b7fa76@gmail.com> To: qemu-devel@nongnu.org Cc: Peter Maydell , Gustavo Romero , qemu-arm@nongnu.org, Gabriel Brookman X-Mailer: b4 0.14.3 X-Developer-Signature: v=1; a=ed25519-sha256; t=1763343639; l=2292; i=brookmangabriel@gmail.com; s=20251009; h=from:subject:message-id; bh=Lt766CnKW7qQoO+68NGtyaf2zeaQO6m4Et9tVGr/w2o=; b=6+nH/t0L6n4A+hz/XSL17/dCQDMoOme/+Q8sTn7VioIbOnjw3xohsjb8H65zFiKxN1T/BT7WK XaPJAZusNH8DUI0bw49V82OMdZ8HrwiOvzmWcPCu8QKL1JIYUCXxXLI X-Developer-Key: i=brookmangabriel@gmail.com; a=ed25519; pk=m9TtPDal6WzoHNnQiHHKf8dTrv3DUCPUUTujuo8vNrw= 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=2607:f8b0:4864:20::82b; envelope-from=brookmangabriel@gmail.com; helo=mail-qt1-x82b.google.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, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, 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 @gmail.com) X-ZM-MESSAGEID: 1763343798216158500 This functionality was previously enabled but not advertised or tested. This commit adds a new test, mte-9, that tests the code for proper full-address reporting. FEAT_MTE_TAGGED_FAR requires that FAR_ELx report the full logical address, including tag bits. Signed-off-by: Gabriel Brookman Reviewed-by: Richard Henderson --- tests/tcg/aarch64/Makefile.target | 2 +- tests/tcg/aarch64/mte-9.c | 48 +++++++++++++++++++++++++++++++++++= ++++ 2 files changed, 49 insertions(+), 1 deletion(-) diff --git a/tests/tcg/aarch64/Makefile.target b/tests/tcg/aarch64/Makefile= .target index 9fa8687453..b491cfb5e1 100644 --- a/tests/tcg/aarch64/Makefile.target +++ b/tests/tcg/aarch64/Makefile.target @@ -64,7 +64,7 @@ AARCH64_TESTS +=3D bti-2 =20 # MTE Tests ifneq ($(CROSS_CC_HAS_ARMV8_MTE),) -AARCH64_TESTS +=3D mte-1 mte-2 mte-3 mte-4 mte-5 mte-6 mte-7 mte-8 +AARCH64_TESTS +=3D mte-1 mte-2 mte-3 mte-4 mte-5 mte-6 mte-7 mte-8 mte-9 mte-%: CFLAGS +=3D $(CROSS_CC_HAS_ARMV8_MTE) endif =20 diff --git a/tests/tcg/aarch64/mte-9.c b/tests/tcg/aarch64/mte-9.c new file mode 100644 index 0000000000..9626a90c13 --- /dev/null +++ b/tests/tcg/aarch64/mte-9.c @@ -0,0 +1,48 @@ +/* + * Memory tagging, full-address reporting. + * + * Copyright (c) 2021 Linaro Ltd + * SPDX-License-Identifier: GPL-2.0-or-later + */ + +#include "mte.h" + +static void *faulting_ptr; + +void pass(int sig, siginfo_t *info, void *uc) +{ + assert(faulting_ptr =3D=3D info->si_addr); + exit(0); +} + +int main(int ac, char **av) +{ + struct sigaction sa; + int *p0, *p1, *p2; + long excl =3D 1; + + enable_mte(PR_MTE_TCF_SYNC); + p0 =3D alloc_mte_mem(sizeof(*p0)); + + /* Create two differently tagged pointers. */ + asm("irg %0,%1,%2" : "=3Dr"(p1) : "r"(p0), "r"(excl)); + asm("gmi %0,%1,%0" : "+r"(excl) : "r" (p1)); + assert(excl !=3D 1); + asm("irg %0,%1,%2" : "=3Dr"(p2) : "r"(p0), "r"(excl)); + assert(p1 !=3D p2); + + /* Store the tag from the first pointer. */ + asm("stg %0, [%0]" : : "r"(p1)); + + *p1 =3D 0; + + memset(&sa, 0, sizeof(sa)); + sa.sa_sigaction =3D pass; + sa.sa_flags =3D SA_SIGINFO; + sigaction(SIGSEGV, &sa, NULL); + + faulting_ptr =3D p2; + *p2 =3D 0; + + abort(); +} --=20 2.51.2 From nobody Sun Feb 8 19:01:23 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1763343754; cv=none; d=zohomail.com; s=zohoarc; b=jRyiGTWvT4UeQ9JCuRwXJRtMdDqoQbm4naiWrclvRxHJIEF7XmNqbC59tmgeU06tZaNofYPR5BXKTaJVWCcA9aKSnvGXRs1rvl+hanGSTXtw+jOhT/wxyg+mzPNYKt5xK7hbXoCx1zWWIqJnH8LzlqMI/1pWkGs0HhDz/PzoDag= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1763343754; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=Ua3Vv1O2/qdb0xwse9RFkHNI0RUlYG2jHSbXkJRhi0w=; b=DQGhlIhyT1LaSS9mMitQq5AfK3uWKelhXozlsHehIuc1jb7qoSrS5QLrSyz8PeS/rujFVM24OnnVcBQVvRMqM2EA9e+eRB5ztRQ9dUrdwTsSVA4QZ5zieHVN79cAuHGcilb80E4CWZV+OLX3Eng+16CF9G1knn7pHb61kU1Uw1Y= ARC-Authentication-Results: i=1; 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; 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 1763343754356912.9358912334734; Sun, 16 Nov 2025 17:42:34 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vKoEi-0002Z4-L7; Sun, 16 Nov 2025 20:40:58 -0500 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 1vKoEZ-0002VM-K8 for qemu-devel@nongnu.org; Sun, 16 Nov 2025 20:40:49 -0500 Received: from mail-qt1-x830.google.com ([2607:f8b0:4864:20::830]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1vKoEX-0005xE-NV for qemu-devel@nongnu.org; Sun, 16 Nov 2025 20:40:47 -0500 Received: by mail-qt1-x830.google.com with SMTP id d75a77b69052e-4eda6a8cc12so37261581cf.0 for ; Sun, 16 Nov 2025 17:40:45 -0800 (PST) Received: from [10.0.0.22] ([185.213.193.149]) by smtp.gmail.com with ESMTPSA id d75a77b69052e-4ee1c21ea34sm18246551cf.30.2025.11.16.17.40.43 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 16 Nov 2025 17:40:43 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1763343644; x=1763948444; darn=nongnu.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=Ua3Vv1O2/qdb0xwse9RFkHNI0RUlYG2jHSbXkJRhi0w=; b=VP7N0YqgxTgZPl8kWTygAPADoioICZyXCI9m9WJCV2Cm2Y2Z/Jy4bDFah13AQF9vto 3w5sXwW09k6yFamBBoCpAp9s8JQRX5VMoHzPax3c+HZ1clNs3GwMeOE4Cx35pEAlXGMU APn3hQqaPt4WYz5ctpTF32z0GH8GAwzVN7BwyiB3RZAgvUN6R4HitOSAQrWJpJ9rIbnI EGJO6A+1IsyMUTUr0Ba1Zb3TZwJF0Xn3Z7FH4O2omaRComvife+nKiC3d4OujX3o1NPf HYPEGBs9sNp1SQ/BszOnh5TTvJtLAipg8R2RzJMyhlrV4VoPwDXBsTC6BKuXqLsQjFYm GYBw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1763343644; x=1763948444; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=Ua3Vv1O2/qdb0xwse9RFkHNI0RUlYG2jHSbXkJRhi0w=; b=es+0viMCwrYjR26OJ0KSMELkoIh9QoIR2upMH6kigiW5xd7WrWLQ9WOMVv5+b+7AIe SKTqOsksYbA1RPf60BIypuQQRmwZJH1A32gw8j0flKTWi2QM4Nq9G4mM5Cjr3FRB49r7 WpJmHREXacukyTPB6KkUYdPljFKX9hA7VFXb8sQI0KE6uSzUlA/wKGyMTDyuIH2iTNy+ 5iPjGFlYQ/me0mgF20KreGdJUIziZot7bk6/BKZTSQvVGEPfxOGf7p5aTAGfbKj6Nlqs XC9q4M2lJG5BILur3m9POSTZI3qBtCSHNHuOs4dZLHDsc5357mNp3KDHvBik5G+HMEdK Tpew== X-Gm-Message-State: AOJu0YxOSPF5ezEVt8sGrG8JzDO5Mxb0KTx8ykbFYTR66AVt4uacwogH gwDehnEhz3pNexgDE5HK83HIPnf2QNqqobAWdY7iSxRZLTG8WxR0Wcqj X-Gm-Gg: ASbGncveaYk45BQ780uoiQavWkq07OR8pwcDcs9OLhsC96sjKFBJZX8fjsH+X5ohZCA Ftg+2ZMlXE5dxTg2eWx6YVsDhJGxVzyxOelf0L1xn142k4ry8QQU/JGKdBljbKpFhVPHA6kOe6X EHSVsK6D5JW+FUB4CtCHrd3IY75+pnleaFSAVneL1s8ACVzYxlQ9AkDBzV7YbG5Eo6cJYALl+Iz 0U1pZOUS43IfdxQFGfPDABdPpLzDhiTQV0ICXI+iYjPcFPlR5j0KNiiVpfNHpnEsasE681kUDvJ OXs1ERxwNPGYoinX1MBGQ6pIiNnE7qKET9Yu0EJHend+bW9gGk309ennA2rqiNZhhVPM63Ei+GU flPW0xD/mfHQHPDdyUOWoe0p+OVilug4EDxnWnUiIBCDpcBqktevyxNDzRIIDpwKhYqSkE+UHEP 4n8wzrSdHlAvt8cISZqZU= X-Google-Smtp-Source: AGHT+IG78k1jDlP82lcOMeh+n1YRV7USWsk6x+nIRALX2ZybuW+R7Wme5PWVa2mkGsbygin+bxNx8w== X-Received: by 2002:ac8:5a8f:0:b0:4e8:8934:6df1 with SMTP id d75a77b69052e-4edf21a8a19mr156206651cf.79.1763343644378; Sun, 16 Nov 2025 17:40:44 -0800 (PST) From: Gabriel Brookman Date: Sun, 16 Nov 2025 20:40:20 -0500 Subject: [PATCH RFC v2 03/10] target/arm: add TCSO bitmasks to SCTLR MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20251116-feat-mte4-v2-3-9a7122b7fa76@gmail.com> References: <20251116-feat-mte4-v2-0-9a7122b7fa76@gmail.com> In-Reply-To: <20251116-feat-mte4-v2-0-9a7122b7fa76@gmail.com> To: qemu-devel@nongnu.org Cc: Peter Maydell , Gustavo Romero , qemu-arm@nongnu.org, Gabriel Brookman X-Mailer: b4 0.14.3 X-Developer-Signature: v=1; a=ed25519-sha256; t=1763343639; l=1752; i=brookmangabriel@gmail.com; s=20251009; h=from:subject:message-id; bh=lGvL5Ysz7rdcnO180K4nS60cQt3k70dZuKD3GpqAV48=; b=xqtxzZKLu8L9xYRFDWc/dCD6H9Fhq9/zDZ9JDwlsLAfdEub7vxL6LlI+IbC2FtCCFCXKXNmaC IHV+hdd/rp1DuRsAYixFDADhwJuOqZP/Y1hu1Q4rEbKV1rjGDY8L4Rn X-Developer-Key: i=brookmangabriel@gmail.com; a=ed25519; pk=m9TtPDal6WzoHNnQiHHKf8dTrv3DUCPUUTujuo8vNrw= 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=2607:f8b0:4864:20::830; envelope-from=brookmangabriel@gmail.com; helo=mail-qt1-x830.google.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, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, 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 @gmail.com) X-ZM-MESSAGEID: 1763343755626158500 These are the bitmasks used to control the FEAT_MTE_STORE_ONLY feature. They are now named and setting these fields of SCTLR is ignored if MTE is disabled, as per convention. Signed-off-by: Gabriel Brookman --- target/arm/cpu.h | 2 ++ target/arm/helper.c | 4 ++-- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/target/arm/cpu.h b/target/arm/cpu.h index 39f2b2e54d..6fe85b5e3a 100644 --- a/target/arm/cpu.h +++ b/target/arm/cpu.h @@ -1424,6 +1424,8 @@ void pmu_init(ARMCPU *cpu); #define SCTLR_EnAS0 (1ULL << 55) /* FEAT_LS64_ACCDATA */ #define SCTLR_EnALS (1ULL << 56) /* FEAT_LS64 */ #define SCTLR_EPAN (1ULL << 57) /* FEAT_PAN3 */ +#define SCTLR_TCSO0 (1ULL << 58) /* FEAT_MTE_STORE_ONLY */ +#define SCTLR_TCSO (1ULL << 59) /* FEAT_MTE_STORE_ONLY */ #define SCTLR_EnTP2 (1ULL << 60) /* FEAT_SME */ #define SCTLR_NMI (1ULL << 61) /* FEAT_NMI */ #define SCTLR_SPINTMASK (1ULL << 62) /* FEAT_NMI */ diff --git a/target/arm/helper.c b/target/arm/helper.c index 27ebc6f29b..17ddfaccf8 100644 --- a/target/arm/helper.c +++ b/target/arm/helper.c @@ -3364,10 +3364,10 @@ static void sctlr_write(CPUARMState *env, const ARM= CPRegInfo *ri, =20 if (ri->state =3D=3D ARM_CP_STATE_AA64 && !cpu_isar_feature(aa64_mte, = cpu)) { if (ri->opc1 =3D=3D 6) { /* SCTLR_EL3 */ - value &=3D ~(SCTLR_ITFSB | SCTLR_TCF | SCTLR_ATA); + value &=3D ~(SCTLR_ITFSB | SCTLR_TCF | SCTLR_ATA | SCTLR_TCSO); } else { value &=3D ~(SCTLR_ITFSB | SCTLR_TCF0 | SCTLR_TCF | - SCTLR_ATA0 | SCTLR_ATA); + SCTLR_ATA0 | SCTLR_ATA | SCTLR_TCSO | SCTLR_TCSO0); } } =20 --=20 2.51.2 From nobody Sun Feb 8 19:01:23 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1763343776; cv=none; d=zohomail.com; s=zohoarc; b=CjOwU55/CKhg91balmTyFCYTDwTuLejZH6ES7xfhNfGO4bjXcmG3htLFSMR6JKEB6Y1GHsGV3GgGQkZ7KRdsVz2DHJPyQ+Q5DXlZ95GSdudjcKBTH8CAi4gX0fEjs/eOqhmwTg+yrF57dyO8+el8qQrU7+GgF2umFeY1Z7NoA1I= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1763343776; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=YZPS9rJuRYJQhQMaUWtzxXr08fJQQ2IjJz7xMKY7qDM=; b=Z86zDnISOi4qBi3G+jgKeTEyBC6SLdpzUq9dIKYHc+eyxgD5bHore+78NzgtWba84PLcwZqnZEZ6gEx8ylJNA2/jxwS+KErWdFnc4OmStwT2b/LPdGbKmaKtPr3514IFXsRZiM5/cUTSMrl0Q5K6SLLFoxain7kXSzcYI32RYkY= ARC-Authentication-Results: i=1; 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; 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 1763343776196440.37697510927; Sun, 16 Nov 2025 17:42:56 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vKoF2-0002tX-0U; Sun, 16 Nov 2025 20:41:16 -0500 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 1vKoEa-0002VR-2R for qemu-devel@nongnu.org; Sun, 16 Nov 2025 20:40:49 -0500 Received: from mail-qt1-x82b.google.com ([2607:f8b0:4864:20::82b]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1vKoEY-0005xa-Ay for qemu-devel@nongnu.org; Sun, 16 Nov 2025 20:40:47 -0500 Received: by mail-qt1-x82b.google.com with SMTP id d75a77b69052e-4ee0ce50b95so10940781cf.0 for ; Sun, 16 Nov 2025 17:40:46 -0800 (PST) Received: from [10.0.0.22] ([185.213.193.149]) by smtp.gmail.com with ESMTPSA id d75a77b69052e-4ee1c21ea34sm18246551cf.30.2025.11.16.17.40.44 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 16 Nov 2025 17:40:44 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1763343645; x=1763948445; darn=nongnu.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=YZPS9rJuRYJQhQMaUWtzxXr08fJQQ2IjJz7xMKY7qDM=; b=b8LRRln4EUZiUykSgQf7JKoUC0a60cbBfkvTbrRvQpQfgowfICEy5L4pILe5xpF1lV Hua4hqz3tbmPlaFJ47KIM20dEd62KVOwK93/l2HNXMJf+YzRVq/pZugF5KixzrCcnGZg hY+l6WiVlm6rLKSmUpz29Dg3aG2mw3XotEqp9T0ZToTEnWTvSo07BopJ0KS+BJIrj4pL 3EW06xNP2V3zy375ZJwvL8Wr6x4GKnDU/56A3QYMEn20NIpvS3Y2HBspvR5nLJazctia 56MfqEhwhyI02H5MTuasN6Vm+YtzInpx0y8yaG+FYE7sH/uR6kha7WfEC5ejIsdtYUrx if6g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1763343645; x=1763948445; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=YZPS9rJuRYJQhQMaUWtzxXr08fJQQ2IjJz7xMKY7qDM=; b=saqNbs80kk1okIh6356DgXYWs1w0cT5s5XWx5DEJ39kRXyqj6MINofRmwcqAZBChQD FAmkKAR2mzkXJj9NiMwixOpdFTDYd9q3A1slZsSxx2yseeM8SUpOzF+ZRMTV4ygkHelL /i3Cn+djC6YdAxNtisMynm8kQZf30onxBpdpPPIvyFc/3ID8zJWCwQRnN+meU0XjMAem p7OtqcDDOHyvKfEUqC4uoeCJX+4XGJCViZai7szkOTa90QuVnTslUha83LerRNas4Kk1 daHCXYUUkmqMViV62tPbMlBz62AZ0r9FzLwy1hmzMhr0ehZWApa78fOwP2ggAhuCTNdj w3TQ== X-Gm-Message-State: AOJu0YwWWrHdWhbujgOHyszjtAhrx5l9XKNbXqdbOslkLrvvc6AOYnUv BHxen9mCNe+nqg+tG0y9H5q6+Lr8P+7T2kXBPn9xVEuIxSn6DgMW0nGk X-Gm-Gg: ASbGncsUY7SpBpxVSL96eiiv1nAhMzmg0vRSs+fBcm2+AqZ0kJI+SBN3HnHGX+351JB cFQ/C+Esfz/9+7ErngiQrS5o2OwQ9NCvi7xw4vQyXhb9cPUP79A+AOgCo3ze3/quJ+q18HXn/Mx rQa0+G5wbrB7d5FNBZ2EZsEWGdibvBoEwjIyzRnaZAZ6SdDNtp+2HmC40vZLE4TuYgq2xYb7MHM HI/eWO0Ox77f/jAAcvrfqP9YSrbD6Qpz3n73psv/KUXJH7YOUy2QgUEnCEn+bWE0C+0PdAJEE+F 1tSAY0GtAXRBvPDFrdTfn8wrxrw4QszcwgK1rlaMbJQWBEyZ7oKbciWgnNSsuDJT+MTJmZ1VcVV xw2kmqQtycHuS3LE/dZ+rZRV4ZpEGuS9zKAk5XVZkLZZ3ZYSVxctpYwnhny4wH2vR7dh3t466vn aHUd1BQYWqGv/ABKtxhOM= X-Google-Smtp-Source: AGHT+IHgvieHxSRUO9TsHKNvJgshRAHk/5Gv34QSSGE6MsBMKM1XUkjD3wkxJ7wnGGvD6rkSbLrljg== X-Received: by 2002:ac8:5996:0:b0:4ed:2715:6130 with SMTP id d75a77b69052e-4edf216e10cmr143023481cf.36.1763343645435; Sun, 16 Nov 2025 17:40:45 -0800 (PST) From: Gabriel Brookman Date: Sun, 16 Nov 2025 20:40:21 -0500 Subject: [PATCH RFC v2 04/10] target/arm: add FEAT_MTE_STORE_ONLY logic MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20251116-feat-mte4-v2-4-9a7122b7fa76@gmail.com> References: <20251116-feat-mte4-v2-0-9a7122b7fa76@gmail.com> In-Reply-To: <20251116-feat-mte4-v2-0-9a7122b7fa76@gmail.com> To: qemu-devel@nongnu.org Cc: Peter Maydell , Gustavo Romero , qemu-arm@nongnu.org, Gabriel Brookman X-Mailer: b4 0.14.3 X-Developer-Signature: v=1; a=ed25519-sha256; t=1763343639; l=1520; i=brookmangabriel@gmail.com; s=20251009; h=from:subject:message-id; bh=68ZM+10B9YHoYASDZcGdBy4XhZSBVkzEJDAZb1ZURqE=; b=wC980mUNguhEfrIR5Nq6/5CttN9iRGDU71qsPwjgXzgFeylMIbfREmburYaJ/twikPUTvdsb6 ShAT0Y1fbGWCJNRkdc2aY45uYXLfHK1h5D7T3C5IycYmjf0IwtGBCQM X-Developer-Key: i=brookmangabriel@gmail.com; a=ed25519; pk=m9TtPDal6WzoHNnQiHHKf8dTrv3DUCPUUTujuo8vNrw= 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=2607:f8b0:4864:20::82b; envelope-from=brookmangabriel@gmail.com; helo=mail-qt1-x82b.google.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, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, 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 @gmail.com) X-ZM-MESSAGEID: 1763343778677153000 This feature automatically succeeds tag checks on load instructions when the appropriate SCTLR_TCSO register for the current exception level is set. Find information on this feature in the "Tag Checking" section of the ARM ARM, Memory Tagging Extension chapter. Signed-off-by: Gabriel Brookman --- target/arm/tcg/mte_helper.c | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/target/arm/tcg/mte_helper.c b/target/arm/tcg/mte_helper.c index bb48fe359b..f9fd6fd408 100644 --- a/target/arm/tcg/mte_helper.c +++ b/target/arm/tcg/mte_helper.c @@ -865,8 +865,30 @@ static int mte_probe_int(CPUARMState *env, uint32_t de= sc, uint64_t ptr, return 0; } =20 +static bool mte_store_only_active(CPUARMState *env) +{ + int el =3D arm_current_el(env); + if (el) { + if (SCTLR_TCSO & env->cp15.sctlr_el[el]) { + return true; + } + } else { + if ((HCR_E2H & env->cp15.hcr_el2) && + (SCTLR_TCSO0 & env->cp15.sctlr_el[2])) { + return true; + } else if (SCTLR_TCSO0 & env->cp15.sctlr_el[1]) { + return true; + } + } + return false; +} + uint64_t mte_check(CPUARMState *env, uint32_t desc, uint64_t ptr, uintptr_= t ra) { + if (!FIELD_EX32(desc, MTEDESC, WRITE) && mte_store_only_active(env)) { + return useronly_clean_ptr(ptr); + } + uint64_t fault; int ret =3D mte_probe_int(env, desc, ptr, ra, &fault); =20 --=20 2.51.2 From nobody Sun Feb 8 19:01:23 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1763343807; cv=none; d=zohomail.com; s=zohoarc; b=YMUQAT8OM33XosmB+25XVxQdWiSxr8n6PQt5sHwNxPH7C021T8qH3OzE9a7Xba42EcSJs5cGYRPpHmMdEcOONMFqDKd2cvPBFzIWzzoFw12NtpNsqn7uIOlnAIn6Gcc0Rty5mwz7o+M9glMhYDPxqqCc2wbWgsII25PwtLGWShM= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1763343807; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=1QKoUu8BlGHfDs3PD9C4DZ89TPN3YY4wK9WcP+sPaow=; b=FGbv8lNk8VH88c5Cs3kvj3coSbgpB70pIWk0LIGHVSR6G93YZAXeykl9FwoXhVsrNID95LCSxB/lz9k0PjsT2oTcTEUwYuPvRufb/IVHOyRm/qU1SratbMhQPxRl9Gz/uW04HBfGbeVvRW3NwBkyMPE0pzYeyN1GoUw1ws0gRSY= ARC-Authentication-Results: i=1; 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; 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 1763343807326394.80553627172435; Sun, 16 Nov 2025 17:43:27 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vKoF2-0002tx-HB; Sun, 16 Nov 2025 20:41:16 -0500 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 1vKoEd-0002XA-Em for qemu-devel@nongnu.org; Sun, 16 Nov 2025 20:40:52 -0500 Received: from mail-qt1-x832.google.com ([2607:f8b0:4864:20::832]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1vKoEZ-0005y3-JO for qemu-devel@nongnu.org; Sun, 16 Nov 2025 20:40:49 -0500 Received: by mail-qt1-x832.google.com with SMTP id d75a77b69052e-4ed66b5abf7so54100561cf.1 for ; Sun, 16 Nov 2025 17:40:47 -0800 (PST) Received: from [10.0.0.22] ([185.213.193.149]) by smtp.gmail.com with ESMTPSA id d75a77b69052e-4ee1c21ea34sm18246551cf.30.2025.11.16.17.40.45 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 16 Nov 2025 17:40:45 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1763343646; x=1763948446; darn=nongnu.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=1QKoUu8BlGHfDs3PD9C4DZ89TPN3YY4wK9WcP+sPaow=; b=W4ZJFSzYsaPbSoU5hTRNy5ddYlu8kswUP/xItK6hSsrLwO8fBaoDX4qDzB9jCVxvHq VCBmaKsz9zAwpyQynPfqzNgj2+q3PTRRcDrfrSO2HR5KWFj2DLQ72YNnvpxzBzU4p0cn mzW/eJzaKhH3x7wGAZBChyi+067QuT3/Hp2aVwj+e942Snx7wblictHJ4dAYKdNYgWCB jQIgD6dwHsCmO7uVXU+7El7YHvgw5frpIoMtKAV5ieRg2eoUCYIB77VWxJ9OtlNlVKxH 8uRe7e1Srdw+E2rOrgF9da2xFJGySeM05DLxMfYiYkNjtadW2EzV/jwNsO0Ky/5VLq1K jw9g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1763343646; x=1763948446; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=1QKoUu8BlGHfDs3PD9C4DZ89TPN3YY4wK9WcP+sPaow=; b=ggVYJ7KTXBs4szJcJdCgSplTMCubOj7YgxU9b/I64Ho4P42l9NJDzBe2k6Uv17xije rqiNVn/3mrz7+eD2eTB27VqXo/RrJVpkuRCpZ9S3N6bL+vgPk8sssK7bwDKe4RyWVWfp G1DDXXLBmw77bjYBWGc7/kC66Pg11ekqIoHDhhYw5pkAEQzfNlenTQXuwn9HkxigdGKi 7t7GGjObpgv9yE0zud8NqsGI8hE+dS2b6QtgJQQE5cZy3R03/n6jWqo6pSN70sI4DmYE MaeviumzNCTGYVrwAoJN22anM8pu4iKGIiAqPPzAX0T9mHFrvz2VFizbwZnQIQQYpz6x P9Ng== X-Gm-Message-State: AOJu0YwR9oaDYAZ+w+9QFMxU7OGgqJNWIAqhjTFN1W1CaOBfDhs5LDuJ 2n5WkD/9JQIRWqqJWztcVila3jNjSjziuYz0XqUfL8W2t3lbp2onkoLk X-Gm-Gg: ASbGncuP1eJKfawUbyyjMfECEU1M5uM2KQAcIIhouyxaoHsOHWbaVH4ZBuWNz4QEEPN 40QOcechB3oW+HOjfPMM1/0qweO6DOqmNO+Rx+A7EpBsnTukY4d5deH2ltoAGXV/AGLoWvMAXCo vqqwDdIJtZ7E38hlt32mPpZrMX3ulYOKwLYb3BNHnXIde/9od7Nnk9c128vbbOmegfJp2/zeuS4 JQks017+guhBlgMGEpt++uKC4rxCyY6+H8BVjNOjIX3+X15zBb3KBhQ1cEUKx5xhO90Bar0vP07 FRo0CLOD4mf1va+G5f8popFwhwdU/GGqQxMVOoVL0zYXKOfVe/kgkfX+/SQM7vh3uLI4V7vrh9V M/PCMFoW64QMLj90shFEwB0Mq+ahNqumb1bphC843F7q5ta7CxZ1qY8drsQxZzuoAVBntOwVVKn oXsFzH9ZR9f7mL4cAYSFw= X-Google-Smtp-Source: AGHT+IGtk+ku1IIDb8bDLAxmXk0SUFnCFIxPd4sHk3RUX/w6oKGfuNkxUuOrXA3tIMQibzAHkiA0NA== X-Received: by 2002:a05:622a:1492:b0:4ed:b185:f49d with SMTP id d75a77b69052e-4edf206c97dmr140382211cf.1.1763343646529; Sun, 16 Nov 2025 17:40:46 -0800 (PST) From: Gabriel Brookman Date: Sun, 16 Nov 2025 20:40:22 -0500 Subject: [PATCH RFC v2 05/10] tests/tcg: added test for MTE write-only MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20251116-feat-mte4-v2-5-9a7122b7fa76@gmail.com> References: <20251116-feat-mte4-v2-0-9a7122b7fa76@gmail.com> In-Reply-To: <20251116-feat-mte4-v2-0-9a7122b7fa76@gmail.com> To: qemu-devel@nongnu.org Cc: Peter Maydell , Gustavo Romero , qemu-arm@nongnu.org, Gabriel Brookman X-Mailer: b4 0.14.3 X-Developer-Signature: v=1; a=ed25519-sha256; t=1763343639; l=2569; i=brookmangabriel@gmail.com; s=20251009; h=from:subject:message-id; bh=+MW5eKyHmFp9lQRa143T4qRhRjYlTU7oYxdQCpWyD18=; b=uq6fD+kwIaV7oIcJ/6+wobrRZ3ZDAit3vkKR+4CyEE3dVUnUzdHKyJYPOiWb6+WGm3DJU9Iu1 suPPYK3TXXGD/pP2BKcd38STp/lE7osYumWOG3yElWxFbokONjUy6/1 X-Developer-Key: i=brookmangabriel@gmail.com; a=ed25519; pk=m9TtPDal6WzoHNnQiHHKf8dTrv3DUCPUUTujuo8vNrw= 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=2607:f8b0:4864:20::832; envelope-from=brookmangabriel@gmail.com; helo=mail-qt1-x832.google.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, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, 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 @gmail.com) X-ZM-MESSAGEID: 1763343808937153000 This test cannot be run in user-mode because the control bit that enables this feature is only writable at EL1. Signed-off-by: Gabriel Brookman --- tests/tcg/aarch64/Makefile.target | 2 +- tests/tcg/aarch64/mte-10.c | 55 +++++++++++++++++++++++++++++++++++= ++++ 2 files changed, 56 insertions(+), 1 deletion(-) diff --git a/tests/tcg/aarch64/Makefile.target b/tests/tcg/aarch64/Makefile= .target index b491cfb5e1..6203ac9b51 100644 --- a/tests/tcg/aarch64/Makefile.target +++ b/tests/tcg/aarch64/Makefile.target @@ -64,7 +64,7 @@ AARCH64_TESTS +=3D bti-2 =20 # MTE Tests ifneq ($(CROSS_CC_HAS_ARMV8_MTE),) -AARCH64_TESTS +=3D mte-1 mte-2 mte-3 mte-4 mte-5 mte-6 mte-7 mte-8 mte-9 +AARCH64_TESTS +=3D mte-1 mte-2 mte-3 mte-4 mte-5 mte-6 mte-7 mte-8 mte-9 m= te-10 mte-%: CFLAGS +=3D $(CROSS_CC_HAS_ARMV8_MTE) endif =20 diff --git a/tests/tcg/aarch64/mte-10.c b/tests/tcg/aarch64/mte-10.c new file mode 100644 index 0000000000..0fa3f97e1d --- /dev/null +++ b/tests/tcg/aarch64/mte-10.c @@ -0,0 +1,55 @@ +/* + * Memory tagging, write-only tag checking + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ + +#include "mte.h" + +void pass(int sig, siginfo_t *info, void *uc) +{ + exit(0); +} + +int main(int ac, char **av) +{ + struct sigaction sa; + int *p0, *p1, *p2; + long excl =3D 1; + + /* + * NOTE FOR REVIEWERS: to run this test locally, I modified + * enable_mte to also activate write-only tag checking by writing + * to ID_AA64PFR2_EL1. I am not sure how to modify the test so that + * it works without that modification. Input appreciated. + */ + enable_mte(PR_MTE_TCF_SYNC); + p0 =3D alloc_mte_mem(sizeof(*p0)); + + /* Create two differently tagged pointers. */ + asm("irg %0,%1,%2" : "=3Dr"(p1) : "r"(p0), "r"(excl)); + asm("gmi %0,%1,%0" : "+r"(excl) : "r" (p1)); + assert(excl !=3D 1); + asm("irg %0,%1,%2" : "=3Dr"(p2) : "r"(p0), "r"(excl)); + assert(p1 !=3D p2); + + /* Store the tag from the first pointer. */ + asm("stg %0, [%0]" : : "r"(p1)); + + /* + * We write to p1 (stg above makes this check pass) and read from + * p2 (improperly tagged, but since it's a read, we don't care). + */ + *p1 =3D *p2; + + /* enable handler */ + memset(&sa, 0, sizeof(sa)); + sa.sa_sigaction =3D pass; + sa.sa_flags =3D SA_SIGINFO; + sigaction(SIGSEGV, &sa, NULL); + + /* now we write to badly checked p2, should fault. */ + *p2 =3D 0; + + abort(); +} --=20 2.51.2 From nobody Sun Feb 8 19:01:23 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1763343779; cv=none; d=zohomail.com; s=zohoarc; b=W2Z40bwItTnbzIcEJGtKsWPkpTJMavusCKGarwPUGBY12HLSb7chm4o7F6YhpDrYK3xOwV5/8Q9FRVR/ocpvTBce9OkYgdJwmkKCkn2RscRJuDKltF4JpSdE8mHTpjclT9qfY8Zamk9I/iRIbEDhE3gEhiwCx12Z+qaeOIjEwTU= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1763343779; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=Dnbbf6q1KBWAEN9kQkeNkKZ6PakRiGS6+tTlmd1+/pE=; b=MEDm7iFpfi9lWBoFbEWJZCa4B03PQVn8EbXFeUtSr3hJhq76RDE0eO39QKH0Z5pbHxUjg9XnvQKhqKUqa3wOrv8TTtSiEbTrw/atG33P2fQ2UZ6WPA94FG4vMPO6wq9DLRwxyeWgfUbudylQ/J0ak9y2M5aH0nNJUrimsQEt2E4= ARC-Authentication-Results: i=1; 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; 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 1763343779161580.9835885737614; Sun, 16 Nov 2025 17:42:59 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vKoF2-0002tu-8s; Sun, 16 Nov 2025 20:41:16 -0500 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 1vKoEf-0002Z5-A3 for qemu-devel@nongnu.org; Sun, 16 Nov 2025 20:40:55 -0500 Received: from mail-qt1-x830.google.com ([2607:f8b0:4864:20::830]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1vKoEd-0005yT-5c for qemu-devel@nongnu.org; Sun, 16 Nov 2025 20:40:52 -0500 Received: by mail-qt1-x830.google.com with SMTP id d75a77b69052e-4ee1939e70bso8419291cf.3 for ; Sun, 16 Nov 2025 17:40:48 -0800 (PST) Received: from [10.0.0.22] ([185.213.193.149]) by smtp.gmail.com with ESMTPSA id d75a77b69052e-4ee1c21ea34sm18246551cf.30.2025.11.16.17.40.46 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 16 Nov 2025 17:40:46 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1763343647; x=1763948447; darn=nongnu.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=Dnbbf6q1KBWAEN9kQkeNkKZ6PakRiGS6+tTlmd1+/pE=; b=QnqAUT4xmBRAkVqJ0TsRdA9HLCsxRnwbkUTipI3w2KO819WGuc/tKlgIQl7UFKcgm1 LoPXpEjDE10wmIbUj6gpbwFVEdUnXCsOuqHfv8z1vQh0qKZRBnMFPRS4kgqT02S41PRS 7PamkYfsRhcWLPnxi4G3ak9dIoE6YWw1Cwn6iRMu9RSvxiT3rUgqCOHh5UjceztoCa+o 4lOh8pSKbP/c5UDecW7sYOUSUORLd7G+7Mc0V/oQVOmqYsaaQoCqEFASFm5IxoTmbkYA ZTKeSsijgUQLDv0KIj1zDyeLbXCNScsTTJqy5qQLSvah6ZLsSuFcJv7nyDgjhSyVoN3q asNQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1763343647; x=1763948447; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=Dnbbf6q1KBWAEN9kQkeNkKZ6PakRiGS6+tTlmd1+/pE=; b=eRhg3Nc8ZYGoTqbKX6mbIW6euItJIOSoZH47g4TJtehPkRELMNqYutfIYOvn/l329v FDWQdAmIBxQ0BKSHj+u0NThmSxm24Y3IG//JKc48orWIqRQhPbjmkZNpqqxHkOv9NUzH B4wP6uyMA41icwAklE2qlkIeaRyqsHCJQuvHTuvJ+RJk74xSESOcNx6ESLFou9vXcYb8 UQbYsmEk0EsfQ+1Fk018aft8tTBp/tZfS/NYHtDSzHIHUk2TFGT6woy/OypSpVLx1CJv 0Wtlqn0q9WU/TB755CuEqgMb/9VOjOSpDF+yXoBYdcuumwFoI1kYdIL+nzkb1rlJCGSQ MK6A== X-Gm-Message-State: AOJu0YyC7beygkS1Sv8RniE3UDyOkQIyuKw/TSwO95ehIDM54CxVJ5gj a9B7j7N9V3CnhsgaObCAchwa1P9FRTKovGNmypTXplHruXFXiT+o8y1E X-Gm-Gg: ASbGncu7LkINQZiukC2lbFgBEuC+6dpiNqNkuRw0Tia7bVf6AUx+JPfUkcMDoOxzL2E yDUAo0IEuC5RMNRMrHK/Fll1/9Bsj7gogvuQJYo/5lLmNU6VqvCOtSL4PPPgOTTDP5xFremiJ3e Vgn/2CllCHzHWYAtBibwBcBBLVK3loS36ndZgNugJ7gvWbzoHMB1d1Vw6fEp4YVEHDg/RAMHPiW fq4HA0Qc6ean3END7xlew3SU2kEOErEGZVqn7dpN2PrWPzyvT+BUiW9UiOuP+YvXMTVaWfgzBpw Ei2f088imWljsHqzYNY+ggjYdcJGGvr1Qctox1bATXyonMJ7I3i7/m0moss75b4lRCq7f7Pnkic y/0/noBdo3KDdPH9JSVEGMkqAnoBd/PdhC5ClFULs54a0q8SMVlopNBcU2ireI68sXXXGcYZIb+ WRjd/T0aWR X-Google-Smtp-Source: AGHT+IGfGfCC6520aEJWYOsOhBFRPDDs/yZTSTasS4u2bpxZrScMeoWGou+IJax+a8HH46HT0V+kdw== X-Received: by 2002:a05:622a:1343:b0:4ed:43fe:f537 with SMTP id d75a77b69052e-4edf215b06amr153393461cf.76.1763343647497; Sun, 16 Nov 2025 17:40:47 -0800 (PST) From: Gabriel Brookman Date: Sun, 16 Nov 2025 20:40:23 -0500 Subject: [PATCH RFC v2 06/10] target/arm: add canonical and no-address tag logic MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20251116-feat-mte4-v2-6-9a7122b7fa76@gmail.com> References: <20251116-feat-mte4-v2-0-9a7122b7fa76@gmail.com> In-Reply-To: <20251116-feat-mte4-v2-0-9a7122b7fa76@gmail.com> To: qemu-devel@nongnu.org Cc: Peter Maydell , Gustavo Romero , qemu-arm@nongnu.org, Gabriel Brookman X-Mailer: b4 0.14.3 X-Developer-Signature: v=1; a=ed25519-sha256; t=1763343639; l=3340; i=brookmangabriel@gmail.com; s=20251009; h=from:subject:message-id; bh=F2pGZprB8kCYpSFO6b+fLbFMcjK4Pgwg8dscgoUacB0=; b=9RGQlL+ym4S7ny7TacHw8tgfdCWLHKD/gKIbmJ2TuIlbqjJfKgDCZdMfdAJT46sZWPENZyfLC f6RGirPwaiGA9BrpKUBvfv1BNBwpI+D1mCHuaAiCtVwx9utsCNbNMYY X-Developer-Key: i=brookmangabriel@gmail.com; a=ed25519; pk=m9TtPDal6WzoHNnQiHHKf8dTrv3DUCPUUTujuo8vNrw= 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=2607:f8b0:4864:20::830; envelope-from=brookmangabriel@gmail.com; helo=mail-qt1-x830.google.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, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, 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 @gmail.com) X-ZM-MESSAGEID: 1763343780493153000 This feature causes tag checks to compare logical address tags against their canonical form rather than against allocation tags. Described in the ARM ARM section "Logical Address Tagging". Signed-off-by: Gabriel Brookman --- target/arm/internals.h | 40 ++++++++++++++++++++++++++++++++++++++++ target/arm/tcg/mte_helper.c | 12 ++++++++++++ 2 files changed, 52 insertions(+) diff --git a/target/arm/internals.h b/target/arm/internals.h index 75677945af..5f0bcdaaac 100644 --- a/target/arm/internals.h +++ b/target/arm/internals.h @@ -1633,6 +1633,46 @@ static inline bool tcma_check(uint32_t desc, int bit= 55, int ptr_tag) return tcma && match; } =20 +/* Return whether or not the second nibble of a VA matches bit 55. */ +static inline bool tag_is_canonical(int ptr_tag, int bit55) +{ + return ((ptr_tag + bit55) & 0xf) =3D=3D 0; +} + +/* Return true if mtx bits mean that the access is canonically checked. */ +static inline bool mtx_check(CPUARMState *env, bool bit55) +{ + /* + * the MTX bits used in EL0 are those used in whichever EL is used + * for the supervisor. The EL that contains the supervisor uses + * bits 60 and 61 (MTX0 and MTX1), while the other ELs that aren't + * used by the supervisor. + */ + int el =3D arm_current_el(env); + if (el =3D=3D 0) { + if (HCR_E2H & env->cp15.hcr_el2) { + return (1l << (60 + bit55)) & env->cp15.tcr_el[2]; + } else { + return (1l << (60 + bit55)) & env->cp15.tcr_el[1]; + } + } else if (el =3D=3D 1) { + if (HCR_E2H & env->cp15.hcr_el2) { + g_assert_not_reached(); + } else { + return (1l << (60 + bit55)) & env->cp15.tcr_el[1]; + } + } else if (el =3D=3D 2) { + if (HCR_E2H & env->cp15.hcr_el2) { + return (1l << (60 + bit55)) & env->cp15.tcr_el[2]; + } else { + return (1l << 33) & env->cp15.tcr_el[2]; + } + } else if (el =3D=3D 3) { + return (1l << 33) & env->cp15.tcr_el[3]; + } + return false; +} + /* * For TBI, ideally, we would do nothing. Proper behaviour on fault is * for the tag to be present in the FAR_ELx register. But for user-only diff --git a/target/arm/tcg/mte_helper.c b/target/arm/tcg/mte_helper.c index f9fd6fd408..513ee8d6a1 100644 --- a/target/arm/tcg/mte_helper.c +++ b/target/arm/tcg/mte_helper.c @@ -799,6 +799,10 @@ static int mte_probe_int(CPUARMState *env, uint32_t de= sc, uint64_t ptr, return 1; } =20 + if (mtx_check(env, bit55)) { + return tag_is_canonical(ptr_tag, bit55); + } + mmu_idx =3D FIELD_EX32(desc, MTEDESC, MIDX); type =3D FIELD_EX32(desc, MTEDESC, WRITE) ? MMU_DATA_STORE : MMU_DATA_= LOAD; sizem1 =3D FIELD_EX32(desc, MTEDESC, SIZEM1); @@ -962,6 +966,14 @@ uint64_t HELPER(mte_check_zva)(CPUARMState *env, uint3= 2_t desc, uint64_t ptr) goto done; } =20 + if (mtx_check(env, bit55)) { + if (tag_is_canonical(ptr_tag, bit55)) { + goto done; + } + mte_check_fail(env, desc, ptr, ra); + } + + /* * In arm_cpu_realizefn, we asserted that dcz > LOG2_TAG_GRANULE+1, * i.e. 32 bytes, which is an unreasonably small dcz anyway, to make --=20 2.51.2 From nobody Sun Feb 8 19:01:23 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1763343739; cv=none; d=zohomail.com; s=zohoarc; b=hgYNlC0VD0I56zENSmmE8k3xs1TfwfQVnT4ievwrTHYkzwANDilIlIagMbCA4d7O4gx9G04QEdoEzM1cHPDhsqD/1VSGnb77l2CFy6WG8I8FWqG1iRVdJ8RxLzP+gBEV6Nx/LAeFMUglHdmhT7sqiH+To7zqlPLK7Y/x8+v2Y3M= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1763343739; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=Ihipyb7Ru3/tHKU6eXELZTfZpiyon46Jva01mBoEaT8=; b=FylrqHZa+ePGLMERF3Sn37uicjdKmgpRa3GbvqYDfc1kFJ1uvmO8YZlvun9By5jno+H1hs5KwCkvnQ56jiO4aNEPqicP8LquvlFLyOnZuub3sIEUxLJiTS49WxWJbIOj2mNDoPkuVfwB0M9M7dB/+fqj96Ap6Cu08cfwJBllUcE= ARC-Authentication-Results: i=1; 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; 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 1763343739721708.6191362484832; Sun, 16 Nov 2025 17:42:19 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vKoFK-0003BU-L4; Sun, 16 Nov 2025 20:41:34 -0500 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 1vKoEg-0002Z9-0o for qemu-devel@nongnu.org; Sun, 16 Nov 2025 20:40:55 -0500 Received: from mail-qt1-x82d.google.com ([2607:f8b0:4864:20::82d]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1vKoEd-0005yf-82 for qemu-devel@nongnu.org; Sun, 16 Nov 2025 20:40:53 -0500 Received: by mail-qt1-x82d.google.com with SMTP id d75a77b69052e-4edb7c8232aso57058861cf.3 for ; Sun, 16 Nov 2025 17:40:49 -0800 (PST) Received: from [10.0.0.22] ([185.213.193.149]) by smtp.gmail.com with ESMTPSA id d75a77b69052e-4ee1c21ea34sm18246551cf.30.2025.11.16.17.40.47 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 16 Nov 2025 17:40:47 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1763343649; x=1763948449; darn=nongnu.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=Ihipyb7Ru3/tHKU6eXELZTfZpiyon46Jva01mBoEaT8=; b=YYn175VRWcuoDHDge++TNRYyX5xUEimMmMdu+44ZvrLB2/dGE9a//jhcIaVx/Ok+GV WlVWOGwP9zlXqXbEEuc4Qk3WwxxUl3FmSIJhFnwR6aBGDiEtfpWY3Fzstd0mxkrGmImt Fyb0ugyRhDRfB+yIZbUIa9pe29qfce2AwooLjS2t8kUjrTL4CJT8VllC4XUMzND7hVr+ oCiGo6S4ZE1cXq04oeHwUCHPuObdByRHdqp1NhYBUJKrxY/ph7ugRbBSKBuSUkFDi51z Pzk8ULrRfD5F4Zg+arIADBQRiZW+6+5cpfxzs7+1NRQoeelEfs+RUQ1tgX4W6lE6W15f Xlwg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1763343649; x=1763948449; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=Ihipyb7Ru3/tHKU6eXELZTfZpiyon46Jva01mBoEaT8=; b=esntmJWhpIXwx4Pb3pXBEKlKa6cqKL0wXx7q5j8EuSj4nOsiB8wmTj5anj1Q0hDFjf EU4QC85OueLTb/36M/QfMkLo2WLw6x7RvgTvjjFP8yhpofTneIKwMBeCehr1VwBOi2Wo hy3IbMXkBFkG/1Q7HYxQYWXhaVGP53lGScL+LqbReq84O8WqxfrIHuYz6Du35JBYv811 jdKkmQCIINfV8f6Dww+maF0VQ9ys0N1p1C1iYKyQD7Uee1bT/oFSKUI44wLiPrYEcZcg xx6zuT1k4dDx2Q5+/vByt3aAqEdrm3RjWq7JiGje+bzUVLMKMQ0HmqSIAKBuGKavnpzh cX2Q== X-Gm-Message-State: AOJu0YxN/b2rxK+k+HBtV9YSHmGwdVcUte/mLZbpQRpGQ7GMNwVYLCx3 w8vNdG6NE0ccmIrlTLHCr3ZLM/UEq+BMlNr4kPhWWBDmvSMr5xP32PAs X-Gm-Gg: ASbGncsqbjxwko3I0/37JxJEotBBuAEBKYj7fc4+iVZ/PiIEGTsc+mVRj9G0b3MHede fN/Fvu3/aagefnJXbsTowWRbHM7unq/D/Q6XTx8x1R7EBMgf9xpxnM/niircQjYm9PbyXMgxr0/ 4T8o8r75T5n1NpkxO+p2B5AFEjFZDi3U58Nrjqj7QKA4D9vhAicFk6LGTdKri2HU6NJcHAiR2rH XEIJUFCFU+D2Ll2hjI32h97bGZ+DZherIhfBBhOXsHVA4NjAWNAziCdrC+v7jZOgkdyPoPAnCV/ cWQjj2ViJADlgST9IL1Bsbm/nEMDOx4hfHt8SoMjTPoG7LhnuF4Ycwc8qYAq1oC7MAW+bO6LDEj 0RqdfX6aFywN5Orm6uF+0+zUPTkuqN1S3L81YZKM34cqQp+8tMbA7V+dHONQgSlWku49E7jJ9xF +exmpsg2nDToESH8pDlME= X-Google-Smtp-Source: AGHT+IE8lG32RhNeLkm0p2860xTfDGao3wwHUblBvro27NZk8A1ratAQ78qSLwkIe2DQNIu8RN9cBg== X-Received: by 2002:ac8:59c1:0:b0:4ee:24d0:454f with SMTP id d75a77b69052e-4ee24d04d27mr10407171cf.37.1763343649047; Sun, 16 Nov 2025 17:40:49 -0800 (PST) From: Gabriel Brookman Date: Sun, 16 Nov 2025 20:40:24 -0500 Subject: [PATCH RFC v2 07/10] target/arm: ldg on canonical tag loads the tag MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20251116-feat-mte4-v2-7-9a7122b7fa76@gmail.com> References: <20251116-feat-mte4-v2-0-9a7122b7fa76@gmail.com> In-Reply-To: <20251116-feat-mte4-v2-0-9a7122b7fa76@gmail.com> To: qemu-devel@nongnu.org Cc: Peter Maydell , Gustavo Romero , qemu-arm@nongnu.org, Gabriel Brookman X-Mailer: b4 0.14.3 X-Developer-Signature: v=1; a=ed25519-sha256; t=1763343639; l=1576; i=brookmangabriel@gmail.com; s=20251009; h=from:subject:message-id; bh=fIipJW6zdB7cgS7KaJpOQoZAsxlcOoekAcIhgxUqYiw=; b=13d11fAol537wMifs7Pn6MTr+3m2Tko6JIS2dccj+7Z4vtRK12mM2Zm1rrA6feIc0JkcGBp17 8oi1QxR2nkDAo15iGA2BK6tMO/TyDjHpageud9o192jWH2TWIa35FWf X-Developer-Key: i=brookmangabriel@gmail.com; a=ed25519; pk=m9TtPDal6WzoHNnQiHHKf8dTrv3DUCPUUTujuo8vNrw= 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=2607:f8b0:4864:20::82d; envelope-from=brookmangabriel@gmail.com; helo=mail-qt1-x82d.google.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, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, 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 @gmail.com) X-ZM-MESSAGEID: 1763343744015153000 According to ARM ARM, section "Memory Tagging Region Types", loading tags from canonically tagged regions should use the canonical tags, not allocation tags. Signed-off-by: Gabriel Brookman --- target/arm/tcg/mte_helper.c | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/target/arm/tcg/mte_helper.c b/target/arm/tcg/mte_helper.c index 513ee8d6a1..ddb68e11fc 100644 --- a/target/arm/tcg/mte_helper.c +++ b/target/arm/tcg/mte_helper.c @@ -279,9 +279,14 @@ uint64_t HELPER(ldg)(CPUARMState *env, uint64_t ptr, u= int64_t xt) mem =3D allocation_tag_mem(env, mmu_idx, ptr, MMU_DATA_LOAD, 1, MMU_DATA_LOAD, GETPC()); =20 - /* Load if page supports tags. */ + /* Load if page supports tags. Set to canonical value if MTX is set. */ if (mem) { - rtag =3D load_tag1(ptr, mem); + uint64_t bit55 =3D extract64(ptr, 55, 1); + if (mtx_check(env, bit55)) { + rtag =3D 0xF * bit55; + } else { + rtag =3D load_tag1(ptr, mem); + } } =20 return address_with_allocation_tag(xt, rtag); @@ -444,6 +449,11 @@ uint64_t HELPER(ldgm)(CPUARMState *env, uint64_t ptr) return 0; } =20 + if (mtx_check(env, extract64(ptr, 55, 1))) { + shift =3D extract64(ptr, LOG2_TAG_GRANULE, 4) * 4; + return (~0) << shift; + } + /* * The ordering of elements within the word corresponds to * a little-endian operation. Computation of shift comes from --=20 2.51.2 From nobody Sun Feb 8 19:01:23 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1763343719; cv=none; d=zohomail.com; s=zohoarc; b=TufzzXYPmalLy8t6ajnUOfDNAl1ZrT9kkC1fHrVVpRhuW7NDV18eW+oll5Nz5vcAgCg3fOOv/b7fD0atCxSZG7w4P7MyXacg0/X559Eb+4Yi5DasHN+Z+VXuPXysaaGaqA921ZxNo47x8wgjF8tKntFNv/9UzUnUjvfU6qwrG0M= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1763343719; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=xTiUOQ1IGaMkParvG9Ea/FPr0n/zvWff1jDqiP6qxEY=; b=er7LLhHkcUNGQt2bMTXnP+axA+d/ZdhXlKe9un+eNeCGpb1eufnWS7hWx8SgTr61VQD7ZEo0S6Bpi+PhIfUU4vHD6BnWzzg+BxWtb0epPBa1cmiSWBZA2w6rMDHZwW76g1Sg8j23qXbZSbetyxPK/0CZfHU9OzTso1uZKOo+KI8= ARC-Authentication-Results: i=1; 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; 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 176334371961293.88368629536376; Sun, 16 Nov 2025 17:41:59 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vKoF4-0002uh-Eq; Sun, 16 Nov 2025 20:41:18 -0500 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 1vKoEg-0002ZB-4A for qemu-devel@nongnu.org; Sun, 16 Nov 2025 20:40:56 -0500 Received: from mail-qt1-x82a.google.com ([2607:f8b0:4864:20::82a]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1vKoEd-0005yp-8Q for qemu-devel@nongnu.org; Sun, 16 Nov 2025 20:40:53 -0500 Received: by mail-qt1-x82a.google.com with SMTP id d75a77b69052e-4ed82ee9e57so51426541cf.0 for ; Sun, 16 Nov 2025 17:40:50 -0800 (PST) Received: from [10.0.0.22] ([185.213.193.149]) by smtp.gmail.com with ESMTPSA id d75a77b69052e-4ee1c21ea34sm18246551cf.30.2025.11.16.17.40.49 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 16 Nov 2025 17:40:49 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1763343650; x=1763948450; darn=nongnu.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=xTiUOQ1IGaMkParvG9Ea/FPr0n/zvWff1jDqiP6qxEY=; b=XRJFUyDNrUId+CqIc0HK34iISbDONoVH9Suyme1QoO22gMoYqqeNk7+qUPTDoC+QpW SgRweS6vBTaXV5qOWRnDFneFTfRglZP6Oqj76Rer3ncMaTJ7SmampjNZk2V46lyjD7cT C2CIqA9uTYjPpsyTxqhhSJs70qwkCTr8x3ai5+TwPbxQYuom/XiS7BlPrZ80FJ3+sAL/ uiy9beudY5Fn6rCPLaWccC3SKYfdvEf6VFkFlF7th7WPtzlE4ZpIFCOFLrQ6YDlL2R2j phAtYum0vR7cN3XVPrz/Oj8e5QzE5tgsZDYYecEH7mSsXF4Abx5jtq6B80SlPClj5U3p G3Mw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1763343650; x=1763948450; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=xTiUOQ1IGaMkParvG9Ea/FPr0n/zvWff1jDqiP6qxEY=; b=tuQMvAm4Dn+NPtTG24M5Et0DOHuec+K4vF2Uu0vh+9VJFheGf0h5goxzYWczt+IPhq oIFFKyt/KYhc6YYfSNbiHEU6J8S9jfEF8rr3loBo0fb8V+SUAr1ios8KLOfcFohzagBD 4kd9eT8BJywyQU+f+Ozn+xVTsIGEmtZtnbWIZl3EX9BqHvYrv/vcFpGHHfi/DT4DTqyW xm0H1MD+QduBSWwW/T3TBNofareMws9KHVBiO6GMy5Enintea1LF3T6SuUR4NaKpCRPZ xEsP3M+jn/GdvVcNTH6CXhijsn9px3VFru4mRWZ6yujv3wwvKjLo/J3LpwFec6NfSsF7 zIqQ== X-Gm-Message-State: AOJu0YwlNS/aPvS0hnd8rkJp72QNu37DRXM2iYZfhhjwBA1IN1hq9iAn dBEAlBW3AacyPxko2ycIVBEncbGOe0iVMe6EPDolLOFy6QJaImkjULLGyKvwdLNN X-Gm-Gg: ASbGnctpePK4521lUbcchHQVC8rftZCaXERmqn3H/ujV3iHDbEaVj9BnROgAHi1KPCR gjX2b+Yxx/sKgMV83xEs4X/sfU0zlLI3StjbTAY4yzvq4/F1uK/i6uJcWU8jAwcvj5eI/BnFG2u V5DCCB3lLPAuQBqFC1efCtje7VewvB1PmkgiJ9+sTAzhUnSK+C4fH5N2eDK6WwOSc9dAQzbmZ7n v1m08JDGcYr0aDNsFHib6VBFI2KOXqZZOa4Dh2A5qi1tPYC0j4x1HYCKKQZBp0lJrlbfPcNX5a5 2yXSQiPtaUJk5DYOeAqP2tOni5mSeIgi6Yi4XJbcZaX/GqHJWClTPaPfKKJsbEffehebmKYAK/i Dx902QA5VKVX1c62/pr6xIhXa8p6sigtODaVxA+xkzC2hQe/78UKWdq7RCulmzkjSwjBj4GpmlK DCZglD7DclZgNGbhLNLk0= X-Google-Smtp-Source: AGHT+IFADsGLTCjPe/PJINQ+Ltzqmb136uwNv01Aceos10aAXb1YaqJITAQKmGfBu/AFCWUowoXkew== X-Received: by 2002:a05:622a:199a:b0:4e8:99f5:e331 with SMTP id d75a77b69052e-4edf2111e6fmr148613301cf.60.1763343650185; Sun, 16 Nov 2025 17:40:50 -0800 (PST) From: Gabriel Brookman Date: Sun, 16 Nov 2025 20:40:25 -0500 Subject: [PATCH RFC v2 08/10] target/arm: storing to canonical tags faults MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20251116-feat-mte4-v2-8-9a7122b7fa76@gmail.com> References: <20251116-feat-mte4-v2-0-9a7122b7fa76@gmail.com> In-Reply-To: <20251116-feat-mte4-v2-0-9a7122b7fa76@gmail.com> To: qemu-devel@nongnu.org Cc: Peter Maydell , Gustavo Romero , qemu-arm@nongnu.org, Gabriel Brookman X-Mailer: b4 0.14.3 X-Developer-Signature: v=1; a=ed25519-sha256; t=1763343639; l=3674; i=brookmangabriel@gmail.com; s=20251009; h=from:subject:message-id; bh=c31VaTqUU8n9+GGHtU0L8ajZrOEP0kWNvcXF7xxXV1I=; b=OGLArAyuyBjohMjK99H7n7OFn+WPuc9h94KvoPbXD2gPBGOpdFIFu0X5r5lyTAj3pQ2ignicH xpmxmq02TZ2DjRe+zLOXFFTMhg7TjXHj/QKWATLasEhAgmRQ6YpQqtc X-Developer-Key: i=brookmangabriel@gmail.com; a=ed25519; pk=m9TtPDal6WzoHNnQiHHKf8dTrv3DUCPUUTujuo8vNrw= 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=2607:f8b0:4864:20::82a; envelope-from=brookmangabriel@gmail.com; helo=mail-qt1-x82a.google.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, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, 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 @gmail.com) X-ZM-MESSAGEID: 1763343722042153000 According to ARM ARM, section "Memory region tagging types", tag-store instructions targeting canonically tagged regions cause a stage 1 permission fault. Signed-off-by: Gabriel Brookman --- target/arm/tcg/mte_helper.c | 47 +++++++++++++++++++++++++++++++++++++++++= ++++ 1 file changed, 47 insertions(+) diff --git a/target/arm/tcg/mte_helper.c b/target/arm/tcg/mte_helper.c index ddb68e11fc..9eb3777fe2 100644 --- a/target/arm/tcg/mte_helper.c +++ b/target/arm/tcg/mte_helper.c @@ -196,6 +196,23 @@ uint8_t *allocation_tag_mem_probe(CPUARMState *env, in= t ptr_mmu_idx, #endif } =20 +static void canonical_tag_write_fail(CPUARMState *env, + uint64_t dirty_ptr, uintptr_t ra) +{ + uint64_t syn; + + env->exception.vaddress =3D dirty_ptr; + + /* bit 42 is TnD */ + syn =3D (1l << 42) | syn_data_abort_no_iss(arm_current_el(env) !=3D 0, + 0, 0, 0, 0, 1, 0b1110); + raise_exception_ra(env, EXCP_DATA_ABORT, syn, exception_target_el(env)= , ra); + g_assert_not_reached(); + +} + + + static uint8_t *allocation_tag_mem(CPUARMState *env, int ptr_mmu_idx, uint64_t ptr, MMUAccessType ptr_access, int ptr_size, MMUAccessType tag_access, @@ -332,6 +349,11 @@ static inline void do_stg(CPUARMState *env, uint64_t p= tr, uint64_t xt, int mmu_idx =3D arm_env_mmu_index(env); uint8_t *mem; =20 + if (mtx_check(env, 1 & (ptr >> 55))) { + canonical_tag_write_fail(env, ptr, ra); + return; + } + check_tag_aligned(env, ptr, ra); =20 /* Trap if accessing an invalid page. */ @@ -359,6 +381,11 @@ void HELPER(stg_stub)(CPUARMState *env, uint64_t ptr) int mmu_idx =3D arm_env_mmu_index(env); uintptr_t ra =3D GETPC(); =20 + if (mtx_check(env, 1 & (ptr >> 55))) { + canonical_tag_write_fail(env, ptr, ra); + return; + } + check_tag_aligned(env, ptr, ra); probe_write(env, ptr, TAG_GRANULE, mmu_idx, ra); } @@ -370,6 +397,11 @@ static inline void do_st2g(CPUARMState *env, uint64_t = ptr, uint64_t xt, int tag =3D allocation_tag_from_addr(xt); uint8_t *mem1, *mem2; =20 + if (mtx_check(env, 1 & (ptr >> 55))) { + canonical_tag_write_fail(env, ptr, ra); + return; + } + check_tag_aligned(env, ptr, ra); =20 /* @@ -418,6 +450,11 @@ void HELPER(st2g_stub)(CPUARMState *env, uint64_t ptr) uintptr_t ra =3D GETPC(); int in_page =3D -(ptr | TARGET_PAGE_MASK); =20 + if (mtx_check(env, 1 & (ptr >> 55))) { + canonical_tag_write_fail(env, ptr, ra); + return; + } + check_tag_aligned(env, ptr, ra); =20 if (likely(in_page >=3D 2 * TAG_GRANULE)) { @@ -504,6 +541,11 @@ void HELPER(stgm)(CPUARMState *env, uint64_t ptr, uint= 64_t val) =20 ptr =3D QEMU_ALIGN_DOWN(ptr, gm_bs_bytes); =20 + if (mtx_check(env, 1 & (ptr >> 55))) { + canonical_tag_write_fail(env, ptr, ra); + return; + } + /* Trap if accessing an invalid page. */ tag_mem =3D allocation_tag_mem(env, mmu_idx, ptr, MMU_DATA_STORE, gm_bs_bytes, MMU_DATA_LOAD, ra); @@ -550,6 +592,11 @@ void HELPER(stzgm_tags)(CPUARMState *env, uint64_t ptr= , uint64_t val) intptr_t dcz_bytes, tag_bytes; uint8_t *mem; =20 + if (mtx_check(env, 1 & (ptr >> 55))) { + canonical_tag_write_fail(env, ptr, ra); + return; + } + /* * In arm_cpu_realizefn, we assert that dcz > LOG2_TAG_GRANULE+1, * i.e. 32 bytes, which is an unreasonably small dcz anyway, --=20 2.51.2 From nobody Sun Feb 8 19:01:23 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1763343764; cv=none; d=zohomail.com; s=zohoarc; b=J1XqvvJhR6uTa0bg0YUqnUW3AWg6XMbsTjxhyeS3ev+dvKw/R6P4qpry7UE8ir4pVDZ08DkwEeKdCTbxWbh+7xsG/sLlzKEtch8NSXY9/68aBNLIcxF6FFPIxAzTZwz6v4XRbskw2JNzbz7j+CdUjfnvsCz9pCgSJwYpptmVR60= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1763343764; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=34ktumR/fmkok2iT5/89XdGNb+d+wyQTRwC+kBFtXAA=; b=kTOFi8k96otq3YZ59TcqN42wP96tBhyn/fHZRKc2JVt27uR7C/a5kF9fo+7oNtRpCnLzXGI7u0H68DzRy5YbPyVSk+MHK8NOT+R8Y/lzGNAqWqvAlVtist2NzxOceeMvg2NSfnVRL4SRtyLJMmCNaDuQ2SEDuSgwHSJ876diZnA= ARC-Authentication-Results: i=1; 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; 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 1763343764396126.53940651921982; Sun, 16 Nov 2025 17:42:44 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vKoFL-0003Hl-IT; Sun, 16 Nov 2025 20:41:35 -0500 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 1vKoEh-0002Zk-Al for qemu-devel@nongnu.org; Sun, 16 Nov 2025 20:40:56 -0500 Received: from mail-qt1-x831.google.com ([2607:f8b0:4864:20::831]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1vKoEf-0005zC-2n for qemu-devel@nongnu.org; Sun, 16 Nov 2025 20:40:55 -0500 Received: by mail-qt1-x831.google.com with SMTP id d75a77b69052e-4edf1be4434so26889511cf.1 for ; Sun, 16 Nov 2025 17:40:52 -0800 (PST) Received: from [10.0.0.22] ([185.213.193.149]) by smtp.gmail.com with ESMTPSA id d75a77b69052e-4ee1c21ea34sm18246551cf.30.2025.11.16.17.40.50 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 16 Nov 2025 17:40:50 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1763343651; x=1763948451; darn=nongnu.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=34ktumR/fmkok2iT5/89XdGNb+d+wyQTRwC+kBFtXAA=; b=FqK0WQGkcGFYE+5AFV31dCk5vj9tXAvwcM3czoADeoyZawqXBircV9aDWcc/KlwsEO fcd8ncjqIGttKetP9NqBiLqv9RMC/UhGG1tcNHAlfkbt89akxsd0qXcyZfFvKyJ9mHTm IJA6Q0c6GKNJL+i885yv3FqTpoRyxVSCApuCi2P3S6twYVEHdiZAIREoD9vTePyJuQbj mQUtXvNF7E9X2AnmXS2QoMop1ho6FN09s2EKV2UFQrq8xfG/4onhnauCRm3ah43ULMMa TwXjIWb6sxVr/HMMWdIZZR7bCM7ttkat9Ju+dLFWTgXnk52HZXrQbBTMGAwvvM0zhYUg 1MDA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1763343651; x=1763948451; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=34ktumR/fmkok2iT5/89XdGNb+d+wyQTRwC+kBFtXAA=; b=Gzs+oM/INayglLbVYpjWaZ6ex/aJMqbnouFpV0yK9yALbbTn+nFA7dRV7rRcpyAE30 CykRNFCpxjAcz6HbFLW9j47bGUAK2Gx8aQeNwBCyv+s9mQ0oWSZlzRlZqB0HenqWRfin FfiA/IQyHl9JVYtohH6x+HKv1MWgwnk0At/MgjhdVxVNOGXYsckv7U4tTGTp5wRUdlb9 Nmc1a7In0YTJ2Zbqh6dl7n7bdGAinRzfC7dCytVtLNecdpLIC2CUPq02Y16uMolrC1sl 6shH3tomBhyUEWEZf2J2zqU9FCygvVUl7BqiZd6Ui0kWXcn+Wa3bIMSH4GIh8KcK8pKx 8fXA== X-Gm-Message-State: AOJu0Yyk8KKQntqetP3cAdDkUqXJlH+8iadRHj5NE6vGI9eoa47u+grb 5ASlsZ0e2dyd5DMljFwkZBNg0aEP/A1fMCSE4idE0eVm95FSkAjlysGG X-Gm-Gg: ASbGncv0dHkb7iCAsja+kAp1RYyHq3vrdumgebrccBrGfb3kulRMUyeuIXxwEkYeFdM 80dfWDP2vyAchFCdXf5DGDJnY/dmKk9OY+8FCmCnoyvPkzcO8XxOH68fsAtJ/0x9DhPspTYsGLn 9gEijVhl+E+JhIn4LOHQJtaaUlgmbTRPHww2z15iMOIwgc00ml2DE5eRsiXd63VEFupKeG9zcRk o4oIV9AT1Qq3F5nS2vcNsiRdfdNmVCv+/2LZ/V8VksF7loA2ZgsOcZ5EWHUQHTEdWPruHtVzHJc WbJZ6a4SiZwHCgWs+ox0k7dmq2daal9XjOUtWfgiF3Mep5WhRIcJasZAJht1HGWWLp6hOO5T5hW 5TnTjo/lh/Qc1eIdLjrYbpo4QXkFzlAb2f39YUWzuySMcmZyvaNeCX29/uOt0rMyfjVCH7zlVtp sB/MOBEvBInxXQnPWgbJ6AbbB9cr3SSg== X-Google-Smtp-Source: AGHT+IF/jGsQ8lD+aMX20VfPJBdAWz6M0s5sUUTm4IbUGzRgpJaLI9ugiTvvxlxAdZNDRL7eRCo7Sw== X-Received: by 2002:ac8:5746:0:b0:4ee:13d0:d02b with SMTP id d75a77b69052e-4ee13d0d42cmr61896721cf.50.1763343651349; Sun, 16 Nov 2025 17:40:51 -0800 (PST) From: Gabriel Brookman Date: Sun, 16 Nov 2025 20:40:26 -0500 Subject: [PATCH RFC v2 09/10] tests/tcg: added test for MTE canonical and NAT MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20251116-feat-mte4-v2-9-9a7122b7fa76@gmail.com> References: <20251116-feat-mte4-v2-0-9a7122b7fa76@gmail.com> In-Reply-To: <20251116-feat-mte4-v2-0-9a7122b7fa76@gmail.com> To: qemu-devel@nongnu.org Cc: Peter Maydell , Gustavo Romero , qemu-arm@nongnu.org, Gabriel Brookman X-Mailer: b4 0.14.3 X-Developer-Signature: v=1; a=ed25519-sha256; t=1763343639; l=2238; i=brookmangabriel@gmail.com; s=20251009; h=from:subject:message-id; bh=omw1g4lZFe7vILkkcTfo81X8l2MlNL9SA0t8yBt/E6w=; b=hH/sdUEP5eyqUlp/HXSvoAyM5FaF5N1gbqxkZXHVssW5Mkjr3Vd2hdu3K6Ncmf7TglxTWE8ld oHvYadkFatPBLaUvpDFRiqnIOheVN4agTw3775LETO/OniJHNtt6qcA X-Developer-Key: i=brookmangabriel@gmail.com; a=ed25519; pk=m9TtPDal6WzoHNnQiHHKf8dTrv3DUCPUUTujuo8vNrw= 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=2607:f8b0:4864:20::831; envelope-from=brookmangabriel@gmail.com; helo=mail-qt1-x831.google.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, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, 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 @gmail.com) X-ZM-MESSAGEID: 1763343766428153000 This test cannot run in user-mode because the control bit that enables this feature is only writable at EL1. Signed-off-by: Gabriel Brookman --- tests/tcg/aarch64/Makefile.target | 2 +- tests/tcg/aarch64/mte-11.c | 46 +++++++++++++++++++++++++++++++++++= ++++ 2 files changed, 47 insertions(+), 1 deletion(-) diff --git a/tests/tcg/aarch64/Makefile.target b/tests/tcg/aarch64/Makefile= .target index 6203ac9b51..141c9db9c4 100644 --- a/tests/tcg/aarch64/Makefile.target +++ b/tests/tcg/aarch64/Makefile.target @@ -64,7 +64,7 @@ AARCH64_TESTS +=3D bti-2 =20 # MTE Tests ifneq ($(CROSS_CC_HAS_ARMV8_MTE),) -AARCH64_TESTS +=3D mte-1 mte-2 mte-3 mte-4 mte-5 mte-6 mte-7 mte-8 mte-9 m= te-10 +AARCH64_TESTS +=3D mte-1 mte-2 mte-3 mte-4 mte-5 mte-6 mte-7 mte-8 mte-9 m= te-10 mte-11 mte-%: CFLAGS +=3D $(CROSS_CC_HAS_ARMV8_MTE) endif =20 diff --git a/tests/tcg/aarch64/mte-11.c b/tests/tcg/aarch64/mte-11.c new file mode 100644 index 0000000000..86f2206e41 --- /dev/null +++ b/tests/tcg/aarch64/mte-11.c @@ -0,0 +1,46 @@ +/* + * Memory tagging, canonical tag checking + * + * Copyright (c) 2021 Linaro Ltd + * SPDX-License-Identifier: GPL-2.0-or-later + */ + +#include "mte.h" + +void pass(int sig, siginfo_t *info, void *uc) +{ + assert(info->si_code =3D=3D SEGV_MTESERR); + exit(0); +} + +int main(int ac, char **av) +{ + struct sigaction sa; + int *p0, *p1, *p2; + long excl =3D 1; + + /* + * NOTE FOR REVIEWERS: to run this test locally, I modified + * enable_mte to also activate canonical tagging checking by writing + * to the appropriate MTX control bits. I am not sure how to modify + * the test so that it works without that modification. Input apprecia= ted. + */ + enable_mte(PR_MTE_TCF_SYNC); + p0 =3D alloc_mte_mem(sizeof(*p0)); + + /* shouldn't fault on a canonical ptr */ + *p0 =3D 32; + + /* decanonicalize ptr */ + p0 =3D (int *) (((long) p0) | (1ll << 56)); + + memset(&sa, 0, sizeof(sa)); + sa.sa_sigaction =3D pass; + sa.sa_flags =3D SA_SIGINFO; + sigaction(SIGSEGV, &sa, NULL); + + /* should fault on our modified ptr */ + *p0 =3D 64; + + abort(); +} --=20 2.51.2 From nobody Sun Feb 8 19:01:23 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1763343745; cv=none; d=zohomail.com; s=zohoarc; b=LJ+4Nouj08UH70IEK0D9RbygqB5PjdPkG73k+tdIe4iBrvSOmi7OwxCjxgKzAoKr/Ty7J0HtxCKQhBPNkyIKYc23YXyBpAd9xPDJKdotaFNBIeCYAy0jpMXcBe9Q9qYUNv5vnD8uMb5zN+fYIK3ZlxZhWtK0sSYgWu7Nl1rvue8= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1763343745; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=4G0LUaHVjRLipt18uVGmD/7yEmHNUriC3cGKHgX8iT0=; b=UhqLep4ITP91mXTba2EaL455hIeie9FzlRB/qlE439Vw/OcFKdd2lV4vMEylFo8wvUsGLoX6S3tqhKUNIuMMlmHCIGnZm1G+fkGTMBkd17pn+u3uqC7juPJBRi1znyTzPJO25aXUoUwtSA5jQqgX71zWnF8CZtaS149OanDaavs= ARC-Authentication-Results: i=1; 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; 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 1763343745603696.21869375764; Sun, 16 Nov 2025 17:42:25 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vKoF4-0002ui-G7; Sun, 16 Nov 2025 20:41:18 -0500 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 1vKoEh-0002Zm-Hu for qemu-devel@nongnu.org; Sun, 16 Nov 2025 20:40:56 -0500 Received: from mail-qt1-x82c.google.com ([2607:f8b0:4864:20::82c]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1vKoEf-0005zQ-Ko for qemu-devel@nongnu.org; Sun, 16 Nov 2025 20:40:55 -0500 Received: by mail-qt1-x82c.google.com with SMTP id d75a77b69052e-4eda6a8cc12so37262051cf.0 for ; Sun, 16 Nov 2025 17:40:53 -0800 (PST) Received: from [10.0.0.22] ([185.213.193.149]) by smtp.gmail.com with ESMTPSA id d75a77b69052e-4ee1c21ea34sm18246551cf.30.2025.11.16.17.40.51 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 16 Nov 2025 17:40:51 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1763343652; x=1763948452; darn=nongnu.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=4G0LUaHVjRLipt18uVGmD/7yEmHNUriC3cGKHgX8iT0=; b=jG4b8QkxVp4Gdc7uitjraMTFwmxujOL0JVchxwMCwXgnSfi7DZ+ZxnE1fqg3uAzklu gg2GBErxcXoxT5PcQKrfYdaYz9dviVEOi23ynxMXLRJv5AaVuIOLEcHvmnmcACBIVd+i l6ZZa8ui9FMojKtTnC48dMlT4atbN5g/3PyRzEbG/3AX0J/PH5e6aK0djkfLB1LELxUP 2yyBk26gqmsqz/9aR/JXqwgsntTDNPjsbs7hCe4+bgkOiNt8wevcau1Z8wJ6Bn/pmUjV RFOF7/EqRo3L10MXd/PduY3syJVVjuvKoF6koWiatuIbRaTIpfF6V8y5aT8OtQEwY41j ngIA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1763343652; x=1763948452; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=4G0LUaHVjRLipt18uVGmD/7yEmHNUriC3cGKHgX8iT0=; b=Cga0GHsUPhUsscPq7I+dcp97aHL4iWjcKnY1s8KQbdNR+NFA+elYk+5W/ghw7h/7Vg dvbUxgZM3sxMwV5g3MfMTFw+ilrdJ6+F/RNTP3j4yYTO//ug/ZFD5rogz/SAW1aoW+Ia 2V4ESPDv4hATs2IXfcyBPCOBrOMTyUgJMhQXbD+z/nd853JE86DoPtRWnBhkIOGkE/Sp M/w64yGY2WtXi2hLoFJKMy7C7jdxohQx024Vdcnyt+OwtFRkvYv6F2tMpluRgQ0vvmwf jlXZ3ZE+VCxFrwRdQrilnkmjbcJIDd+Zk0H/q70IHUmCAtK778q2J5C9jjFhEJSud4ox K3jw== X-Gm-Message-State: AOJu0YzRPHnejOQkxaexRtU+qEeSf09mHwD0CIFI7A42Zs0jnjJzkqRU 9bsqJsu7wjv4EOp1nx0B8HiumP0/B7fmnYU8lBA+Zx55xkS1HQ9xh0ls X-Gm-Gg: ASbGncvhdVnz8FCzLL3aTl0c72IJNGuVZS/MRbSHrPNvvIfI3OZTulZfV1+cz50TOjh kFOEUdzTOHanQeQ05Pzz0j0f2dOpNQKToS4jqW5gcDS49uUm4ns0vhmG0lea3JSxeqSLmo/zh5b tSg5tcaGRPNHrr4GaBsPnSXkWwaFsmwR5eCL/gbNLHaYhml5xEmhS1Aso3/B6T7sLeYZZVyoRJ5 GMz9ejgHxdEHGdhQMH3QZ5fEX1IPl8pVQjkJJFJNActEqxkQQDSygmx2NQZxDk9MTfJC/xWoo/5 Sxl+MtYdkBHSTqleNc43lOvj88+2WKYcLuiz+60TnQP7FGaQZ/LoxdcqakojkW9Tt8p3iWjWz4F u4ruj9JCf2moX3KSAdzx2ayOmlztlYMpePOquNvgAGf7X0ulcHX7ZnjoJbBz4r/hEqNepygGYF7 JyIFHAWFXn X-Google-Smtp-Source: AGHT+IEtVyCep6Mxs/pJAFeoEQW+By8B2+7r8wHWr4oThGjrQkNImUy7b2TTLk9kKCb2KMZuqJkogg== X-Received: by 2002:a05:622a:4ce:b0:4ed:b94c:774a with SMTP id d75a77b69052e-4edf2064a00mr136332161cf.5.1763343652290; Sun, 16 Nov 2025 17:40:52 -0800 (PST) From: Gabriel Brookman Date: Sun, 16 Nov 2025 20:40:27 -0500 Subject: [PATCH RFC v2 10/10] docs: added MTE4 features to docs MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20251116-feat-mte4-v2-10-9a7122b7fa76@gmail.com> References: <20251116-feat-mte4-v2-0-9a7122b7fa76@gmail.com> In-Reply-To: <20251116-feat-mte4-v2-0-9a7122b7fa76@gmail.com> To: qemu-devel@nongnu.org Cc: Peter Maydell , Gustavo Romero , qemu-arm@nongnu.org, Gabriel Brookman X-Mailer: b4 0.14.3 X-Developer-Signature: v=1; a=ed25519-sha256; t=1763343639; l=2269; i=brookmangabriel@gmail.com; s=20251009; h=from:subject:message-id; bh=X2CU2v1Bo36028vyprRyJIHd8Jk2/fTfa9Qlc4iG/4k=; b=2FWy2rFsTYqumUPYykh1h9GWoYoap1o72p+FA+3QduQl5XW0oJkBvGCG8A+hMHt6TQT56K15Z BS8OraP3z54DDziBzvbEBx64fOaup1nNomA5wSyhMNw67YB1KwNiu29 X-Developer-Key: i=brookmangabriel@gmail.com; a=ed25519; pk=m9TtPDal6WzoHNnQiHHKf8dTrv3DUCPUUTujuo8vNrw= 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=2607:f8b0:4864:20::82c; envelope-from=brookmangabriel@gmail.com; helo=mail-qt1-x82c.google.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, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, 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 @gmail.com) X-ZM-MESSAGEID: 1763343748343153000 The implemented MTE4 features are now present in docs/system/arm/emulation.rst Signed-off-by: Gabriel Brookman Reviewed-by: Richard Henderson --- docs/system/arm/emulation.rst | 4 ++++ target/arm/tcg/cpu64.c | 8 ++++---- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/docs/system/arm/emulation.rst b/docs/system/arm/emulation.rst index 31a5878a8f..62b66b2227 100644 --- a/docs/system/arm/emulation.rst +++ b/docs/system/arm/emulation.rst @@ -106,6 +106,10 @@ the following architecture extensions: - FEAT_MTE3 (MTE Asymmetric Fault Handling) - FEAT_MTE_ASYM_FAULT (Memory tagging asymmetric faults) - FEAT_MTE_ASYNC (Asynchronous reporting of Tag Check Fault) +- FEAT_MTE_TAGGED_FAR (Full address reporting of Tag Check Fault) +- FEAT_MTE_STORE_ONLY (Store-only tag checking) +- FEAT_MTE_CANONICAL_TAGS (Canonical tag checking) +- FEAT_MTE_NO_ADDRESS_TAGS (Address tagging disabled) - FEAT_NMI (Non-maskable Interrupt) - FEAT_NV (Nested Virtualization) - FEAT_NV2 (Enhanced nested virtualization support) diff --git a/target/arm/tcg/cpu64.c b/target/arm/tcg/cpu64.c index ca9557f4cf..7d003706a0 100644 --- a/target/arm/tcg/cpu64.c +++ b/target/arm/tcg/cpu64.c @@ -1282,13 +1282,13 @@ void aarch64_max_tcg_initfn(Object *obj) t =3D FIELD_DP64(t, ID_AA64PFR1, NMI, 1); /* FEAT_NMI */ t =3D FIELD_DP64(t, ID_AA64PFR1, GCS, 1); /* FEAT_GCS */ t =3D FIELD_DP64(t, ID_AA64PFR1, - MTEX, 0); /* FEAT_MTE_NO_ADDRESS_TAGS + FEAT_MTE_CANONICAL_T= AGS */ + MTEX, 1); /* FEAT_MTE_NO_ADDRESS_TAGS + FEAT_MTE_CANONICAL_T= AGS */ SET_IDREG(isar, ID_AA64PFR1, t); =20 t =3D GET_IDREG(isar, ID_AA64PFR2); - t =3D FIELD_DP64(t, ID_AA64PFR2, MTEFAR, 0); /* FEAT_MTE_TAGGED_FAR= */ - t =3D FIELD_DP64(t, ID_AA64PFR2, MTESTOREONLY, 0); /* FEAT_MTE_STORE= _ONLY */ - t =3D FIELD_DP64(t, ID_AA64PFR2, MTEPERM, 0); /* FEAT_MTE_PERM */ + t =3D FIELD_DP64(t, ID_AA64PFR2, MTEFAR, 1); /* FEAT_MTE_TAGGED_FAR= */ + t =3D FIELD_DP64(t, ID_AA64PFR2, MTESTOREONLY, 1); /* FEAT_MTE_STORE= _ONLY */ + t =3D FIELD_DP64(t, ID_AA64PFR2, MTEPERM, 1); /* FEAT_MTE_PERM */ SET_IDREG(isar, ID_AA64PFR2, t); =20 t =3D GET_IDREG(isar, ID_AA64MMFR0); --=20 2.51.2