From patchwork Thu May 1 14:55:09 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Richard Henderson X-Patchwork-Id: 886349 Delivered-To: patch@linaro.org Received: by 2002:a5d:430f:0:b0:38f:210b:807b with SMTP id h15csp359628wrq; Thu, 1 May 2025 07:59:12 -0700 (PDT) X-Forwarded-Encrypted: i=2; AJvYcCUioP/AdjwnqruI/KaDadwCtmrnny5+I2pEAs3RntLfZrEWPFjlKxbqG5T4uESiLE5eOtl3KQ==@linaro.org X-Google-Smtp-Source: AGHT+IE+7idjUNIsa75SRVlTO6eNyeB5G456vvTuhVuy8dn3CzbBo7H7xn8MY9YFAmPBRNVApMl5 X-Received: by 2002:a05:620a:c4f:b0:7ac:b95b:7107 with SMTP id af79cd13be357-7cace9a0b29mr399391185a.12.1746111551737; Thu, 01 May 2025 07:59:11 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1746111551; cv=none; d=google.com; s=arc-20240605; b=GJIjqVAeLStF7Iq5CWsCZIR/nDC/Qt9RuDPPC2l0Htj5IfaLD9UTSKEDC3B3vtFgUj 2+safjNVm6ffjW99TdtX2Kde1G/yi/1NflNIa7Zub5j0aKcCPubzIFZCwDdBiwhdBkxg 1Dtvauxpmi/yRYyrGHX014QiPrWOqlJ7oP2EobnyrU+pZLyH4DLiwr/jDHF2DGB8VJSX urdyhP4nRcZjYWa/NEsdOHuaw8sir3JRu1xtrnEH3+zDOEw7Nz9YF+MDZ9c8nwTvMkbP nK9uhEdiHTy3EJpcDrQb0oW6+SQSoUOtLlgw7Zr0UyN0DvWglEaTnHWIAzU8LHcVRKCy +wXA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=sender:errors-to:list-subscribe:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:content-transfer-encoding :mime-version:references:in-reply-to:message-id:date:subject:to:from :dkim-signature; bh=fbSBsMP5ixQP3674lJZfsVNkGgJPNW/j+NTvOfGTPO8=; fh=PnYt+qEB9tAfMKoqBm2xjKOFpYyFFGPudh5cVIoieJM=; b=iACXMCzVRiqKmu9rlN5gPFs06jCoc0dL9sqiG2npEB6L+QlsXROapd/d77B4ETXFbZ gg7HfouuDXThEwbENRTgNe6rAXhChEvXcElwM/EZdrx8vH5+2fOvP4jv95QkjJVLvTOk JTkY06Abeh9Eia2ABuG+xWPQ8OsM7l2VDbNKU6mkl8aR2Ry3TPwNDU18k6Crtg1oyQQC x5A0AkzEGJeuqMa8pcnXnDH39O1lypN9IIjAAzrxxI6SCmUM2gyusllzPopCT82YlpcS 79tC/FsNEZn+3XokNxKXB1cG+nTh3iCS29ioXZ/3cXnr8KQJ2j8hXGPnwGzycHyN6mA1 MgNw==; dara=google.com ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=SUgcmnhl; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org; dara=neutral header.i=@linaro.org Return-Path: Received: from lists.gnu.org (lists.gnu.org. [209.51.188.17]) by mx.google.com with ESMTPS id af79cd13be357-7cad2449327si84583085a.540.2025.05.01.07.59.11 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Thu, 01 May 2025 07:59:11 -0700 (PDT) Received-SPF: pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; Authentication-Results: mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=SUgcmnhl; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org; dara=neutral header.i=@linaro.org Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1uAVJx-0005fk-HV; Thu, 01 May 2025 10:55:29 -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 1uAVJt-0005dY-OW for qemu-devel@nongnu.org; Thu, 01 May 2025 10:55:25 -0400 Received: from mail-pl1-x62e.google.com ([2607:f8b0:4864:20::62e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1uAVJr-0005QO-TJ for qemu-devel@nongnu.org; Thu, 01 May 2025 10:55:25 -0400 Received: by mail-pl1-x62e.google.com with SMTP id d9443c01a7336-227cf12df27so10357255ad.0 for ; Thu, 01 May 2025 07:55:23 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1746111322; x=1746716122; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date:message-id :reply-to; bh=fbSBsMP5ixQP3674lJZfsVNkGgJPNW/j+NTvOfGTPO8=; b=SUgcmnhlSkXBq8JqcHWLBF74yhCwrbWiuPqWxyRjpFW/LgtIppscuvzg9MIqZ1VdYh ftNEVuRJu+ri6YRHgdSNJyMZwZPyE8UnqDz8prkthIsSFsDM6P5C/9Ro/vdoklTJmxI2 LzhruBClTdbs2fBtBO6TLpTXCgcIk2k8NnckVvqom6QxY82YW6GKHJ+fEaD8SdJAbTax nvVZEN1HxVGt4bz4fXMsRfsoTEbU0AcbK/IJVhyK88IiBY7+KzF/UUBrDB/iFF47VN8K G5g/G75SfiBhfc104AosglJtdZwqIqULT4k+a6BPrDXfXlpFD18AGJo/AzDWVLNHJxca 7ENQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1746111322; x=1746716122; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=fbSBsMP5ixQP3674lJZfsVNkGgJPNW/j+NTvOfGTPO8=; b=QzoDf+1qkxJu9cMLkA1qgOuN/7DrLbdNOA4d/6pxAjtFfEbUwrzs5SrwjzTLIGhVfo IRh+pJMPBx/YFcXdSzKPvMRpEERiUz5ZsDhm+0VAAAwnVdPPrhq2g9QXla32+K0JFQDD XdJYvkVL6t3s98XgakLF7uWl454ZGkDs01BQOtqggGsUThvHkM65njPYChfJHZzp2RSz /cbub1BWhUxZEfC/367RR8/617AAMai0cREafOGfh2JXq9MWJJQG/NbzNB0+DEUCotbK gUhUfJPMfU79GA6/i6sAtZHdJnFJq0sIwOfo3RXmlDVXojyRFJFNQuk2xk8aeiHN+J8n fRCg== X-Gm-Message-State: AOJu0YwQ8fY/spU+ZBtX+iCWc9dZxhgZZrsJkKZZeKgxbVmHaVo4pFXg 5ZfmcC20Zaic4UILLdaKiJM/laT0nOdmd+0r7VGYVA21q6nfgk80lFjuoRokc/5n/q3LlvwS+hR W X-Gm-Gg: ASbGnctkp/UuSm/JRXVADJSAaCWGmHxdeksGD0VHMFlpix5Tc7lgay7Qgyrb0cG1nQR 5x/pmfttdRYumzB7ysvW4QdcDU9eavKkvx8sq2e3dCZuZoE1t5WeXOb9QQ8/vwFN0FKvyrG4INU qlXS+oV6lsBcaAfqPnWe+YyssR4oUT6yT88tCJql2Tbh+y9QawV6L7imolixTJy4VUIbp+ABx4y fVQr0fVdUZKv2kQ8Sw+VL6qay4F/BFTE3n8OImN9QEUYzvPSlfpnqrVEOzRaVFxOo5yZbyvSlca nyswyk+qmPZlX7Ucce5IASiOJoqH5Yyn2G4EzxE3Lhtv75cW5D/BaxCnEAlWyuZZqEQY4pJPv3T i2GfHW3dpOg== X-Received: by 2002:a17:902:ef03:b0:223:3394:3a2e with SMTP id d9443c01a7336-22e087f7e2cmr41450325ad.18.1746111321982; Thu, 01 May 2025 07:55:21 -0700 (PDT) Received: from stoup.. (71-212-47-143.tukw.qwest.net. [71.212.47.143]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-22e0bb0e770sm7644415ad.92.2025.05.01.07.55.21 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 01 May 2025 07:55:21 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PATCH 01/11] accel/tcg: Move user-only tlb_vaddr_to_host out of line Date: Thu, 1 May 2025 07:55:09 -0700 Message-ID: <20250501145520.2695073-2-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250501145520.2695073-1-richard.henderson@linaro.org> References: <20250501145520.2695073-1-richard.henderson@linaro.org> MIME-Version: 1.0 Received-SPF: pass client-ip=2607:f8b0:4864:20::62e; envelope-from=richard.henderson@linaro.org; helo=mail-pl1-x62e.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, 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+patch=linaro.org@nongnu.org Sender: qemu-devel-bounces+patch=linaro.org@nongnu.org At the same time, fix a mis-match between user and system by using vaddr not abi_ptr for the address parameter. Signed-off-by: Richard Henderson Reviewed-by: Pierrick Bouvier --- include/accel/tcg/cpu-ldst.h | 8 -------- accel/tcg/user-exec.c | 6 ++++++ 2 files changed, 6 insertions(+), 8 deletions(-) diff --git a/include/accel/tcg/cpu-ldst.h b/include/accel/tcg/cpu-ldst.h index 44a62b54da..00e6419e13 100644 --- a/include/accel/tcg/cpu-ldst.h +++ b/include/accel/tcg/cpu-ldst.h @@ -515,15 +515,7 @@ static inline uint64_t cpu_ldq_code(CPUArchState *env, abi_ptr addr) * Otherwise (TLB entry is for an I/O access, guest software * TLB fill required, etc) return NULL. */ -#ifdef CONFIG_USER_ONLY -static inline void *tlb_vaddr_to_host(CPUArchState *env, abi_ptr addr, - MMUAccessType access_type, int mmu_idx) -{ - return g2h(env_cpu(env), addr); -} -#else void *tlb_vaddr_to_host(CPUArchState *env, vaddr addr, MMUAccessType access_type, int mmu_idx); -#endif #endif /* ACCEL_TCG_CPU_LDST_H */ diff --git a/accel/tcg/user-exec.c b/accel/tcg/user-exec.c index e1f4c4eacf..adc5296ba5 100644 --- a/accel/tcg/user-exec.c +++ b/accel/tcg/user-exec.c @@ -850,6 +850,12 @@ void *probe_access(CPUArchState *env, vaddr addr, int size, return size ? g2h(env_cpu(env), addr) : NULL; } +void *tlb_vaddr_to_host(CPUArchState *env, vaddr addr, + MMUAccessType access_type, int mmu_idx) +{ + return g2h(env_cpu(env), addr); +} + tb_page_addr_t get_page_addr_code_hostp(CPUArchState *env, vaddr addr, void **hostp) { From patchwork Thu May 1 14:55:10 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Richard Henderson X-Patchwork-Id: 886338 Delivered-To: patch@linaro.org Received: by 2002:a5d:430f:0:b0:38f:210b:807b with SMTP id h15csp358557wrq; Thu, 1 May 2025 07:56:18 -0700 (PDT) X-Forwarded-Encrypted: i=2; AJvYcCWm9avPDgUG+JSb8yEPxCTUy2xc4Ow9Fb8g3dtObrAOU7WY6dwUZAhrEXjWRZx7zzch4aPCtA==@linaro.org X-Google-Smtp-Source: AGHT+IFQ4WtwAmyiXYRjaPDMARUeJ7BGrlfoy5+qjVjSzREq0OMTAjdR3XYxfTbiPKRxh8FxpJqh X-Received: by 2002:a05:622a:420e:b0:471:fdf5:3cd7 with SMTP id d75a77b69052e-48b2176d0c1mr43442891cf.37.1746111378451; Thu, 01 May 2025 07:56:18 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1746111378; cv=none; d=google.com; s=arc-20240605; b=XYjsEdoAtbUmsKwprFqYu6+RSI8PMZUgM4UD2FHVQLj6k6Ls3xpYLtYH2q24Qj/u1U cOcQWRuLhEoYC+gNvIz6krUyulKzHsxQAX9u3LzJpjqwSCsHfIZi4kU78bIHE0ogG/Ek B2VEN0JcGKrqidmTj+bO8QLQu+BH2wITVnY15yrgj7XDTqqiTAAq3hANlNmAJhcC1GgI Fn1GTpXLebFdw3KTqZEn8r5FWUtDBmS6/u2JUwI+6kOjSRPgzFElMEaoq0u5C2K7xb/d esINh+w9adBeBFAsZMHHcBwuni+n0BnnB9HAWVHv3XhJEPYQkPhv9Xs+gnOR75vR70k/ PYow== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=sender:errors-to:list-subscribe:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:content-transfer-encoding :mime-version:references:in-reply-to:message-id:date:subject:to:from :dkim-signature; bh=OKdlxq7vj1lY48Y8P5jMGdkGRsWPnW4o2KqIcZOb+Nc=; fh=PnYt+qEB9tAfMKoqBm2xjKOFpYyFFGPudh5cVIoieJM=; b=Ir55pdo3uVNIxcA9ktzMyJgCD+q5V6gHL6yoCTZ3O3TAQxljmAFZq0f2Aky/DsFL28 aWd0EJ6gxezWhIwiY6+FYlITWbM5eM6t5OS7r3Vbkkz5dmtpfCu/zpkELYYSZ4pycJoW WcxuvTI7u3hnaWig6lDqCHZsgwngBWfJRAVaNT7RcNkoQZpUryt34lpts/9faGy3HbMB 7L5BwaOJ12WOPMn+XYXzUXYANGNeQCVkeaeeFeIBEg5YcaEHmseF7FwKdh2LJ/VAG4/N MSc80wSb7bXDqTs3/a6BY0fZU6IwImx0+6ZfjjHBJB1SOLg9kvNY5XmcR3Ah0UHQfrq+ p7gA==; dara=google.com ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=RcgL596h; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org; dara=neutral header.i=@linaro.org Return-Path: Received: from lists.gnu.org (lists.gnu.org. [209.51.188.17]) by mx.google.com with ESMTPS id d75a77b69052e-48b966c60e2si7825611cf.159.2025.05.01.07.56.18 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Thu, 01 May 2025 07:56:18 -0700 (PDT) Received-SPF: pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; Authentication-Results: mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=RcgL596h; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org; dara=neutral header.i=@linaro.org Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1uAVJz-0005gx-9p; Thu, 01 May 2025 10:55:31 -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 1uAVJu-0005dl-Vh for qemu-devel@nongnu.org; Thu, 01 May 2025 10:55:26 -0400 Received: from mail-pl1-x62f.google.com ([2607:f8b0:4864:20::62f]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1uAVJs-0005QT-7V for qemu-devel@nongnu.org; Thu, 01 May 2025 10:55:26 -0400 Received: by mail-pl1-x62f.google.com with SMTP id d9443c01a7336-227d6b530d8so11603785ad.3 for ; Thu, 01 May 2025 07:55:23 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1746111323; x=1746716123; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date:message-id :reply-to; bh=OKdlxq7vj1lY48Y8P5jMGdkGRsWPnW4o2KqIcZOb+Nc=; b=RcgL596hjSV5/UwMA8/wNWmsmW6ELIIDddfsNbHcidtKB2LagEcrb7owpslz8fZSbL r2WMCK2uPbJlfct68Jy/w7hRlunjf+/0hGV29y+9Dpp1nGZLX2YFfh/9sTIuiB/OI0fD EYE70xg++60c0dzhdWEanuBKhnbk6juEwdPk8oG+gNxo/G65hts9MfNaG1idO19JuMIM 74g2D21Qc/6ehh8XwxOYQaBEHP8Zo/0MhMaUM8aSmErtARlNOtY9/5AruWnVnEIKGUJa GZoGVIS7lxM+++nNzeIpsEnUtS8gZrZgBP5dQYEqRYSrCjb38AwLjm8KCIavALY3HH2x Aq0w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1746111323; x=1746716123; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=OKdlxq7vj1lY48Y8P5jMGdkGRsWPnW4o2KqIcZOb+Nc=; b=l3nJKVdekMnsFplMTgpQ1zcDs06ZgkoKiChGVar0g6OFMeWYyEWlWWZYlrD0k17NEx Ip9k93Kx2X32QqNdrPsiw1ziuswMjh2TgCQythWrwDCNwetctbWCSIVXAudsqSfJpJ+E Pk6jA0uLW36G2SVeSxZeaZWkb4eq9oN2IcEB2o0HhAziqoWfsHq/fb3SbCI7JiVEu7Qy sQxHAPe5vJBPZiJ3ITNTgQfBy8qi+KNQDjweTZ+OtCIuxhgIipefEvjOY2dUU5ViDzlS 67l6SNBVFQ2rjBaBoasiboK05yTIWD1yJebO1EuvgyjRiizWWz/xsXwmi79aIZFWszEZ W5fg== X-Gm-Message-State: AOJu0Yzg3ZRk6oEVT1VK5ySx6O3WZV0/Z8iYoFWfiykBZq05KBqLWEL8 9OvLgTOLRD3uXOV767ps4bhAeXVBqic/pmDymtwKJKd0SdXLsfVtBSl15bv6AF7atfbSkzSk72C 3 X-Gm-Gg: ASbGncsTVOIQV6/s3DagqqSMMhH16TNtyAq0+4DdJmMgBJLi4cUBSy8Fx+5evp23nji 4XtZNEnBco5xMkTrU4mPiVZPVN73GwSgbPgalehF0cgd2PGwawlTo/897wDqySyMTNXphxp5SQX /GqzA3ComLBsU5FRxy//yBkVd6nBmaaGmhZTbOJctp6wZpQr3fDgVj2SoTIIXG4n7WyPhe+6sai pI6X1NeBdaaQNSAsapIIi5uZnYk7MPLpvSMm/H8kIvE/8Z8e/FRhTV/2yKDRHLs9OlUejXuVjw3 YYlrjfg99R722RDAgRXHw3iJPnMH5LJ1aCVVGliTUUNe4RqAK6q+pddEDM4aZDK9jWNiTn9JgdE = X-Received: by 2002:a17:903:1a6b:b0:226:3781:379d with SMTP id d9443c01a7336-22e0863a896mr43920245ad.33.1746111322699; Thu, 01 May 2025 07:55:22 -0700 (PDT) Received: from stoup.. (71-212-47-143.tukw.qwest.net. [71.212.47.143]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-22e0bb0e770sm7644415ad.92.2025.05.01.07.55.22 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 01 May 2025 07:55:22 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PATCH 02/11] accel/tcg: Move tlb_vaddr_to_host declaration to probe.h Date: Thu, 1 May 2025 07:55:10 -0700 Message-ID: <20250501145520.2695073-3-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250501145520.2695073-1-richard.henderson@linaro.org> References: <20250501145520.2695073-1-richard.henderson@linaro.org> MIME-Version: 1.0 Received-SPF: pass client-ip=2607:f8b0:4864:20::62f; envelope-from=richard.henderson@linaro.org; helo=mail-pl1-x62f.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, 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+patch=linaro.org@nongnu.org Sender: qemu-devel-bounces+patch=linaro.org@nongnu.org This is a probing function, not a load/store function. Signed-off-by: Richard Henderson Reviewed-by: Pierrick Bouvier Reviewed-by: Philippe Mathieu-Daudé --- include/accel/tcg/cpu-ldst.h | 16 ---------------- include/accel/tcg/probe.h | 16 ++++++++++++++++ 2 files changed, 16 insertions(+), 16 deletions(-) diff --git a/include/accel/tcg/cpu-ldst.h b/include/accel/tcg/cpu-ldst.h index 00e6419e13..0de7f5eaa6 100644 --- a/include/accel/tcg/cpu-ldst.h +++ b/include/accel/tcg/cpu-ldst.h @@ -502,20 +502,4 @@ static inline uint64_t cpu_ldq_code(CPUArchState *env, abi_ptr addr) return cpu_ldq_code_mmu(env, addr, oi, 0); } -/** - * tlb_vaddr_to_host: - * @env: CPUArchState - * @addr: guest virtual address to look up - * @access_type: 0 for read, 1 for write, 2 for execute - * @mmu_idx: MMU index to use for lookup - * - * Look up the specified guest virtual index in the TCG softmmu TLB. - * If we can translate a host virtual address suitable for direct RAM - * access, without causing a guest exception, then return it. - * Otherwise (TLB entry is for an I/O access, guest software - * TLB fill required, etc) return NULL. - */ -void *tlb_vaddr_to_host(CPUArchState *env, vaddr addr, - MMUAccessType access_type, int mmu_idx); - #endif /* ACCEL_TCG_CPU_LDST_H */ diff --git a/include/accel/tcg/probe.h b/include/accel/tcg/probe.h index 177bd1608d..dd9ecbbdf1 100644 --- a/include/accel/tcg/probe.h +++ b/include/accel/tcg/probe.h @@ -103,4 +103,20 @@ int probe_access_full_mmu(CPUArchState *env, vaddr addr, int size, #endif /* !CONFIG_USER_ONLY */ +/** + * tlb_vaddr_to_host: + * @env: CPUArchState + * @addr: guest virtual address to look up + * @access_type: 0 for read, 1 for write, 2 for execute + * @mmu_idx: MMU index to use for lookup + * + * Look up the specified guest virtual index in the TCG softmmu TLB. + * If we can translate a host virtual address suitable for direct RAM + * access, without causing a guest exception, then return it. + * Otherwise (TLB entry is for an I/O access, guest software + * TLB fill required, etc) return NULL. + */ +void *tlb_vaddr_to_host(CPUArchState *env, vaddr addr, + MMUAccessType access_type, int mmu_idx); + #endif From patchwork Thu May 1 14:55:11 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Richard Henderson X-Patchwork-Id: 886346 Delivered-To: patch@linaro.org Received: by 2002:a5d:430f:0:b0:38f:210b:807b with SMTP id h15csp359157wrq; Thu, 1 May 2025 07:57:54 -0700 (PDT) X-Forwarded-Encrypted: i=2; AJvYcCUx1vCXhquz5rRvQGNgwAbVXOePYc7dYWMLzZxkC2ljuuueyarcJIZLq8L+PX/ogTC7SVjwMA==@linaro.org X-Google-Smtp-Source: AGHT+IGC1Qp5VFDGww6jK8PyhZWvkdUuYNW2nL9sCK4u4r1mo9tnyURAVqwXfaKaYQiJDtJxjcv2 X-Received: by 2002:ac8:51c5:0:b0:48b:3813:807f with SMTP id d75a77b69052e-48b3813881cmr21847731cf.7.1746111474022; Thu, 01 May 2025 07:57:54 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1746111474; cv=none; d=google.com; s=arc-20240605; b=Wwpb5Yw69Keqm52FMUq20xSNgFt1+ZKbVJMb88P3VSASvu50Ad2F+WR2u6SB3ehYzX cJNrUMS7LvuZT5mPsMBz51+2ElUqSF6WtqOJ6cemlU9yl0oin9qhBEohdLelRBoIELKc MPFjYvNDihz1TBMiUt9Nwzj6FwEJapVInwLjrH34TX0FgkiHWvptMjSZUZsm6Qjt9Q7e tQI1Adt4EPvvVnaSUIsOVFFt+Q8nYbX1tQSnlCOVFbi8nzf2X/3jDKGdmnroBsIJldto ESVUe8dYbLzE/H6Y1pZasdR+eezQDbuOnaqVpo3bBpCENsQf2NfZAMoy3vP1ouNHPpHc DoZw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=sender:errors-to:list-subscribe:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:content-transfer-encoding :mime-version:references:in-reply-to:message-id:date:subject:to:from :dkim-signature; bh=t1ed0CklYTiiIBRCtnbFvThtHt7Lv/qKME8bcfHr1lI=; fh=PnYt+qEB9tAfMKoqBm2xjKOFpYyFFGPudh5cVIoieJM=; b=bFiO7vwcDY3muWL0gYLIt3gDY+ZvUr6q9ZOHdJB7BwThFNP2YbuoqN9ZLFH8cMAihr 8z85CHUSTr+LHUTJqVCfe+RpRb5J1iqKY0YFjDAMZKwoCm4SmWIoAP20uhu7XwwWJOlu +hYkOJF5tofqA4lfSFXcEeRAV2kugUO4lZnHrs4IT2Ru3ZfSsowPGlVG7MiXnDmjk9ur l4c6aFuKyVjtpscupGMqrOOpf+yak7DslK1JkNRymfAfzSscdmb/FzPnNLv8jpVxm+Cs bXGpD5/oBC+IkeM6s6DW0vkafhiy5smsr05SnpBuyNULFUDf5adTfobAuDk3a41tlLpb i6DQ==; dara=google.com ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b="Z72Nvt/G"; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org; dara=neutral header.i=@linaro.org Return-Path: Received: from lists.gnu.org (lists.gnu.org. [209.51.188.17]) by mx.google.com with ESMTPS id d75a77b69052e-48b98246607si7918781cf.213.2025.05.01.07.57.53 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Thu, 01 May 2025 07:57:54 -0700 (PDT) Received-SPF: pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; Authentication-Results: mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b="Z72Nvt/G"; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org; dara=neutral header.i=@linaro.org Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1uAVJx-0005fS-22; Thu, 01 May 2025 10:55:29 -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 1uAVJv-0005dn-4S for qemu-devel@nongnu.org; Thu, 01 May 2025 10:55:27 -0400 Received: from mail-pl1-x635.google.com ([2607:f8b0:4864:20::635]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1uAVJt-0005Qa-6u for qemu-devel@nongnu.org; Thu, 01 May 2025 10:55:26 -0400 Received: by mail-pl1-x635.google.com with SMTP id d9443c01a7336-227a8cdd241so13920345ad.3 for ; Thu, 01 May 2025 07:55:24 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1746111323; x=1746716123; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date:message-id :reply-to; bh=t1ed0CklYTiiIBRCtnbFvThtHt7Lv/qKME8bcfHr1lI=; b=Z72Nvt/G7PCG5zuDRyFGBQAeSQY8+Aa5Be11fktAlTCCKo5amRSg2QLDyuz3kdE5go W2gAFdvPy7ex4BUTse74nKW4Kiz7D9CJtJVgFR2ib2FLQGPg7+obEPmNvOQINgY2uujC 8LgSRa3kGQ73GXzxOYjK3YJmr1JFZzDRsABiru/DTn9ramZ1lZpmZC5E1DdGjGYrCOgs lbK56wOzH4cPg689SzgqYtUNfTEpisBzPSNIHPH5z3hONK/0T7231rdXRNxx136s7L9v zF75tifvuCKWc5IIaJwOYYvIZwBM0RjTBg+OXra1fNxgtFS4VcsH8LaUtYiSyEWibvUb CE1Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1746111323; x=1746716123; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=t1ed0CklYTiiIBRCtnbFvThtHt7Lv/qKME8bcfHr1lI=; b=gotLjv+XclRsAVG/pah6ZAZ+ZsQmtkBwcpc/UPWlD2qK09qjDVeBvfLIvyD1T2AmP2 J/jQQalqHOKbMQomM7VAbJM7qSI60BUJaB58RaVcuAou9EfBHXYAupfQp3aqNs/B4W8V wgfLhFUlpDoc2Rx25toFsWelAtubc/3gcfcNI0WQur92KqA4HtZsWsdp9V8wzygNy5zF RIu0TuCc2J8OoQuIUpPjLgXfeAJvI29PyH8ZAm7Cj9fZsGpNlKiK5gAXkuFwlagBhT+Z SXUEupqzaZITvDvvDpz1834ioPqJKAl1zpOKFBZXaaD2ZYjuZaTQc34A1ewQPmh587mq xN3g== X-Gm-Message-State: AOJu0YxRTq3z53cnM1/BsA7kyIswQqE8xVjHsBfRJqzi9DUo7JOutUI7 ZLT6uTOZg/H5+3Gv+MVaK/Jn5VGdS2ZE5GUmgOerbphTcxD3vyWDnbmKvsBIwP/kS/PpQWAdN8q Z X-Gm-Gg: ASbGnct2aOcisetqcAAidVuvsfd6Fok9mzpDeflBlfQK7OGb+qfFkDRCdWjqzLV8XTt /twC1/W3t7PJE+dlRCmmk1WHaDdTzc90TOg47YjmRg24uc+JVfq8r1B2nxZJG6Kgj7aIyGgdQIo 7H/V5xVuF8xiw/b14qOcrwFDKAHSau/eb8NKzWdQlq3AeVyV7vfMnN1aHLQnYnBkiargaAFiCD5 yprzAhBFqqnFkzb9NGs+ByylZ/qvW3XVaDQ4bBB3YdcPPIKxPBZtCz3RRLgQG3O0bq2ZlTmegqH zUiaMFExmm0DcT1iQ6DwDL9u+pZBRetrWA+oBLeLbUnzp3GhAfWq1gHRM1bOnSVTyy9l/kqbb78 = X-Received: by 2002:a17:903:22cc:b0:21f:52e:939e with SMTP id d9443c01a7336-22e040c7c97mr54534005ad.28.1746111323356; Thu, 01 May 2025 07:55:23 -0700 (PDT) Received: from stoup.. (71-212-47-143.tukw.qwest.net. [71.212.47.143]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-22e0bb0e770sm7644415ad.92.2025.05.01.07.55.22 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 01 May 2025 07:55:22 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PATCH 03/11] accel/tcg: Use target_long_bits() in cputlb.c Date: Thu, 1 May 2025 07:55:11 -0700 Message-ID: <20250501145520.2695073-4-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250501145520.2695073-1-richard.henderson@linaro.org> References: <20250501145520.2695073-1-richard.henderson@linaro.org> MIME-Version: 1.0 Received-SPF: pass client-ip=2607:f8b0:4864:20::635; envelope-from=richard.henderson@linaro.org; helo=mail-pl1-x635.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, 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+patch=linaro.org@nongnu.org Sender: qemu-devel-bounces+patch=linaro.org@nongnu.org Signed-off-by: Richard Henderson Reviewed-by: Pierrick Bouvier --- accel/tcg/cputlb.c | 25 +++++++++++++------------ 1 file changed, 13 insertions(+), 12 deletions(-) diff --git a/accel/tcg/cputlb.c b/accel/tcg/cputlb.c index 5b6d6f7975..35c467aace 100644 --- a/accel/tcg/cputlb.c +++ b/accel/tcg/cputlb.c @@ -19,6 +19,7 @@ #include "qemu/osdep.h" #include "qemu/main-loop.h" +#include "qemu/target-info.h" #include "accel/tcg/cpu-ops.h" #include "accel/tcg/iommu.h" #include "accel/tcg/probe.h" @@ -771,19 +772,19 @@ void tlb_flush_range_by_mmuidx(CPUState *cpu, vaddr addr, assert_cpu_is_self(cpu); + /* If no page bits are significant, this devolves to tlb_flush. */ + if (bits < TARGET_PAGE_BITS) { + tlb_flush_by_mmuidx(cpu, idxmap); + return; + } /* * If all bits are significant, and len is small, * this devolves to tlb_flush_page. */ - if (bits >= TARGET_LONG_BITS && len <= TARGET_PAGE_SIZE) { + if (len <= TARGET_PAGE_SIZE && bits >= target_long_bits()) { tlb_flush_page_by_mmuidx(cpu, addr, idxmap); return; } - /* If no page bits are significant, this devolves to tlb_flush. */ - if (bits < TARGET_PAGE_BITS) { - tlb_flush_by_mmuidx(cpu, idxmap); - return; - } /* This should already be page aligned */ d.addr = addr & TARGET_PAGE_MASK; @@ -809,19 +810,19 @@ void tlb_flush_range_by_mmuidx_all_cpus_synced(CPUState *src_cpu, TLBFlushRangeData d, *p; CPUState *dst_cpu; + /* If no page bits are significant, this devolves to tlb_flush. */ + if (bits < TARGET_PAGE_BITS) { + tlb_flush_by_mmuidx_all_cpus_synced(src_cpu, idxmap); + return; + } /* * If all bits are significant, and len is small, * this devolves to tlb_flush_page. */ - if (bits >= TARGET_LONG_BITS && len <= TARGET_PAGE_SIZE) { + if (len <= TARGET_PAGE_SIZE && bits >= target_long_bits()) { tlb_flush_page_by_mmuidx_all_cpus_synced(src_cpu, addr, idxmap); return; } - /* If no page bits are significant, this devolves to tlb_flush. */ - if (bits < TARGET_PAGE_BITS) { - tlb_flush_by_mmuidx_all_cpus_synced(src_cpu, idxmap); - return; - } /* This should already be page aligned */ d.addr = addr & TARGET_PAGE_MASK; From patchwork Thu May 1 14:55:12 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Richard Henderson X-Patchwork-Id: 886348 Delivered-To: patch@linaro.org Received: by 2002:a5d:430f:0:b0:38f:210b:807b with SMTP id h15csp359389wrq; Thu, 1 May 2025 07:58:30 -0700 (PDT) X-Forwarded-Encrypted: i=2; AJvYcCVV3Jhx9MGHhlkLJdKaJR0S+I+pvr6e3md0H4ujqeOZ4LVlcKEBsIHqEVgXekY7JtAjOJ8+Wg==@linaro.org X-Google-Smtp-Source: AGHT+IHysCubAJtNELsGnu2G1pxhFJnJFE9sCBogEi8Czce07VOtuN8U7px20HaZCUyXwOJm6X9m X-Received: by 2002:a05:620a:404e:b0:7c7:b5d0:da63 with SMTP id af79cd13be357-7cacef6c21fmr373563885a.25.1746111509953; Thu, 01 May 2025 07:58:29 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1746111509; cv=none; d=google.com; s=arc-20240605; b=GnCNvCL9dLzNDcnRywKVKlZM2jGbqkxFW1NWd7bshTU/X9mt/KucrCNRGsoCuRBU2k FpTavyOJsIc1F6naBBZoAUBKkrt/Dy+1hsUxExacXhFglEFhjq2J6ETpdIqfg7rdq4GJ gcgbgTzFsTQ9nueBxg3+7mP3Ibyu3vcQIMfhaXJt3lkt5PrOZvz9/5SHZ0+MljYJTGQj CTal7Oa8fFzykfv+qm++i3Fo5O732WVlZbFYa/P0Q6+wWq4sMfsao+FCJ6vMAyfawI2w xBBJ7QDryL/IikgPqbMQ/IcHB8IPB+e6ILNujXoabgNkvX42A+7FzbYCU0KI6GWL3UQr Thhg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=sender:errors-to:list-subscribe:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:content-transfer-encoding :mime-version:references:in-reply-to:message-id:date:subject:to:from :dkim-signature; bh=x/PgQfi425UDgUiGbtOMZZgEtm+lUa3KGmn3dWsY1lM=; fh=PnYt+qEB9tAfMKoqBm2xjKOFpYyFFGPudh5cVIoieJM=; b=AZkEPD5SOW1s1ynetiVJQs3Ol0cbwgFKyEMjxe+Hfpvdj4uEyWjFXkAFlKsiyB60YF DdrpfljlUgi4d70MZy/xvGFzasCTP5k74JHjePlIgF+LMzY3JaGitPc/6Dwl0Ga2W9vb jSWsKMFJc2MIpBjZVsfLwew7elKqUJTaf1P1J6WoLCo2CxmfyCoX3sW+CVTx0LoIks7J u82cp1pmCDh50iRkTCVBUdmC4ZhjwmGlePyblXFxk5FMJ4Kn6HWeIwlZLmoeW0RP+6sr 03neXvqKfyrSyVRqSYGJU8/ay5moS4Wju1r/TbOT9sMALrUnpXoe0YHw1xR/MjzQVsCx Vybw==; dara=google.com ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=aWCa8fk2; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org; dara=neutral header.i=@linaro.org Return-Path: Received: from lists.gnu.org (lists.gnu.org. [209.51.188.17]) by mx.google.com with ESMTPS id af79cd13be357-7cad241c72esi82070885a.311.2025.05.01.07.58.29 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Thu, 01 May 2025 07:58:29 -0700 (PDT) Received-SPF: pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; Authentication-Results: mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=aWCa8fk2; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org; dara=neutral header.i=@linaro.org Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1uAVJx-0005ff-CG; Thu, 01 May 2025 10:55:29 -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 1uAVJw-0005es-6y for qemu-devel@nongnu.org; Thu, 01 May 2025 10:55:28 -0400 Received: from mail-pl1-x632.google.com ([2607:f8b0:4864:20::632]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1uAVJt-0005Qi-Hb for qemu-devel@nongnu.org; Thu, 01 May 2025 10:55:27 -0400 Received: by mail-pl1-x632.google.com with SMTP id d9443c01a7336-22423adf751so11443055ad.2 for ; Thu, 01 May 2025 07:55:25 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1746111324; x=1746716124; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date:message-id :reply-to; bh=x/PgQfi425UDgUiGbtOMZZgEtm+lUa3KGmn3dWsY1lM=; b=aWCa8fk2BJ6ubapxJxbojAKB/PSF91mWx8SfU9WnroYJAaKgAcrWRQm8nKps2qwjV2 ydbKHldijZ9ECYdJ6C/sGsowHgTiinVZZ9DY9QGEPOOeiEo8nfeeh75Dn5MURti1nzNI 7v1HxcyIPncrrRM9kBLQY3nvzexwIciO9u0LajSatSbBly5/DMqgjM2nlyQ1lW8/canf iqH3rSD6bk/IPQYGHPVlP2ekmx7ZrhWoCOaJMiV4xwkRzm5vURxZhKvgW6QhT6H8fX1T S26/+/aA4r/ubtMDwhPNiLxzWTfpz42SOE4mhJf0HNamb/mPTMuh3GaR6fi5FeTwU9Md /QFA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1746111324; x=1746716124; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=x/PgQfi425UDgUiGbtOMZZgEtm+lUa3KGmn3dWsY1lM=; b=aQXNRAIaHy7jNkjYgLrO9UJZVBQSmCEJKhdvbvW6EI2MUHG6W5tKa8oKqgeQvMkSML Zie7XYoosJ5wArCtPA3/9RNySccKB+/tK0PHkrATyNJv677gHlwCgLZN/6abkqcCclek +7JsXeShHpyN81FsXoWq1gbnTwODrGF5ruVx2GjX4hXdfpWdkcRj4OGI/RopRsat7ic4 twtvdfQlkRl0J/0TG72qhcoxdg3pLI/buQiODDim2IvbhV8IQHQB/ADE3QYWNol4P2uy 7DgtAo3GMyyBariLJVaTLUtLYfoS3ZVfxNovbchlONqTyo+9ucLbwlBsq182JU4TIvJs W+NQ== X-Gm-Message-State: AOJu0Yz13QWEpIqPOf3K+hJgnNPUg1jvOk2GgiVr7FHYzrhg6uIGjLnh gOOcIkUtMFze51FPpSq28pWsjy5Gb5J+5NVluCutxBOeiIXadEIs/oeuQ6W4Tx3XiP0y0jZIsxO J X-Gm-Gg: ASbGncuaSKiYAMSjunaqntorVCJyp2h7GQFtOSUlLPVUNAvpZxfT7/ymgBJ1PbHoFBo 1EbgRxchaBl4vkWHqbG2HBItd4+9QxnmA3r+/QALNnO3JBgFFSMXQtU/M2Dln4dn6fUL0ymUJE+ ISnkJW8t31/v09tkPe/oYbi62B1N1HXeAGfKGJmEw2h+7zwgVbLOp7B/EeXqpfueaQ9m+Vb8gLP +/R8NumZWq4Eeu1GzPaMJGZ1cGMaxxdmLoEf8NRY6HvEdKT3Z+EVM/AxFSaSw3J8G0XEYS0mcla /Ky0IA6YAzftfIuHvo/QHRz2Ld4X9F68wlzlyv4pox9apy8LONNjTfMlwHzP/k3u5brs91wQKh8 = X-Received: by 2002:a17:903:1cc:b0:22c:35c5:e30d with SMTP id d9443c01a7336-22e084288bamr34948305ad.13.1746111323957; Thu, 01 May 2025 07:55:23 -0700 (PDT) Received: from stoup.. (71-212-47-143.tukw.qwest.net. [71.212.47.143]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-22e0bb0e770sm7644415ad.92.2025.05.01.07.55.23 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 01 May 2025 07:55:23 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PATCH 04/11] accel/tcg: Use vaddr for plugin_{load,store}_cb Date: Thu, 1 May 2025 07:55:12 -0700 Message-ID: <20250501145520.2695073-5-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250501145520.2695073-1-richard.henderson@linaro.org> References: <20250501145520.2695073-1-richard.henderson@linaro.org> MIME-Version: 1.0 Received-SPF: pass client-ip=2607:f8b0:4864:20::632; envelope-from=richard.henderson@linaro.org; helo=mail-pl1-x632.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, 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+patch=linaro.org@nongnu.org Sender: qemu-devel-bounces+patch=linaro.org@nongnu.org Avoid the use of abi_ptr within ldst_common.c.inc. Signed-off-by: Richard Henderson Reviewed-by: Pierrick Bouvier Reviewed-by: Philippe Mathieu-Daudé --- accel/tcg/ldst_common.c.inc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/accel/tcg/ldst_common.c.inc b/accel/tcg/ldst_common.c.inc index 9791a4e9ef..57f3e06192 100644 --- a/accel/tcg/ldst_common.c.inc +++ b/accel/tcg/ldst_common.c.inc @@ -123,7 +123,7 @@ void helper_st_i128(CPUArchState *env, uint64_t addr, Int128 val, MemOpIdx oi) * Load helpers for cpu_ldst.h */ -static void plugin_load_cb(CPUArchState *env, abi_ptr addr, +static void plugin_load_cb(CPUArchState *env, vaddr addr, uint64_t value_low, uint64_t value_high, MemOpIdx oi) @@ -193,7 +193,7 @@ Int128 cpu_ld16_mmu(CPUArchState *env, vaddr addr, * Store helpers for cpu_ldst.h */ -static void plugin_store_cb(CPUArchState *env, abi_ptr addr, +static void plugin_store_cb(CPUArchState *env, vaddr addr, uint64_t value_low, uint64_t value_high, MemOpIdx oi) From patchwork Thu May 1 14:55:13 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Richard Henderson X-Patchwork-Id: 886342 Delivered-To: patch@linaro.org Received: by 2002:a5d:430f:0:b0:38f:210b:807b with SMTP id h15csp359013wrq; Thu, 1 May 2025 07:57:30 -0700 (PDT) X-Forwarded-Encrypted: i=2; AJvYcCXRMG4aKM1EN+dD+5DuPPVVgAa0R0jrthw2pEyBEgwEoqWhRgW6Y5n9SvsqJ+S7nlncR/h5kA==@linaro.org X-Google-Smtp-Source: AGHT+IFgSXOFHQd2M+h2cctfNQ/gmj5dlR0jv8IzR02SyqXNjMyVUfOvkY1tsgtsuavjVaZga/dv X-Received: by 2002:a05:620a:45a5:b0:7c5:3f38:9583 with SMTP id af79cd13be357-7cac7ea142dmr1052849285a.50.1746111450443; Thu, 01 May 2025 07:57:30 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1746111450; cv=none; d=google.com; s=arc-20240605; b=j3NZRJUgE/1s7fUAYi45C2x+npOqzdZ6fAyeRF3559CbXcQGX9MxVzVK3ArLFKpid+ j/9mPlwKQvwEzQmzFhDMzPrHTLHJSvBZu1DKy4SdiYvvkJNJL8vSAQvdFOWHg3XBG8HS jpyJSRtwpe5rJD7CEDh/rxMaorEPiuMaigjiYjWcP7GI9bc1jpGnnAFgQr4356A/OMY+ /c3rekobNnFNHLH6NWcyqJ/h6/GuWgUppTL+u48im/fiGKjSSUPF2kt/8rTyOjO+nmhE ZUSjUbG0KPOKxErQNPvU2/QTNm2fIpRv5tM0XONomSH76JUnJWJ1tJ5T99yyTjtUDsH7 qtSw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=sender:errors-to:list-subscribe:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:content-transfer-encoding :mime-version:references:in-reply-to:message-id:date:subject:to:from :dkim-signature; bh=V3es0q86fneop67hPwyyNUzAvnUBYSgJshp4N+xyHtE=; fh=PnYt+qEB9tAfMKoqBm2xjKOFpYyFFGPudh5cVIoieJM=; b=juM2OoHrCeh2sLIybOvX9UCElaBsNQuU1x4HdUi3jf1j+Dvu4kpKGxcBVM82rCkRgV TP/+brOCNvRFsncK8kfkCqhBscg6CiDvuWXxp91lD73XoTVrmY7iIkwUKyK4xOYRLvW2 i7o00sveiCuH91ZPjd5AF+397PtH1XxzJUtgssnYqcUGShTfoW+5y4ZzVIwhxZcqENBy 3tvC8T/po1pQX88qACeKkQYA8xYZqR3vxmNwDbFKXXCNl8uoVU0rQXvc8DbFy35aBPf1 BhOdvqR1ErmkKY6AGXKvOigVBjtsoKCCSubffd89bK3MsnrkLcoNR+eyZt/CEp6glV4f n45A==; dara=google.com ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=gBCJEWwA; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org; dara=neutral header.i=@linaro.org Return-Path: Received: from lists.gnu.org (lists.gnu.org. [209.51.188.17]) by mx.google.com with ESMTPS id af79cd13be357-7cad23ba586si83800785a.38.2025.05.01.07.57.30 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Thu, 01 May 2025 07:57:30 -0700 (PDT) Received-SPF: pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; Authentication-Results: mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=gBCJEWwA; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org; dara=neutral header.i=@linaro.org Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1uAVJy-0005gI-Dv; Thu, 01 May 2025 10:55:30 -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 1uAVJw-0005ey-Fz for qemu-devel@nongnu.org; Thu, 01 May 2025 10:55:28 -0400 Received: from mail-pl1-x635.google.com ([2607:f8b0:4864:20::635]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1uAVJu-0005RD-9k for qemu-devel@nongnu.org; Thu, 01 May 2025 10:55:28 -0400 Received: by mail-pl1-x635.google.com with SMTP id d9443c01a7336-2241053582dso16829035ad.1 for ; Thu, 01 May 2025 07:55:25 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1746111324; x=1746716124; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date:message-id :reply-to; bh=V3es0q86fneop67hPwyyNUzAvnUBYSgJshp4N+xyHtE=; b=gBCJEWwAUHmDE+WNP78YXlVmkiaM8GwEe1KDyv1paoFl1mEOI2wXuoZk0K7fS/5NQS WYzhTkIGSTWKlIXcyRBD7KT85pz6Xp4jqUddTWf24L6Bl1bheyb4xnX/vRLLRDPiYCdm nlosKMqVvYcgsZgLVSR7rPAe5DolZgiIXFw7fVf9GuimtWNbem8Zssk8Ko91U2S+NP1i yqk7DVDUtDthwlsw/RqQr7l/URP7pgohU/D+1CThjJB4GEEUWoBdCdltVrcolDaT+j9c 0d5L4DC2gnxhRQGG7q0/C1vCUhMBUQ8JQpxeMhh5tPG6ITzkhSbazIkVGS0lehDr6Js+ BcRg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1746111324; x=1746716124; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=V3es0q86fneop67hPwyyNUzAvnUBYSgJshp4N+xyHtE=; b=gkAn+6GKlxqHD5JzkY7xpWdDRqLreqNPc4iXSwaLKOrvjZCI1B0mIApYg5dnrMTDYb Ae+8WpTlweXvcetd4GgoT6u1oHcTO/ncgcykDBB+c5HFRNHpnc7Jqag9uSp501auS1tD nfFYSeRDmrlkwxRX0d7EehMyoFGEQF/zfCtmKfjCJi0mMnW7p3oPmmadyXloti+wpytT ieqOJq7eeoizg162lYJ9cvZ5XHkzkYeSL7JAx9ZvVuC2F+C3DMR9stcCgqXrFFdzrW4z vYXaO8GeWfSxgzIROH+qTVymUryZQ9jrOYRtHY0HEp9NkMXacM7TWdFKIy6M1Ir/44Kw U1vA== X-Gm-Message-State: AOJu0YyRtsJduhBKkDPotDSVGq/R6ZPXWrPuOehOqiHg6lGX3T/5pnto TqGb0PSS9mbeYWTSiyBp8PCIF7Cb/wgzYnZesLVSNyXCohKXETFR1EkmN+a2VtaqVFs0tzQfK7j D X-Gm-Gg: ASbGnctRy/g9EpV3vNbC73kKTyGLvgkyP4Ko/LLNazusO0zniz7xcqp9IXevjI7cWY4 bk2oBxggWViwzxMLUF8aU8XwaWOlhWq/NpDvfEtZwE7O2h9poluOPEMdHPMlJ3OBoH4TbszcYyT GFhRg/XiqxfBnGPP9FjOeZmJdjDlj63dlQ8dsojgrd2ulXj0fYAdp7Nd/2dQCSthkr30nEix/gk oOTwpaSUHoQdk0QXxpC4BaTkp/xWlkNVQ7U63nFFpoP0wx5pg2I6q4ik7oG4udwvFNBao7PyoTk UXPEFwmUHrS2seM0rTjCbJoLpd1qqP0Qkxz0BW5ffz2jzmE2hvNqxzQWTC+/PANpF+XIqAQ1rJM = X-Received: by 2002:a17:903:2f43:b0:224:1609:a74a with SMTP id d9443c01a7336-22df581d613mr101616905ad.34.1746111324641; Thu, 01 May 2025 07:55:24 -0700 (PDT) Received: from stoup.. (71-212-47-143.tukw.qwest.net. [71.212.47.143]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-22e0bb0e770sm7644415ad.92.2025.05.01.07.55.24 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 01 May 2025 07:55:24 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PATCH 05/11] accel/tcg: Build cputlb.c once Date: Thu, 1 May 2025 07:55:13 -0700 Message-ID: <20250501145520.2695073-6-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250501145520.2695073-1-richard.henderson@linaro.org> References: <20250501145520.2695073-1-richard.henderson@linaro.org> MIME-Version: 1.0 Received-SPF: pass client-ip=2607:f8b0:4864:20::635; envelope-from=richard.henderson@linaro.org; helo=mail-pl1-x635.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, 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+patch=linaro.org@nongnu.org Sender: qemu-devel-bounces+patch=linaro.org@nongnu.org Signed-off-by: Richard Henderson Reviewed-by: Pierrick Bouvier Reviewed-by: Philippe Mathieu-Daudé --- accel/tcg/cputlb.c | 3 ++- accel/tcg/meson.build | 5 +---- 2 files changed, 3 insertions(+), 5 deletions(-) diff --git a/accel/tcg/cputlb.c b/accel/tcg/cputlb.c index 35c467aace..5f6d7c601c 100644 --- a/accel/tcg/cputlb.c +++ b/accel/tcg/cputlb.c @@ -25,7 +25,8 @@ #include "accel/tcg/probe.h" #include "exec/page-protection.h" #include "system/memory.h" -#include "accel/tcg/cpu-ldst.h" +#include "accel/tcg/cpu-ldst-common.h" +#include "accel/tcg/cpu-mmu-index.h" #include "exec/cputlb.h" #include "exec/tb-flush.h" #include "system/ram_addr.h" diff --git a/accel/tcg/meson.build b/accel/tcg/meson.build index d6bd304add..9b86051b82 100644 --- a/accel/tcg/meson.build +++ b/accel/tcg/meson.build @@ -25,15 +25,12 @@ tcg_specific_ss = ss.source_set() tcg_specific_ss.add(when: 'CONFIG_USER_ONLY', if_true: files('user-exec.c')) specific_ss.add_all(when: 'CONFIG_TCG', if_true: tcg_specific_ss) -specific_ss.add(when: ['CONFIG_SYSTEM_ONLY', 'CONFIG_TCG'], if_true: files( - 'cputlb.c', -)) - libuser_ss.add(files( 'user-exec-stub.c', )) libsystem_ss.add(files( + 'cputlb.c', 'icount-common.c', 'monitor.c', 'tcg-accel-ops.c', From patchwork Thu May 1 14:55:14 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Richard Henderson X-Patchwork-Id: 886339 Delivered-To: patch@linaro.org Received: by 2002:a5d:430f:0:b0:38f:210b:807b with SMTP id h15csp358560wrq; Thu, 1 May 2025 07:56:18 -0700 (PDT) X-Forwarded-Encrypted: i=2; AJvYcCXbaH+FIyvG/nMp1KQ9szVw7mYPPtz5eGDawgMfwJP31sBuaKk+MV0+xylpsEsZ3tR8a76low==@linaro.org X-Google-Smtp-Source: AGHT+IGOkur7WPGGskaK8F72a3/qybD4E+p68rmVliw+8mhy7zOZfpW03bAU4q0mtGksDLUx6uV1 X-Received: by 2002:a05:620a:40c8:b0:7c5:3b4a:a61e with SMTP id af79cd13be357-7cacef5c9b6mr292651085a.24.1746111378640; Thu, 01 May 2025 07:56:18 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1746111378; cv=none; d=google.com; s=arc-20240605; b=alrsVKRNShNdDMdJP5ez4i+e/+WC/+NKrm2BXWWzjvthQQg6Rn8QTldxF90Yegrhdn ze8feq6NVK4FWwlRqzpkUcPk5in66oay+Jn2GgAhCiBJnWUlZfKH0CABsGlwc+3xxMzz HY+Mwd0C+86LfkMOJyxRBmO5H0dE9FVwJxq+vzSoFq0kmUpp07mtU/HpCoxg7eX/OhIY lBtHlCj3GmIH5d7uA2UuJ+Oaq6fJfTl1MpAt03Ilpx0RyTop0IKOh9S7bCqepmyDhXJM 2ChzoHnj4oIEVlTXY4U69c/jRcMKsn2EnGAyyE9pOS+5BH8tCO1pjNDieuJN1RvRvcUT VowQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=sender:errors-to:list-subscribe:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:content-transfer-encoding :mime-version:references:in-reply-to:message-id:date:subject:to:from :dkim-signature; bh=4dpnJ9Uc1sw31pq3AwLKyzow26q5U/SelaERHTTBOAw=; fh=PnYt+qEB9tAfMKoqBm2xjKOFpYyFFGPudh5cVIoieJM=; b=ViYrADBpPfGqL2gVYPbOIUI6/joKiAlTbcyy8dSgoCRxd53Lnkd3fEGUgaOi7DLPUa /rO6ABiqJclXZu47Un0TCrxM3W/LJKX7mcjcDIrT1KfjpKh1CDUU3sfyXskteAvMBy42 Hk+ScyKTYTimfpxaiiSHqBcao8tdwwMpuyiWiJVU59VOu+Zvse43gUTi+ZgGHB+qgv1q /Xb2Ggsfxe/pFFDfVoNlcJR8csCgJangVHQivtgAKKrMv/GjAPsenSQ1ggU4C4FU49BD Ist6qdsdLb8EqEPGaVn3vn7n/bCa2hU/ThBUEXAmJhgT5DgS66qojX6no6eM2OU9+26l 8mfg==; dara=google.com ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=Mf53zFMD; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org; dara=neutral header.i=@linaro.org Return-Path: Received: from lists.gnu.org (lists.gnu.org. [209.51.188.17]) by mx.google.com with ESMTPS id 6a1803df08f44-6f50f3a90b1si8924686d6.97.2025.05.01.07.56.18 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Thu, 01 May 2025 07:56:18 -0700 (PDT) Received-SPF: pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; Authentication-Results: mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=Mf53zFMD; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org; dara=neutral header.i=@linaro.org Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1uAVK0-0005hN-6E; Thu, 01 May 2025 10:55:32 -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 1uAVJx-0005fd-7f for qemu-devel@nongnu.org; Thu, 01 May 2025 10:55:29 -0400 Received: from mail-pl1-x629.google.com ([2607:f8b0:4864:20::629]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1uAVJv-0005SK-4U for qemu-devel@nongnu.org; Thu, 01 May 2025 10:55:28 -0400 Received: by mail-pl1-x629.google.com with SMTP id d9443c01a7336-22423adf751so11443585ad.2 for ; Thu, 01 May 2025 07:55:26 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1746111325; x=1746716125; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date:message-id :reply-to; bh=4dpnJ9Uc1sw31pq3AwLKyzow26q5U/SelaERHTTBOAw=; b=Mf53zFMDqwFadDxpad8UBHPzfraW3rIVQk1w+ZUHyFjtCx+xYS5XZ4KMXGRsrj7xFC /1TJKxFQlRG17mW96gxOhTAAn1rz8e8gFwtn5acHtJ4byI3VnM+NKZo8Lxaqf/WyDYku pcEhtBax0ndyXk7rkkDMmGVQuRNeQzw5Txyal6o+UBVczJ2ZbbOKt1m8e3xGrWmh7Xfr uLjtX0miCW58BmT5FjXTtfodFiP3SFFFw1u0sXRbzNgkiVD0ZuRUxVm2faxMVFvWRrGV f8TnSOOHRPTSUoDj9coU9di0Y8eCQscRhJaoYRFN7jMxwIesbVeptve2kxrUOnr/ec5b mnQw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1746111325; x=1746716125; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=4dpnJ9Uc1sw31pq3AwLKyzow26q5U/SelaERHTTBOAw=; b=rnwnrOPtpHY5nMOHgsOdi0TtdZBEGt0cA+wnNDCu4515gDJvbWYrhNtPrLleVos02u qvEhmKI153cFl+8kimU1CACzOwrGRCs/SRRO6z9uteuMIcec+jL8F6IEST+y95iR3eqQ AI9T68DidvEfb4U60eKjJsQMgmsVJvGH/9Be+n1bKo7KP6L6LC+2RI/+7TbAavyr7tuX SrVMq7PiAMoeHC+3OlXBGCNCPE/dDjJFYVGm0Gcq5BJ+Zemb/0m5tOaChW+X/jTnnb8R 2J7KCkz6P7yTx0RgE8u5cisieADDF5bK9AzAL1UA2T8D4/sEmVHlnsPiPOzQDOTA7NA8 AkjQ== X-Gm-Message-State: AOJu0YzPlyNoTu/w6D5uYzogQneAVc2mSnUQbFtPZACEkdZbHlqrm+ws Q12e35Uu3y2MV92Jj41evFdoRLCtNMnCA04TQwEVg4t/ju+ysvwMyN9ljcCg3MUDfLge8hadBy5 x X-Gm-Gg: ASbGncvqEC0MbfAmrZyY7CMah4RkDJ9NyyLbZGnaIG/02L4qoIOiW2wmLM3bjsnMax6 S9OgiyJ9yw7TR7jw1901MvlFvF+66VzpRTRIEVhwN4/oJmbrv0ZqC/glj5M4Z3bzc9MvBgku9PX fLa3oIS00gDfVvMxWnD+HdztUcdwdik03l/AALxH4zp2MPU0zpYWZaKZkvxDnpyos/eMUkmZ0lb 7wSItH47NZlZZmr559uEkc21e4aMxTXogFAn5CCk10vA4YQZGsp8pU7mOV+eDedsU/SwEzWZ64o 8btEWnUnhoJmgdv7HbU5uQ8vqnlx8yBIOGHrG+15HgAsroayNtzD6vS075Yl+g4F/nPTsLYIi7M Ob6aJN57vjQ== X-Received: by 2002:a17:902:e00c:b0:22d:e575:9eb2 with SMTP id d9443c01a7336-22e0863abbfmr35621875ad.34.1746111325493; Thu, 01 May 2025 07:55:25 -0700 (PDT) Received: from stoup.. (71-212-47-143.tukw.qwest.net. [71.212.47.143]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-22e0bb0e770sm7644415ad.92.2025.05.01.07.55.24 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 01 May 2025 07:55:25 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PATCH 06/11] include/user: Convert GUEST_ADDR_MAX to a variable Date: Thu, 1 May 2025 07:55:14 -0700 Message-ID: <20250501145520.2695073-7-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250501145520.2695073-1-richard.henderson@linaro.org> References: <20250501145520.2695073-1-richard.henderson@linaro.org> MIME-Version: 1.0 Received-SPF: pass client-ip=2607:f8b0:4864:20::629; envelope-from=richard.henderson@linaro.org; helo=mail-pl1-x629.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, 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+patch=linaro.org@nongnu.org Sender: qemu-devel-bounces+patch=linaro.org@nongnu.org Remove GUEST_ADDR_MAX and add guest_addr_max. Initialize it in *-user/main.c, after reserved_va. Signed-off-by: Richard Henderson Reviewed-by: Pierrick Bouvier --- include/user/guest-host.h | 27 +++++++-------------------- accel/tcg/user-exec.c | 4 ++-- bsd-user/main.c | 8 ++++++++ linux-user/main.c | 8 ++++++++ 4 files changed, 25 insertions(+), 22 deletions(-) diff --git a/include/user/guest-host.h b/include/user/guest-host.h index 8d2079bbbb..8e10d36948 100644 --- a/include/user/guest-host.h +++ b/include/user/guest-host.h @@ -23,23 +23,11 @@ extern unsigned long reserved_va; /* - * Limit the guest addresses as best we can. - * - * When not using -R reserved_va, we cannot really limit the guest - * to less address space than the host. For 32-bit guests, this - * acts as a sanity check that we're not giving the guest an address - * that it cannot even represent. For 64-bit guests... the address - * might not be what the real kernel would give, but it is at least - * representable in the guest. - * - * TODO: Improve address allocation to avoid this problem, and to - * avoid setting bits at the top of guest addresses that might need - * to be used for tags. + * The last byte of the guest address space. + * If reserved_va is non-zero, guest_addr_max matches. + * If reserved_va is zero, guest_addr_max equals the full guest space. */ -#define GUEST_ADDR_MAX_ \ - ((MIN_CONST(TARGET_VIRT_ADDR_SPACE_BITS, TARGET_ABI_BITS) <= 32) ? \ - UINT32_MAX : ~0ul) -#define GUEST_ADDR_MAX (reserved_va ? : GUEST_ADDR_MAX_) +extern unsigned long guest_addr_max; #ifndef TARGET_TAGGED_ADDRESSES static inline abi_ptr cpu_untagged_addr(CPUState *cs, abi_ptr x) @@ -61,17 +49,16 @@ static inline void *g2h(CPUState *cs, abi_ptr x) static inline bool guest_addr_valid_untagged(abi_ulong x) { - return x <= GUEST_ADDR_MAX; + return x <= guest_addr_max; } static inline bool guest_range_valid_untagged(abi_ulong start, abi_ulong len) { - return len - 1 <= GUEST_ADDR_MAX && start <= GUEST_ADDR_MAX - len + 1; + return len - 1 <= guest_addr_max && start <= guest_addr_max - len + 1; } #define h2g_valid(x) \ - (HOST_LONG_BITS <= TARGET_VIRT_ADDR_SPACE_BITS || \ - (uintptr_t)(x) - guest_base <= GUEST_ADDR_MAX) + ((uintptr_t)(x) - guest_base <= guest_addr_max) #define h2g_nocheck(x) ({ \ uintptr_t __ret = (uintptr_t)(x) - guest_base; \ diff --git a/accel/tcg/user-exec.c b/accel/tcg/user-exec.c index adc5296ba5..f674fd875e 100644 --- a/accel/tcg/user-exec.c +++ b/accel/tcg/user-exec.c @@ -500,7 +500,7 @@ void page_set_flags(vaddr start, vaddr last, int flags) guest address space. If this assert fires, it probably indicates a missing call to h2g_valid. */ assert(start <= last); - assert(last <= GUEST_ADDR_MAX); + assert(last <= guest_addr_max); /* Only set PAGE_ANON with new mappings. */ assert(!(flags & PAGE_ANON) || (flags & PAGE_RESET)); assert_memory_lock(); @@ -621,7 +621,7 @@ vaddr page_find_range_empty(vaddr min, vaddr max, vaddr len, vaddr align) vaddr len_m1, align_m1; assert(min <= max); - assert(max <= GUEST_ADDR_MAX); + assert(max <= guest_addr_max); assert(len != 0); assert(is_power_of_2(align)); assert_memory_lock(); diff --git a/bsd-user/main.c b/bsd-user/main.c index fa7645a56e..603fc80ba7 100644 --- a/bsd-user/main.c +++ b/bsd-user/main.c @@ -89,6 +89,7 @@ bool have_guest_base; #endif unsigned long reserved_va; +unsigned long guest_addr_max; const char *interp_prefix = CONFIG_QEMU_INTERP_PREFIX; const char *qemu_uname_release; @@ -500,6 +501,13 @@ int main(int argc, char **argv) /* MAX_RESERVED_VA + 1 is a large power of 2, so is aligned. */ reserved_va = max_reserved_va; } + if (reserved_va != 0) { + guest_addr_max = reserved_va; + } else if (MIN(TARGET_VIRT_ADDR_SPACE_BITS, TARGET_ABI_BITS) <= 32) { + guest_addr_max = UINT32_MAX; + } else { + guest_addr_max = ~0ul; + } if (getenv("QEMU_STRACE")) { do_strace = 1; diff --git a/linux-user/main.c b/linux-user/main.c index 4af7f49f38..5ac5b55dc6 100644 --- a/linux-user/main.c +++ b/linux-user/main.c @@ -122,6 +122,7 @@ static const char *last_log_filename; #endif unsigned long reserved_va; +unsigned long guest_addr_max; static void usage(int exitcode); @@ -858,6 +859,13 @@ int main(int argc, char **argv, char **envp) /* MAX_RESERVED_VA + 1 is a large power of 2, so is aligned. */ reserved_va = max_reserved_va; } + if (reserved_va != 0) { + guest_addr_max = reserved_va; + } else if (MIN(TARGET_VIRT_ADDR_SPACE_BITS, TARGET_ABI_BITS) <= 32) { + guest_addr_max = UINT32_MAX; + } else { + guest_addr_max = ~0ul; + } /* * Temporarily disable From patchwork Thu May 1 14:55:15 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Richard Henderson X-Patchwork-Id: 886347 Delivered-To: patch@linaro.org Received: by 2002:a5d:430f:0:b0:38f:210b:807b with SMTP id h15csp359269wrq; Thu, 1 May 2025 07:58:14 -0700 (PDT) X-Forwarded-Encrypted: i=2; AJvYcCWUT/4BIG3pf/vlTtCq5xi+oUute9+cr5s1qS0b6UFgIcFEBvNdfBJQizOKRQXUmi6MBoyebw==@linaro.org X-Google-Smtp-Source: AGHT+IFc9deLpJjnO6pbLWlEKRWhB277+2phBUzOoWqaDysfgqs4T4h75BzFi5MVGsFmC/CEgW/y X-Received: by 2002:a05:620a:2893:b0:7c7:82a6:ec7c with SMTP id af79cd13be357-7cacef4f048mr351982285a.4.1746111494212; Thu, 01 May 2025 07:58:14 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1746111494; cv=none; d=google.com; s=arc-20240605; b=kdVW1sCIVdtrnyWIqsJs5rQQfd6apyj0n8wrpbOvvGV6evKfT0zJsYJxkcjAb/1MRa hYbjwaxF1N0QCeGEapT0VeF+XhQnus1xkQXFhpsOKV3TbwpExS22qIjvnmg3OaXlwokj pQb5mrjbLb8HUATQ3+bO5oUqLvnDBxNuT0taiXPG6zWw+71O9W5mqbdB3zLdnHRRbM+l ylmmOlAcuvU03cFy/id5LdTMDFobG5l8mXrljGHjADksgOkZPyPePxqsCIWR552B6n/Z pQXCNQUeSiEyvkaZYeOPnQ2bW5acLQL845cLgdSvIGEfpdD9WA7557dP8QejTZfu5IDR T4MQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=sender:errors-to:list-subscribe:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:content-transfer-encoding :mime-version:references:in-reply-to:message-id:date:subject:to:from :dkim-signature; bh=EmF5AKGTNJn4wCHiHLWI2Bve9d/Bi6dFsapJqoMpZyA=; fh=PnYt+qEB9tAfMKoqBm2xjKOFpYyFFGPudh5cVIoieJM=; b=OvnPlsNyaa+rfCaApMUWPrhW7Y1LQ/sBgVZFo08e2woIHdfm8pMoefVK9ZVvdsSW/Z YOt+zqpp+5j8i9Q/D/QH52u87oVLhibzFfdX62U+yMS9N5HE/aUxHe6nAp4OdjIbk/pT 3H7I7T0Q/02BnnBasESyZ/WKmOBj78zoeeDzgZkatP0J/X2MHSND1yzafcsA39OThAxh /YJCCl+007eEzRso0/mxxOa7QNXSApyXF7HravRschTLCOJElqGE6a7nZ5g7BCHu2ru9 wsiAGbBuQb33GZ4o0Soa66o8x6cftltiB9bLdn8SmsXAkViaTQxc/X1peEzJS5woxymC a5Pg==; dara=google.com ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=rbgZhXm7; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org; dara=neutral header.i=@linaro.org Return-Path: Received: from lists.gnu.org (lists.gnu.org. [209.51.188.17]) by mx.google.com with ESMTPS id af79cd13be357-7cad23c97c8si84843185a.142.2025.05.01.07.58.14 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Thu, 01 May 2025 07:58:14 -0700 (PDT) Received-SPF: pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; Authentication-Results: mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=rbgZhXm7; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org; dara=neutral header.i=@linaro.org Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1uAVK2-0005i1-OP; Thu, 01 May 2025 10:55:34 -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 1uAVJx-0005fj-Dc for qemu-devel@nongnu.org; Thu, 01 May 2025 10:55:29 -0400 Received: from mail-pl1-x636.google.com ([2607:f8b0:4864:20::636]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1uAVJv-0005T3-L3 for qemu-devel@nongnu.org; Thu, 01 May 2025 10:55:29 -0400 Received: by mail-pl1-x636.google.com with SMTP id d9443c01a7336-22928d629faso10450615ad.3 for ; Thu, 01 May 2025 07:55:27 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1746111326; x=1746716126; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date:message-id :reply-to; bh=EmF5AKGTNJn4wCHiHLWI2Bve9d/Bi6dFsapJqoMpZyA=; b=rbgZhXm7GbP07vxR0Ywywa3MVq4wUFUntDAJQ/Muck6oHL17rRhAr8XGQbKXGxVrQK Jf4OEANWWW14rxQZSHEiPmQTKGJJA6zrO5ZRf/ZvzLuU+pPG32CaL1wxVDX6EPE0wbQ9 T9dpgW/3TlYRUDZENvgZilnGriPc9y3A+9Z9hI4Dv2ZFFZUCWAnXgVsVaE9oGzdpjyM7 gc5ZxPO/oQjOO0kRzmy1ZRcfTvp5qm392Ci9W/iMCtG1Rq6XtlaQXvWDOo5sQT8ynTlQ R+u9qESOwAzQ6k7DIMosY8XCwwiyGG8LGj06RU8RBUMhuO50ZI4EM9rm+IjSjLdnBQbh Q5Fg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1746111326; x=1746716126; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=EmF5AKGTNJn4wCHiHLWI2Bve9d/Bi6dFsapJqoMpZyA=; b=LqXejr0u+8ygh/XpmPIRfN+NFreInqhPv34X1C7Epos/gt94LlAXcAbFObSfHN8Pb1 51foRsURF5xAg2z0kIjej4buZiKuhwxHWWCjax7KWTwszJ5R8a95I3+PhY92qYhSEn/C wmJdvK+IHe83IJBO3QaZ5qqBCVOkmaR970Stm0lWe3v0lzTqyEoYsqmS49iKrH1XjCzk OwnsU2aIwU8VNdBa4SesdQZ1v1WMD3VkOsw4RmgxOaeeagaKdZdGQkBh/ZTzrbAyH/TT pFxQktwUAuX0eU5sak4gmpdZ+1QTW6/sQY9ddPEFm1byXPAQHNHFTJ88YLipN2To2KE9 dXbg== X-Gm-Message-State: AOJu0Yx43HOeOSpMWEBvUfqO82tHdXWobnEkjgPdrQpHqRUK/CaSe+pr GEeAKErSvK2kBvkIWXZxHGhCSvwPJfXNzhSGmZIq9/azo8TZRYbkzLZEqd7yD1GnQEC8AbEGF2x 3 X-Gm-Gg: ASbGncsoOAtbt5wbG32xPV7b2gZUXiwns2iOBJz85jYhkC3ilscnNAJxgdyB9k6OJpr blLTTxJTRqpSr0ANFLIbsIx8kTNRDhS8+SOTvzse+8acc9c+PZQXjWPDOnSQNm1oCd+KXxr2h1v cwEAYUNakSDD0PG8YQuvs0z6SxQ/sRIf3/IKkQno+x4WIDR4pYT+JMhvdCMsZ4zbEr2x8XDSCpE WHOMEJc7Wb2ZiZ/vEeMZDQTz7Nvg+JiL9uw1Q/pBtDNd9+XkNy01qvXnbP2pEj+okP+NHxqOkpO VD2dX5URkzRzLFikBOe98aNRDCDuralafLPNBUYMlMZtbcMC/IRhrqoFiFdWsDKoDLEaG9ZYcI4 = X-Received: by 2002:a17:903:1a6b:b0:224:2a6d:55ae with SMTP id d9443c01a7336-22e0863b023mr47358415ad.48.1746111326043; Thu, 01 May 2025 07:55:26 -0700 (PDT) Received: from stoup.. (71-212-47-143.tukw.qwest.net. [71.212.47.143]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-22e0bb0e770sm7644415ad.92.2025.05.01.07.55.25 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 01 May 2025 07:55:25 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PATCH 07/11] include/user: Use vaddr in guest-host.h Date: Thu, 1 May 2025 07:55:15 -0700 Message-ID: <20250501145520.2695073-8-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250501145520.2695073-1-richard.henderson@linaro.org> References: <20250501145520.2695073-1-richard.henderson@linaro.org> MIME-Version: 1.0 Received-SPF: pass client-ip=2607:f8b0:4864:20::636; envelope-from=richard.henderson@linaro.org; helo=mail-pl1-x636.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, 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+patch=linaro.org@nongnu.org Sender: qemu-devel-bounces+patch=linaro.org@nongnu.org Replace abi_ptr and abi_ulong with vaddr. Signed-off-by: Richard Henderson Reviewed-by: Pierrick Bouvier --- include/user/guest-host.h | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/include/user/guest-host.h b/include/user/guest-host.h index 8e10d36948..0656f2e356 100644 --- a/include/user/guest-host.h +++ b/include/user/guest-host.h @@ -8,7 +8,7 @@ #ifndef USER_GUEST_HOST_H #define USER_GUEST_HOST_H -#include "user/abitypes.h" +#include "exec/vaddr.h" #include "user/guest-base.h" #include "cpu.h" @@ -30,29 +30,29 @@ extern unsigned long reserved_va; extern unsigned long guest_addr_max; #ifndef TARGET_TAGGED_ADDRESSES -static inline abi_ptr cpu_untagged_addr(CPUState *cs, abi_ptr x) +static inline vaddr cpu_untagged_addr(CPUState *cs, vaddr x) { return x; } #endif /* All direct uses of g2h and h2g need to go away for usermode softmmu. */ -static inline void *g2h_untagged(abi_ptr x) +static inline void *g2h_untagged(vaddr x) { return (void *)((uintptr_t)(x) + guest_base); } -static inline void *g2h(CPUState *cs, abi_ptr x) +static inline void *g2h(CPUState *cs, vaddr x) { return g2h_untagged(cpu_untagged_addr(cs, x)); } -static inline bool guest_addr_valid_untagged(abi_ulong x) +static inline bool guest_addr_valid_untagged(vaddr x) { return x <= guest_addr_max; } -static inline bool guest_range_valid_untagged(abi_ulong start, abi_ulong len) +static inline bool guest_range_valid_untagged(vaddr start, vaddr len) { return len - 1 <= guest_addr_max && start <= guest_addr_max - len + 1; } @@ -62,7 +62,7 @@ static inline bool guest_range_valid_untagged(abi_ulong start, abi_ulong len) #define h2g_nocheck(x) ({ \ uintptr_t __ret = (uintptr_t)(x) - guest_base; \ - (abi_ptr)__ret; \ + (vaddr)__ret; \ }) #define h2g(x) ({ \ From patchwork Thu May 1 14:55:16 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Richard Henderson X-Patchwork-Id: 886345 Delivered-To: patch@linaro.org Received: by 2002:a5d:430f:0:b0:38f:210b:807b with SMTP id h15csp359155wrq; Thu, 1 May 2025 07:57:54 -0700 (PDT) X-Forwarded-Encrypted: i=2; AJvYcCX32tweciEF8Iph0QON87eQzYMlMkRwh10/Ys29ezy3tnDyQc4W+40GdX5w2k4TdWsQotc0lQ==@linaro.org X-Google-Smtp-Source: AGHT+IFRUFJgr5J8q9irBVHGGU9l7oBvdKu2imrN93gSsNNvHQtDaImY+tVv/26OFkbvuDRvMYXU X-Received: by 2002:a05:622a:514b:b0:471:80ef:35e7 with SMTP id d75a77b69052e-48b19d9f62dmr42480101cf.4.1746111473954; Thu, 01 May 2025 07:57:53 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1746111473; cv=none; d=google.com; s=arc-20240605; b=DztYfQyalghbkcrS6dGYvZ3tIsh4tdi2zmM2kru3DrO5eISx8R9mz9q/qHDi6wOuVr gkUxwyJKhpDgoV34WatKCrLdGOwywsBD51+GJbxroqhKXnXa3UZETLvvuROn8TN9P0CI teR86985CgpXdicMXshuDnXrttFLOErdMB58U0V2GTLXVIsgYpitmgT/GCivz7zYLaUa OKePz87Yu9jnaFb088u5mSvyWz07UShPQ+Fp7C6KX9Vsts18Nk2sObA9NuiuEXApee3C BP0y6oWJmMeFpb9ENwZb0hLim77itpQj63ToTR0cbcJURhOKBfI04pnrFZYzJTbkzSgu npNA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=sender:errors-to:list-subscribe:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:content-transfer-encoding :mime-version:references:in-reply-to:message-id:date:subject:to:from :dkim-signature; bh=fVyP76o6EOcJrt7iH7jc6aMX3NadFlFM45GV6fkbfLE=; fh=PnYt+qEB9tAfMKoqBm2xjKOFpYyFFGPudh5cVIoieJM=; b=dz8lm7QlGwX3Ytv2Hm715woXixdTgvCKF7jmwkD1KgnIf+LRhOUKLXaApWgkg1ESGa amC3uaMNLO/2yHJk9t3F7oq3VNvZewxADnPK5kel/IkWEPfx2Scfj4wEnpWLfi346087 wMjbhhx2iujLkCiFLxvahXESfC7LzSwx0mgfQjxzYjccl01G8cqZ7oLb+OMZRPcEHO6t 4NUTXXBjRUDtrAHjIIkI7hb2D6hkIQqyNWKVivPpjCk+ZN/WJnCnMDm+eZ6SaLUe3vNv L+ecHJUUvUf5rLdT6+2hkILhdNJ7hirVsaPCWF3TlsKYbLuf1PUYESSBm0ampv60mxXN GRwg==; dara=google.com ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=BycKXzwa; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org; dara=neutral header.i=@linaro.org Return-Path: Received: from lists.gnu.org (lists.gnu.org. [209.51.188.17]) by mx.google.com with ESMTPS id d75a77b69052e-48b98724416si7348551cf.385.2025.05.01.07.57.53 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Thu, 01 May 2025 07:57:53 -0700 (PDT) Received-SPF: pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; Authentication-Results: mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=BycKXzwa; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org; dara=neutral header.i=@linaro.org Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1uAVK2-0005i3-T1; Thu, 01 May 2025 10:55:35 -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 1uAVJy-0005gJ-EA for qemu-devel@nongnu.org; Thu, 01 May 2025 10:55:30 -0400 Received: from mail-pl1-x635.google.com ([2607:f8b0:4864:20::635]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1uAVJw-0005Ub-DO for qemu-devel@nongnu.org; Thu, 01 May 2025 10:55:30 -0400 Received: by mail-pl1-x635.google.com with SMTP id d9443c01a7336-227cf12df27so10358725ad.0 for ; Thu, 01 May 2025 07:55:27 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1746111327; x=1746716127; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date:message-id :reply-to; bh=fVyP76o6EOcJrt7iH7jc6aMX3NadFlFM45GV6fkbfLE=; b=BycKXzwagI0bVGVq8e7jJ+R2mglSALWkb10kKRADTMfCEUC9TF5E7PDXX6ntyRYjlw 0nBTxE28TzvYCGgIA4rWZ+PPcLcQ1h9NB+V7zKw9+uxTqWtc4mQWLp9MnexNT3ntgRN9 IsiryT8KBI6mUb246xhArSOE7eGCQNnKrccs+2fuAA+xRrkJqKY7KkOlkKY1t60p6Pp4 Lu5jH0RvKIGSPthMA/NFK793KVlznTLGFOyn/JjoY5PK/1BhxKAZ8klobirIfjYM18cA SB7TCigExG0fActklIRYK+bJkWk50sawmeFPSZd0LYvwqskqkCihlpGObP6QJgzl9iGY jZ/g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1746111327; x=1746716127; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=fVyP76o6EOcJrt7iH7jc6aMX3NadFlFM45GV6fkbfLE=; b=qF4NEB6Q7q85CucUBi/AHWEMEbGmd+cmTw33Bju0f5kncjbBipK71uijklUCGOheKR 5NnkPQ0QxbF6lgnKzI50xhgGSvBUymguyC+IbAxZXoyhxFlpYxbJm/Y0fnTEHO7c6ywD B8O8hpa6IyFmS64s6hA+c/Zr82U74C238lUxoV3dCfUP3YHXsU1ADOnJThiOYYjinTqn llJ/xVLFcS05FDld5N5OoLqk0y8dSq0Dj8s+UvJDmlMZCzkUesOy4bULoBtHLMslx1tm KB6IoDICmzKiApelW8qhgeXlK8xthc8dCxcvrCPqYJVJ+IQmT8mqN7hTkGSSflrmt5sx k5fA== X-Gm-Message-State: AOJu0YwmqlEdFF4OmFi4CWlvfeOeBmZFFRC1qoA+3U/dt47SLZ51eojt EMkYSr3uJKyp+AVMVrAvAe1nBMGcjsuJAN2bGbNufHxOt6o5k+YA88PzKWErS85yPItsJboCyoJ G X-Gm-Gg: ASbGncv7ldrekLlcaoRWx3gZn54vDKoTocXjIOuLhaY7Gv7TC99R7msZeSM3PWNQzdh VW58C1kFP9p/aSAo+VPe/yiqrAZI4gg+sJEbom2yGkRW4/iK+zD+knoxDueACmcH6MabWLMPz2T WnqVIycoINaq4/VfguQFyQSirpnTNypHoO7LK5kqZWUCY+RVioEtW5jPRRX4oQjxRq+UcmrgWmr 2Tatd/ycj2v4bUpUr6Q+Kwr3sxHsJYn1f0DHli2/F51aBIR/asa1B8U/mg6ONZqupWv8WFTMdy/ 4dcn9UvzSshKMdah6OYvVlIemiupMVURx5Zmq9KOdVkqQJD2ih6z359kAuGyZooIRyfZZY1yUlg = X-Received: by 2002:a17:903:41ce:b0:216:4676:dfb5 with SMTP id d9443c01a7336-22e087ff587mr39495885ad.21.1746111326809; Thu, 01 May 2025 07:55:26 -0700 (PDT) Received: from stoup.. (71-212-47-143.tukw.qwest.net. [71.212.47.143]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-22e0bb0e770sm7644415ad.92.2025.05.01.07.55.26 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 01 May 2025 07:55:26 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PATCH 08/11] accel/tcg: Move TARGET_TAGGED_ADDRESSES to TCGCPUOps.untagged_addr Date: Thu, 1 May 2025 07:55:16 -0700 Message-ID: <20250501145520.2695073-9-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250501145520.2695073-1-richard.henderson@linaro.org> References: <20250501145520.2695073-1-richard.henderson@linaro.org> MIME-Version: 1.0 Received-SPF: pass client-ip=2607:f8b0:4864:20::635; envelope-from=richard.henderson@linaro.org; helo=mail-pl1-x635.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, 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+patch=linaro.org@nongnu.org Sender: qemu-devel-bounces+patch=linaro.org@nongnu.org Signed-off-by: Richard Henderson Reviewed-by: Pierrick Bouvier --- include/accel/tcg/cpu-ops.h | 7 +++++++ include/user/guest-host.h | 8 +++++--- target/arm/cpu-param.h | 7 +------ target/arm/cpu.h | 32 +------------------------------- target/arm/cpu.c | 27 ++++++++++++++++++++++++++- 5 files changed, 40 insertions(+), 41 deletions(-) diff --git a/include/accel/tcg/cpu-ops.h b/include/accel/tcg/cpu-ops.h index 23cd6af0b2..cd22e5d5b9 100644 --- a/include/accel/tcg/cpu-ops.h +++ b/include/accel/tcg/cpu-ops.h @@ -157,6 +157,13 @@ struct TCGCPUOps { */ void (*record_sigbus)(CPUState *cpu, vaddr addr, MMUAccessType access_type, uintptr_t ra); + + /** + * untagged_addr: Remove an ignored tag from an address + * @cpu: cpu context + * @addr: tagged guest address + */ + vaddr (*untagged_addr)(CPUState *cs, vaddr addr); #else /** @do_interrupt: Callback for interrupt handling. */ void (*do_interrupt)(CPUState *cpu); diff --git a/include/user/guest-host.h b/include/user/guest-host.h index 0656f2e356..8f7ef75896 100644 --- a/include/user/guest-host.h +++ b/include/user/guest-host.h @@ -10,7 +10,7 @@ #include "exec/vaddr.h" #include "user/guest-base.h" -#include "cpu.h" +#include "accel/tcg/cpu-ops.h" /* * If non-zero, the guest virtual address space is a contiguous subset @@ -29,12 +29,14 @@ extern unsigned long reserved_va; */ extern unsigned long guest_addr_max; -#ifndef TARGET_TAGGED_ADDRESSES static inline vaddr cpu_untagged_addr(CPUState *cs, vaddr x) { + const TCGCPUOps *tcg_ops = cs->cc->tcg_ops; + if (tcg_ops->untagged_addr) { + return tcg_ops->untagged_addr(cs, x); + } return x; } -#endif /* All direct uses of g2h and h2g need to go away for usermode softmmu. */ static inline void *g2h_untagged(vaddr x) diff --git a/target/arm/cpu-param.h b/target/arm/cpu-param.h index 5c5bc8a009..8b46c7c570 100644 --- a/target/arm/cpu-param.h +++ b/target/arm/cpu-param.h @@ -17,14 +17,9 @@ #endif #ifdef CONFIG_USER_ONLY -# ifdef TARGET_AARCH64 -# define TARGET_TAGGED_ADDRESSES -# ifdef __FreeBSD__ -# define TARGET_PAGE_BITS 12 -# else +# if defined(TARGET_AARCH64) && defined(CONFIG_LINUX) /* Allow user-only to vary page size from 4k */ # define TARGET_PAGE_BITS_VARY -# endif # else # define TARGET_PAGE_BITS 12 # endif diff --git a/target/arm/cpu.h b/target/arm/cpu.h index be4449ca06..23720b2b17 100644 --- a/target/arm/cpu.h +++ b/target/arm/cpu.h @@ -783,12 +783,9 @@ typedef struct CPUArchState { #else /* CONFIG_USER_ONLY */ /* For usermode syscall translation. */ bool eabi; -#endif /* CONFIG_USER_ONLY */ - -#ifdef TARGET_TAGGED_ADDRESSES /* Linux syscall tagged address support */ bool tagged_addr_enable; -#endif +#endif /* CONFIG_USER_ONLY */ } CPUARMState; static inline void set_feature(CPUARMState *env, int feature) @@ -3217,34 +3214,7 @@ extern const uint64_t pred_esz_masks[5]; #define TAG_GRANULE (1 << LOG2_TAG_GRANULE) #ifdef CONFIG_USER_ONLY - #define TARGET_PAGE_DATA_SIZE (TARGET_PAGE_SIZE >> (LOG2_TAG_GRANULE + 1)) - -#ifdef TARGET_TAGGED_ADDRESSES -/** - * cpu_untagged_addr: - * @cs: CPU context - * @x: tagged address - * - * Remove any address tag from @x. This is explicitly related to the - * linux syscall TIF_TAGGED_ADDR setting, not TBI in general. - * - * There should be a better place to put this, but we need this in - * include/exec/cpu_ldst.h, and not some place linux-user specific. - */ -static inline target_ulong cpu_untagged_addr(CPUState *cs, target_ulong x) -{ - CPUARMState *env = cpu_env(cs); - if (env->tagged_addr_enable) { - /* - * TBI is enabled for userspace but not kernelspace addresses. - * Only clear the tag if bit 55 is clear. - */ - x &= sextract64(x, 0, 56); - } - return x; -} -#endif /* TARGET_TAGGED_ADDRESSES */ #endif /* CONFIG_USER_ONLY */ #endif diff --git a/target/arm/cpu.c b/target/arm/cpu.c index 2020aec54a..45cb6fd7ee 100644 --- a/target/arm/cpu.c +++ b/target/arm/cpu.c @@ -2671,7 +2671,31 @@ static const char *arm_gdb_get_core_xml_file(CPUState *cs) return "arm-core.xml"; } -#ifndef CONFIG_USER_ONLY +#ifdef CONFIG_USER_ONLY +/** + * aarch64_untagged_addr: + * + * Remove any address tag from @x. This is explicitly related to the + * linux syscall TIF_TAGGED_ADDR setting, not TBI in general. + * + * There should be a better place to put this, but we need this in + * include/exec/cpu_ldst.h, and not some place linux-user specific. + * + * Note that arm-*-user will never set tagged_addr_enable. + */ +static vaddr aarch64_untagged_addr(CPUState *cs, vaddr x) +{ + CPUARMState *env = cpu_env(cs); + if (env->tagged_addr_enable) { + /* + * TBI is enabled for userspace but not kernelspace addresses. + * Only clear the tag if bit 55 is clear. + */ + x &= sextract64(x, 0, 56); + } + return x; +} +#else #include "hw/core/sysemu-cpu-ops.h" static const struct SysemuCPUOps arm_sysemu_ops = { @@ -2702,6 +2726,7 @@ static const TCGCPUOps arm_tcg_ops = { #ifdef CONFIG_USER_ONLY .record_sigsegv = arm_cpu_record_sigsegv, .record_sigbus = arm_cpu_record_sigbus, + .untagged_addr = aarch64_untagged_addr, #else .tlb_fill_align = arm_cpu_tlb_fill_align, .cpu_exec_interrupt = arm_cpu_exec_interrupt, From patchwork Thu May 1 14:55:17 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Richard Henderson X-Patchwork-Id: 886341 Delivered-To: patch@linaro.org Received: by 2002:a5d:430f:0:b0:38f:210b:807b with SMTP id h15csp358820wrq; Thu, 1 May 2025 07:56:58 -0700 (PDT) X-Forwarded-Encrypted: i=2; AJvYcCUfCi/j+fC/cjERYs+Ylfl2dX/Eao8fJ/4O+bhCCEpvr9T93vXW0TaCGcfERTjL1yz+TkDqCw==@linaro.org X-Google-Smtp-Source: AGHT+IHKtnRzNRRKCON0ezHg8RiR+7nGffJButtBqx5u7siXYv7/fdjqqae6xcvzl9K+SgVQr8+E X-Received: by 2002:a05:620a:179e:b0:7c5:d888:7098 with SMTP id af79cd13be357-7cacd78d596mr443678685a.44.1746111418546; Thu, 01 May 2025 07:56:58 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1746111418; cv=none; d=google.com; s=arc-20240605; b=hOTBLB6zTfew5fiQKrcuxtbMp9qzv+U2CwvKb0dMq9zzE6WrC6Vlkl2fPIWm12AlXF zh31gT/e9GaRUgHKVY07Dxl5tcKOrS0RwX4677BLFCGwYE8kigj+Fm/iWRbGCT1icyCC VlHh9mexFO/svW/LKaBQ+lRU1apHMaNiMXbk0qQ5UJUjkCiNTfjrYnbshRHxsuRrOMn5 F+DRlMAycd6ontPUWr6ed3So6eHw5OAL7bRBfs/cGpSEJ8BCXqefQJuVyFHj/o3aQWKI ui6sWyiE2p/MF9bQW/uQnNeCvqcZJgJ+nJVdV/cOt/Bwi4A4/4/DuPLPeCwmLihI6AVQ foEA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=sender:errors-to:list-subscribe:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:content-transfer-encoding :mime-version:references:in-reply-to:message-id:date:subject:to:from :dkim-signature; bh=K93yqXiT68gefwedjtdMyWq1+8RZcqNvsUBZSLOQy7s=; fh=PnYt+qEB9tAfMKoqBm2xjKOFpYyFFGPudh5cVIoieJM=; b=YL5GFpSLPoZmOejZgCpOOD9PSq9EhdrCVzX6pNIQTx9tJjYAdHA0+c36nwoKGvJUFw i0A/1l2zSkYQ3gfjUQvVSappxBSNPCTq58pEUI/5XPKWnTInFCav8UYyfItm6pl11oxP QfhttWXrDVpob6mU8Ga/wXe8l5zbvMwSpRZEgg9fxEaQMwBOkdcmFK6fyXnU5Hjaw9BK Qjf3dzvTvgtMtWlVZtVzOyR037Xwb3sICkmpGdIezeUwbrUxc6PBAwdCwRtpT6xsfu6B G1fg686qfiQZIEnTFCvLF3rqz024rc1FeR+nv3X9st4+2wGmaODr9xoeCmjKgLhn2nfw dEuQ==; dara=google.com ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b="tV3z/Cxo"; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org; dara=neutral header.i=@linaro.org Return-Path: Received: from lists.gnu.org (lists.gnu.org. [209.51.188.17]) by mx.google.com with ESMTPS id af79cd13be357-7cad2436800si82289585a.402.2025.05.01.07.56.58 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Thu, 01 May 2025 07:56:58 -0700 (PDT) Received-SPF: pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; Authentication-Results: mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b="tV3z/Cxo"; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org; dara=neutral header.i=@linaro.org Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1uAVKC-0005kL-NJ; Thu, 01 May 2025 10:55:44 -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 1uAVJz-0005hG-VY for qemu-devel@nongnu.org; Thu, 01 May 2025 10:55:31 -0400 Received: from mail-pl1-x630.google.com ([2607:f8b0:4864:20::630]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1uAVJx-0005W8-UR for qemu-devel@nongnu.org; Thu, 01 May 2025 10:55:31 -0400 Received: by mail-pl1-x630.google.com with SMTP id d9443c01a7336-2279915e06eso11716665ad.1 for ; Thu, 01 May 2025 07:55:29 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1746111328; x=1746716128; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date:message-id :reply-to; bh=K93yqXiT68gefwedjtdMyWq1+8RZcqNvsUBZSLOQy7s=; b=tV3z/Cxo0QraFqqC6MCbopKi1AxuoGsesNjyQggEs/55Q2sHn6oW661WwJPqLs25UU F9KTnT1C7PIsVS6N5SKXE8KakZf7OoWrg9FQexDRhz1n0H1MZmqfHpo0/eyObKhvrvVk LU3zqzcl8+6KvKpHuMYzT/1fCeVq/xooeSwQiMtkizaRTmvcfQRPbmq4Ef2I6Z0Zr1du 1WVXMNiSxxuIxlQtwa8pKFkiCCbq5BmuU7a/Qv07QOfXEzY3vNYBuN65jiHkLVCb4YA5 l2pmpv9KaEGnRZEIIETV+UhsEBfrfJV8VdDLlUpWzJk/wVPAsdy48z8FIkAFJ7w5z9sR gyAw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1746111328; x=1746716128; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=K93yqXiT68gefwedjtdMyWq1+8RZcqNvsUBZSLOQy7s=; b=nlrsf1H8md96T+qRanueVnKftMutsRk66DxSgp+hMu4X1ox1LBvFkAoEWm8KApmj+u 27LTVVU/5K+rCj1weVCD4cUdLRCnBNVG3sdY81XmD3/ekSz8dXelgsfpCKTGbGcLj9R/ Q0CUPeSgEAFxoypnEmyf5NILGYW/wFqODFbsSAVqeG0AVS+BFm9PCBffGQ4VtCXrOKuU Lav/lkQdUBk2PM+jVlNNYnoljJ4UCi4VycnZ40D+btrVosUbnJ5ZZ3wq0quyxbwcu+6O Bpw9qriCdRBDdLgA54LteFY1gM0muw1oO5Ecg+4c3jcoNuX3tae9MndCqvsXD20t1gJy 5x8g== X-Gm-Message-State: AOJu0YzWXGzYP1NUetstq4Gnd2qK3/WjvUtdVYAto2j/OFiPs4nZYH6e kLB4FyZwubwCIIBb4CHHwMHKHhX92Be3LjywYuL+9gnpZzTCCidiplAh15DwIHp+ONY9uzW7+fp t X-Gm-Gg: ASbGncvEf0yzdjuVAV5C67q2wLfYh59C2tqnmo1AeA3FSOH4+Tz/3Hlfm0x0SM0siA1 nBKfV6teqmC/U7xRTd61GeLaSA1iQpwhPEc/dMxi7BGBVqD45cgXZN+SwqV0Y2YlP4eKvrUoaHR UnFxZwgt2cTUvZH6XiT7B3xP8kEV5pNzSwQv3BTfZYbgOd5ZlZ5mUqpNN2KAWsN05RTkym4JftH qTKQQYXbX5U9RXZDM0mEl1z3pzMUuH2kOq4bSh/MYq+4M4EyBMF9MzZR95M6nk+pKOi9s83bpuJ 19EvknzCq5/PC/T5Q+wdAJ9Klu7P9zg20XNF3zlZbE2wSPBWam2jml2csQBFrSnMigpnQmrpsNp EqibSoI1rlw== X-Received: by 2002:a17:902:ce82:b0:223:5241:f5ca with SMTP id d9443c01a7336-22e040bf431mr44250755ad.20.1746111327667; Thu, 01 May 2025 07:55:27 -0700 (PDT) Received: from stoup.. (71-212-47-143.tukw.qwest.net. [71.212.47.143]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-22e0bb0e770sm7644415ad.92.2025.05.01.07.55.27 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 01 May 2025 07:55:27 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PATCH 09/11] accel/tcg: Remove TARGET_PAGE_DATA_SIZE Date: Thu, 1 May 2025 07:55:17 -0700 Message-ID: <20250501145520.2695073-10-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250501145520.2695073-1-richard.henderson@linaro.org> References: <20250501145520.2695073-1-richard.henderson@linaro.org> MIME-Version: 1.0 Received-SPF: pass client-ip=2607:f8b0:4864:20::630; envelope-from=richard.henderson@linaro.org; helo=mail-pl1-x630.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, 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+patch=linaro.org@nongnu.org Sender: qemu-devel-bounces+patch=linaro.org@nongnu.org This macro is used by only one target, and even then under unusual conditions -- AArch64 with mmap's PROT_MTE flag. Since page size for aarch64-linux-user is variable, the per-page data size is also variable. Since page_reset_target_data via target_munmap does not have ready access to CPUState, simply pass in the size from the first allocation and remember that. Signed-off-by: Richard Henderson Reviewed-by: Pierrick Bouvier --- include/user/page-protection.h | 8 +++++--- target/arm/cpu.h | 4 ---- accel/tcg/user-exec.c | 26 ++++++++++++++++---------- target/arm/tcg/mte_helper.c | 4 ++-- 4 files changed, 23 insertions(+), 19 deletions(-) diff --git a/include/user/page-protection.h b/include/user/page-protection.h index 86143212fd..4bde664e4a 100644 --- a/include/user/page-protection.h +++ b/include/user/page-protection.h @@ -73,18 +73,20 @@ bool page_check_range_empty(vaddr start, vaddr last); vaddr page_find_range_empty(vaddr min, vaddr max, vaddr len, vaddr align); /** - * page_get_target_data(address) + * page_get_target_data * @address: guest virtual address + * @size: per-page size * - * Return TARGET_PAGE_DATA_SIZE bytes of out-of-band data to associate + * Return @size bytes of out-of-band data to associate * with the guest page at @address, allocating it if necessary. The * caller should already have verified that the address is valid. + * The value of @size must be the same for every call. * * The memory will be freed when the guest page is deallocated, * e.g. with the munmap system call. */ __attribute__((returns_nonnull)) -void *page_get_target_data(vaddr address); +void *page_get_target_data(vaddr address, size_t size); typedef int (*walk_memory_regions_fn)(void *, vaddr, vaddr, int); int walk_memory_regions(void *, walk_memory_regions_fn); diff --git a/target/arm/cpu.h b/target/arm/cpu.h index 23720b2b17..6ed6409cb7 100644 --- a/target/arm/cpu.h +++ b/target/arm/cpu.h @@ -3213,8 +3213,4 @@ extern const uint64_t pred_esz_masks[5]; #define LOG2_TAG_GRANULE 4 #define TAG_GRANULE (1 << LOG2_TAG_GRANULE) -#ifdef CONFIG_USER_ONLY -#define TARGET_PAGE_DATA_SIZE (TARGET_PAGE_SIZE >> (LOG2_TAG_GRANULE + 1)) -#endif /* CONFIG_USER_ONLY */ - #endif diff --git a/accel/tcg/user-exec.c b/accel/tcg/user-exec.c index f674fd875e..46b1e97c30 100644 --- a/accel/tcg/user-exec.c +++ b/accel/tcg/user-exec.c @@ -870,7 +870,6 @@ tb_page_addr_t get_page_addr_code_hostp(CPUArchState *env, vaddr addr, return addr; } -#ifdef TARGET_PAGE_DATA_SIZE /* * Allocate chunks of target data together. For the only current user, * if we allocate one hunk per page, we have overhead of 40/128 or 40%. @@ -886,10 +885,16 @@ typedef struct TargetPageDataNode { } TargetPageDataNode; static IntervalTreeRoot targetdata_root; +static size_t target_page_data_size; void page_reset_target_data(vaddr start, vaddr last) { IntervalTreeNode *n, *next; + size_t size = target_page_data_size; + + if (likely(size == 0)) { + return; + } assert_memory_lock(); @@ -920,17 +925,22 @@ void page_reset_target_data(vaddr start, vaddr last) n_last = MIN(last, n->last); p_len = (n_last + 1 - n_start) >> TARGET_PAGE_BITS; - memset(t->data + p_ofs * TARGET_PAGE_DATA_SIZE, 0, - p_len * TARGET_PAGE_DATA_SIZE); + memset(t->data + p_ofs * size, 0, p_len * size); } } -void *page_get_target_data(vaddr address) +void *page_get_target_data(vaddr address, size_t size) { IntervalTreeNode *n; TargetPageDataNode *t; vaddr page, region, p_ofs; + /* Remember the size from the first call, and it should be constant. */ + if (unlikely(target_page_data_size != size)) { + assert(target_page_data_size == 0); + target_page_data_size = size; + } + page = address & TARGET_PAGE_MASK; region = address & TBD_MASK; @@ -945,8 +955,7 @@ void *page_get_target_data(vaddr address) mmap_lock(); n = interval_tree_iter_first(&targetdata_root, page, page); if (!n) { - t = g_malloc0(sizeof(TargetPageDataNode) - + TPD_PAGES * TARGET_PAGE_DATA_SIZE); + t = g_malloc0(sizeof(TargetPageDataNode) + TPD_PAGES * size); n = &t->itree; n->start = region; n->last = region | ~TBD_MASK; @@ -957,11 +966,8 @@ void *page_get_target_data(vaddr address) t = container_of(n, TargetPageDataNode, itree); p_ofs = (page - region) >> TARGET_PAGE_BITS; - return t->data + p_ofs * TARGET_PAGE_DATA_SIZE; + return t->data + p_ofs * size; } -#else -void page_reset_target_data(vaddr start, vaddr last) { } -#endif /* TARGET_PAGE_DATA_SIZE */ /* The system-mode versions of these helpers are in cputlb.c. */ diff --git a/target/arm/tcg/mte_helper.c b/target/arm/tcg/mte_helper.c index 13d7ac0097..0efc18a181 100644 --- a/target/arm/tcg/mte_helper.c +++ b/target/arm/tcg/mte_helper.c @@ -37,7 +37,6 @@ #include "qemu/guest-random.h" #include "mte_helper.h" - static int choose_nonexcluded_tag(int tag, int offset, uint16_t exclude) { if (exclude == 0xffff) { @@ -63,6 +62,7 @@ uint8_t *allocation_tag_mem_probe(CPUARMState *env, int ptr_mmu_idx, bool probe, uintptr_t ra) { #ifdef CONFIG_USER_ONLY + const size_t page_data_size = TARGET_PAGE_SIZE >> (LOG2_TAG_GRANULE + 1); uint64_t clean_ptr = useronly_clean_ptr(ptr); int flags = page_get_flags(clean_ptr); uint8_t *tags; @@ -83,7 +83,7 @@ uint8_t *allocation_tag_mem_probe(CPUARMState *env, int ptr_mmu_idx, return NULL; } - tags = page_get_target_data(clean_ptr); + tags = page_get_target_data(clean_ptr, page_data_size); index = extract32(ptr, LOG2_TAG_GRANULE + 1, TARGET_PAGE_BITS - LOG2_TAG_GRANULE - 1); From patchwork Thu May 1 14:55:18 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Richard Henderson X-Patchwork-Id: 886344 Delivered-To: patch@linaro.org Received: by 2002:a5d:430f:0:b0:38f:210b:807b with SMTP id h15csp359068wrq; Thu, 1 May 2025 07:57:38 -0700 (PDT) X-Forwarded-Encrypted: i=2; AJvYcCUjCLBC50egBsDtFQ//R2YdiGWMnA+wZ23VaoQuRZRUTypojZeqdUR7fHYMSADFy+dmW4mpkg==@linaro.org X-Google-Smtp-Source: AGHT+IExxW+Hq8vh15QcJAL7IDJuFpQXLZcRJHX2/VAwZGjcjr3IMj8OQsre4IpqAkPafJnDUReh X-Received: by 2002:a05:622a:4d89:b0:476:b783:c94d with SMTP id d75a77b69052e-48ae8fb296fmr56026381cf.35.1746111458665; Thu, 01 May 2025 07:57:38 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1746111458; cv=none; d=google.com; s=arc-20240605; b=XMZ66+kmH5WQfZjJ7n7rZUE1GinnUfrEWbi+W1T0mRO6OiuDOb9vQH9zJYeR+3+f3G pzEMu5DqnxhWE5SrLpfaEiUqxp0p2sEBQ3629rVatGFqwpBnpepk9WzUZl2b+8F1YCNR eIGJleJAGgyKG0OHzWHkkJkICaf4hWw+Kwv/hGcBGe4pJwUS1ygYeNgH9D8hDKR9a6LP YiyvnE3Q8e9e9+DLcl4iqLXd5PtWmBE/LKWc2m37hyef74B2XXPw48ZuPVfVNL2DNA4p Yy8Fy0jOxvQzeq3jWZAjluhzb/ix8YRcz+N3e/N2/+TqeWqFgJIwVodRberLaCXPEC4F m4sg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=sender:errors-to:list-subscribe:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:content-transfer-encoding :mime-version:references:in-reply-to:message-id:date:subject:to:from :dkim-signature; bh=9qBhX/Vzei5onG8CkoplGyB8ooo97U2cHYvAaBNQf3s=; fh=PnYt+qEB9tAfMKoqBm2xjKOFpYyFFGPudh5cVIoieJM=; b=eRmHXMRE7RFe7fe1i/SCzCqV6BzhYQRT9wU48R6NvMzpu2CCTQinITs1ohcsDs2FvC i8GgE0bse0wYd3l20ixTW5WGRCzUkn3tjzQGvX2l0fGjF3s3eRvB7U6TzfJn4EYzPR2t BjtiKMczAZ06Gf108ubvlK6ni5+Os1zenUBy4DdMw+KJ37qCdxZzxj01GNr7TGN+XoRE vuDooAvKlvKaFLfmkPBg6YqRxdv7AhZeo/40IguTQlKbwpROcRUhvcu2uiRogv0uyewL Ps5bF8JyiE0MpAJEg+iS50tP7nZwxoTrLVT5/8IXv1mxLEazIAR6Ba2M8lnuUmVRQcw6 rBig==; dara=google.com ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=yqHjfW2P; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org; dara=neutral header.i=@linaro.org Return-Path: Received: from lists.gnu.org (lists.gnu.org. [209.51.188.17]) by mx.google.com with ESMTPS id 6a1803df08f44-6f50f48e97dsi8563576d6.276.2025.05.01.07.57.38 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Thu, 01 May 2025 07:57:38 -0700 (PDT) Received-SPF: pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; Authentication-Results: mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=yqHjfW2P; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org; dara=neutral header.i=@linaro.org Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1uAVK5-0005j7-Rd; Thu, 01 May 2025 10:55:38 -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 1uAVK0-0005hT-5A for qemu-devel@nongnu.org; Thu, 01 May 2025 10:55:32 -0400 Received: from mail-pj1-x1035.google.com ([2607:f8b0:4864:20::1035]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1uAVJy-0005Wu-9o for qemu-devel@nongnu.org; Thu, 01 May 2025 10:55:31 -0400 Received: by mail-pj1-x1035.google.com with SMTP id 98e67ed59e1d1-30332dfc820so1330444a91.2 for ; Thu, 01 May 2025 07:55:29 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1746111329; x=1746716129; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date:message-id :reply-to; bh=9qBhX/Vzei5onG8CkoplGyB8ooo97U2cHYvAaBNQf3s=; b=yqHjfW2Pu4a4A8grA6amWgITpCSyX/D61LR4/4zn78XWcZFVdAK9nV0jGYJCmdjJQH Zvf8iyCafnu/V1Q+F+shIh6WILIagvKs958yTqiUMswEGVWNxs/m5VVg06RaUb7ydTid Im4+sJjoC0/jxBLEVst8gUV2bPj83Tk+rI+W3AZxsufk3MX0jQMOMiPiYwkaNrZSyjtA YNwH2twHBgyEhRklxRfnJ/F5udvxcIE6OshfI3lYB5YDBIRf5Oro3IOGxr6M2fCiztzu tN50klL3p7DK7vZp0OKQNXdB6wCiX8maWFUgOBDdPX5FnjHtSjRPfUmj+hmm2zTpVZDW 20jg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1746111329; x=1746716129; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=9qBhX/Vzei5onG8CkoplGyB8ooo97U2cHYvAaBNQf3s=; b=Vomi6CmA+AO76UEMc0Rc1GF7Ff0lrS0uO373jjqZvIovILyypkTnDZhX6Id1OXHm1M dvimUHaHuTeCK4wrfj2e7Y/Eww5TGlql8nBNgGPkB/T6LB9zKl95AL5PhWldSgRgmExg nvgJtLYVyzzI7Y35NA6aZwtZnzAOMCTUy31MAbT4xZTHBaG35eX7soZzRrzhxtmxBItj 178my/BPPCj5r6uOLEqjfz+0G8VTf+/PNGP0vuK1Oe428I8UEZ1O9LifwEoDe+aH0O3t VofwYsf3o+Duh2XovZpj15Gx6kx1UQ96J1WTuFqMn72Cw/Vx/2Hl6V7jTEIJUrBLJ6ga tURw== X-Gm-Message-State: AOJu0Yyh9JNRTCnbZ8oj8gv2ug6yyW7G9ltgMj4exzUarjcxxHhGh5lM p4YKH5qY6OlAV/pbXiaZrzwVACcee6RqqKGWq94M1GTu+BxUwVLE8Z6AAcTTb3peDCUR8RONLpd W X-Gm-Gg: ASbGncsMQ5SX5gd5O3PtPbprZWF+ELWT6cPnrH3lSzZJfXhubgUs2wtQmkUsnWJ8Dcu GDulcN5ScXiikkZyNZDtm7LCAYMfmYaLNGoE7H5VIZJK7tDdEudn21GcbX+ULVPiYqLbaKRismp onuTp0SXTb6dPmiE6WKPwbnmHynoduOeNkC7fAIWhAh3wd0WmiBMk+Fnh6keA50aKOvOZmtoBvH /xwFTLwtIAtaUWXOoRekS8ff0u1Bfjzdu99FQFuicP2IoqATohOLy8vJbqaSLmSfri5iYOJ7kDL uKxwpAiJ5pQRdoJ4gAV5OTLvxIrlAJorbl+LCh6Kkk81aWPiuK+65LgH8zDHh+UPA0NbskafXkI = X-Received: by 2002:a17:90b:586d:b0:2ee:7411:ca99 with SMTP id 98e67ed59e1d1-30a400a8791mr4701956a91.1.1746111328449; Thu, 01 May 2025 07:55:28 -0700 (PDT) Received: from stoup.. (71-212-47-143.tukw.qwest.net. [71.212.47.143]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-22e0bb0e770sm7644415ad.92.2025.05.01.07.55.27 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 01 May 2025 07:55:28 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PATCH 10/11] accel/tcg: Avoid abi_ptr in user-exec.c Date: Thu, 1 May 2025 07:55:18 -0700 Message-ID: <20250501145520.2695073-11-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250501145520.2695073-1-richard.henderson@linaro.org> References: <20250501145520.2695073-1-richard.henderson@linaro.org> MIME-Version: 1.0 Received-SPF: pass client-ip=2607:f8b0:4864:20::1035; envelope-from=richard.henderson@linaro.org; helo=mail-pj1-x1035.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, 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+patch=linaro.org@nongnu.org Sender: qemu-devel-bounces+patch=linaro.org@nongnu.org In page_dump/dump_region, use guest_addr_max to check the size of the guest address space and size the output appropriately. This will change output with small values of -R reserved_va, but shouldn't affect anything else. Signed-off-by: Richard Henderson Reviewed-by: Pierrick Bouvier --- accel/tcg/user-exec.c | 22 ++++++++++++++++------ 1 file changed, 16 insertions(+), 6 deletions(-) diff --git a/accel/tcg/user-exec.c b/accel/tcg/user-exec.c index 46b1e97c30..085da0c036 100644 --- a/accel/tcg/user-exec.c +++ b/accel/tcg/user-exec.c @@ -29,6 +29,7 @@ #include "accel/tcg/helper-retaddr.h" #include "accel/tcg/probe.h" #include "user/cpu_loop.h" +#include "user/guest-host.h" #include "qemu/main-loop.h" #include "user/page-protection.h" #include "exec/page-protection.h" @@ -202,10 +203,19 @@ int walk_memory_regions(void *priv, walk_memory_regions_fn fn) static int dump_region(void *opaque, vaddr start, vaddr end, int prot) { FILE *f = opaque; + uint64_t mask; + int width; - fprintf(f, TARGET_ABI_FMT_ptr "-" TARGET_ABI_FMT_ptr - " " TARGET_ABI_FMT_ptr " %c%c%c\n", - (abi_ptr)start, (abi_ptr)end, (abi_ptr)(end - start), + if (guest_addr_max <= UINT32_MAX) { + mask = UINT32_MAX, width = 8; + } else { + mask = UINT64_MAX, width = 16; + } + + fprintf(f, "%0*" PRIx64 "-%0*" PRIx64 " %0*" PRIx64 " %c%c%c\n", + width, start & mask, + width, end & mask, + width, (end - start) & mask, ((prot & PAGE_READ) ? 'r' : '-'), ((prot & PAGE_WRITE) ? 'w' : '-'), ((prot & PAGE_EXEC) ? 'x' : '-')); @@ -215,10 +225,10 @@ static int dump_region(void *opaque, vaddr start, vaddr end, int prot) /* dump memory mappings */ void page_dump(FILE *f) { - const int length = sizeof(abi_ptr) * 2; + int width = guest_addr_max <= UINT32_MAX ? 8 : 16; fprintf(f, "%-*s %-*s %-*s %s\n", - length, "start", length, "end", length, "size", "prot"); + width, "start", width, "end", width, "size", "prot"); walk_memory_regions(f, dump_region); } @@ -1135,7 +1145,7 @@ static uint64_t do_ld8_mmu(CPUState *cpu, vaddr addr, MemOpIdx oi, return ret; } -static Int128 do_ld16_mmu(CPUState *cpu, abi_ptr addr, +static Int128 do_ld16_mmu(CPUState *cpu, vaddr addr, MemOpIdx oi, uintptr_t ra) { void *haddr; From patchwork Thu May 1 14:55:19 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Richard Henderson X-Patchwork-Id: 886340 Delivered-To: patch@linaro.org Received: by 2002:a5d:430f:0:b0:38f:210b:807b with SMTP id h15csp358685wrq; Thu, 1 May 2025 07:56:34 -0700 (PDT) X-Forwarded-Encrypted: i=2; AJvYcCWMOpxOseooAskrDujXK/LVk2H2Ge7i9JGFCwNgiiSZjzjiEiYUL4bCxlRcQ1TEmdIyeJc62w==@linaro.org X-Google-Smtp-Source: AGHT+IEYtWEUsO3Yr/sgs9ipzyyTqhl5C0aDPi5Dy/R4/+oM6bVmcgRxXGGOn8G0eiY6EMkACrT1 X-Received: by 2002:a05:6214:21cb:b0:6f4:b876:5fb8 with SMTP id 6a1803df08f44-6f4fe03c694mr97762646d6.1.1746111394406; Thu, 01 May 2025 07:56:34 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1746111394; cv=none; d=google.com; s=arc-20240605; b=jOCxOfpW9NslcnRBdSEAlYUJe4vLZ20quwf6dOcz20rjY/Kfh8jRueHMP5ZZB9SZLC ewf72usOsYEar2TGomHykyJ2L1QVA+Pm2odfiUA6auFD72LW2uVx7xwF6n1N+eysTzI3 QmGfNtFUWzL9xI21gaFhYd+hCkEmGE//zPXb611XlJfmogkgZAfbSNPHiqounhtWbOXz SMCWcu8fFYzOwNasTUrOh8XbiP8q6YTH26pWFs7L8CbtQopjI9+1pO2klprovit6ZbGN 33aYU6tIxs/x6tpsgJNeqIorNdaDuj2K9zxJ2FlegpsjpodpiHx0f2boXYBJcxj0zQMK wuNA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=sender:errors-to:list-subscribe:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:content-transfer-encoding :mime-version:references:in-reply-to:message-id:date:subject:to:from :dkim-signature; bh=NpsPRpqYy0EdExgjwMRc7rUCQIZJoGgOry5zvIX2oes=; fh=PnYt+qEB9tAfMKoqBm2xjKOFpYyFFGPudh5cVIoieJM=; b=kEWxB+mrGpiHoTEIYN8F63TDjm6OjhwFNuWqWvXxCj2INtTZfykBJ19raQke68rgR9 hYvVj8sXpW+Fg03Tcz7XK80gVLkswR2hxR450vdQWY2qXAfoBCRkxDWC1IRy5lL9txIU aA8E9nJPs7SyjjCkx/R6fOrFiSO2R09LvyEHpXYKsPQP2WFQJ5LctUtMi/0gv+CZOo8Q zhqeERSYkv8PLZ2hBrPmug75P4D6cxKL4Oriz4jDsQOQoeNk/hecuYVHrnB2KlmJaaLp xBr3kqZ2ZoyCJBrJhy8bF7UvIsXeLkGflsnuZvDqg6c21mFW/tfAQh58yzGUrjC80NFU /qUg==; dara=google.com ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=gDmTO3ym; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org; dara=neutral header.i=@linaro.org Return-Path: Received: from lists.gnu.org (lists.gnu.org. [209.51.188.17]) by mx.google.com with ESMTPS id 6a1803df08f44-6f50f4abcf4si9081406d6.449.2025.05.01.07.56.34 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Thu, 01 May 2025 07:56:34 -0700 (PDT) Received-SPF: pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; Authentication-Results: mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=gDmTO3ym; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org; dara=neutral header.i=@linaro.org Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1uAVKB-0005jf-D7; Thu, 01 May 2025 10:55:43 -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 1uAVK2-0005i4-7U for qemu-devel@nongnu.org; Thu, 01 May 2025 10:55:34 -0400 Received: from mail-pg1-x52a.google.com ([2607:f8b0:4864:20::52a]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1uAVJz-0005Xx-0f for qemu-devel@nongnu.org; Thu, 01 May 2025 10:55:32 -0400 Received: by mail-pg1-x52a.google.com with SMTP id 41be03b00d2f7-7fd35b301bdso1303365a12.2 for ; Thu, 01 May 2025 07:55:30 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1746111329; x=1746716129; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date:message-id :reply-to; bh=NpsPRpqYy0EdExgjwMRc7rUCQIZJoGgOry5zvIX2oes=; b=gDmTO3ymeJj/466t7O2qs5cwyfmf4fVSjht1MjXZjUMSVyMVAMkfnHhNfsRsG2XUQb YqF7q7rdDpAS/4i3V8bp2JVt8hIizOjf+KK0uaaTUvuA7NPT4O4ZfkiltZ97AXbLCDmm g2lY8khXDngiv3RYzgLRZmWfLmUrtThhwu8n9tbDe9i9Z/L8IkOgPnXRMG4RkAWm2FP5 9FbRqCjUX/lAsvGVL33Q9xKr5jBRibghAM3mZ1Q8+03lR1a7P3JmNBw+9VW2zEDqxZNq MzYTrgAevYfqH0V8y2oABmu2zjUZ04tekmiK+C6CghqdqLG7SOpoxDkqkTLN0vNwoC/S 4sjA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1746111329; x=1746716129; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=NpsPRpqYy0EdExgjwMRc7rUCQIZJoGgOry5zvIX2oes=; b=tRj7cONz6zL90c6bJ7k4zPLmJufk8khiAhAtHdiAzQVksI+tyJ76QKqr3E5Yqd5Bpk 1jasEO+LjWPoeERUKXH0KSNIb7qk9/SbO5m5TcVIO5JHetwKls8jTTN6dOs1arPCBM+I qoue+/SfyundzWTEmESGeh6DkcBjrY3JXo0+0/35dxVNA4tOwHSnz1S8b7z537tWHKqa Flll3YWLS2yM9LIAIJEXruN4yZdo5HHqA7PhSuzMExYrCn7GFSFYSE8eHYrNd3BRqc6g Z5aNsd3RqD82cscpLGkqG0J3YQ4UKZcBs/ngyc2Sevo5iGCwfberyiYr5xyIQIt15sLm wyFw== X-Gm-Message-State: AOJu0Yy45Sd8VMxZBKOWzPdMSz9Iw/bhYY5RLfS/ABx2NDBaa1o0KYWW phsG++rFNOiT1uQKH0cGbQ3KUENSK5PS6xDYSBCvbjZPzluH9YPOrl9ReoxuwA3v4ez4TVFdAS7 9 X-Gm-Gg: ASbGncsGYLpRjOX2uGR1TPs3zLs7f4X21Y4G1OLD6CYYWo99K50yNmNOcC8HmUFhE0G 40lyVXhzP0e7tKYnt6wRPe1ZS82KeYj1xjbPbmdiPcasi46JPYeVlskmYd3QA/8q6WhqBwPv53e EGOzhbCUreZ51Fih9urmIZZ2J06JbzqGrhlJ1PT1n9ETcHGOB3UR2fH5jMB8bi1uNxFntaoQU1V 4brdaLmdq6FyKCrfoY97gr3cbQFRBdMHaWjrsc9q8Ljka4fdlfn3uiuc8xXgN9IJq1088CNgY7v 4wjJlysn01zcT+DlhwW/kqCpPYcpB7CxAYcQLzUGuGSJWj/Ex0DbjsjK/d1g252ewUMqsupTHIM fL7uyWU+4+g== X-Received: by 2002:a17:90b:2247:b0:2ff:52e1:c49f with SMTP id 98e67ed59e1d1-30a34467cbfmr9183749a91.26.1746111329146; Thu, 01 May 2025 07:55:29 -0700 (PDT) Received: from stoup.. (71-212-47-143.tukw.qwest.net. [71.212.47.143]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-22e0bb0e770sm7644415ad.92.2025.05.01.07.55.28 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 01 May 2025 07:55:28 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PATCH 11/11] accel/tcg: Build user-exec.c once Date: Thu, 1 May 2025 07:55:19 -0700 Message-ID: <20250501145520.2695073-12-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250501145520.2695073-1-richard.henderson@linaro.org> References: <20250501145520.2695073-1-richard.henderson@linaro.org> MIME-Version: 1.0 Received-SPF: pass client-ip=2607:f8b0:4864:20::52a; envelope-from=richard.henderson@linaro.org; helo=mail-pg1-x52a.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, 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+patch=linaro.org@nongnu.org Sender: qemu-devel-bounces+patch=linaro.org@nongnu.org Signed-off-by: Richard Henderson Reviewed-by: Pierrick Bouvier --- accel/tcg/user-exec.c | 5 ++--- accel/tcg/meson.build | 5 +---- 2 files changed, 3 insertions(+), 7 deletions(-) diff --git a/accel/tcg/user-exec.c b/accel/tcg/user-exec.c index 085da0c036..f25d80e2dc 100644 --- a/accel/tcg/user-exec.c +++ b/accel/tcg/user-exec.c @@ -19,13 +19,12 @@ #include "qemu/osdep.h" #include "accel/tcg/cpu-ops.h" #include "disas/disas.h" -#include "cpu.h" #include "exec/vaddr.h" #include "exec/tlb-flags.h" #include "tcg/tcg.h" #include "qemu/bitops.h" #include "qemu/rcu.h" -#include "accel/tcg/cpu-ldst.h" +#include "accel/tcg/cpu-ldst-common.h" #include "accel/tcg/helper-retaddr.h" #include "accel/tcg/probe.h" #include "user/cpu_loop.h" @@ -33,7 +32,7 @@ #include "qemu/main-loop.h" #include "user/page-protection.h" #include "exec/page-protection.h" -#include "exec/helper-proto.h" +#include "exec/helper-proto-common.h" #include "qemu/atomic128.h" #include "qemu/bswap.h" #include "qemu/int128.h" diff --git a/accel/tcg/meson.build b/accel/tcg/meson.build index 9b86051b82..d6f533f9a1 100644 --- a/accel/tcg/meson.build +++ b/accel/tcg/meson.build @@ -21,11 +21,8 @@ endif libuser_ss.add_all(tcg_ss) libsystem_ss.add_all(tcg_ss) -tcg_specific_ss = ss.source_set() -tcg_specific_ss.add(when: 'CONFIG_USER_ONLY', if_true: files('user-exec.c')) -specific_ss.add_all(when: 'CONFIG_TCG', if_true: tcg_specific_ss) - libuser_ss.add(files( + 'user-exec.c', 'user-exec-stub.c', ))