From nobody Wed Apr 2 13:32:46 2025 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=linaro.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1743192426083252.95903728133294; Fri, 28 Mar 2025 13:07:06 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1tyFx8-0002v4-8I; Fri, 28 Mar 2025 16:05:18 -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 1tyFx0-0002sw-RA for qemu-devel@nongnu.org; Fri, 28 Mar 2025 16:05:10 -0400 Received: from mail-oi1-x22d.google.com ([2607:f8b0:4864:20::22d]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1tyFwy-0007oM-Q5 for qemu-devel@nongnu.org; Fri, 28 Mar 2025 16:05:10 -0400 Received: by mail-oi1-x22d.google.com with SMTP id 5614622812f47-3feaedb6670so1502691b6e.1 for ; Fri, 28 Mar 2025 13:05:08 -0700 (PDT) Received: from stoup.. (syn-071-042-197-003.biz.spectrum.com. [71.42.197.3]) by smtp.gmail.com with ESMTPSA id 5614622812f47-3ff052799b6sm465104b6e.37.2025.03.28.13.05.01 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 28 Mar 2025 13:05:02 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1743192307; x=1743797107; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=QGhoY6BYqtu06nSyGAEKOAb5PFFvnmUxpNglBsInFeg=; b=BlVYescgQ1fqkHZs1HJPPQVSQ6EQhoKadYbviGywVhBJGS54FUicuXGF8t1ktZmNaN F6Rn67pPhczdu7KcwoO6cUIou1i9UmsEtJXeWPiAegkTCR/81yMs8cdSmbbvBey0ZF08 Zc9JKJflxG5FE4YPnAnNnAcun253R1Sm7WffBcjcqNK1hSCX2f4BRB9Bqo3u0N2Iqi74 QOED+6Hfst/NxaFfspjGirZj8t8QYAylQjPiV+MgayhTvpylttG8Prm4g9xWYTNmmWyz r9Jie/081YG24JG7MiiiwRRvQ1ZYhw60jUIoavUTbfh8SG/1hh0/Sy9psRzADxpTzqSb 9DPg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1743192307; x=1743797107; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=QGhoY6BYqtu06nSyGAEKOAb5PFFvnmUxpNglBsInFeg=; b=U5kQp08SAz27iMxMfc/VIDf4sgOXZTRDX8YYX+wd8T51DGdsMfrSirgikhNYYAIFHf PUdeGVnVYYEdp8G+XiD/0DnxRVysxm1wo1CJt7MfAm0W6yIO/uY4NWov8nOO8j7HrKS3 XAiPRYpfS7kXgTy6P/Cw95lT1ZW7etEC7LiEHVBEsu+DyKcm+1YqJplEJcqzv5cIuozD KIRZzdquWKuLWrhDjcCKa6iwzPvKYDA2P6gKZ8s2uBX9QpCsPWp71E9QPFul1pQPoDRN bpiGmjlVqqAh4IWHyCboIyk6kGZyj2aQmI91G/hB5mkAcTeqBj5UXlz66KVeaJjCRmz1 hqLA== X-Gm-Message-State: AOJu0Yx4OCITwPV7dM2l22vhHxuwHSFGFLY/9ItWWzOEQCdNX74fdflQ UnwAbIaE+yLeyNBN/UeEbNOeufyo13YIn5TFrmjRYeOE6QiQAy4eXNA+bm/RQXrNDEXJjp89D4U a X-Gm-Gg: ASbGnctmUmup2z+mtv6crUwQfM2P9wFQQX4d/Nm0Ow6fgpcBO3jnayMnfqI2YmKAXg9 VVz3BMbEtVXyMjZU7ndc366P/fZ7N4D/FLXtBIjqjaRgnWoSIwvrtixyJa9KRT0QfwDvwnof02G Af1mcAdpLjmN1NR5kDSD09+3ExWCX4ZJdfTG4RiWHqj2oyA55lKyknriUAn4VCUGjEeuccqv2hq uQ9TcX7U8WHlVWAYzQ0CC+ECRfr80eCUKjmZdOtDqIflBy1JjXtNBhYus71KErlsIddRgaJ+fm5 ntshv9YQaaxhTlDuG7jxlzzVBOHsDUmR2IuWLgJ4/O4qFZ1sqsLPoV0j9PKu/uY8li6Bvf4P/c/ /dwMQzCDi1oE= X-Google-Smtp-Source: AGHT+IGZ9womr7pxwp6oiaADgSVpsQ45UQRmjTALzu4Vuu6snojiP0S69zp+txPkDKtqqJNwdhCe6g== X-Received: by 2002:a05:6808:3846:b0:3f3:d802:14f1 with SMTP id 5614622812f47-3ff0f502f80mr489239b6e.12.1743192302510; Fri, 28 Mar 2025 13:05:02 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: pierrick.bouvier@linaro.org, philmd@linaro.org Subject: [PATCH 1/9] include/exec: Move tb_{, set_}page_addr[01] to translation-block.h Date: Fri, 28 Mar 2025 15:04:51 -0500 Message-ID: <20250328200459.483089-2-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250328200459.483089-1-richard.henderson@linaro.org> References: <20250328200459.483089-1-richard.henderson@linaro.org> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::22d; envelope-from=richard.henderson@linaro.org; helo=mail-oi1-x22d.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+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZM-MESSAGEID: 1743192428801019100 Content-Type: text/plain; charset="utf-8" Move the accessor functions for TranslationBlock into the header related to the structure. Signed-off-by: Richard Henderson Reviewed-by: Pierrick Bouvier --- include/exec/exec-all.h | 49 ------------------------------- include/exec/translation-block.h | 50 ++++++++++++++++++++++++++++++++ 2 files changed, 50 insertions(+), 49 deletions(-) diff --git a/include/exec/exec-all.h b/include/exec/exec-all.h index 19b0eda44a..fcad3446fe 100644 --- a/include/exec/exec-all.h +++ b/include/exec/exec-all.h @@ -123,55 +123,6 @@ int probe_access_full_mmu(CPUArchState *env, vaddr add= r, int size, #endif /* !CONFIG_USER_ONLY */ #endif /* CONFIG_TCG */ =20 -static inline tb_page_addr_t tb_page_addr0(const TranslationBlock *tb) -{ -#ifdef CONFIG_USER_ONLY - return tb->itree.start; -#else - return tb->page_addr[0]; -#endif -} - -static inline tb_page_addr_t tb_page_addr1(const TranslationBlock *tb) -{ -#ifdef CONFIG_USER_ONLY - tb_page_addr_t next =3D tb->itree.last & TARGET_PAGE_MASK; - return next =3D=3D (tb->itree.start & TARGET_PAGE_MASK) ? -1 : next; -#else - return tb->page_addr[1]; -#endif -} - -static inline void tb_set_page_addr0(TranslationBlock *tb, - tb_page_addr_t addr) -{ -#ifdef CONFIG_USER_ONLY - tb->itree.start =3D addr; - /* - * To begin, we record an interval of one byte. When the translation - * loop encounters a second page, the interval will be extended to - * include the first byte of the second page, which is sufficient to - * allow tb_page_addr1() above to work properly. The final corrected - * interval will be set by tb_page_add() from tb->size before the - * node is added to the interval tree. - */ - tb->itree.last =3D addr; -#else - tb->page_addr[0] =3D addr; -#endif -} - -static inline void tb_set_page_addr1(TranslationBlock *tb, - tb_page_addr_t addr) -{ -#ifdef CONFIG_USER_ONLY - /* Extend the interval to the first byte of the second page. See abov= e. */ - tb->itree.last =3D addr; -#else - tb->page_addr[1] =3D addr; -#endif -} - /* TranslationBlock invalidate API */ void tb_phys_invalidate(TranslationBlock *tb, tb_page_addr_t page_addr); void tb_invalidate_phys_range(tb_page_addr_t start, tb_page_addr_t last); diff --git a/include/exec/translation-block.h b/include/exec/translation-bl= ock.h index 3c69bc71a9..8b8e730561 100644 --- a/include/exec/translation-block.h +++ b/include/exec/translation-block.h @@ -13,6 +13,7 @@ #include "exec/vaddr.h" #ifdef CONFIG_USER_ONLY #include "qemu/interval-tree.h" +#include "exec/target_page.h" #endif =20 /* @@ -157,4 +158,53 @@ static inline uint32_t tb_cflags(const TranslationBloc= k *tb) bool tcg_cflags_has(CPUState *cpu, uint32_t flags); void tcg_cflags_set(CPUState *cpu, uint32_t flags); =20 +static inline tb_page_addr_t tb_page_addr0(const TranslationBlock *tb) +{ +#ifdef CONFIG_USER_ONLY + return tb->itree.start; +#else + return tb->page_addr[0]; +#endif +} + +static inline tb_page_addr_t tb_page_addr1(const TranslationBlock *tb) +{ +#ifdef CONFIG_USER_ONLY + tb_page_addr_t next =3D tb->itree.last & TARGET_PAGE_MASK; + return next =3D=3D (tb->itree.start & TARGET_PAGE_MASK) ? -1 : next; +#else + return tb->page_addr[1]; +#endif +} + +static inline void tb_set_page_addr0(TranslationBlock *tb, + tb_page_addr_t addr) +{ +#ifdef CONFIG_USER_ONLY + tb->itree.start =3D addr; + /* + * To begin, we record an interval of one byte. When the translation + * loop encounters a second page, the interval will be extended to + * include the first byte of the second page, which is sufficient to + * allow tb_page_addr1() above to work properly. The final corrected + * interval will be set by tb_page_add() from tb->size before the + * node is added to the interval tree. + */ + tb->itree.last =3D addr; +#else + tb->page_addr[0] =3D addr; +#endif +} + +static inline void tb_set_page_addr1(TranslationBlock *tb, + tb_page_addr_t addr) +{ +#ifdef CONFIG_USER_ONLY + /* Extend the interval to the first byte of the second page. See abov= e. */ + tb->itree.last =3D addr; +#else + tb->page_addr[1] =3D addr; +#endif +} + #endif /* EXEC_TRANSLATION_BLOCK_H */ --=20 2.43.0 From nobody Wed Apr 2 13:32:46 2025 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1743192358; cv=none; d=zohomail.com; s=zohoarc; b=cehEmm+acRXIXJycShEHymmPO42yAxgLrKSjG53K9XG/U0Xze/ClUy0tfl6z+FyD2zHbRY8myQ9pmCKG4xiIQAq/lSoJ7AU8ZPVWHDuvKzEG6GgsoCLGaZ8UZeq/XxYTSsj8NPZsysjLcUHrgCx0+z0BypRaypFCDyC2Jl5/95s= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1743192358; h=Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=vsSmqeOWwZw9KE8qAhLEmryV/FXdBjZqeFOodkM2cBg=; b=ggYexhcMhr+8cY6JW6K0LPK6yaBNV8uAW0J3OU2rZsrdtnx+z872yPIigToRuMUjanLyaGZ+k9NV5gXm3VOPdjRs2yAmmUAVPpIkWVgh742Bifn9nsovqTetV2G+EZvWEUjZ8yoJIy23jrOO44uhK352P+0KxFSP+fqojF9cFXs= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1743192358676890.1926269274097; Fri, 28 Mar 2025 13:05:58 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1tyFwz-0002qc-2g; Fri, 28 Mar 2025 16:05:09 -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 1tyFww-0002o4-LP for qemu-devel@nongnu.org; Fri, 28 Mar 2025 16:05:06 -0400 Received: from mail-oo1-xc2b.google.com ([2607:f8b0:4864:20::c2b]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1tyFwu-0007kF-OB for qemu-devel@nongnu.org; Fri, 28 Mar 2025 16:05:06 -0400 Received: by mail-oo1-xc2b.google.com with SMTP id 006d021491bc7-6025007e9a0so451433eaf.1 for ; Fri, 28 Mar 2025 13:05:04 -0700 (PDT) Received: from stoup.. (syn-071-042-197-003.biz.spectrum.com. [71.42.197.3]) by smtp.gmail.com with ESMTPSA id 5614622812f47-3ff052799b6sm465104b6e.37.2025.03.28.13.05.02 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 28 Mar 2025 13:05:02 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1743192303; x=1743797103; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=vsSmqeOWwZw9KE8qAhLEmryV/FXdBjZqeFOodkM2cBg=; b=msFK+kfmv5kSggOdR/Hf3fmA92QyheD+moMU8kpRiFsGCpph5lac5vSP/Ly/EYreJ4 N/W6ulg8JSkFV6UQiVDzF3y8EJCRonqHwNfLO5YbW2PJ668n5r8OJtIQWON57XYTO6gu UDp2u5x13i4bsyBfF99gw6BPpVJnYG0wNRUiIFG6ICAYwiz+jtvcZhh4AuJE+wdEWRlZ +fp2qWxNuwKX27zgxJqwb1zYXlxqiNHuaDNxkRYF/3PAMAbSuMDRxfi2/ku4Uv++NLMS o8Fmx3NUorsIvtFcZxe+DimyqT8dhqhAuH2ciQKgPerQ9/+sSc4xOWEeDmi4yLKNRePX wmmw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1743192303; x=1743797103; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=vsSmqeOWwZw9KE8qAhLEmryV/FXdBjZqeFOodkM2cBg=; b=aj74CQETsnxxvTNi3B4wCtFn/vDYWtxTrDdFAgsTFOWgt4AkYcTwOEXZjjg8MuAQ7W LvyYqYjhWwkgVwk8Tu65N23q6VOv5P+j69AkPi3knY1N9P//19nqffDAaDvYJ2whI1QO Ye1I92287FxUpU390yWPO6cIM4cBFQ6hefIFKGkFzbwQxwIrgYgh62gfXRLFiNae5KGd Bby7L22NtrFMybC5HjiKAVmjsRzn0kIolQ75pGjtoDCv0XfQrATHKYBgqqwlEyB4hgD7 z7qrN6Yvumid9I/LUYISr04mi+lpcMDR3TvjpTdzkSIlPfD+yCrHGtS4ApkYQirNZ5bj 0q9w== X-Gm-Message-State: AOJu0YzUEL0UAJl4CoGrEBvg5x9UeqMS92tZtZCKxH9n0yCUMFDWnD0p TW+cCydX+Z4VT3lEXr0S2w1fqyW63pK9L/2oIywJckV8yWqA7jrOOVBCWsTp+q6WX+hKO12ZUP8 k X-Gm-Gg: ASbGncvL3U2+TAwzwDrQ9c0jEKnStYvs445+Mzqz7MzjX/qXOWo6GRSPCFMKojIGBH9 MDAOmfENpNP+dg3z2CHSXTKkWB6xyqwS6PB6AaIpgkJLC4AC+/Ry2nrx9ZzvbdzziGMxsWmECOC 9kkE3tOE5gbmZo5SGBLS0zQtnjan4BuYNgfgv32O5Gffta5s8nSSrMbZKXZwG5RUmvJAasaOgHw j3XALZsBmqRPczGD622SRu6td9g5QVo3UOvYiOP4aCrzMbJaHOHDVZiUhNLPnq1641jHtsna/Qa oYY/R6knz7CYABSNpt2BCeaHpt/1XpvNM6MrRyYL7ksJ0cExmT81xYV1CW7CLNEpfUD5hw99VJn E8dXC4fodSYo= X-Google-Smtp-Source: AGHT+IFdlyCdyH5z9Lf1LdvZNjKYie0f8jMASsQJ7HWZKeDQ13Tw8BERbDAAe6QY60WmdPHZ3oF75A== X-Received: by 2002:a05:6808:3021:b0:3f6:7682:8571 with SMTP id 5614622812f47-3ff0f502f75mr364918b6e.14.1743192303183; Fri, 28 Mar 2025 13:05:03 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: pierrick.bouvier@linaro.org, philmd@linaro.org Subject: [PATCH 2/9] accel/tcg: Move get_page_addr_code* declarations Date: Fri, 28 Mar 2025 15:04:52 -0500 Message-ID: <20250328200459.483089-3-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250328200459.483089-1-richard.henderson@linaro.org> References: <20250328200459.483089-1-richard.henderson@linaro.org> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::c2b; envelope-from=richard.henderson@linaro.org; helo=mail-oo1-xc2b.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+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1743192361581019000 Content-Type: text/plain; charset="utf-8" Move the declarations from exec/exec-all.h to the private accel/tcg/internal-common.h. Signed-off-by: Richard Henderson Reviewed-by: Pierrick Bouvier --- accel/tcg/internal-common.h | 34 ++++++++++++++++++++++++++++++++++ include/exec/exec-all.h | 34 ---------------------------------- accel/tcg/translator.c | 1 + 3 files changed, 35 insertions(+), 34 deletions(-) diff --git a/accel/tcg/internal-common.h b/accel/tcg/internal-common.h index 9b6ab3a8cc..2f00560d10 100644 --- a/accel/tcg/internal-common.h +++ b/accel/tcg/internal-common.h @@ -74,4 +74,38 @@ uint32_t curr_cflags(CPUState *cpu); =20 void tb_check_watchpoint(CPUState *cpu, uintptr_t retaddr); =20 +/** + * get_page_addr_code_hostp() + * @env: CPUArchState + * @addr: guest virtual address of guest code + * + * See get_page_addr_code() (full-system version) for documentation on the + * return value. + * + * Sets *@hostp (when @hostp is non-NULL) as follows. + * If the return value is -1, sets *@hostp to NULL. Otherwise, sets *@hostp + * to the host address where @addr's content is kept. + * + * Note: this function can trigger an exception. + */ +tb_page_addr_t get_page_addr_code_hostp(CPUArchState *env, vaddr addr, + void **hostp); + +/** + * get_page_addr_code() + * @env: CPUArchState + * @addr: guest virtual address of guest code + * + * If we cannot translate and execute from the entire RAM page, or if + * the region is not backed by RAM, returns -1. Otherwise, returns the + * ram_addr_t corresponding to the guest code at @addr. + * + * Note: this function can trigger an exception. + */ +static inline tb_page_addr_t get_page_addr_code(CPUArchState *env, + vaddr addr) +{ + return get_page_addr_code_hostp(env, addr, NULL); +} + #endif diff --git a/include/exec/exec-all.h b/include/exec/exec-all.h index fcad3446fe..f52a680f42 100644 --- a/include/exec/exec-all.h +++ b/include/exec/exec-all.h @@ -143,40 +143,6 @@ struct MemoryRegionSection *iotlb_to_section(CPUState = *cpu, hwaddr index, MemTxAttrs attr= s); #endif =20 -/** - * get_page_addr_code_hostp() - * @env: CPUArchState - * @addr: guest virtual address of guest code - * - * See get_page_addr_code() (full-system version) for documentation on the - * return value. - * - * Sets *@hostp (when @hostp is non-NULL) as follows. - * If the return value is -1, sets *@hostp to NULL. Otherwise, sets *@hostp - * to the host address where @addr's content is kept. - * - * Note: this function can trigger an exception. - */ -tb_page_addr_t get_page_addr_code_hostp(CPUArchState *env, vaddr addr, - void **hostp); - -/** - * get_page_addr_code() - * @env: CPUArchState - * @addr: guest virtual address of guest code - * - * If we cannot translate and execute from the entire RAM page, or if - * the region is not backed by RAM, returns -1. Otherwise, returns the - * ram_addr_t corresponding to the guest code at @addr. - * - * Note: this function can trigger an exception. - */ -static inline tb_page_addr_t get_page_addr_code(CPUArchState *env, - vaddr addr) -{ - return get_page_addr_code_hostp(env, addr, NULL); -} - #if !defined(CONFIG_USER_ONLY) =20 MemoryRegionSection * diff --git a/accel/tcg/translator.c b/accel/tcg/translator.c index 7ef04fc597..307a513487 100644 --- a/accel/tcg/translator.c +++ b/accel/tcg/translator.c @@ -17,6 +17,7 @@ #include "exec/translator.h" #include "exec/plugin-gen.h" #include "tcg/tcg-op-common.h" +#include "internal-common.h" #include "internal-target.h" #include "disas/disas.h" #include "tb-internal.h" --=20 2.43.0 From nobody Wed Apr 2 13:32:46 2025 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1743192381; cv=none; d=zohomail.com; s=zohoarc; b=WH/5UXFE7m7oszAufsPvJ3/VpcDC87JzyyuRRnfBiAKT1rxuKZZEU0huSf/Pr0wEdwexmZe8zGQgxQT6Tf+KDP4w5iSih/ObTbOt0SW3S9zTFGRSIyM5rQtV4tFXtOFIT3WVzpBn/gVX5WxG0qVW3XMjfI4/YPRBDZ1fORJsMww= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1743192381; h=Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=1dr/ia722bLIN9dEZ7twaM/nT3BoEXqpJL6WGPcn5bc=; b=l2eLUDnskhxquydH7SeuEdfeB7ridlb+1F6+ESFABkmm87EdY2+DR7FpprMP03zMGr1mcPMgTiPEtUGyD1eU+YZSQmT8wzMf/m1j3ay3KHDVLomOnA02DkEBC1hjYUHpHQOJuhEzDMtjLgJTVaWJ+I5p/KYmEZn+DVrkP6HDGRo= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1743192381716204.21005960885088; Fri, 28 Mar 2025 13:06:21 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1tyFwz-0002qq-G4; Fri, 28 Mar 2025 16:05:09 -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 1tyFwx-0002pb-En for qemu-devel@nongnu.org; Fri, 28 Mar 2025 16:05:07 -0400 Received: from mail-oi1-x22a.google.com ([2607:f8b0:4864:20::22a]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1tyFwv-0007n4-Fp for qemu-devel@nongnu.org; Fri, 28 Mar 2025 16:05:07 -0400 Received: by mail-oi1-x22a.google.com with SMTP id 5614622812f47-3fbaa18b810so697028b6e.2 for ; Fri, 28 Mar 2025 13:05:04 -0700 (PDT) Received: from stoup.. (syn-071-042-197-003.biz.spectrum.com. [71.42.197.3]) by smtp.gmail.com with ESMTPSA id 5614622812f47-3ff052799b6sm465104b6e.37.2025.03.28.13.05.03 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 28 Mar 2025 13:05:03 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1743192304; x=1743797104; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=1dr/ia722bLIN9dEZ7twaM/nT3BoEXqpJL6WGPcn5bc=; b=J6imUvrzuG8w+QKV122rMtBq9bQwz24c2CmnBj4CGc7ZBIgfUckMufcSe5ZgWD5Y6v IFO83cVSlNRws9jJScJVEqz+gyO3FsvFEQ2dMeninv8bYS6RsKIEld8fpX7Eo70pIxZt QyAC4aZxYhtbxR8p1BceMml4BHX/k4dU6HWLdOlxr+EYKEYYywLbpyWi35PMRbuvWDcN Ar550vQv8DrWU+CTOg1T4RNydKmYSsiWt1JlCEthscgaK97rZuDK+UJRmuT8FyfGxoBa 6yEUowUDHfHO7a8DtIrakDUdQItoBc1z0FG275ifFP8f5tyhLR6OokrjhdXWrV3Jenrd douw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1743192304; x=1743797104; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=1dr/ia722bLIN9dEZ7twaM/nT3BoEXqpJL6WGPcn5bc=; b=Ihxs1+9RDYga/ILTVUQd4faAyXedw2Idi5DZKVpGz1m6hxW93U7Wv4Y5QT9vLxeZc3 rm+722zMG/RsEw55sg+1251FA0ZDYYWtP81x5QgrmXjsTCqZDH++qiEO1vF0gV2sIzyP M7RsUjeog/+WSqSqndRqZ4wPWXaAzb9USmpxZb2kf0mF3QUA4/wkaVxUbgHc9h2/dtAt JhYZYhVyMQUUZhoLhjkT37o/kydTytrsF+RenAXHOmFPb6WX6eIAmDTBEioDMwk0Xh+J u3yyfSr+g0VkyFWUODAL8Xv7IjbOTgfMJ7L0T8jat7XrHYIB5zSP2THTEtNWIPJwThAm V/rg== X-Gm-Message-State: AOJu0YweFSo1NYVizi72kXZcee+98RdrlQQrbVcut5l0xcmI1soUKmfK du4hB8uJwZRVoQQ4d4qAbxQA0agzDlghDY/VMuMtKyVJfSIZR4pMr8zmZG7j2OOFTf3PKy8rq22 p X-Gm-Gg: ASbGncsrNeR7d7J/DSa4WoN1N+lCLNgQXaVZ1d41SPB7JzhjhQy7bZCkhKzTWdsgLJ9 Z6ko7IeGrH3p7ZCuqxRc0tuDTCAPzydgRpwwHW2wM64oQz5D53rMVzMQREEWS+20OxifQky9nmY 4JIPxEQ4cXGo1/e8+NsPbSsdvZlrbMsceTpqxrDHlL3kVGuNUaxjph770StGm2T25Z+69oG7ECL erTGg6BwIVLScvlMb/MBvtECXuMNsCKriGJSYLVTNIu65XTUkf1J9x4oWJfG7AlaXpWMykVeXxF xd+YJIMwSqLavJSnX8ejxw5pEXaLmG/itgHHD6GpieDvAgSYTyRPt8pwLHasG3VrAPutFHa8QQr cGJavAXYypV4= X-Google-Smtp-Source: AGHT+IFKJcFKMbsKAtbXh771OXmp2CVeSPiJZw5k5W6LxIR5YMmv9iw7OvuodCp59AJG/2LAHH7VtQ== X-Received: by 2002:a05:6808:15a5:b0:3f8:b73b:683c with SMTP id 5614622812f47-3ff0f4e59fbmr483472b6e.2.1743192303919; Fri, 28 Mar 2025 13:05:03 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: pierrick.bouvier@linaro.org, philmd@linaro.org Subject: [PATCH 3/9] accel/tcg: Remove page_protect Date: Fri, 28 Mar 2025 15:04:53 -0500 Message-ID: <20250328200459.483089-4-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250328200459.483089-1-richard.henderson@linaro.org> References: <20250328200459.483089-1-richard.henderson@linaro.org> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::22a; envelope-from=richard.henderson@linaro.org; helo=mail-oi1-x22a.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+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1743192383607019000 Content-Type: text/plain; charset="utf-8" Merge the user-only page_protect function with the user-only implementation of tb_lock_page0. This avoids pulling page-protection.h into tb-internal.h. Signed-off-by: Richard Henderson Reviewed-by: Pierrick Bouvier --- accel/tcg/tb-internal.h | 11 +++-------- include/user/page-protection.h | 1 - accel/tcg/user-exec.c | 2 +- 3 files changed, 4 insertions(+), 10 deletions(-) diff --git a/accel/tcg/tb-internal.h b/accel/tcg/tb-internal.h index 68aa8d17f4..f7c2073e29 100644 --- a/accel/tcg/tb-internal.h +++ b/accel/tcg/tb-internal.h @@ -51,28 +51,23 @@ =20 #endif /* CONFIG_SOFTMMU */ =20 +void tb_lock_page0(tb_page_addr_t); + #ifdef CONFIG_USER_ONLY -#include "user/page-protection.h" /* * For user-only, page_protect sets the page read-only. * Since most execution is already on read-only pages, and we'd need to * account for other TBs on the same page, defer undoing any page protecti= on * until we receive the write fault. */ -static inline void tb_lock_page0(tb_page_addr_t p0) -{ - page_protect(p0); -} - static inline void tb_lock_page1(tb_page_addr_t p0, tb_page_addr_t p1) { - page_protect(p1); + tb_lock_page0(p1); } =20 static inline void tb_unlock_page1(tb_page_addr_t p0, tb_page_addr_t p1) {= } static inline void tb_unlock_pages(TranslationBlock *tb) { } #else -void tb_lock_page0(tb_page_addr_t); void tb_lock_page1(tb_page_addr_t, tb_page_addr_t); void tb_unlock_page1(tb_page_addr_t, tb_page_addr_t); void tb_unlock_pages(TranslationBlock *); diff --git a/include/user/page-protection.h b/include/user/page-protection.h index 51daa18648..d5c8748d49 100644 --- a/include/user/page-protection.h +++ b/include/user/page-protection.h @@ -16,7 +16,6 @@ #include "exec/target_long.h" #include "exec/translation-block.h" =20 -void page_protect(tb_page_addr_t page_addr); int page_unprotect(tb_page_addr_t address, uintptr_t pc); =20 int page_get_flags(target_ulong address); diff --git a/accel/tcg/user-exec.c b/accel/tcg/user-exec.c index 667c5e0354..72a9809c2d 100644 --- a/accel/tcg/user-exec.c +++ b/accel/tcg/user-exec.c @@ -657,7 +657,7 @@ target_ulong page_find_range_empty(target_ulong min, ta= rget_ulong max, } } =20 -void page_protect(tb_page_addr_t address) +void tb_lock_page0(tb_page_addr_t address) { PageFlagsNode *p; target_ulong start, last; --=20 2.43.0 From nobody Wed Apr 2 13:32:46 2025 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1743192352; cv=none; d=zohomail.com; s=zohoarc; b=I+PpQC5Gs/7LdN688HEYdxaY4hPEhN1RjGXLwo88EdYGVDkGUJX0kOXpQ6hPgafdmmFO/+hpcAj6ncuA2sYvRX36FQjO0uW/tyP3bn0F5ASv1tSgBbb2yiRMUBG+SBZPOwwd49nem0aJJT6/29kikK4YXrsrpbBYRb8mGAXYVjs= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1743192352; h=Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=yu5KF6BrH2yp81gEA850j0dS4wEWUhM6jM/Abi77cw4=; b=eh+S6T88XY8Xw62zimlooFUeEn6y0nKkoH0hQFb10N1C+be8Ah4/mOHk9g1TJn++qy1qpxcBOTaBQcvJRskkeTB3s0ygoO75pRaBxbk4D7WGAeCN7vR6vmKwNheasXcXnGsitUdYRMm8AexB6//vSq3kpIq8FeiN6TXUJaPTMPU= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1743192352481644.8311907253149; Fri, 28 Mar 2025 13:05:52 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1tyFx1-0002st-1n; Fri, 28 Mar 2025 16:05:11 -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 1tyFwy-0002qM-9X for qemu-devel@nongnu.org; Fri, 28 Mar 2025 16:05:08 -0400 Received: from mail-oi1-x22c.google.com ([2607:f8b0:4864:20::22c]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1tyFww-0007nK-HO for qemu-devel@nongnu.org; Fri, 28 Mar 2025 16:05:07 -0400 Received: by mail-oi1-x22c.google.com with SMTP id 5614622812f47-3f8d2f8d890so1534957b6e.0 for ; Fri, 28 Mar 2025 13:05:05 -0700 (PDT) Received: from stoup.. (syn-071-042-197-003.biz.spectrum.com. [71.42.197.3]) by smtp.gmail.com with ESMTPSA id 5614622812f47-3ff052799b6sm465104b6e.37.2025.03.28.13.05.04 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 28 Mar 2025 13:05:04 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1743192305; x=1743797105; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=yu5KF6BrH2yp81gEA850j0dS4wEWUhM6jM/Abi77cw4=; b=neN94agz2ihvw7gLOv7TcVBob4G/48XgyWghxfuJrlAvb0ED7Djl5rmgetNhKR9zH3 jYkFdpyw2tFoMuK8WUogcy6gWiqRLUM0OtatEgrsCtIbv5ZUdBWUpgYTycKOxW4VjVd5 rfcbQH7f/FuKitEL7DRSYPIpumooWZbIA67y9ueTdHWRqJRcsi1ElIn+oh3/XgQgVsFz YPQ7Lv3YK1gSnE1AAjctFcxKGyzmIA9Dn90Gsbt6k16LpskVIbwTtq3PVNLwhe48ruvS U8HbUl//sd0+fiDYt6c+mOVv5ANuo/5wsaqbRo1uqZbiVDA8ASNMnzvl8cqdqfrEp3WD /2Gg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1743192305; x=1743797105; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=yu5KF6BrH2yp81gEA850j0dS4wEWUhM6jM/Abi77cw4=; b=PpEKSF+puemp8jkGDHnYG/fby4Z/4hSL6pEalLxRNkpEUtvQkAPr0H2bI/lqpNEVpv 92oJxbEkLHIGd4deTqM2iDkUCXfM8DckWG+V8vvMycmVWdvoRbnnLA5NhScVJC5Q6LS5 kl5frRseispgeLhFEYPNgdhlwTSIxoJGPq8NIGjxQ2Rq/5/Iq6/jAD6pgktkcHil9KIG hKXpY46k+DvpuP7vmi09I8QYNqOdISZWqfkUuR+AxG5mVHM0qBkxDHLkoDmKck7Hd0Iu brmqnpAukKajodv1/8GCXctG3xvU0kBieweecQKsef2Ugb5qvzSUzFNZINkIj33mdO61 dOXA== X-Gm-Message-State: AOJu0Yy8xa9xGDb4EnUrFogg+8NjHHi3EcxLpT27J0338gEU2Png6lko +UZVVUJCVcjcGDBKOIIXGS87MRMYepgigi6McNihqAcEr9NE1i7Fdv2r/Eq/H+VF5aO7DVPia3c 5 X-Gm-Gg: ASbGncsQmL2aAE9FlHjFCXsQNPB4faAQYwIYNZp+eUYiScuZaNt1l4wl5dRZpaXk2Xt fG4ACrDjOepvXbpbWlPTyVzkS6LqjcUDQ9oPZoLR0rYW43SCKv5oQKYYf8cimygxbos9jNBIrOE fnSyen2OLOhpzvE7sPmHu6TRtXyfFoOQ1gVtUmmEdTCDiVwn6AeJfEwcV2v/fPGlCgritEsww08 ihYMTJ7AXUkZKhXUsqM5peYJle09x5VyFgZdeMwf0mJK4X4KZexteSHZFtyvQfPtH/zo3GCphIy TU3JIhOyAKEQQsG/rpsI7KfOyix2CjIi05vxwK0/+tEIYAEdaywv1ZXBs35OHyoQQS/+fMU8n6b /FNDiL2Fl6TY= X-Google-Smtp-Source: AGHT+IFG4hD2s22xWh/CxHeK9tLPwlTt3t8F2UZL/SAHYLKKWHT0/XvVTAPxPpBYi2q7Ua52Z8QR/Q== X-Received: by 2002:a05:6808:159a:b0:3f8:cf10:f113 with SMTP id 5614622812f47-3ff0f4e246fmr480094b6e.5.1743192304881; Fri, 28 Mar 2025 13:05:04 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: pierrick.bouvier@linaro.org, philmd@linaro.org Subject: [PATCH 4/9] accel/tcg: Remove cpu-all.h, exec-all.h from tb-internal.h Date: Fri, 28 Mar 2025 15:04:54 -0500 Message-ID: <20250328200459.483089-5-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250328200459.483089-1-richard.henderson@linaro.org> References: <20250328200459.483089-1-richard.henderson@linaro.org> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::22c; envelope-from=richard.henderson@linaro.org; helo=mail-oi1-x22c.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+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1743192353770019000 Content-Type: text/plain; charset="utf-8" Not used by tb-internal.h, but add an include for target_page.h in tb-maint.c. Signed-off-by: Richard Henderson Reviewed-by: Pierrick Bouvier --- accel/tcg/tb-internal.h | 2 -- accel/tcg/tb-maint.c | 1 + 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/accel/tcg/tb-internal.h b/accel/tcg/tb-internal.h index f7c2073e29..f9a06bcbab 100644 --- a/accel/tcg/tb-internal.h +++ b/accel/tcg/tb-internal.h @@ -9,8 +9,6 @@ #ifndef ACCEL_TCG_TB_INTERNAL_TARGET_H #define ACCEL_TCG_TB_INTERNAL_TARGET_H =20 -#include "exec/cpu-all.h" -#include "exec/exec-all.h" #include "exec/translation-block.h" =20 /* diff --git a/accel/tcg/tb-maint.c b/accel/tcg/tb-maint.c index d5899ad047..df3438e190 100644 --- a/accel/tcg/tb-maint.c +++ b/accel/tcg/tb-maint.c @@ -26,6 +26,7 @@ #include "exec/page-protection.h" #include "exec/mmap-lock.h" #include "exec/tb-flush.h" +#include "exec/target_page.h" #include "tb-internal.h" #include "system/tcg.h" #include "tcg/tcg.h" --=20 2.43.0 From nobody Wed Apr 2 13:32:46 2025 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1743192419; cv=none; d=zohomail.com; s=zohoarc; b=JsC2ZUe1uU7jU6qJHRqjOJOYXOiO5NIXfsn6HYXAUwwXvMRPvyiyZn2AVJhBh4gm9lLE9MT74RbJyulzRQPT6AbEb7gv/q7/+sNBT4lqQEgdyAc/KGzTEumuUqs5qome1NwQEbt9yI41IjPK/DdQvxg+Ror276AgZSeVcyk+/lM= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1743192419; h=Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=oD3b+nDGpxnwQn/lSzkFZnkDRTkEZOWvlufBLJ/eR8Q=; b=ex5ESEHCDTVbqR1p0VaAC+2Dk3c1H8DGp88sHKnE2ocrrpM53e8Azc6E1XKLtggtGUlVEYSSRdKG7tZN+fKszEn95cuNXyHNm3z8B6QFZf4hHWYR3BfnQINivb2TnAH7QVG+RONt3cX1Hs42k8DKUOSagPDGJq20rGNkhy4bqgY= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1743192419952916.6405798032177; Fri, 28 Mar 2025 13:06:59 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1tyFx0-0002sT-JI; Fri, 28 Mar 2025 16:05:10 -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 1tyFwz-0002qe-4p for qemu-devel@nongnu.org; Fri, 28 Mar 2025 16:05:09 -0400 Received: from mail-oi1-x22a.google.com ([2607:f8b0:4864:20::22a]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1tyFww-0007nf-VB for qemu-devel@nongnu.org; Fri, 28 Mar 2025 16:05:08 -0400 Received: by mail-oi1-x22a.google.com with SMTP id 5614622812f47-3feaedb6670so1502678b6e.1 for ; Fri, 28 Mar 2025 13:05:06 -0700 (PDT) Received: from stoup.. (syn-071-042-197-003.biz.spectrum.com. [71.42.197.3]) by smtp.gmail.com with ESMTPSA id 5614622812f47-3ff052799b6sm465104b6e.37.2025.03.28.13.05.05 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 28 Mar 2025 13:05:05 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1743192306; x=1743797106; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=oD3b+nDGpxnwQn/lSzkFZnkDRTkEZOWvlufBLJ/eR8Q=; b=I1cuWsT3Ayj5UstYCiufn0w9yEJAo5z9VvQRPhRbTJ0icNXMdhKzVZ15aTX7BXYkMW B1v4sBlJ5kCjUjCRvP4D7KUK6jsAC7/rVpMPu/iAugozKIf874NsMMDarkrvWW4Tf56L f9jGgfRqnvzqIsajF0MGDUojP1x3kjFmWBfplshWJ6Ou//FxqZkptZ+hUJlF+bXBxg+7 dvpM+BtMyrP26YZKuAyoTkX4RsWagLvBfV/5FNPQ7cVDUbCwWBhy3g5R0r4v7oARu2Sp jO54y0K1m4H1nIDf8EWq3/W8iDSLIqMvPMU7ll5kuBfUIVwMvjUNj1KcRC+iQyOxpILk eolA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1743192306; x=1743797106; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=oD3b+nDGpxnwQn/lSzkFZnkDRTkEZOWvlufBLJ/eR8Q=; b=o73yyyaUenXaBFfN5c67tAmel23H7rDB8to+1FTdPFa91OXRsBoqtsgtMOTBlkjfon ZfwPSp/xqB7H+hrqtI5cA0dzNWT5whQQ72AFdfvXGHaOFpX9q6LRkl5VqnqkjkzlvtA6 bfjmKjZZIT6zVEi3BY8z4s9lu5xAeskOaFA/JjIFuR26LgmYUraebIBq0EhUJM4bAXpS idDT9txJRyp3sMVdvPygKb8sd/aA8fi3Tmx0ILhD5GBBO7FDj5OPMFngr2DMvbOdoyap w/5z8TNQhiKezaciUBSBetYwZ2NoLq4+MqLLbp8LaTosKj80pe9W0fF5vsbD/ZhrNLGF L6TA== X-Gm-Message-State: AOJu0YwRQJxZ1HRxVFn++s59h+5lUnMAIaUWWoRhE8FdppG0GgiMfa2l PeF5D/P1DfeWbWkm2GeWqj4AxUXPynYXslEsbnHxRUpSxq1HczP3NDmxww+K45u3067od4G8aVR q X-Gm-Gg: ASbGncsrs4+jhP0xHcReVgOJn3dqq2/fGyEySybzoWzD0nyWkMVzjPs1iMYN+bN+G72 2BFPWgjfIBpMmBHtMKBTuWCBnObR9MstGReFu5wGfezqX2MjbBrEKB1A4YrqxJMWgFdrgkM14kh f/cD3Br0iO7DnG6tqeGBTV03urKaVWXg4PWXXxd6GuEZfBup+dO8bTKLSnxD6AxpNhlUKsitoPO LBfJJt2RQb7eR2eUnUhVDA5DON1LI6z51VHUnCBvklamgua8InaWbyjLyndIAufkCnte0jMDStY DCAR6ZgPdP7xt7i9UT1X5lhG1mLXME8WChymWZQgqlLXGrVgBbPv5ZImmk/8I3O816almyFRCSX uvVKWDW76AYs= X-Google-Smtp-Source: AGHT+IHKACtBCONYBQmC+zpdAOXw61Vjh217/e8HpdQ9+Nv8GWQCieIk/uNF0BM6X3+e5L+BQHRnkg== X-Received: by 2002:a05:6808:221b:b0:3f8:acb4:8d8e with SMTP id 5614622812f47-3ff0f5ddd9bmr463456b6e.39.1743192305672; Fri, 28 Mar 2025 13:05:05 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: pierrick.bouvier@linaro.org, philmd@linaro.org Subject: [PATCH 5/9] accel/tcg: Build translator.c twice Date: Fri, 28 Mar 2025 15:04:55 -0500 Message-ID: <20250328200459.483089-6-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250328200459.483089-1-richard.henderson@linaro.org> References: <20250328200459.483089-1-richard.henderson@linaro.org> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::22a; envelope-from=richard.henderson@linaro.org; helo=mail-oi1-x22a.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+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1743192421753019000 Content-Type: text/plain; charset="utf-8" Drop some unnecessary includes. Change the offsetof expressions to be based on CPUState instead of ArchCPU. Signed-off-by: Richard Henderson Reviewed-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: Pierrick Bouvier --- accel/tcg/translator.c | 14 ++++++-------- accel/tcg/meson.build | 2 +- 2 files changed, 7 insertions(+), 9 deletions(-) diff --git a/accel/tcg/translator.c b/accel/tcg/translator.c index 307a513487..36a6a9e040 100644 --- a/accel/tcg/translator.c +++ b/accel/tcg/translator.c @@ -11,14 +11,13 @@ #include "qemu/bswap.h" #include "qemu/log.h" #include "qemu/error-report.h" -#include "exec/exec-all.h" #include "exec/cpu-ldst-common.h" #include "exec/cpu-mmu-index.h" +#include "exec/target_page.h" #include "exec/translator.h" #include "exec/plugin-gen.h" #include "tcg/tcg-op-common.h" #include "internal-common.h" -#include "internal-target.h" #include "disas/disas.h" #include "tb-internal.h" =20 @@ -26,8 +25,7 @@ static void set_can_do_io(DisasContextBase *db, bool val) { QEMU_BUILD_BUG_ON(sizeof_field(CPUState, neg.can_do_io) !=3D 1); tcg_gen_st8_i32(tcg_constant_i32(val), tcg_env, - offsetof(ArchCPU, parent_obj.neg.can_do_io) - - offsetof(ArchCPU, env)); + offsetof(CPUState, neg.can_do_io) - sizeof(CPUState)); } =20 bool translator_io_start(DisasContextBase *db) @@ -50,8 +48,8 @@ static TCGOp *gen_tb_start(DisasContextBase *db, uint32_t= cflags) if ((cflags & CF_USE_ICOUNT) || !(cflags & CF_NOIRQ)) { count =3D tcg_temp_new_i32(); tcg_gen_ld_i32(count, tcg_env, - offsetof(ArchCPU, parent_obj.neg.icount_decr.u32) - - offsetof(ArchCPU, env)); + offsetof(CPUState, neg.icount_decr.u32) - + sizeof(CPUState)); } =20 if (cflags & CF_USE_ICOUNT) { @@ -80,8 +78,8 @@ static TCGOp *gen_tb_start(DisasContextBase *db, uint32_t= cflags) =20 if (cflags & CF_USE_ICOUNT) { tcg_gen_st16_i32(count, tcg_env, - offsetof(ArchCPU, parent_obj.neg.icount_decr.u16.= low) - - offsetof(ArchCPU, env)); + offsetof(CPUState, neg.icount_decr.u16.low) - + sizeof(CPUState)); } =20 return icount_start_insn; diff --git a/accel/tcg/meson.build b/accel/tcg/meson.build index 72d4acfe5e..047afa49a2 100644 --- a/accel/tcg/meson.build +++ b/accel/tcg/meson.build @@ -8,6 +8,7 @@ tcg_ss.add(files( 'cpu-exec-common.c', 'tcg-runtime.c', 'tcg-runtime-gvec.c', + 'translator.c', )) if get_option('plugins') tcg_ss.add(files('plugin-gen.c')) @@ -22,7 +23,6 @@ tcg_specific_ss.add(files( 'cpu-exec.c', 'tb-maint.c', 'translate-all.c', - 'translator.c', )) 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) --=20 2.43.0 From nobody Wed Apr 2 13:32:46 2025 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1743192428; cv=none; d=zohomail.com; s=zohoarc; b=ba48etwuwFjy+ekR+PVK4BAS22NFaqXE3fViKjEKGAWcgY5pYsU5DRgcpUdttx+UKqwJ1soT1k2U7RtEa0AE4EN4Rl7L6E992GpuUUZ3SmxJdoFap/WC1bXO5rxY/uhJd5pVY9xBylUjLbmC1Towv/TtlUG/XkoS29VdoReSRO0= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1743192428; h=Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=UZg1pklGiSZQ4vU+3tGBO6lhROLm4HbFNDbqrkRsdUg=; b=Qj3UpxuJtL+76LtSOK00KDCjLMCCgiPBU3+Cn7/ToqGY5ENe8NEnrumnoVEVpJHc5XiGnGSSozI+mCr6jyC0YARi9b6LoMEcwWuroB2BT8i2cc6h+nV6SQq0HZDbfGaQJaxkMqd2y2wRa7fODj6C4LJzsAyVwD1VPaSypkgrSOg= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 174319242887275.50633308229555; Fri, 28 Mar 2025 13:07:08 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1tyFx6-0002ux-A9; Fri, 28 Mar 2025 16:05:16 -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 1tyFx0-0002sk-Jn for qemu-devel@nongnu.org; Fri, 28 Mar 2025 16:05:10 -0400 Received: from mail-oi1-x234.google.com ([2607:f8b0:4864:20::234]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1tyFwy-0007o7-Ct for qemu-devel@nongnu.org; Fri, 28 Mar 2025 16:05:10 -0400 Received: by mail-oi1-x234.google.com with SMTP id 5614622812f47-3f6dccdcadaso1708189b6e.2 for ; Fri, 28 Mar 2025 13:05:07 -0700 (PDT) Received: from stoup.. (syn-071-042-197-003.biz.spectrum.com. [71.42.197.3]) by smtp.gmail.com with ESMTPSA id 5614622812f47-3ff052799b6sm465104b6e.37.2025.03.28.13.05.05 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 28 Mar 2025 13:05:06 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1743192307; x=1743797107; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=UZg1pklGiSZQ4vU+3tGBO6lhROLm4HbFNDbqrkRsdUg=; b=u3bz9JHHxWKjRX8Z7Ntx/bK6lUJZmGlWSB4O9dbDn4HKHGrcdD0o9G38NyrmeReSNb rqk31or8reKgzm7+znPYYGcAZ1WRbxzdZ8E2DMS7R2ynguzep+EfmWc5WXT4LwjDQ3mC XA+73nmpYOA/xxZ7dXY8tvvewkTa4z8pDDWzjUJsOcCPbEdYWTNAp6P/gjLRe6EeQKfP BYAvwge4evQLhPztWTkvt0UygHtze41ZVVVaJHfDriX0DKsB/BHEPJf3S+B8PrDI3Lw2 w29toUoNuUTs+vMtkvrvBypibCJtHX5YIxzySPwm0/BjWEsqaefJC5DXv3N1uG0zfVp/ DiXA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1743192307; x=1743797107; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=UZg1pklGiSZQ4vU+3tGBO6lhROLm4HbFNDbqrkRsdUg=; b=bgItVLgZVIH/pHUuiknW7u4r8GxIgTQozf0Bfwh8ZxXN5UFidrQscjz1hWk5R4On7z O9v7dhOoehwNCHErFq1D+76u4DRHvL0OZoh8nJu4ZPxWfRHYsp7Be607dT6dbSdjOPj+ 3958BcEhFoOUo9arZ21CpuedNlRmkN8uTSij8C4j2W/fJMVo1iAcri7gtHEuOV1t8bn3 MdrQs4KHj+Hc80Y/U/5MylolgnPOr7q5WaWSvA1C4Z1fPOMRoh9qtRRnRf/4Rdi7LR/r BvUahfs7YpQ0lcMziD2T/3T0tu/KPuV0eZw0Adl+3kwjTnbp+jPHRCLZ1xb4ha9e8m4q ZOPQ== X-Gm-Message-State: AOJu0Yxjw4GhALQP8u8QosQhiE8rtUj12OWqTs4UQT9C4StcrTYoAUdw BFWRBXqeT1snPlQ2styc7gh1jl1eD32RE9iq2veMVyQxw/jMgzrkMaexVpSjxqWVeCqnvOw5zU3 E X-Gm-Gg: ASbGncslUOC3jQJ/2TpCqkIJJ/mFpxPgATQar/VIqOCzqeZaz8UPwCoLVCM3lxapMRO mlMD0SPod7E5TkoWKstnDL4yTsILzepJ43Ppg5g47uNe1Qiwr9ThwmU7/2+V6yXiHXXhVC7wFAN P6KKEM0K8EBOLy4ELOudVbaz+iaj660CpbZ2zVNAj+v2wugCclneclH1GK4wYt7F6MRh29jW50F FL2m8a61I3dH3Ku7J+LcI5R3YtWkEvT0vE7QtRy7cXLyhhpSy2rvFv45+S+SQoYulPC2fWC9Dkt ruGxdVVxYrEbD2zDbxXmy8rQHj3ltki80S6JE+hjUCE6VmIW5wQwPP8YlqATpECt3WAN6mMwRiA 5/0XEEDyyBrXqIgL7O6+XVg== X-Google-Smtp-Source: AGHT+IEo7hgZYZqkY7nQS/lM6LySyiBRleqcJGnM9DgsESCVPGhVvc9T9ID+1XC6wXPWr82enEbJNA== X-Received: by 2002:a05:6808:2112:b0:3fe:aebe:d60d with SMTP id 5614622812f47-3ff0f54bb45mr404490b6e.21.1743192306772; Fri, 28 Mar 2025 13:05:06 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: pierrick.bouvier@linaro.org, philmd@linaro.org Subject: [PATCH 6/9] accel/tcg: Split out tlb-bounds.h Date: Fri, 28 Mar 2025 15:04:56 -0500 Message-ID: <20250328200459.483089-7-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250328200459.483089-1-richard.henderson@linaro.org> References: <20250328200459.483089-1-richard.henderson@linaro.org> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::234; envelope-from=richard.henderson@linaro.org; helo=mail-oi1-x234.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+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1743192429791019000 Content-Type: text/plain; charset="utf-8" The CPU_TLB_DYN_{MIN,MAX}_BITS definitions are not required outside of cputlb.c and translate-all.c. Signed-off-by: Richard Henderson Reviewed-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: Pierrick Bouvier --- accel/tcg/tb-internal.h | 27 --------------------------- accel/tcg/tlb-bounds.h | 32 ++++++++++++++++++++++++++++++++ accel/tcg/cputlb.c | 1 + accel/tcg/translate-all.c | 1 + 4 files changed, 34 insertions(+), 27 deletions(-) create mode 100644 accel/tcg/tlb-bounds.h diff --git a/accel/tcg/tb-internal.h b/accel/tcg/tb-internal.h index f9a06bcbab..08538e2896 100644 --- a/accel/tcg/tb-internal.h +++ b/accel/tcg/tb-internal.h @@ -22,33 +22,6 @@ */ #define GETPC_ADJ 2 =20 -#ifdef CONFIG_SOFTMMU - -#define CPU_TLB_DYN_MIN_BITS 6 -#define CPU_TLB_DYN_DEFAULT_BITS 8 - -# if HOST_LONG_BITS =3D=3D 32 -/* Make sure we do not require a double-word shift for the TLB load */ -# define CPU_TLB_DYN_MAX_BITS (32 - TARGET_PAGE_BITS) -# else /* HOST_LONG_BITS =3D=3D 64 */ -/* - * Assuming TARGET_PAGE_BITS=3D=3D12, with 2**22 entries we can cover 2**(= 22+12) =3D=3D - * 2**34 =3D=3D 16G of address space. This is roughly what one would expec= t a - * TLB to cover in a modern (as of 2018) x86_64 CPU. For instance, Intel - * Skylake's Level-2 STLB has 16 1G entries. - * Also, make sure we do not size the TLB past the guest's address space. - */ -# ifdef TARGET_PAGE_BITS_VARY -# define CPU_TLB_DYN_MAX_BITS \ - MIN(22, TARGET_VIRT_ADDR_SPACE_BITS - TARGET_PAGE_BITS) -# else -# define CPU_TLB_DYN_MAX_BITS \ - MIN_CONST(22, TARGET_VIRT_ADDR_SPACE_BITS - TARGET_PAGE_BITS) -# endif -# endif - -#endif /* CONFIG_SOFTMMU */ - void tb_lock_page0(tb_page_addr_t); =20 #ifdef CONFIG_USER_ONLY diff --git a/accel/tcg/tlb-bounds.h b/accel/tcg/tlb-bounds.h new file mode 100644 index 0000000000..efd34d4793 --- /dev/null +++ b/accel/tcg/tlb-bounds.h @@ -0,0 +1,32 @@ +/* + * softmmu size bounds + * SPDX-License-Identifier: LGPL-2.1-or-later + */ + +#ifndef ACCEL_TCG_TLB_BOUNDS_H +#define ACCEL_TCG_TLB_BOUNDS_H + +#define CPU_TLB_DYN_MIN_BITS 6 +#define CPU_TLB_DYN_DEFAULT_BITS 8 + +# if HOST_LONG_BITS =3D=3D 32 +/* Make sure we do not require a double-word shift for the TLB load */ +# define CPU_TLB_DYN_MAX_BITS (32 - TARGET_PAGE_BITS) +# else /* HOST_LONG_BITS =3D=3D 64 */ +/* + * Assuming TARGET_PAGE_BITS=3D=3D12, with 2**22 entries we can cover 2**(= 22+12) =3D=3D + * 2**34 =3D=3D 16G of address space. This is roughly what one would expec= t a + * TLB to cover in a modern (as of 2018) x86_64 CPU. For instance, Intel + * Skylake's Level-2 STLB has 16 1G entries. + * Also, make sure we do not size the TLB past the guest's address space. + */ +# ifdef TARGET_PAGE_BITS_VARY +# define CPU_TLB_DYN_MAX_BITS \ + MIN(22, TARGET_VIRT_ADDR_SPACE_BITS - TARGET_PAGE_BITS) +# else +# define CPU_TLB_DYN_MAX_BITS \ + MIN_CONST(22, TARGET_VIRT_ADDR_SPACE_BITS - TARGET_PAGE_BITS) +# endif +# endif + +#endif /* ACCEL_TCG_TLB_BOUNDS_H */ diff --git a/accel/tcg/cputlb.c b/accel/tcg/cputlb.c index 28c47d4872..a717f357d5 100644 --- a/accel/tcg/cputlb.c +++ b/accel/tcg/cputlb.c @@ -41,6 +41,7 @@ #include "trace.h" #include "tb-hash.h" #include "tb-internal.h" +#include "tlb-bounds.h" #include "internal-common.h" #include "internal-target.h" #ifdef CONFIG_PLUGIN diff --git a/accel/tcg/translate-all.c b/accel/tcg/translate-all.c index bb161ae61a..87fb6c51d3 100644 --- a/accel/tcg/translate-all.c +++ b/accel/tcg/translate-all.c @@ -47,6 +47,7 @@ #include "exec/page-protection.h" #include "exec/mmap-lock.h" #include "tb-internal.h" +#include "tlb-bounds.h" #include "exec/translator.h" #include "exec/tb-flush.h" #include "qemu/bitmap.h" --=20 2.43.0 From nobody Wed Apr 2 13:32:46 2025 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1743192442; cv=none; d=zohomail.com; s=zohoarc; b=ijE1WaAIyRF+iQ3ArNDsopWEdvhloVvrcOneFu4z5TC+/78RXdu2jQJm63zM0x6rV/HaaYYR+3SKgwf6H3qi1S/6BO0aOOuFZljgqbfprhERxsjE0Qv/qSNvuLB82GcrT+qILgV8mEveErIpczOe6qhj/1znTYpF03NvoYK4rFU= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1743192442; h=Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=8Musv96uqDqGBH3VebH5aXYMcN88bZT/SnScT9B79DM=; b=ONaJzd7sJsaq5EP3suuHWlF6wLMMLQiVAVd7reFzvmtE1d6ML2slo1mA6Kf4TSOe8nY/3Y1USBxDBgn/MVaoh6AMweoNF95bEFp2tsQiRSLULCXXVLl9cwKqHdduB8bq/1OJmjpC29oZi6r3B8unzni+s6X4ayrxDGS4dFfuvc0= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 174319244252736.90174318998561; Fri, 28 Mar 2025 13:07:22 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1tyFx8-0002v7-Sy; Fri, 28 Mar 2025 16:05:19 -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 1tyFx1-0002ta-8r for qemu-devel@nongnu.org; Fri, 28 Mar 2025 16:05:12 -0400 Received: from mail-oi1-x22e.google.com ([2607:f8b0:4864:20::22e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1tyFwz-0007om-7c for qemu-devel@nongnu.org; Fri, 28 Mar 2025 16:05:10 -0400 Received: by mail-oi1-x22e.google.com with SMTP id 5614622812f47-3f6a92f2328so1343243b6e.0 for ; Fri, 28 Mar 2025 13:05:08 -0700 (PDT) Received: from stoup.. (syn-071-042-197-003.biz.spectrum.com. [71.42.197.3]) by smtp.gmail.com with ESMTPSA id 5614622812f47-3ff052799b6sm465104b6e.37.2025.03.28.13.05.07 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 28 Mar 2025 13:05:07 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1743192308; x=1743797108; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=8Musv96uqDqGBH3VebH5aXYMcN88bZT/SnScT9B79DM=; b=Z3c1EtrysxkK8kGjNuI6g2+Ip5MUMZAVEv9sM0WhLHqixvk7C7afL2mPS8FwUDJz+S V1Tw5WzPrMNDwkdPWlY5u0DF3fxbuemaQ+AUd7PBohccGqAV+7ZTyCwve5PQCLjtpB36 t/h9udWLRSQTs3AbgGEkHGTgjYU3xv/pBdtBGnOTi0h9//zEejXa+A5QBwR/WNsz7t6T PmsuC5wFJwJ0BcO811TpDwb4oMrhHBrRzAyvLt1KpmXDR9jJJxIDDqy7aZ644QLBol58 lL8y+U1fCPjAcXFM5agLkzW+kC4A2fJKsvQFmRVTyvoCoLCB3R2mV4vcUcyIdrVmASM7 WLxQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1743192308; x=1743797108; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=8Musv96uqDqGBH3VebH5aXYMcN88bZT/SnScT9B79DM=; b=DftZ9X3d95ZRQp6jZl5f++rg+m18fnyqSbpinBqSHE1zqeJAJwTuRGzogdqFeDE6EY 6Wj0WG5TTVp0rGc1uUJbsoOQ6qVDT5hgRl9e+Dz5Yd4bsHT8GaJcUALDt0NkOPQyy9VE 0EqEZb8pmT8eipz2TmPKvjF+jh+RoZMUeI4rz4f/582B/6b/Cx2DAs/j+nG/+ZV/E6+7 f5fafjcDSFh1OmkhnMcoOwVt840GdsMOBJ9oMHfiqv/mZQmC23NPuPMHOFFou3qgrlIV KbkO7T9rsaO4WZr3M7DZt6YBwsiKj30lDIq3U1xf0V4HZv2EF5mVGlzyAcf9akpkCu2n erDg== X-Gm-Message-State: AOJu0YxHq/BXD5/EFkTU+t6gkCOy2nOaI/sXxO5B4pOPRSYb8YkTpsTz uhU02at2iSAdr8ga6IV3kg1r5vIXxYyWQVC/mOlWsSV4+zvH/MVxrmqC9Y8BrO6QehTOGxGxRM1 K X-Gm-Gg: ASbGncu90CKJH5lIFhwOyI8sHwPQA+aTK0s/JytMO+axJSvi6tfHfCGVK6fjPtHAd63 lRAGXxr/ly6ug+GnTGyfU5iPjeiaeVRME6TQn/wMkNYqiNeMgTAREB27VrkBSGH4qCalC6SAAln gxCMAJeugg+P6P+7jARvVZXzTIVQukisLkBWIxS+BAmAB2Advh8chrwj5B/OUC4dOc8/UwkaCj+ lNqhP15IT7RSalmKAkHHi53eq/qBkhhNEAwYECarv7QYzjoVworAg8rYc3vCKHE6S6BSp3D9DSy WOnCQ1vEwi2ZCr4rHOJuAOrohff8FbK8gOoobUbwQw8pumZQHkxGx+rApLx/W1g+es6BVelDbqL /gKxQwfAwf/4= X-Google-Smtp-Source: AGHT+IH54HqArmbarM9uoxXC1Y6I8bgouOcwvzNXNd9c1G+dMUBRy/g4Bkb5af/T+ZUxBg5EWhs9LQ== X-Received: by 2002:a05:6808:2388:b0:3f7:5223:84c7 with SMTP id 5614622812f47-3ff0ed043ffmr496221b6e.19.1743192307794; Fri, 28 Mar 2025 13:05:07 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: pierrick.bouvier@linaro.org, philmd@linaro.org Subject: [PATCH 7/9] include/exec: Redefine tlb-flags with absolute values Date: Fri, 28 Mar 2025 15:04:57 -0500 Message-ID: <20250328200459.483089-8-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250328200459.483089-1-richard.henderson@linaro.org> References: <20250328200459.483089-1-richard.henderson@linaro.org> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::22e; envelope-from=richard.henderson@linaro.org; helo=mail-oi1-x22e.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+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1743192444017019000 Content-Type: text/plain; charset="utf-8" Don't base the values on TARGET_PAGE_BITS_MIN, but do verify that TLB_FLAGS_MASK does not overlap minimum page size. Signed-off-by: Richard Henderson Reviewed-by: Pierrick Bouvier --- include/exec/tlb-flags.h | 68 +++++++++++++++++++--------------------- accel/tcg/cputlb.c | 2 ++ 2 files changed, 34 insertions(+), 36 deletions(-) diff --git a/include/exec/tlb-flags.h b/include/exec/tlb-flags.h index 54a6bae768..357e79095c 100644 --- a/include/exec/tlb-flags.h +++ b/include/exec/tlb-flags.h @@ -19,54 +19,29 @@ #ifndef TLB_FLAGS_H #define TLB_FLAGS_H =20 -#include "exec/cpu-defs.h" +/* + * Flags returned for lookup of a TLB virtual address. + */ =20 #ifdef CONFIG_USER_ONLY =20 /* - * Allow some level of source compatibility with softmmu. We do not - * support any of the more exotic features, so only invalid pages may - * be signaled by probe_access_flags(). + * Allow some level of source compatibility with softmmu. + * Invalid is set when the page does not have requested permissions. + * MMIO is set when we want the target helper to use the functional + * interface for load/store so that plugins see the access. */ -#define TLB_INVALID_MASK (1 << (TARGET_PAGE_BITS_MIN - 1)) -#define TLB_MMIO (1 << (TARGET_PAGE_BITS_MIN - 2)) -#define TLB_WATCHPOINT 0 +#define TLB_INVALID_MASK (1 << 0) +#define TLB_MMIO (1 << 1) +#define TLB_WATCHPOINT 0 =20 #else =20 -/* - * Flags stored in the low bits of the TLB virtual address. - * These are defined so that fast path ram access is all zeros. - * The flags all must be between TARGET_PAGE_BITS and - * maximum address alignment bit. - * - * Use TARGET_PAGE_BITS_MIN so that these bits are constant - * when TARGET_PAGE_BITS_VARY is in effect. - * - * The count, if not the placement of these bits is known - * to tcg/tcg-op-ldst.c, check_max_alignment(). - */ -/* Zero if TLB entry is valid. */ -#define TLB_INVALID_MASK (1 << (TARGET_PAGE_BITS_MIN - 1)) -/* - * Set if TLB entry references a clean RAM page. The iotlb entry will - * contain the page physical address. - */ -#define TLB_NOTDIRTY (1 << (TARGET_PAGE_BITS_MIN - 2)) -/* Set if the slow path must be used; more flags in CPUTLBEntryFull. */ -#define TLB_FORCE_SLOW (1 << (TARGET_PAGE_BITS_MIN - 3)) - -/* - * Use this mask to check interception with an alignment mask - * in a TCG backend. - */ -#define TLB_FLAGS_MASK \ - (TLB_INVALID_MASK | TLB_NOTDIRTY | TLB_FORCE_SLOW) - /* * Flags stored in CPUTLBEntryFull.slow_flags[x]. * TLB_FORCE_SLOW must be set in CPUTLBEntry.addr_idx[x]. */ + /* Set if TLB entry requires byte swap. */ #define TLB_BSWAP (1 << 0) /* Set if TLB entry contains a watchpoint. */ @@ -82,6 +57,27 @@ (TLB_BSWAP | TLB_WATCHPOINT | TLB_CHECK_ALIGNED | \ TLB_DISCARD_WRITE | TLB_MMIO) =20 +/* + * Flags stored in CPUTLBEntry.addr_idx[x]. + * These must be above the largest alignment (64 bytes), + * and below the smallest page size (1024 bytes). + * This leaves bits [9:6] available for use. + */ + +/* Zero if TLB entry is valid. */ +#define TLB_INVALID_MASK (1 << 6) +/* Set if TLB entry references a clean RAM page. */ +#define TLB_NOTDIRTY (1 << 7) +/* Set if the slow path must be used; more flags in CPUTLBEntryFull. */ +#define TLB_FORCE_SLOW (1 << 8) + +/* + * Use this mask to check interception with an alignment mask + * in a TCG backend. + */ +#define TLB_FLAGS_MASK \ + (TLB_INVALID_MASK | TLB_NOTDIRTY | TLB_FORCE_SLOW) + /* The two sets of flags must not overlap. */ QEMU_BUILD_BUG_ON(TLB_FLAGS_MASK & TLB_SLOW_FLAGS_MASK); =20 diff --git a/accel/tcg/cputlb.c b/accel/tcg/cputlb.c index a717f357d5..39314e86f3 100644 --- a/accel/tcg/cputlb.c +++ b/accel/tcg/cputlb.c @@ -49,6 +49,8 @@ #endif #include "tcg/tcg-ldst.h" =20 +QEMU_BUILD_BUG_ON(TLB_FLAGS_MASK & ((1u < TARGET_PAGE_BITS_MIN) - 1)); + /* DEBUG defines, enable DEBUG_TLB_LOG to log to the CPU_LOG_MMU target */ /* #define DEBUG_TLB */ /* #define DEBUG_TLB_LOG */ --=20 2.43.0 From nobody Wed Apr 2 13:32:46 2025 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1743192445; cv=none; d=zohomail.com; s=zohoarc; b=HVwqVPH0L9oQR+qpi+UdbdtPt2i5u/UFZu0vKzgIU3tQTe6eyQusNTt1VW8mPwZvQ2AxiuPtJth+lLVLlV0jRRHLXPLiLXnKQm2IDhwCINYeIIk0mTrNnxKn+RkR+iNDzsbg9/nCUbZ+9MASH5qjZJj+zFCe+W36T7J7xLdpYSo= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1743192445; h=Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=2gHs8eWFpnWN3yMoh+lxCbsbSFzac6+W/s5SOrn3Ec8=; b=l0elycFzqM8pqdLwi+9hZ5ndJhLzCE3aRHABhUflK+HyDDMojudt3OLeicwVjYSPq37der1shnz6Bmo/xZHCtYN19Y+2bKgLFjnzx2U54xODIMVmoW0KIDXtAuZefSLqO6J7paPXHRyY6qHK0FuUwLb+QqaHRIPlzN1npZ2aIp8= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1743192445459482.6636117267594; Fri, 28 Mar 2025 13:07:25 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1tyFxA-0002vD-7Z; Fri, 28 Mar 2025 16:05:20 -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 1tyFx2-0002tu-JF for qemu-devel@nongnu.org; Fri, 28 Mar 2025 16:05:13 -0400 Received: from mail-ot1-x32a.google.com ([2607:f8b0:4864:20::32a]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1tyFx0-0007p4-GJ for qemu-devel@nongnu.org; Fri, 28 Mar 2025 16:05:12 -0400 Received: by mail-ot1-x32a.google.com with SMTP id 46e09a7af769-72c27166ab3so1491967a34.1 for ; Fri, 28 Mar 2025 13:05:09 -0700 (PDT) Received: from stoup.. (syn-071-042-197-003.biz.spectrum.com. [71.42.197.3]) by smtp.gmail.com with ESMTPSA id 5614622812f47-3ff052799b6sm465104b6e.37.2025.03.28.13.05.08 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 28 Mar 2025 13:05:08 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1743192309; x=1743797109; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=2gHs8eWFpnWN3yMoh+lxCbsbSFzac6+W/s5SOrn3Ec8=; b=m/IDPQH3D2oH2Xgsu3By4sI8EJp1aHWCR5ghMd5a3EWdwP5y3PERLnW9N7702Obu5O hLIh+9xcSX+7I2QJSp/jmK5zfAqPC6rHDRMlMica8u9pqS5L9XZ8QjPSLXKHUyhhWcHa goxqIFkjz6PL7lBqVxMNX4anOgYntkapmzelayjYsEnfRY+aZ051+JH9EmBZ7LHy/Mir XBbro2qqv33t7d4k4v4C/SRrPi0sC9Gp1X4wpSnALXmloxw8zo5ET1v+Q++uNQ2yqlW3 BF59zof3M+bGt4JEBlRUMI6GN8w9USLRmlrvDHWy5u56iClpldKvG4146js3msJ8kQqn gEsg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1743192309; x=1743797109; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=2gHs8eWFpnWN3yMoh+lxCbsbSFzac6+W/s5SOrn3Ec8=; b=CLnA1aAHES3E4EwVYR1L+vy1qOEZRJWnskd/G1+Zy+JzIRcfr19nWNhy/mPC3Gu+w0 o/ck91bPnl5+owSL8CHxtjoZXaG+d8EmsGNT5+U11+4q8OVISb62wGFXR4qMz38ym19E YtO6fmifEy3GkCTJirE62vnqxGjjehvYB2DYwN8xWWnMwqnign91yw9aPgQ3+AdXv6kd yAdRSdUk28ogaiCRAXZPF8CjQSX7aitjlwlaM2ZcHe/6spKXY9OxJ9AtBRrF2Cl+qI/0 2dlGqW+cyTk+8ROfOKUvaHpWhAQy6Hb2MS3RHvaVC0eOjhRfGdXzCo7CLutaYHJy4v9k Q2Jg== X-Gm-Message-State: AOJu0Yxz5LJiBhadAMtFecZXNe+YmB/Qu9B9FrjCAsAXO7Cu8fzj1chP W9+rlPB85gE4TFjbiMfANYz7VkVOXzg0yb0nYkebS3bqrWFEAFS1kSmIz5nVHtaxBpeOJzU03Yq + X-Gm-Gg: ASbGncuZPjGgHBP4mdaWTsObO4GA4lj69xDhpAPZnOf4RGi1U3D6QQkhr8BoXVtZtfO ho7tULnualo6JKfjkhpCAPfYz5AOAKJjuv1qzNXiSvUtfLg+PQtrewIQ/4NkEOKOPlZTcQIuVV4 mmWIHEUHCFE+9UgkHNtnw7HE5L4iK8N7SPFojEWgmy40FW2RAAOw5pg6hwVrotO6A3isl9Un48n NOzCm0YWZp1dJPq5whdY2qIaKvHcLal2ZWAj2IMZZnjN6cK+5O3cxmwe/Zg5amDS/YEM7BKrBVE cG5F/yYPmh5McKrYXcT0zTbREZC2B9pKCVSZGvx8qXTbVAprfo5egNbTlHG314/Oktbz8NwRqYR nXpGmzsxoB48= X-Google-Smtp-Source: AGHT+IHghG/wEczC9QMQtmkN8bq9NllHLuUryQ3lmO3RTJCVqLCbQQgm5qBRpAWRSnQ2FYyviLauOA== X-Received: by 2002:a05:6808:11d0:b0:3fa:7909:2716 with SMTP id 5614622812f47-3ff0f5fa01fmr370720b6e.39.1743192308522; Fri, 28 Mar 2025 13:05:08 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: pierrick.bouvier@linaro.org, philmd@linaro.org Subject: [PATCH 8/9] page-vary: Move and rename qemu_target_page_bits_min Date: Fri, 28 Mar 2025 15:04:58 -0500 Message-ID: <20250328200459.483089-9-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250328200459.483089-1-richard.henderson@linaro.org> References: <20250328200459.483089-1-richard.henderson@linaro.org> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::32a; envelope-from=richard.henderson@linaro.org; helo=mail-ot1-x32a.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+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1743192446005019000 Content-Type: text/plain; charset="utf-8" Rename to migration_legacy_page_bits, to make it clear that we cannot change the value without causing a migration break. Move to page-vary.h and page-vary-target.c. Define via TARGET_PAGE_BITS if not TARGET_PAGE_BITS_VARY. Signed-off-by: Richard Henderson Reviewed-by: Pierrick Bouvier --- include/exec/page-vary.h | 9 +++++++++ include/exec/target_page.h | 1 - migration/savevm.c | 6 +++--- page-target.c | 5 ----- page-vary-target.c | 9 +++++++++ 5 files changed, 21 insertions(+), 9 deletions(-) diff --git a/include/exec/page-vary.h b/include/exec/page-vary.h index 54ddde308a..101c25911c 100644 --- a/include/exec/page-vary.h +++ b/include/exec/page-vary.h @@ -49,4 +49,13 @@ bool set_preferred_target_page_bits(int bits); */ void finalize_target_page_bits(void); =20 +/** + * migration_legacy_page_bits + * + * For migration compatibility with qemu v2.9, prior to the introduction + * of the configuration/target-page-bits section, return the value of + * TARGET_PAGE_BITS that the target had then. + */ +int migration_legacy_page_bits(void); + #endif /* EXEC_PAGE_VARY_H */ diff --git a/include/exec/target_page.h b/include/exec/target_page.h index 8e89e5cbe6..e4bd7f7767 100644 --- a/include/exec/target_page.h +++ b/include/exec/target_page.h @@ -63,7 +63,6 @@ static inline int qemu_target_page_bits(void) return TARGET_PAGE_BITS; } =20 -int qemu_target_page_bits_min(void); size_t qemu_target_pages_to_MiB(size_t pages); =20 #endif diff --git a/migration/savevm.c b/migration/savevm.c index c33200a33f..0c12e373b4 100644 --- a/migration/savevm.c +++ b/migration/savevm.c @@ -50,6 +50,7 @@ #include "system/cpus.h" #include "system/memory.h" #include "exec/target_page.h" +#include "exec/page-vary.h" #include "trace.h" #include "qemu/iov.h" #include "qemu/job.h" @@ -339,7 +340,7 @@ static int configuration_pre_load(void *opaque) * predates the variable-target-page-bits support and is using the * minimum possible value for this CPU. */ - state->target_page_bits =3D qemu_target_page_bits_min(); + state->target_page_bits =3D migration_legacy_page_bits(); return 0; } =20 @@ -462,8 +463,7 @@ static const VMStateInfo vmstate_info_capability =3D { */ static bool vmstate_target_page_bits_needed(void *opaque) { - return qemu_target_page_bits() - > qemu_target_page_bits_min(); + return qemu_target_page_bits() > migration_legacy_page_bits(); } =20 static const VMStateDescription vmstate_target_page_bits =3D { diff --git a/page-target.c b/page-target.c index 321e43d06f..8fcd5443b5 100644 --- a/page-target.c +++ b/page-target.c @@ -9,11 +9,6 @@ #include "qemu/osdep.h" #include "exec/target_page.h" =20 -int qemu_target_page_bits_min(void) -{ - return TARGET_PAGE_BITS_MIN; -} - /* Convert target pages to MiB (2**20). */ size_t qemu_target_pages_to_MiB(size_t pages) { diff --git a/page-vary-target.c b/page-vary-target.c index 84ddeb7c26..6251d948cf 100644 --- a/page-vary-target.c +++ b/page-vary-target.c @@ -23,6 +23,15 @@ #include "exec/page-vary.h" #include "exec/target_page.h" =20 +int migration_legacy_page_bits(void) +{ +#ifdef TARGET_PAGE_BITS_VARY + return TARGET_PAGE_BITS_MIN; +#else + return TARGET_PAGE_BITS; +#endif +} + bool set_preferred_target_page_bits(int bits) { #ifdef TARGET_PAGE_BITS_VARY --=20 2.43.0 From nobody Wed Apr 2 13:32:46 2025 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1743192355; cv=none; d=zohomail.com; s=zohoarc; b=HROJdEndhtlqW912SU0ASxIdIztyAPnHD1zBJ+eZ3SncAErhvcJyc+RzpBs4vy2eQgBMlDLbkm7wHcqiOQeOVGCSOlGXXeGBWbpa2219Xx11uvR6CquwMmYCOnawfA09GjBBoVutP6CgJKQJ/13aI7Njc3NLKLiTbdFJ8vV+I9U= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1743192355; h=Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=jIJnvFGOy/E91AR0rUZiWO2SS/DFBq2FPcdK2nKCqCw=; b=MHrm8Y0r263YL/N2WeeHLb32ROEkSCR2wSluU+9TGo5QK6STJ2oFjn21gUASLBpuFS5xIrJMiECuvxriS9lz7H+jfgvVJRStcWAFpOU34+CNA2JRz+sfO8bJpT+58G93fMI4Rmyod44ImClMRQhSwOb9KpZJi4diDAYrCkdGCHw= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1743192355354617.3119414079367; Fri, 28 Mar 2025 13:05:55 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1tyFxB-0002wD-BT; Fri, 28 Mar 2025 16:05:21 -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 1tyFx3-0002uD-LH for qemu-devel@nongnu.org; Fri, 28 Mar 2025 16:05:13 -0400 Received: from mail-ot1-x32c.google.com ([2607:f8b0:4864:20::32c]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1tyFx1-0007pF-GF for qemu-devel@nongnu.org; Fri, 28 Mar 2025 16:05:13 -0400 Received: by mail-ot1-x32c.google.com with SMTP id 46e09a7af769-72bccda48cbso1630576a34.1 for ; Fri, 28 Mar 2025 13:05:10 -0700 (PDT) Received: from stoup.. (syn-071-042-197-003.biz.spectrum.com. [71.42.197.3]) by smtp.gmail.com with ESMTPSA id 5614622812f47-3ff052799b6sm465104b6e.37.2025.03.28.13.05.08 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 28 Mar 2025 13:05:09 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1743192310; x=1743797110; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=jIJnvFGOy/E91AR0rUZiWO2SS/DFBq2FPcdK2nKCqCw=; b=du8PeL0367oSlx7zeR74gbDC8Z0w1l6dprdO4/OZcQ0X8tUAMp2SslfTgpTZSUUhyX 9zxgNx4S7jmW0AfYy4rN90R6dWj7O2LtoV6Ut20JfdCPB6F8x8mEgmPELJi4JuHQRHZc nMNKGkVFykFe8wFxExnoLzc0vuWwJrvlmeVV4ShTQ2ut7sbIFs3OxW3cHDh+ZJhV1DCv 8LmYmVKb9PqCYEX8Zfhwfo/cgdS8RoCLP+7gU4cyOfGViR1JhxBECKkzCioW1jHTPy+h gX8OHkCpckh8PTKYA2vewqthudhxuE2ElAUt7c1jRjirxhDK4BWjdjR3QAjioJonOq/a 5zJg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1743192310; x=1743797110; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=jIJnvFGOy/E91AR0rUZiWO2SS/DFBq2FPcdK2nKCqCw=; b=aRtzKVNai1m+Xey4GSrjTVy1kR9ocRGT1mRRCErF9yW+tUkPuX+xbzqVAKMllTvQ6M dZ3SYmJBle4PuZBy6yZnzypxWa6lJaAdn/rvOZTRxL6pnNI7AB13ePVV1zXKTc0bH2qn YVQr8VKV7NnbjI+mzA/4GCLqI227r7bauqYXJdcJAGXIsdlf3lP75vEXsC77EzoodHS8 myR9Njj3NS0jz53FxoOIYZR6an0E6ngNpDYVMvyu9WScaRTwFnP8BeNDdiANHJdMIich qowh0zJHEag8CyUUeENtLII2batLza+QODTXZvidRLflyM8jKOSAk1oDE4xqu+oUDHKi ahUQ== X-Gm-Message-State: AOJu0Yz4A8KEOGU/K7Wf+Khwos96f+IpaxngSVQpKG69lWBAbdzJf6/O tm87Gk6ezKNM7bPaVlQ2tAPwog5COpdJ3vYId9J/h4dTqjuuWXxQeOrbp0B6H9o/JA4RfjyRPJg W X-Gm-Gg: ASbGncv9XUCWisS9tQWGdKL9BksZyuYQp8QPD1EMbwnC5kFk9edWO5Ovho6AFCmRqRO 2OWlOBdyIzCZ9mlnpLo3FcGCgD1q19bJBKNOBoIiyOXNCVusZmXfa6heN8pXvR3g3ROi3LIILzW atgpDZ8THQ8BlidL74QBIvUSeUbwscHbnscHDJLloCS7+tR0EKXtrFH2NKOr6NOgc3S8/HCGgpa 5j+QK9Yd4L+ceW1z+linWTmI/ummYQ8eheyfkQw3MHDbTr3L2DcrBUnhZzHm4qTNzZgvcXh0c4t j8vXTQLeDlgr4i4xVGrPubwgrABLkfDSWZY3hiSCCIKiZArvJV9pRl91uijh3r85kVNWW8Sj3N1 XHXpq3w4/LbA= X-Google-Smtp-Source: AGHT+IEr6oM1WtuEN0j/TYxW8or0zlVD+RxwNVZAhOKVsuDEmIiewVYPQysb0a3owB4ymSvzRRlHMQ== X-Received: by 2002:a05:6808:1c0a:b0:3fa:7909:271f with SMTP id 5614622812f47-3ff0f50470dmr594640b6e.5.1743192309554; Fri, 28 Mar 2025 13:05:09 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: pierrick.bouvier@linaro.org, philmd@linaro.org Subject: [PATCH 9/9] page-vary: Restrict scope of TARGET_PAGE_BITS_MIN Date: Fri, 28 Mar 2025 15:04:59 -0500 Message-ID: <20250328200459.483089-10-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250328200459.483089-1-richard.henderson@linaro.org> References: <20250328200459.483089-1-richard.henderson@linaro.org> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::32c; envelope-from=richard.henderson@linaro.org; helo=mail-ot1-x32c.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+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1743192358418019000 Content-Type: text/plain; charset="utf-8" The only place we really need to know the minimum is within page-vary-target.c. Rename the target/arm TARGET_PAGE_BITS_MIN to TARGE_PAGE_BITS_LEGACY to emphasize what it really means. Move the assertions related to minimum page size as well. Signed-off-by: Richard Henderson Reviewed-by: Pierrick Bouvier --- include/exec/cpu-defs.h | 10 ++-------- include/exec/poison.h | 1 + include/exec/target_page.h | 1 - include/qemu/osdep.h | 6 ++++++ target/alpha/cpu-param.h | 1 - target/arm/cpu-param.h | 3 +-- target/ppc/cpu-param.h | 1 - accel/tcg/cputlb.c | 1 - page-vary-target.c | 39 +++++++++++++++++++++++++++++++++++--- 9 files changed, 46 insertions(+), 17 deletions(-) diff --git a/include/exec/cpu-defs.h b/include/exec/cpu-defs.h index 9f955f53fd..e01acb7c90 100644 --- a/include/exec/cpu-defs.h +++ b/include/exec/cpu-defs.h @@ -34,14 +34,8 @@ #ifndef TARGET_VIRT_ADDR_SPACE_BITS # error TARGET_VIRT_ADDR_SPACE_BITS must be defined in cpu-param.h #endif -#ifndef TARGET_PAGE_BITS -# ifdef TARGET_PAGE_BITS_VARY -# ifndef TARGET_PAGE_BITS_MIN -# error TARGET_PAGE_BITS_MIN must be defined in cpu-param.h -# endif -# else -# error TARGET_PAGE_BITS must be defined in cpu-param.h -# endif +#if !defined(TARGET_PAGE_BITS) && !defined(TARGET_PAGE_BITS_VARY) +# error TARGET_PAGE_BITS must be defined in cpu-param.h #endif =20 #include "exec/target_long.h" diff --git a/include/exec/poison.h b/include/exec/poison.h index 4180a5a489..c4f7ee22bf 100644 --- a/include/exec/poison.h +++ b/include/exec/poison.h @@ -44,6 +44,7 @@ #pragma GCC poison TARGET_FMT_lu =20 #pragma GCC poison TARGET_PHYS_ADDR_SPACE_BITS +#pragma GCC poison TARGET_PAGE_BITS_LEGACY =20 #pragma GCC poison CONFIG_ALPHA_DIS #pragma GCC poison CONFIG_HPPA_DIS diff --git a/include/exec/target_page.h b/include/exec/target_page.h index e4bd7f7767..ca0ebbc8bb 100644 --- a/include/exec/target_page.h +++ b/include/exec/target_page.h @@ -41,7 +41,6 @@ extern const TargetPageBits target_page; # endif # define TARGET_PAGE_SIZE (-(int)TARGET_PAGE_MASK) #else -# define TARGET_PAGE_BITS_MIN TARGET_PAGE_BITS # define TARGET_PAGE_SIZE (1 << TARGET_PAGE_BITS) # define TARGET_PAGE_MASK ((TARGET_PAGE_TYPE)-1 << TARGET_PAGE_BITS) #endif diff --git a/include/qemu/osdep.h b/include/qemu/osdep.h index 4397a90680..321a52d7f0 100644 --- a/include/qemu/osdep.h +++ b/include/qemu/osdep.h @@ -50,6 +50,12 @@ */ #pragma GCC poison TARGET_WORDS_BIGENDIAN =20 +/* + * TARGET_PAGE_BITS_MIN was repaced by TARGET_PAGE_BITS_LEGACY + * for system mode. Prevent it from creeping back in. + */ +#pragma GCC poison TARGET_PAGE_BITS_MIN + #include "qemu/compiler.h" =20 /* Older versions of C++ don't get definitions of various macros from diff --git a/target/alpha/cpu-param.h b/target/alpha/cpu-param.h index ff06e41497..63989e71c0 100644 --- a/target/alpha/cpu-param.h +++ b/target/alpha/cpu-param.h @@ -18,7 +18,6 @@ * a 4k minimum to match x86 host, which can minimize emulation issues. */ # define TARGET_PAGE_BITS_VARY -# define TARGET_PAGE_BITS_MIN 12 # define TARGET_VIRT_ADDR_SPACE_BITS 63 #else # define TARGET_PAGE_BITS 13 diff --git a/target/arm/cpu-param.h b/target/arm/cpu-param.h index 896b35bd6d..a7ae42d17d 100644 --- a/target/arm/cpu-param.h +++ b/target/arm/cpu-param.h @@ -24,7 +24,6 @@ # else /* Allow user-only to vary page size from 4k */ # define TARGET_PAGE_BITS_VARY -# define TARGET_PAGE_BITS_MIN 12 # endif # else # define TARGET_PAGE_BITS 12 @@ -35,7 +34,7 @@ * have to support 1K tiny pages. */ # define TARGET_PAGE_BITS_VARY -# define TARGET_PAGE_BITS_MIN 10 +# define TARGET_PAGE_BITS_LEGACY 10 #endif /* !CONFIG_USER_ONLY */ =20 /* ARM processors have a weak memory model */ diff --git a/target/ppc/cpu-param.h b/target/ppc/cpu-param.h index 6c4525fdf3..553ad2f4c6 100644 --- a/target/ppc/cpu-param.h +++ b/target/ppc/cpu-param.h @@ -33,7 +33,6 @@ #ifdef CONFIG_USER_ONLY /* Allow user-only to vary page size from 4k */ # define TARGET_PAGE_BITS_VARY -# define TARGET_PAGE_BITS_MIN 12 #else # define TARGET_PAGE_BITS 12 #endif diff --git a/accel/tcg/cputlb.c b/accel/tcg/cputlb.c index 39314e86f3..0de46903dd 100644 --- a/accel/tcg/cputlb.c +++ b/accel/tcg/cputlb.c @@ -49,7 +49,6 @@ #endif #include "tcg/tcg-ldst.h" =20 -QEMU_BUILD_BUG_ON(TLB_FLAGS_MASK & ((1u < TARGET_PAGE_BITS_MIN) - 1)); =20 /* DEBUG defines, enable DEBUG_TLB_LOG to log to the CPU_LOG_MMU target */ /* #define DEBUG_TLB */ diff --git a/page-vary-target.c b/page-vary-target.c index 6251d948cf..d83f9a6a90 100644 --- a/page-vary-target.c +++ b/page-vary-target.c @@ -23,19 +23,45 @@ #include "exec/page-vary.h" #include "exec/target_page.h" =20 + +/* + * For system mode, the minimum comes from the number of bits + * required for maximum alignment (6) and the number of bits + * required for TLB_FLAGS_MASK (3). + * + * For user mode, TARGET_PAGE_BITS_VARY is a hack to allow the target + * page size to match the host page size. Mostly, this reduces the + * ordinary target page size to run on a host with 4KiB pages (i.e. x86). + * There is no true minimum required by the implementation, but keep the + * same minimum as for system mode for sanity. + * See linux-user/mmap.c, mmap_h_lt_g and mmap_h_gt_g. + */ +#define TARGET_PAGE_BITS__MIN 9 + +#ifndef TARGET_PAGE_BITS_VARY +QEMU_BUILD_BUG_ON(TARGET_PAGE_BITS < TARGET_PAGE_BITS__MIN); +#endif + +#ifndef CONFIG_USER_ONLY +#include "exec/tlb-flags.h" + +QEMU_BUILD_BUG_ON(TLB_FLAGS_MASK & ((1u < TARGET_PAGE_BITS__MIN) - 1)); + int migration_legacy_page_bits(void) { #ifdef TARGET_PAGE_BITS_VARY - return TARGET_PAGE_BITS_MIN; + QEMU_BUILD_BUG_ON(TARGET_PAGE_BITS_LEGACY < TARGET_PAGE_BITS__MIN); + return TARGET_PAGE_BITS_LEGACY; #else return TARGET_PAGE_BITS; #endif } +#endif =20 bool set_preferred_target_page_bits(int bits) { + assert(bits >=3D TARGET_PAGE_BITS__MIN); #ifdef TARGET_PAGE_BITS_VARY - assert(bits >=3D TARGET_PAGE_BITS_MIN); return set_preferred_target_page_bits_common(bits); #else return true; @@ -44,5 +70,12 @@ bool set_preferred_target_page_bits(int bits) =20 void finalize_target_page_bits(void) { - finalize_target_page_bits_common(TARGET_PAGE_BITS_MIN); +#ifndef TARGET_PAGE_BITS_VARY + finalize_target_page_bits_common(TARGET_PAGE_BITS); +#elif defined(CONFIG_USER_ONLY) + assert(target_page.bits !=3D 0); + finalize_target_page_bits_common(target_page.bits); +#else + finalize_target_page_bits_common(TARGET_PAGE_BITS_LEGACY); +#endif } --=20 2.43.0