From nobody Mon Apr 29 09:29:02 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; arc=pass (i=1 dmarc=pass fromdomain=hotmail.com); dmarc=pass(p=none dis=none) header.from=hotmail.com ARC-Seal: i=2; a=rsa-sha256; t=1685658592; cv=pass; d=zohomail.com; s=zohoarc; b=jKurrn27DB9/1tPPe3/NQtlYoqxGHYTkBgSrY6Ir1i2WSKkY5SEZKLXFxeukTm2j9WpQwXaWNzdbQhqWVVbSeJDEakS9S63YVFg/bqKCwVS2MQPFoppbGxwxp8t6rabg8Oz7ae9jorBWeleDcLiMvK0sSyL7CpW9ElvamwIZe6w= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1685658592; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=Ofzy86fv1JAB4tbaMqMQuizFKU69szd2GZ6Egdq+UYQ=; b=oHJQ8Tb4mmqF6f3hCfZE9hvPMxMuwglLDwMA0lKJ/I4dpa4LgUqtFpol/6/J1Do9mfT9r+Kwj8NhS1fH7QWSvHa20X+sOjeY6DE8EJK+Iq6EejjfZrbxM9KgpHLVZfrU5zQW7jmvaMyt8WfRmr4yPaV63ApbplsQQPPLj99gyv4= ARC-Authentication-Results: i=2; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; arc=pass (i=1 dmarc=pass fromdomain=hotmail.com); dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1685658592118793.994875470109; Thu, 1 Jun 2023 15:29:52 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1q4qnF-0002el-5t; Thu, 01 Jun 2023 18:29:17 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1q4qnC-0002dU-L8; Thu, 01 Jun 2023 18:29:14 -0400 Received: from mail-bn8nam11olkn20800.outbound.protection.outlook.com ([2a01:111:f400:7eae::800] helo=NAM11-BN8-obe.outbound.protection.outlook.com) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1q4qnA-0004sJ-71; Thu, 01 Jun 2023 18:29:14 -0400 Received: from DS7PR12MB6309.namprd12.prod.outlook.com (2603:10b6:8:96::19) by DS0PR12MB7748.namprd12.prod.outlook.com (2603:10b6:8:130::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6455.24; Thu, 1 Jun 2023 22:29:08 +0000 Received: from DS7PR12MB6309.namprd12.prod.outlook.com ([fe80::20b8:bc4d:e007:4fbf]) by DS7PR12MB6309.namprd12.prod.outlook.com ([fe80::20b8:bc4d:e007:4fbf%2]) with mapi id 15.20.6455.020; Thu, 1 Jun 2023 22:29:08 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=VT0Hy5rl1KkzhmUM9RcPuSrLPaTHGs1JJFwX84bBk58Yj2+OP8Xb6ugW77+whPeXwrMpq/RR8aHJ78K0EB23wKsf3j2x6q/anOUivvd8+strf+eTB2SpwYT15zVfNq2IUqG0YtiwMjskDlUfifLY7MpFM/trxyp6P2GSoqngqcwjml2MVapY+munBnldymBKzTJB5jL9lYoI73p0XEw7AYUC+zCnVgzapMJqDbTeGsZJ5ts5Ew0paf0vDFfCfo5EmYPhc/950gIhdijWZn4VG9dN0WWI5Wl7/U9BRBGDxolITuBRgooh+TrrwMV4uUCyz8YdsSCk8huoK+BHzhE/fA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=Ofzy86fv1JAB4tbaMqMQuizFKU69szd2GZ6Egdq+UYQ=; b=TOwnncLcj5Z1MlaRFSgL76g98TrOPTtsttevbt0tGV9A4cDlSLVKwVwO85K9Ie5ogxlYoAX8Fs0hhP8hGTcv/S9XgDzPE08l77Zq2qpiOAptFh2FtAaBfqIU/czNfZjq+HE+Gq8JYb/mofXxVCOEdww6EXtE/KXcm09EoBoNKriGlrcdMDdj64qOZyJZ58JrfVEQSTTiIUqU+cxklfsqhJUlt7lEXJCe28ZFGgheCnanOAYb743d3eMgS6WBwnBb1v/qYUKO+uHqiVuUKl6AEHK5rWg3yzD6yP4DG1bw7r6D+g35E3K4+R1qlvwIZEYX69ReE7Vdz4QB3po5qNJSWw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=none; dmarc=none; dkim=none; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=hotmail.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=Ofzy86fv1JAB4tbaMqMQuizFKU69szd2GZ6Egdq+UYQ=; b=i3AZTKq85xxD7jMeaNyVqB8uzr98cJRdsqdg2XJeUISiS/CRBN1vBcbK7Obx9N5lWrj7Ez1s3Dpget5kN5bTwqFUD3KdWpH+0krikQcClAi0ICaceawyNhmlMK63nNsQ7agqlxphx1UxbyZ5yZs4eLNNsGnZ+tj3fO9MVMTnOjkQEeg4T+XkUU07Xx7IQwEl6M8/Wl135kpHuljQRIyOxCQED0yUKJ94rt3GUQdL9CAB3h5yhNhAPaLcgioQjSdFDM3K6f3PmymxPi9Pn88yGjesGKvMJFraII/h18GbvU7F507wN/kWgprVR8z69O+3hGcyfMoDSU7L0DeQErYHaw== From: Zhuojia Shen To: qemu-devel@nongnu.org Cc: Peter Maydell , Richard Henderson , qemu-arm@nongnu.org, Zhuojia Shen Subject: [PATCH v4 1/2] target/arm: allow DC CVA[D]P in user mode emulation Date: Thu, 1 Jun 2023 15:11:57 -0700 Message-ID: X-Mailer: git-send-email 2.40.1 In-Reply-To: References: Content-Transfer-Encoding: quoted-printable X-TMN: [s0UomxEUSJRSqg5WZuvgXBKEIGak6LOx] X-ClientProxiedBy: SJ0PR13CA0126.namprd13.prod.outlook.com (2603:10b6:a03:2c6::11) To DS7PR12MB6309.namprd12.prod.outlook.com (2603:10b6:8:96::19) X-Microsoft-Original-Message-ID: <20230601221158.48705-1-chaosdefinition@hotmail.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DS7PR12MB6309:EE_|DS0PR12MB7748:EE_ X-MS-Office365-Filtering-Correlation-Id: 539d1aa7-2992-4e3c-e876-08db62ef9d44 X-MS-Exchange-SLBlob-MailProps: AZnQBsB9Xmo7HDJh1DrTtBBfugGKTjxKNzyt/Mu7Cb6bY/Q35eL3yuNVZTvglCTg6jl0HUaJ1rgooJ/TT7cXWF2YrBujTC3GMSX3uiYu4fQk2wTKXCo4pDGXpQRn5a2R6KwKIc1yO8GlQC5MR5DpgF9fH4C2MCS05hYWndL+aeV3Co2KjSVMcWMw/JmNZ5dkTtos+uZvigKL75ol0LamaYCNbqOdv2I5yedwFOW7wHsdTrVDyjZbsb/bIFteBY68Vw0oliDZXXWr8oQx1lAJnVHoLzu8zsy8UubpFLUytPXz+QzG0jzFmE8XjXSdPt3tOvNUE4FmfCJ1ViNUWu+VO5KXUJrLwp4eqi1QvLC1ixVFLKByEN9y7wrbJcUppwvF5T5Tn2GIETNHarC5Nk9MULo1Fi1SMTA9vaFbp8EGvnSZ++PtbBQzpuNxIcYook4H8/ZwyoaetuChRcZM1mUrYeIcS0fAG5y0eF2wQ0cvgBJe3VuLPLyEBD/vy1/2VLil8ks70Eyvqsl70M+oveVulofiyLtbTYa1jyUIoqALLOAFmwKtLItM6+o4/IM4znSnsu8JgAjMPU5rN1rk+r/uSRb8J3v2xmu49SbLgs/mhAZJFNGa9yoLdW+Ds3pxQc/2pIkHhLUZtTYVJTTfszJq+dAAKO3nVkVnhSf0X6a3K567Kp12nDkMPBWewRPwbLb6PFReTtX7G9FQQWVIZBpZ6m4Hnk0JF9fCaSA0sbfiKfp3jQhoQeadrWQS7UQZNj6xlBDjn9DwfCU= X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: TWd1JxkGhv9e18CgRZBKABxmGy9NAkg3mEa5ksy8+2aVwV38dV3gvAOi3wi0bD/Y4MI5bzjQP+lFk/T06WCjbs4MKAJ4K/TU/GLivN9NG0hcT7husxauMz8QxkeSDYuUlLgSnuC1FBsS20M4yYW3kN60zUZrBwBBxmjSzj4ryiLEW0dMLBGo+KGSy29BHjrkMCrkiMGvpDdka653Mh4dAclhCqfvTT2FwmCB8muqt7d7xzTT5JIdMfolDfyUj8YbKyrigzeFL+RTjU/ycfIANaQr9w50PJI69pg2ncd1up907/vAiCS2tID1zQHXI+KthrUjzP4+OY5ZNeYCD98H49CIm90dmbx9u+wGdAp9Rg62GgQCcJ7ZXi9xl7plc57IhmhIqjujr/t72S/7bOOFrxMWBgHzF/qpGgW0f2rFhl5ham9IO4Ve5cqbK5dujgMurfeavKK8ikUb1tXVDfihqm0+WDadfzMWBJpDsyczun7kURREBJNrxVSOEwlFSSizRqCYhOGC8Gk/XZ4B7+aj7h06h95/9+Jk25sCkOT4Slz0MySXIAxaqltso3XHQuT1IsyG96qebsCUG4Ve97hEiCS6WSbFr3TwvkvlXHSbP6OnOpypcOhP4qQmHM+9Q9oL X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?v//h2MQedw36QhkdCIgc/ix9G3Qjr7ZaJQnJ+VJ4LAp3z/K8cRYrP0PR4U/E?= =?us-ascii?Q?rgkaNRFkMT0G0AD1jIcZmOZF25niEivM2olVypMoF5vZRh0SA43OEVVHCYmS?= =?us-ascii?Q?EsTGcLx8D8gIEdtiznasAwXivV2U7lFQBRGWWN6XF5SCA/TkntkLqu1o/kLJ?= =?us-ascii?Q?R/ugx+v3moac+Fz9bh+hcD0sXWtDBullkVbDAlrG7ejvYP4hvtd2lXTFtV5J?= =?us-ascii?Q?1AVhDeI3bB3OoE7lGdCXd5uNyu5czsSkwQlrL9duKzjC2Mn2qxVwHdojKhhr?= =?us-ascii?Q?1zOMe+OFXT7Jo0RK4hQ8ygYcxc12Nvr67X8O+F0lH476hDkx754Wzg+5X4Jq?= =?us-ascii?Q?VWys6z4TfCxRxVH7lfEGfNymKr2oJhPfK4rNBKv4g6bfVnwugtGXKhXN9c4n?= =?us-ascii?Q?8j2VPnKQESooFTPK/tqAF169zgL75Qk51EUrKoPbvbGc5d+xcuQMidu5VS7f?= =?us-ascii?Q?u5pWdGfR9GC2lKm2v6GuKqoM8T8MiblrP/7Zs5SlM5jp1jtcH4ZRdERlHnzS?= =?us-ascii?Q?f//LpooHCvCgWzxw3ZC+RXHUy5F2WXvRNMI2OZAwZiyUCjsAlv48vdvxd78s?= =?us-ascii?Q?t7Nqvia5vH5/Vl4JxIfNk7Kiu7x9YB/rfPlKyvfdV0b+rXU0Tg2fYduuwTq+?= =?us-ascii?Q?BMsj5XzxchYQxATQpgEb32BRgukQCHw44ukHVvcbD41JDA0gOmozgkp5BlEj?= =?us-ascii?Q?ZQ3VM5/b4pLGolk/sbGrnWPnu7W/i32rS6ekB+wUmfkDFMU+6bEk9r0FCzdm?= =?us-ascii?Q?73OlCSQ3cBPnLR+YgwCDw/EAILZUHzWFUJixRpbMe+fV8w5x6I7g+yXzA+TU?= =?us-ascii?Q?l2VmUXjYnaEbUJ3tI0giAsJHwc/Z3H1Ju8GiyHaOZGWFhFl+9J7M4AwPjc/o?= =?us-ascii?Q?YldoM5xK4ZXFjwxVblgTdH/zqTtcq7bMYZycyJ8t9Eqr9Ao1Cr8RLb9grXSa?= =?us-ascii?Q?h0yUh04DUlAFGe4CxlKq15NZqugjCeYgfw3DtgQ73h2MRqG74LfODccPZ1kf?= =?us-ascii?Q?QrTaiaqW3cO+TUsVT5zKs3faobzO+DsuO/e0ECFzCdI0pSnMuvaNuw8KtNwL?= =?us-ascii?Q?/SfHycH8qE3ka4K8ZClKmgLwPqyOZNBE9Xh3FlP3PEjqXcolEJHH/ZrG1wNP?= =?us-ascii?Q?yjFvLqd0zgCzT0nS8lsNnSn7VfWD30IlNvK3eh1Tovh5gTQZ1kvctLKxCQwS?= =?us-ascii?Q?ZBRuNdFIzuiBGlOQ71/hco8iP7GtgVTcfB/qBuR1QBg0z+Jhqjnb0bDnYXM?= =?us-ascii?Q?=3D?= X-OriginatorOrg: sct-15-20-4755-11-msonline-outlook-71ea3.templateTenant X-MS-Exchange-CrossTenant-Network-Message-Id: 539d1aa7-2992-4e3c-e876-08db62ef9d44 X-MS-Exchange-CrossTenant-AuthSource: DS7PR12MB6309.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 01 Jun 2023 22:29:08.3130 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 84df9e7f-e9f6-40af-b435-aaaaaaaaaaaa X-MS-Exchange-CrossTenant-RMS-PersistedConsumerOrg: 00000000-0000-0000-0000-000000000000 X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS0PR12MB7748 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=2a01:111:f400:7eae::800; envelope-from=chaosdefinition@hotmail.com; helo=NAM11-BN8-obe.outbound.protection.outlook.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, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @hotmail.com) X-ZM-MESSAGEID: 1685658593995100003 Content-Type: text/plain; charset="utf-8" DC CVAP and DC CVADP instructions can be executed in EL0 on Linux, either directly when SCTLR_EL1.UCI =3D=3D 1 or emulated by the kernel (see user_cache_maint_handler() in arch/arm64/kernel/traps.c). This patch enables execution of the two instructions in user mode emulation. Signed-off-by: Zhuojia Shen Reviewed-by: Peter Maydell Reviewed-by: Richard Henderson --- target/arm/helper.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/target/arm/helper.c b/target/arm/helper.c index 0b7fd2e7e6..d4bee43bd0 100644 --- a/target/arm/helper.c +++ b/target/arm/helper.c @@ -7405,7 +7405,6 @@ static const ARMCPRegInfo rndr_reginfo[] =3D { .access =3D PL0_R, .readfn =3D rndr_readfn }, }; =20 -#ifndef CONFIG_USER_ONLY static void dccvap_writefn(CPUARMState *env, const ARMCPRegInfo *opaque, uint64_t value) { @@ -7420,6 +7419,7 @@ static void dccvap_writefn(CPUARMState *env, const AR= MCPRegInfo *opaque, /* This won't be crossing page boundaries */ haddr =3D probe_read(env, vaddr, dline_size, mem_idx, GETPC()); if (haddr) { +#ifndef CONFIG_USER_ONLY =20 ram_addr_t offset; MemoryRegion *mr; @@ -7430,6 +7430,7 @@ static void dccvap_writefn(CPUARMState *env, const AR= MCPRegInfo *opaque, if (mr) { memory_region_writeback(mr, offset, dline_size); } +#endif /*CONFIG_USER_ONLY*/ } } =20 @@ -7448,7 +7449,6 @@ static const ARMCPRegInfo dcpodp_reg[] =3D { .fgt =3D FGT_DCCVADP, .accessfn =3D aa64_cacheop_poc_access, .writefn =3D dccvap_writefn }, }; -#endif /*CONFIG_USER_ONLY*/ =20 static CPAccessResult access_aa64_tid5(CPUARMState *env, const ARMCPRegInf= o *ri, bool isread) @@ -9092,7 +9092,6 @@ void register_cp_regs_for_features(ARMCPU *cpu) if (cpu_isar_feature(aa64_tlbios, cpu)) { define_arm_cp_regs(cpu, tlbios_reginfo); } -#ifndef CONFIG_USER_ONLY /* Data Cache clean instructions up to PoP */ if (cpu_isar_feature(aa64_dcpop, cpu)) { define_one_arm_cp_reg(cpu, dcpop_reg); @@ -9101,7 +9100,6 @@ void register_cp_regs_for_features(ARMCPU *cpu) define_one_arm_cp_reg(cpu, dcpodp_reg); } } -#endif /*CONFIG_USER_ONLY*/ =20 /* * If full MTE is enabled, add all of the system registers. --=20 2.40.1 From nobody Mon Apr 29 09:29:02 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; arc=pass (i=1 dmarc=pass fromdomain=hotmail.com); dmarc=pass(p=none dis=none) header.from=hotmail.com ARC-Seal: i=2; a=rsa-sha256; t=1685659907; cv=pass; d=zohomail.com; s=zohoarc; b=LksHiUOM3T3susGrT8Tfq/GEsHsg+m13NKFfW78Udan+/BBh1Z3j9Mf9m6oaugo8thZi8/Z1qyM0Q3BsDZrwESe9W+0gCACVWq8JIrgjRTCwIQ0rGXjqb0on5HqUDYrHRMIdFgZFpwtqTGBWlR6g/2EDdfVTzB9HYR8Q/axd7sY= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1685659907; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=3WpfqqcMe3SxZseMmTxrhV/8CImFyvjHKgsXN2o4rJ8=; b=kj3eQRIho24s9FB8nj++FTigC6fuFa6ZNixo4lkRUUmFkMGaf2YaJPVAGd7A/da3DsHlb03YWFEQ8ZtCf5vMFHBKAVIweQwRV2+XnWWKI5MUEd8AXlEyEtIO6f5NDj1zzYUvcVDE7V6MRbBm6L0jnvCdBpu+tOf2E/rOsU0tTQ4= ARC-Authentication-Results: i=2; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; arc=pass (i=1 dmarc=pass fromdomain=hotmail.com); dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1685659907801629.3398942807805; Thu, 1 Jun 2023 15:51:47 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1q4r8i-0006HN-FB; Thu, 01 Jun 2023 18:51:28 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1q4r8d-0006Gu-Tb; Thu, 01 Jun 2023 18:51:24 -0400 Received: from mail-mw2nam12olkn20817.outbound.protection.outlook.com ([2a01:111:f400:fe5a::817] helo=NAM12-MW2-obe.outbound.protection.outlook.com) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1q4r8b-000608-Ve; Thu, 01 Jun 2023 18:51:23 -0400 Received: from DS7PR12MB6309.namprd12.prod.outlook.com (2603:10b6:8:96::19) by CYYPR12MB8854.namprd12.prod.outlook.com (2603:10b6:930:b8::6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6455.23; Thu, 1 Jun 2023 22:51:19 +0000 Received: from DS7PR12MB6309.namprd12.prod.outlook.com ([fe80::20b8:bc4d:e007:4fbf]) by DS7PR12MB6309.namprd12.prod.outlook.com ([fe80::20b8:bc4d:e007:4fbf%2]) with mapi id 15.20.6455.020; Thu, 1 Jun 2023 22:51:19 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=GPmV5qmKwggbVH/qt6uMy0aLE8/ZO/kbZl9rPOYE7fo4UVHd9UrYD36xcnz7fiDRwZAyTvjNmjP+csIUuqOdmsIkEwcFmkvtzgjSb6FVO5tVWK3k8xG8JWr5IV06KrBHSeDbvYMwRvHI03UyA2emZuHIfB9Q9N37EdB8RobWeJSTNpW6JZoYnLKv60x+nRGVas7fa+WQM7kq24L78MsQou4PUg3okj1PlRZ+FOTYFCVxiBTCzFRST+Iuy0IdyFl+okdL1WIBhXJK84EK+5+Vh+VTucocDMsZMacFG7uo40cdWz7KFtH5JH+oQITNPhIpDN9FvzFz1ZHo//1hwmjf3w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=3WpfqqcMe3SxZseMmTxrhV/8CImFyvjHKgsXN2o4rJ8=; b=X0sdE1AgBv5R/6gFP3Fq6e2kj/h9MiRgAxUm3P3T1TFVlTF4C3DXDhmF/FYiK0HQ0v+yj/pGTH12wEycXE5lODBX1NY3XJHFsITlXPUcOLb2dgonoPvo887SI07pZy9RE4qGyajD+yE8tDPYR6Jsl0u/UtsUXLb7+TFlj22PrC0tT1jM1g2XeCGc7X0GAkvIdq5MVx2ejtHvRXtaTUUfm4CI+ZiYRDF5gO1v39N9vtCfQuvclC8LQmMkJi5nfrzpOG4Y2HheeqW0GHg19bzm06UvE2U1ART9Sf/cP3/6gI8fhV/VQ2qCTyxypjUnw/l9E7jjPBxFTtfPMp4gsFIunQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=none; dmarc=none; dkim=none; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=hotmail.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=3WpfqqcMe3SxZseMmTxrhV/8CImFyvjHKgsXN2o4rJ8=; b=Ycy/W/lZ8rWqs1vmuRyIRIkg/1FFGCX69uSTyUHQWiwZfXdWMt01HDYg1jAJ70pFZf/FVpo8eNmCD+ATGLzf98aNhZgj5R8wBhNEWa/AMZUf7AR0iUl5pU4G+PvKoBb7HJHB2Ni3dL95ms7/lS8iR2yIWj4xjvSoBS4/aEBK2tTqJwQ0ui2F9RGBpbu2TlmE7g0B7bBrUibMFEc2/I5hSCCVohk77GsY0Thi8ncIRHJrQizZDys3TQ+lwK9eA8JAE9EXbn6iGu5ljDFfP9/VRFql2OSQzAHSYpL1sTYzBnf0EwQTWZo2BImJjvj6+S1ZyKWv6G0H62SAU5ZAwiru4w== From: Zhuojia Shen To: qemu-devel@nongnu.org Cc: Peter Maydell , Richard Henderson , qemu-arm@nongnu.org, Zhuojia Shen Subject: [PATCH v4 2/2] tests/tcg/aarch64: add DC CVA[D]P tests Date: Thu, 1 Jun 2023 15:34:57 -0700 Message-ID: X-Mailer: git-send-email 2.40.1 In-Reply-To: References: Content-Transfer-Encoding: quoted-printable X-TMN: [zufKtw0P69aO5lv9GkHpYOZn1lhy39wo] X-ClientProxiedBy: SJ0PR03CA0156.namprd03.prod.outlook.com (2603:10b6:a03:338::11) To DS7PR12MB6309.namprd12.prod.outlook.com (2603:10b6:8:96::19) X-Microsoft-Original-Message-ID: <20230601223457.48835-1-chaosdefinition@hotmail.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DS7PR12MB6309:EE_|CYYPR12MB8854:EE_ X-MS-Office365-Filtering-Correlation-Id: 5b9ddb78-afdc-4dd7-536e-08db62f2b66e X-MS-Exchange-SLBlob-MailProps: AZnQBsB9Xmo7HDJh1DrTtBBfugGKTjxK494IF40v9ByDRUVnqemattQnessUPCQoxZOl06jkjQj6THGpwNIeoeU7yUBoxjNx63BwferS+MpiWCkr/XKBC9usV0zZetS6BhKM6DBjVzGGNbXx+l1z5g4WQsD3FaS/bgPu8TZGS0RuJ5/CGVAkY2GKYOWW2OnkBSvyg+B/ojQOmTNe25UOl7ahFhEdv8asJASNqxgA0MD8ea28ZANHhoEO+LUbVkQshSGBCad6jQU8oo75SxxDlhPkzSPs9KEfTKWTRRLICLjbQBruIaIxxItBD9nN/rpInHFcQVKxQ/C4OO/XQjK3vQ8Te3LUo/evgn3TG0TcFYl7rTjCEuWgkLPGqZED0T8DzkKxxJeoqN58oaeLE3zCVgAHLQypcRdcvyeKmKmdXxKDEn/1fI55bpKkLe//YUh5QDMXIe9cbXq/SV67CNJ4d0cxNKcEuBiiX09TVckcvwUzQIhkzadA3Vhb2YhpKut15M61BFdEtOTeZGWokdXIhvJ7KQZjaGsjOArrYPk13DTPcsj0tiqbccnwlsk2r1h8KPm+AiQ3/j2g1fAeM/OSqXJ4nQ6yT1n1xgy5j1HdtYxxKkyH9ejZ7i9n8gwW4vri93uIucJPoIbKRSpM4pNmmx0nQ9RIgt2qb3b64L1iYOtzoKtGqjbJnyAGE7SgZWxS+UpmEB1CN/Q1DLQEvgt/YEm88n0ZXBP6EC0eQK/hx276mudikISIzTCqKAjsRWXmoW+0KMEBbEc= X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: hfFgEtQbIWTwES8adyB9S7i50fTYBzlIzAQmtjb+9AdrzTPi0Hk01PDY0xpJ2ReWOtcP/pI/gVv2nQVMJGb6x4V0BWpJ7PUXcgXGYagklPNGZTWzFSjNyji4XiE7+qmNpPP6I3dNH7gQZnloZDLe1bxLXrZxSR6MfukixAZaLLYtlqI0pp/DMVT3ukAV28YsxYTSNEXL1jU0gQ4QZn30RpuezyHKW0wu5tfCEIBlXb0W/bAYh9/Cc//SF6uJ4sKDppWKZVFcBy+D3BzP53DkVpO+UNXcyTEi6wjDLyH2FTHW1cuILSCa6YrFU87/sW+TvcCcLNe/Xy1FsEELZA/bGWNvxFy5qiULAXEk4pZgXh5XM8dci9oKAGjanVZqS/Ja55CbxTphCd2MMbSknOWtU7jx5KS2jetWivf7E0D2hE3Hx7IgBodxmkuNG5H19tyj3Y4Fx2UWAb+xCXQx9sLlMKyEULjSXjxTNb3LK1oeY8xIY9DJcL/BqlXfOrBmgR97y2DbmQ6jLXwss4iZjSVLZNSpWn4YPTnGw4gNntmI8Znb0SBjTNXtIXOSe5U9yZdQP/gWBdj/1Rw93bjlqGOx+L5sVAK6z39U2GbR9KTt434s9QQj/we7Lk93lwZNpTcs X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?FMujk0CJeMGXnJ9BeIQugx1bDXUcPtGuuzgPiz/jiBpLC6/jacr5EYYdMQuc?= =?us-ascii?Q?0qrY1HkqWdVvQJbQRsSFK8WO0VO18QAft+5JRNWDSdmnjhddq7s0wsI7yA0o?= =?us-ascii?Q?EfDAGHXPfzmHpHsG5eA45WAP5kykdP87hzHN7JLFQao2voZx04tnPR0qXOnQ?= =?us-ascii?Q?1/9usRQQg2yRdtO/Y3dD4vdpDsTvFfu11db7oniHcRHOdWA7Tvc39oC/nUDQ?= =?us-ascii?Q?f6gMD0ZzPq0blE3JJtmoTATYZyz2A6FfiH346RQN+CK4nP4wK7D8+g+pEcAx?= =?us-ascii?Q?lTkIiXc6kQELokYu5o4AXQ1vtfL1pdkK5PE5gIeXFLenElPj1qdbHxhR9jN8?= =?us-ascii?Q?GALnMW2MprpflGlO/B3fzCKDtaAAiZSMS+zjsUURBjdz6FHf1zM4JiGYcBPc?= =?us-ascii?Q?sj7oDPrVmCKUlub8JkI/6AC6QHnwrvlULGFipuOntwgqMQyXjSKRoB/Eki2Q?= =?us-ascii?Q?F6liS3vWgHpFeaLo26iRi3Q8c/fegcNLkQVo94hbgheFJuinjp41E9QBWkSs?= =?us-ascii?Q?AWwzQco2D+vlnWMVceu0sJTvtb7uS2i8lP6+LJxowtgcP8Lbis3FE37qt/gs?= =?us-ascii?Q?ofpOQ8mMOTcYtWjw+ouukbOYw0o1+qvp4UZCZ1JAqLofXJYBoHT/WGu264qI?= =?us-ascii?Q?lbgqSgdd/0hHcE4VpQ3jq7rEMu417PipZgduehEh11/2pwKch4+LU6wHEwcn?= =?us-ascii?Q?zToNHv0qnEVFiveDWE4wZIjPCC+5SxtQxbfSt7JP7Ljf664cSD3GW3M5SHpr?= =?us-ascii?Q?9GoE0c6joXod3zeD8H4bVgGiFu5hRxDbZRaDyiglgKZGG7DCJ9B2nHtGneLc?= =?us-ascii?Q?3vzTXOYc2IgXzal1NIU3Ln0Bfhu1APidFBGPWBrrD02P4fww6xS3N6IGcDau?= =?us-ascii?Q?1FylL6IqremXjotvqneSifQif9vjABaELTxtLk+LqYVRAozB7uuRhryaGNwp?= =?us-ascii?Q?f0ESoGzFziI1QqINch9Ss9Qy3DVS7KmmfTPoQCTX7Y3qKk1OBySahRtqeH+o?= =?us-ascii?Q?u3owxH0g6QxkukaKAi9hCR+N06PwYHQU+LSDyVjQrXOBgF4nZYAW3UF5t9ad?= =?us-ascii?Q?BTxz66a8Bvy6YxyLOo6UXuh1CWhqTQrEzuMPeQbChdZh5GHOzm+CbKtNkS7S?= =?us-ascii?Q?5cbYtf2v7beYcj7fW63DCvkWLkFnNteN7t0lQcaMa9b+m1xwDnQ5uM+gGjAe?= =?us-ascii?Q?yEXEvMPbp5zoPf/bh8zbkCMm+iRVCktL5aYEPDjK74kiIaE/jBU5X4wvMew?= =?us-ascii?Q?=3D?= X-OriginatorOrg: sct-15-20-4755-11-msonline-outlook-71ea3.templateTenant X-MS-Exchange-CrossTenant-Network-Message-Id: 5b9ddb78-afdc-4dd7-536e-08db62f2b66e X-MS-Exchange-CrossTenant-AuthSource: DS7PR12MB6309.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 01 Jun 2023 22:51:19.0851 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 84df9e7f-e9f6-40af-b435-aaaaaaaaaaaa X-MS-Exchange-CrossTenant-RMS-PersistedConsumerOrg: 00000000-0000-0000-0000-000000000000 X-MS-Exchange-Transport-CrossTenantHeadersStamped: CYYPR12MB8854 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=2a01:111:f400:fe5a::817; envelope-from=chaosdefinition@hotmail.com; helo=NAM12-MW2-obe.outbound.protection.outlook.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, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @hotmail.com) X-ZM-MESSAGEID: 1685659909234100003 Content-Type: text/plain; charset="utf-8" Test execution of DC CVAP and DC CVADP instructions under user mode emulation. Signed-off-by: Zhuojia Shen Reviewed-by: Peter Maydell Reviewed-by: Richard Henderson --- tests/tcg/aarch64/Makefile.target | 11 ++++++ tests/tcg/aarch64/dcpodp.c | 63 +++++++++++++++++++++++++++++++ tests/tcg/aarch64/dcpop.c | 63 +++++++++++++++++++++++++++++++ 3 files changed, 137 insertions(+) create mode 100644 tests/tcg/aarch64/dcpodp.c create mode 100644 tests/tcg/aarch64/dcpop.c diff --git a/tests/tcg/aarch64/Makefile.target b/tests/tcg/aarch64/Makefile= .target index 0315795487..3430fd3cd8 100644 --- a/tests/tcg/aarch64/Makefile.target +++ b/tests/tcg/aarch64/Makefile.target @@ -21,12 +21,23 @@ config-cc.mak: Makefile $(quiet-@)( \ $(call cc-option,-march=3Darmv8.1-a+sve, CROSS_CC_HAS_SVE); \ $(call cc-option,-march=3Darmv8.1-a+sve2, CROSS_CC_HAS_SVE2);= \ + $(call cc-option,-march=3Darmv8.2-a, CROSS_CC_HAS_ARMV8_= 2); \ $(call cc-option,-march=3Darmv8.3-a, CROSS_CC_HAS_ARMV8_= 3); \ + $(call cc-option,-march=3Darmv8.5-a, CROSS_CC_HAS_ARMV8_= 5); \ $(call cc-option,-mbranch-protection=3Dstandard, CROSS_CC_HAS_ARMV8_= BTI); \ $(call cc-option,-march=3Darmv8.5-a+memtag, CROSS_CC_HAS_ARMV8_= MTE); \ $(call cc-option,-march=3Darmv9-a+sme, CROSS_CC_HAS_ARMV9_= SME)) 3> config-cc.mak -include config-cc.mak =20 +ifneq ($(CROSS_CC_HAS_ARMV8_2),) +AARCH64_TESTS +=3D dcpop +dcpop: CFLAGS +=3D -march=3Darmv8.2-a +endif +ifneq ($(CROSS_CC_HAS_ARMV8_5),) +AARCH64_TESTS +=3D dcpodp +dcpodp: CFLAGS +=3D -march=3Darmv8.5-a +endif + # Pauth Tests ifneq ($(CROSS_CC_HAS_ARMV8_3),) AARCH64_TESTS +=3D pauth-1 pauth-2 pauth-4 pauth-5 diff --git a/tests/tcg/aarch64/dcpodp.c b/tests/tcg/aarch64/dcpodp.c new file mode 100644 index 0000000000..2cf7df2e07 --- /dev/null +++ b/tests/tcg/aarch64/dcpodp.c @@ -0,0 +1,63 @@ +/* + * Test execution of DC CVADP instruction. + * + * Copyright (c) 2023 Zhuojia Shen + * SPDX-License-Identifier: GPL-2.0-or-later + */ + +#include +#include + +#include +#include +#include +#include + +#ifndef HWCAP2_DCPODP +#define HWCAP2_DCPODP (1 << 0) +#endif + +bool should_fail =3D false; + +static void signal_handler(int sig, siginfo_t *si, void *data) +{ + ucontext_t *uc =3D (ucontext_t *)data; + + if (should_fail) { + uc->uc_mcontext.pc +=3D 4; + } else { + exit(EXIT_FAILURE); + } +} + +static int do_dc_cvadp(void) +{ + struct sigaction sa =3D { + .sa_flags =3D SA_SIGINFO, + .sa_sigaction =3D signal_handler, + }; + + sigemptyset(&sa.sa_mask); + if (sigaction(SIGSEGV, &sa, NULL) < 0) { + perror("sigaction"); + return EXIT_FAILURE; + } + + asm volatile("dc cvadp, %0\n\t" :: "r"(&sa)); + + should_fail =3D true; + asm volatile("dc cvadp, %0\n\t" :: "r"(NULL)); + should_fail =3D false; + + return EXIT_SUCCESS; +} + +int main(void) +{ + if (getauxval(AT_HWCAP2) & HWCAP2_DCPODP) { + return do_dc_cvadp(); + } else { + printf("SKIP: no HWCAP2_DCPODP on this system\n"); + return EXIT_SUCCESS; + } +} diff --git a/tests/tcg/aarch64/dcpop.c b/tests/tcg/aarch64/dcpop.c new file mode 100644 index 0000000000..a332a804a4 --- /dev/null +++ b/tests/tcg/aarch64/dcpop.c @@ -0,0 +1,63 @@ +/* + * Test execution of DC CVAP instruction. + * + * Copyright (c) 2023 Zhuojia Shen + * SPDX-License-Identifier: GPL-2.0-or-later + */ + +#include +#include + +#include +#include +#include +#include + +#ifndef HWCAP_DCPOP +#define HWCAP_DCPOP (1 << 16) +#endif + +bool should_fail =3D false; + +static void signal_handler(int sig, siginfo_t *si, void *data) +{ + ucontext_t *uc =3D (ucontext_t *)data; + + if (should_fail) { + uc->uc_mcontext.pc +=3D 4; + } else { + exit(EXIT_FAILURE); + } +} + +static int do_dc_cvap(void) +{ + struct sigaction sa =3D { + .sa_flags =3D SA_SIGINFO, + .sa_sigaction =3D signal_handler, + }; + + sigemptyset(&sa.sa_mask); + if (sigaction(SIGSEGV, &sa, NULL) < 0) { + perror("sigaction"); + return EXIT_FAILURE; + } + + asm volatile("dc cvap, %0\n\t" :: "r"(&sa)); + + should_fail =3D true; + asm volatile("dc cvap, %0\n\t" :: "r"(NULL)); + should_fail =3D false; + + return EXIT_SUCCESS; +} + +int main(void) +{ + if (getauxval(AT_HWCAP) & HWCAP_DCPOP) { + return do_dc_cvap(); + } else { + printf("SKIP: no HWCAP_DCPOP on this system\n"); + return EXIT_SUCCESS; + } +} --=20 2.40.1