From nobody Tue Nov 18 21:13:46 2025 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of _spf.google.com designates 209.85.128.51 as permitted sender) client-ip=209.85.128.51; envelope-from=philippe.mathieu.daude@gmail.com; helo=mail-wm1-f51.google.com; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of _spf.google.com designates 209.85.128.51 as permitted sender) smtp.mailfrom=philippe.mathieu.daude@gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1612740221; cv=none; d=zohomail.com; s=zohoarc; b=JmbdnKZc/+RQ7E1qQCJW6oN/Cf6cgtehgtintBUTSUpLJDLdoM4paXMtxX5/90JaC72dmP4wofC/akmh7tJmxw5jWwndCUswCJShSqYDdWVcZdgcjVWMAFXuWJv6OSmmfiUitmACiJIEx0e8CqyfYI4HMTyrVqfNOI1N9JARQTI= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1612740221; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:MIME-Version:Message-ID:References:Sender:Subject:To; bh=imFQGKJBgIE298lnVAuxYDCszjx31PWDfQloLbhmsMQ=; b=lvRmQ5mvOxfTwY8bPGvM6NyoEB63CsVw9pSqQZN/F7MW/D0AfMpkmqrMUTwIH18ryF8Ke2+pvSJ8fq+tkFsC11CUOgl7kOUdXdjrOcmaP4I5y4sxYgebhLZ9/rOobBRkoyZZo2vFiI5+A60gopIXFX2y6zzjV437Nvu4E3s/N5k= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of _spf.google.com designates 209.85.128.51 as permitted sender) smtp.mailfrom=philippe.mathieu.daude@gmail.com Received: from mail-wm1-f51.google.com (mail-wm1-f51.google.com [209.85.128.51]) by mx.zohomail.com with SMTPS id 1612740221798295.5209381364092; Sun, 7 Feb 2021 15:23:41 -0800 (PST) Received: by mail-wm1-f51.google.com with SMTP id 190so11169375wmz.0 for ; Sun, 07 Feb 2021 15:23:41 -0800 (PST) Return-Path: Return-Path: Received: from localhost.localdomain (68.red-83-57-175.dynamicip.rima-tde.net. [83.57.175.68]) by smtp.gmail.com with ESMTPSA id o9sm26708567wrw.81.2021.02.07.15.23.38 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 07 Feb 2021 15:23:39 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=imFQGKJBgIE298lnVAuxYDCszjx31PWDfQloLbhmsMQ=; b=jRfVShxCvoHj4VIdXI31W8+mms47QKtM/dYAbewXt33U3qwjP+25jHorFrShriMLfR 6yrVo/Ew3pAD+/Z3diDybMuIj5u6epsQxB7C241FvlXXZeV0g0a6Hj04uj01Cj6sLOLp pEzCGhE3HMKQ7FOCHIw8EeVJMcwntoFal6fon3OayqoB3OhNVaTkK/hF3QzvrybV8Zt9 5h/4+2Z/AxVFHi4ewFBBtIKamyNOW2BL1dhamqZslKsBo9R/Xhzlxz4kHNUpNN0PjY9B glbOr1ZSs81mLNFLi89Ky1tPf1r6X6xqQveTQmGHf/+s5jBLSRpC9aaIXVp2Y55dr5qD /LPA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references:mime-version:content-transfer-encoding; bh=imFQGKJBgIE298lnVAuxYDCszjx31PWDfQloLbhmsMQ=; b=Y+2cQ6/f4SJhxgz1JOTU3vXqjho2XPy2IlxSIToCg0MuPFAyFUQd8yi+OIMHU3pEQN WHt4DpYOZzW44SQ3ETuUC8SlSOYMXl0CGtHA7CEGQV7P2VVnaH/odKtM5C62G4lXnQbb 85EAlBTx0TVGS0m4NRCRV/9Zftdzybbh4Mit4rdBcV8qy5qDlD8SZiEiektX7U5190QF U73TksboS5+d3vX5PqzKd619e4diCDlqe9r7OFkYJtWbEO7+ShZwf1t62njudWkOfIdC 37bg+U+uENXQPaQUWGqjwwDcxXyE27Ur/pbrsNl7zr791XdZo7vDtoO7ZfZ3YglBDvWx YeQg== X-Gm-Message-State: AOAM531bUJNztPTFrg7W3q0oJS0c3hDFvr+ZvLHR+xDbL/Mk4U7SYzXA CZ01LC17VHchkeUpIpBRTYY= X-Google-Smtp-Source: ABdhPJwDN8+BIrRLVWqNQox4XrA+rwoqz+xuYjuBQqhBTRYwtR5A+IjXfxnAZnvhz091w3y2sDUcvg== X-Received: by 2002:a05:600c:4105:: with SMTP id j5mr12536306wmi.0.1612740220035; Sun, 07 Feb 2021 15:23:40 -0800 (PST) Sender: =?UTF-8?Q?Philippe_Mathieu=2DDaud=C3=A9?= From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Cc: Bastian Koppelmann , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , Yoshinori Sato , Paolo Bonzini , Aurelien Jarno , Sagar Karandikar , Palmer Dabbelt , Laurent Vivier , qemu-arm@nongnu.org, Claudio Fontana , Peter Maydell , Richard Henderson , Alistair Francis , Jiaxun Yang , Aleksandar Rikalo , qemu-riscv@nongnu.org Subject: [RFC PATCH v2 5/6] accel/tcg: Refactor debugging tlb_assert_iotlb_entry_for_ptr_present() Date: Mon, 8 Feb 2021 00:23:09 +0100 Message-Id: <20210207232310.2505283-6-f4bug@amsat.org> X-Mailer: git-send-email 2.26.2 In-Reply-To: <20210207232310.2505283-1-f4bug@amsat.org> References: <20210207232310.2505283-1-f4bug@amsat.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-ZohoMail-DKIM: pass (identity @gmail.com) Refactor debug code as tlb_assert_iotlb_entry_for_ptr_present() helper. Signed-off-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: Alex Benn=C3=A9e --- What this code does is out of my league, but refactoring it allow keeping tlb_addr_write() local to accel/tcg/cputlb.c in the next patch. --- include/exec/exec-all.h | 9 +++++++++ accel/tcg/cputlb.c | 14 ++++++++++++++ target/arm/mte_helper.c | 11 ++--------- target/arm/sve_helper.c | 10 ++-------- 4 files changed, 27 insertions(+), 17 deletions(-) diff --git a/include/exec/exec-all.h b/include/exec/exec-all.h index f933c74c446..c5e8e355b7f 100644 --- a/include/exec/exec-all.h +++ b/include/exec/exec-all.h @@ -296,6 +296,15 @@ void tlb_set_page_with_attrs(CPUState *cpu, target_ulo= ng vaddr, void tlb_set_page(CPUState *cpu, target_ulong vaddr, hwaddr paddr, int prot, int mmu_idx, target_ulong size); + +/* + * Find the iotlbentry for ptr. This *must* be present in the TLB + * because we just found the mapping. + */ +void tlb_assert_iotlb_entry_for_ptr_present(CPUArchState *env, int ptr_mmu= _idx, + uint64_t ptr, + MMUAccessType ptr_access, + uintptr_t index); #else static inline void tlb_init(CPUState *cpu) { diff --git a/accel/tcg/cputlb.c b/accel/tcg/cputlb.c index 8a7b779270a..a6247da34a0 100644 --- a/accel/tcg/cputlb.c +++ b/accel/tcg/cputlb.c @@ -429,6 +429,20 @@ void tlb_flush_all_cpus_synced(CPUState *src_cpu) tlb_flush_by_mmuidx_all_cpus_synced(src_cpu, ALL_MMUIDX_BITS); } =20 +void tlb_assert_iotlb_entry_for_ptr_present(CPUArchState *env, int ptr_mmu= _idx, + uint64_t ptr, + MMUAccessType ptr_access, + uintptr_t index) +{ +#ifdef CONFIG_DEBUG_TCG + CPUTLBEntry *entry =3D tlb_entry(env, ptr_mmu_idx, ptr); + target_ulong comparator =3D (ptr_access =3D=3D MMU_DATA_LOAD + ? entry->addr_read + : tlb_addr_write(entry)); + g_assert(tlb_hit(comparator, ptr)); +#endif +} + static bool tlb_hit_page_mask_anyprot(CPUTLBEntry *tlb_entry, target_ulong page, target_ulong mask) { diff --git a/target/arm/mte_helper.c b/target/arm/mte_helper.c index 6cea9d1b506..f47d3b4570e 100644 --- a/target/arm/mte_helper.c +++ b/target/arm/mte_helper.c @@ -111,15 +111,8 @@ static uint8_t *allocation_tag_mem(CPUARMState *env, i= nt ptr_mmu_idx, * matching tlb entry + iotlb entry. */ index =3D tlb_index(env, ptr_mmu_idx, ptr); -# ifdef CONFIG_DEBUG_TCG - { - CPUTLBEntry *entry =3D tlb_entry(env, ptr_mmu_idx, ptr); - target_ulong comparator =3D (ptr_access =3D=3D MMU_DATA_LOAD - ? entry->addr_read - : tlb_addr_write(entry)); - g_assert(tlb_hit(comparator, ptr)); - } -# endif + tlb_assert_iotlb_entry_for_ptr_present(env, ptr_mmu_idx, ptr, + ptr_access, index); iotlbentry =3D &env_tlb(env)->d[ptr_mmu_idx].iotlb[index]; =20 /* If the virtual page MemAttr !=3D Tagged, access unchecked. */ diff --git a/target/arm/sve_helper.c b/target/arm/sve_helper.c index c8cdf7618eb..a5708da0f2f 100644 --- a/target/arm/sve_helper.c +++ b/target/arm/sve_helper.c @@ -4089,14 +4089,8 @@ static bool sve_probe_page(SVEHostPage *info, bool n= ofault, { uintptr_t index =3D tlb_index(env, mmu_idx, addr); =20 -# ifdef CONFIG_DEBUG_TCG - CPUTLBEntry *entry =3D tlb_entry(env, mmu_idx, addr); - target_ulong comparator =3D (access_type =3D=3D MMU_DATA_LOAD - ? entry->addr_read - : tlb_addr_write(entry)); - g_assert(tlb_hit(comparator, addr)); -# endif - + tlb_assert_iotlb_entry_for_ptr_present(env, mmu_idx, addr, + access_type, index); CPUIOTLBEntry *iotlbentry =3D &env_tlb(env)->d[mmu_idx].iotlb[inde= x]; info->attrs =3D iotlbentry->attrs; } --=20 2.26.2