From nobody Fri May 17 10:44:11 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1687184722; cv=none; d=zohomail.com; s=zohoarc; b=M7UwW0vG25Y6DFg2PsypyY4FcvJxNcASuvuwo9xv1/cr33vuU3OJ8e8DvhZ6gR/U8rt5x28hPo3Uk1/U3pDxH95/RZ3qX3mz+GgSCSi2LiFDAi7WNPgSpp+s315dCA1hqXQJ4vWig1biEBzySc7jCEx54cwf0N2flJs5BgC0pgA= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1687184722; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=5BMeKkCZ73ncSnRSQ8wFapQINfHHQYDpYeSup4OEv0g=; b=XpgBB8uNQkFquMOPJFNHfdvjQdRCr2FA0JF5Znoy/UpBRJHd/DWK6b23/DZiE+vrb3781TLd3+VVI31Z7k+7fnYLGLO1i6Lb66/7UjJT1tlwLP4snY3RXk4YYs54EHozXQiwze6dFG4/O9exBn7BmoyDAKHLWbX9VRZkknk6Zuw= 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 1687184722733855.7354265198012; Mon, 19 Jun 2023 07:25:22 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qBFnI-0004EN-2U; Mon, 19 Jun 2023 10:23:48 -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 1qBFnC-0004Df-3w for qemu-devel@nongnu.org; Mon, 19 Jun 2023 10:23:42 -0400 Received: from mail-lf1-x135.google.com ([2a00:1450:4864:20::135]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1qBFnA-0000jG-B8 for qemu-devel@nongnu.org; Mon, 19 Jun 2023 10:23:41 -0400 Received: by mail-lf1-x135.google.com with SMTP id 2adb3069b0e04-4f63ab1ac4aso4428948e87.0 for ; Mon, 19 Jun 2023 07:23:39 -0700 (PDT) Received: from stoup.lan (sar95-h02-176-184-10-225.dsl.sta.abo.bbox.fr. [176.184.10.225]) by smtp.gmail.com with ESMTPSA id k25-20020a7bc419000000b003f96d10eafbsm4143467wmi.12.2023.06.19.07.23.36 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 19 Jun 2023 07:23:38 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1687184618; x=1689776618; 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=5BMeKkCZ73ncSnRSQ8wFapQINfHHQYDpYeSup4OEv0g=; b=StgFz48uCx+29aZCuPdBk7TolilPjz6pkV4RLCWgmLBfA/PH29H3JJRO1Od5FzLwxq u1LujkyV3chv1WvKBzyC6y50VWf3C2gZMmmRZhIstL/lhijFHvnQXTMlup7Tqm126Rqa cJIhwvTGyQL4M/i1NClzx61ie8Qn3IroX1Q5GF+sKHomnfHQ5zSrqGkCk8XdjWH5l8qC 7TuyAzcBHWoWll8UXTeiulMlyzJj6gQSe5xSsX0gfA+tkznmwR1CpX6e9oVu5cbcSZbj EomW/qRznw1jzIJeWiPLkgt2A8y507dWnvYANp4eup5PBK/kllD5r/chZ6nEsnNkK5l5 qtMw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1687184618; x=1689776618; 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=5BMeKkCZ73ncSnRSQ8wFapQINfHHQYDpYeSup4OEv0g=; b=LaDQZCX875Hzu3D7pCEJkTt7ByZeAydWc/5VXZzFjMLKCQElJ0bGfs/0JD+kIx1iXM iYQ2vQih3Ob1R/Rj2cOmxUmmFVCw3G9IiUEThUTZRHPUfd46SdKW5JwHLXZGbI8ODl2u Tx6phMTKtU1hRWtUPXU4zt9rL5JMlbG76m4lTnh4+lT63NJ+FnpCwh7KYNrmjeikEuRO gA2Tb1y0MYRKyYvbeq7Pnbxlopcdy3BDl9JHsdwrwnpxP5x2vP9RuOn+0Q7JwlouxrFa lcoYM6iu72NrfKxIxSSbtaKGniIGwt5mU6n+r5fqcA6quIm5KfT6ZY3HC+ow6FphBTXn hMbw== X-Gm-Message-State: AC+VfDwuoCBn6HMXczLpx+Io8TMeaYv95wF6luSS+GxLO3jrHUOnOPtK euEz/NGWcSaJeWlI5VWA2Da3yr3OkWba9dTJJ/NFNZQV X-Google-Smtp-Source: ACHHUZ5pTjQSEzrHyBXQudaj3As8CWTos97EyiP19H3PtZEGsZvvApugJjPkd8vmGnwuC0p+gCx6kg== X-Received: by 2002:a05:6512:55a:b0:4f3:94b5:3274 with SMTP id h26-20020a056512055a00b004f394b53274mr6201824lfl.63.1687184618283; Mon, 19 Jun 2023 07:23:38 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: Alistair Francis , "Edgar E . Iglesias" Subject: [PATCH v3 1/5] target/microblaze: Define TCG_GUEST_DEFAULT_MO Date: Mon, 19 Jun 2023 16:23:29 +0200 Message-Id: <20230619142333.429028-2-richard.henderson@linaro.org> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20230619142333.429028-1-richard.henderson@linaro.org> References: <20230619142333.429028-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=2a00:1450:4864:20::135; envelope-from=richard.henderson@linaro.org; helo=mail-lf1-x135.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, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1687184724537100005 Content-Type: text/plain; charset="utf-8" The microblaze architecture does not reorder instructions. While there is an MBAR wait-for-data-access instruction, this concerns synchronizing with DMA. This should have been defined when enabling MTTCG. Cc: Alistair Francis Cc: Edgar E. Iglesias Fixes: d449561b130 ("configure: microblaze: Enable mttcg") Signed-off-by: Richard Henderson Reviewed-by: Edgar E. Iglesias Reviewed-by: Philippe Mathieu-Daud=C3=A9 --- target/microblaze/cpu.h | 3 +++ 1 file changed, 3 insertions(+) diff --git a/target/microblaze/cpu.h b/target/microblaze/cpu.h index 88324d0bc1..b474abcc2a 100644 --- a/target/microblaze/cpu.h +++ b/target/microblaze/cpu.h @@ -24,6 +24,9 @@ #include "exec/cpu-defs.h" #include "qemu/cpu-float.h" =20 +/* MicroBlaze is always in-order. */ +#define TCG_GUEST_DEFAULT_MO TCG_MO_ALL + typedef struct CPUArchState CPUMBState; #if !defined(CONFIG_USER_ONLY) #include "mmu.h" --=20 2.34.1 From nobody Fri May 17 10:44:11 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1687184683; cv=none; d=zohomail.com; s=zohoarc; b=XVzyc11w3BGYGRoj0OO+CHdWVTt8k/EaVjTVCz0GiQCJIv6ezWqnY7kRYbrPO/E28vtED5RtTfFqzpabNddf+eyKWA9zt8jnGyfYPLtuptAQuFZ7bp8JQNEOI3SL2QdSToBy+ne5cPe4V3cvQbUezMiagr0kgJj4wzkLPyKkcWg= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1687184683; h=Content-Transfer-Encoding:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=qMEBKL6knLVKab7hTTzt13ET959rfX68OW/IE4hZmWo=; b=cbaEskSamp7UPf3LBqLOx+NuKrV0cDOLj0J6zHpHcyYHP1rqK4Qlt0zQ11PD4DkhqTDGQOH0RSzjTDpKz86nmJ5u4O8/vF09SsQaic5q7B7X48VjuLpMkhcCUdJ1aXIn1lq0d7r7kkDJ/JSiM+nTePCOWq/lqWVphBo2uoMGjXo= 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 16871846835621006.190164867553; Mon, 19 Jun 2023 07:24:43 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qBFnJ-0004FL-6z; Mon, 19 Jun 2023 10:23:49 -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 1qBFnD-0004Dt-NL for qemu-devel@nongnu.org; Mon, 19 Jun 2023 10:23:45 -0400 Received: from mail-wm1-x333.google.com ([2a00:1450:4864:20::333]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1qBFnB-0000jd-3u for qemu-devel@nongnu.org; Mon, 19 Jun 2023 10:23:42 -0400 Received: by mail-wm1-x333.google.com with SMTP id 5b1f17b1804b1-3f906d8fca3so19903885e9.1 for ; Mon, 19 Jun 2023 07:23:40 -0700 (PDT) Received: from stoup.lan (sar95-h02-176-184-10-225.dsl.sta.abo.bbox.fr. [176.184.10.225]) by smtp.gmail.com with ESMTPSA id k25-20020a7bc419000000b003f96d10eafbsm4143467wmi.12.2023.06.19.07.23.38 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 19 Jun 2023 07:23:39 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1687184620; x=1689776620; 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=qMEBKL6knLVKab7hTTzt13ET959rfX68OW/IE4hZmWo=; b=iL7duy8Mm1gdLHukDRVquaxKLu4bLM1ooJVce2XzoXPc1lcAdRCKzvsdCOstMpsjjd z9KCJITAoO3MuzADbmiijkOFrKhrMKdS8Dc9FkD1BocsAUGe3O7F4sD17ueABJg18YjT RjBngxskh9c5rSQAID3HhRkD8jLHw81BGDR8ouJNQ3rI29r8RHCkYotUibnkyCsQ+7ye fy2w5ANlpQme/dR359aQFnSjEqkxkbc51jDcdB3ZgW+2nv5jlw+khEdPrQ0aGyTjVXOa MaCJdIVbbM0lkWs0M2KN2YXQ1u44aii2JNWBNKO0rnY34itTGG1mWuu7Y296vUiH0UGt r+1g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1687184620; x=1689776620; 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=qMEBKL6knLVKab7hTTzt13ET959rfX68OW/IE4hZmWo=; b=jKdXX6ej+pPX8JsR5Ti7lcPNcVRluCGIrQ3HPwd9I7BsFCBmio2WhdwAd9Bcot1bvZ 6wMbKbeHHYaqIBvjLl0Xm59XscYMqyHycthU4l9CaEdBJ32OYbB8rL5QCI0LmzD3SQfB bGYn0VTe9QS1RSQNJUTzof55kCBqdM+1lFS760SWTsNSDCSnHv6EpiEADjCyFn4FmAsr AY3aBhl+HZ8xbhZcVyG7UcNybY5z7YbPV6dH96FEnQ3sY1ug/KnJ/jHacDHFX6JODJqQ mTArssA60wWv/QZSrVNOM53oD64Y9ro/cs8P3Gm6SKDbFj+sFPa+xWxyVYLGg7L1Fz3J wodQ== X-Gm-Message-State: AC+VfDz6KhqTpvOeamlGu4S5omfidlKTtfZrakGwEbP4jU95L9sfp1zT ap9pe1D+T7ZcE/63F735PPb+HYFGVQgJjlE5J5izuyUf X-Google-Smtp-Source: ACHHUZ6+G9RkA5fnzXwxBI8r4R3g1AjKgwpGd07jKy5r39ZXDN5AvDPXOutte/na/Dr5ir5qLHWkAg== X-Received: by 2002:a7b:cb4e:0:b0:3f7:f884:7be3 with SMTP id v14-20020a7bcb4e000000b003f7f8847be3mr7275839wmj.4.1687184619815; Mon, 19 Jun 2023 07:23:39 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PATCH v3 2/5] tcg: Do not elide memory barriers for !CF_PARALLEL in system mode Date: Mon, 19 Jun 2023 16:23:30 +0200 Message-Id: <20230619142333.429028-3-richard.henderson@linaro.org> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20230619142333.429028-1-richard.henderson@linaro.org> References: <20230619142333.429028-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=2a00:1450:4864:20::333; envelope-from=richard.henderson@linaro.org; helo=mail-wm1-x333.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, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1687184684389100001 Content-Type: text/plain; charset="utf-8" The virtio devices require proper memory ordering between the vcpus and the iothreads. Signed-off-by: Richard Henderson --- tcg/tcg-op.c | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/tcg/tcg-op.c b/tcg/tcg-op.c index c07de5d9f8..7aadb37756 100644 --- a/tcg/tcg-op.c +++ b/tcg/tcg-op.c @@ -102,7 +102,19 @@ void tcg_gen_br(TCGLabel *l) =20 void tcg_gen_mb(TCGBar mb_type) { - if (tcg_ctx->gen_tb->cflags & CF_PARALLEL) { +#ifdef CONFIG_USER_ONLY + bool parallel =3D tcg_ctx->gen_tb->cflags & CF_PARALLEL; +#else + /* + * It is tempting to elide the barrier in a uniprocessor context. + * However, even with a single cpu we have i/o threads running in + * parallel, and lack of memory order can result in e.g. virtio + * queue entries being read incorrectly. + */ + bool parallel =3D true; +#endif + + if (parallel) { tcg_gen_op1(INDEX_op_mb, mb_type); } } --=20 2.34.1 From nobody Fri May 17 10:44:11 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1687184673; cv=none; d=zohomail.com; s=zohoarc; b=Ncrf33jZvySdd8iUh/xfUy5mv7yUWXdmVVtSmTWn1IhK74c5XxGlVaB5DPZ+PIrpIZpQHQkaMpGg4Hlou0NlCE2kxrJrTC7wK0cpRnc1tPdy1UmVzC2Y8teq0ksmg5P3N+vMqQfw8loFi6nM2JyOPZrnPxxFB458hjfCWVj+tfs= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1687184673; h=Content-Transfer-Encoding:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=pwqG4bOndCwR7WWKOm2/D1bdEjIJvQWtHJFzguX9raY=; b=cMrEhBNJ7WF0+fKSkQHyQdUQMoSqhvdiEiMPqb0crxfzH2wZhJrbGKDhqoMJ7wOvezUMp1zEt0BbdSFQZcZ7dvYs/IYQcDqHP3+lIDed1vM2zaVriHGmGo+2rSLn1g67d16VlJM7BT5yl6DyvZdstr7nobALUcVyR9pHra5lJX8= 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 1687184673552961.2064005440748; Mon, 19 Jun 2023 07:24:33 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qBFnM-0004Fz-0J; Mon, 19 Jun 2023 10:23:52 -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 1qBFnG-0004E4-Li for qemu-devel@nongnu.org; Mon, 19 Jun 2023 10:23:47 -0400 Received: from mail-wm1-x335.google.com ([2a00:1450:4864:20::335]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1qBFnD-0000kl-FO for qemu-devel@nongnu.org; Mon, 19 Jun 2023 10:23:46 -0400 Received: by mail-wm1-x335.google.com with SMTP id 5b1f17b1804b1-3f90bff0f27so12017835e9.1 for ; Mon, 19 Jun 2023 07:23:42 -0700 (PDT) Received: from stoup.lan (sar95-h02-176-184-10-225.dsl.sta.abo.bbox.fr. [176.184.10.225]) by smtp.gmail.com with ESMTPSA id k25-20020a7bc419000000b003f96d10eafbsm4143467wmi.12.2023.06.19.07.23.40 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 19 Jun 2023 07:23:41 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1687184621; x=1689776621; 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=pwqG4bOndCwR7WWKOm2/D1bdEjIJvQWtHJFzguX9raY=; b=wgMAUfaq3czt70PcOIIf0zuUDTpaGVvWHb2rTR92yNK5umgGeahY2ube/nakNCj+kF B1RyNPF1T+o3xvxGJwJv4XPuDSqtNtjFXL8HC+cbS8mqHFehzUYBmYGPy1IQkJFiRFDO zg4eWXCXG6Apa+GxWfT+D7p8ukViSSCxt/kCzz+wjYPX2JOCuZ0BOex6JS4YrGa9C4bw 3i5sze2VlCm0EhBgkxGHARd9c6OY4+9wotF9bt1tgQ+1x7P6fAI+ESp9kOT4zwUb9V6F h8cUUaH+yWASvGUvwAnGUiLRNyql18DPjwGDcy/SJoEADXQhE9cTLe9BRLx/4FsWlnJt 7GJg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1687184621; x=1689776621; 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=pwqG4bOndCwR7WWKOm2/D1bdEjIJvQWtHJFzguX9raY=; b=QR3sAgIhnWflHl5QqP/ZP58jm3MSFsvm66Ucq5DwvqiLvldOGb4Ushinbei5PCaPmf Z0SD0mv8ePrrN8QGIEu/0zcWKEh+AvYKHfhh1hytqUwaSEv31NqGVqNqK/gcAQcUPkBP it7bp1OtR3af+UsVyfi/94CVZEGo2L8+pu+ywTGqpoM61lO7fBVmMdcX8qRM3i698USo NLFISAUznlp6fWzbZkANQCBOz6DmtqQLLT59e9l6p+ygBeB2IszmHRiHYlwgvh4yp1Ya mJzfODDBX7wLDbVLo/SFyNEkVjEijkKbb0oj7Y5d72MLoR6brMlewyFBRUtlE2HKGCAT +T9Q== X-Gm-Message-State: AC+VfDwFGeHovCorN5EybXviWEtjO1/tg5Gd+Cj4O5qP8fPKO2Sg5Iz/ ZxvhTG6AuymE4pcwIlPSEMyQqBx9C98Z0RP0+3HPFkMu X-Google-Smtp-Source: ACHHUZ5pQxmA4WgBd/NCYWPaCU2GSB8nFxtW1Xk2qvcNgIl+omyqQUSAi8KORW1LZ8gMApUrzaexSw== X-Received: by 2002:a05:600c:3799:b0:3f9:b540:862d with SMTP id o25-20020a05600c379900b003f9b540862dmr278293wmr.28.1687184621344; Mon, 19 Jun 2023 07:23:41 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PATCH v3 3/5] tcg: Elide memory barriers implied by the host memory model Date: Mon, 19 Jun 2023 16:23:31 +0200 Message-Id: <20230619142333.429028-4-richard.henderson@linaro.org> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20230619142333.429028-1-richard.henderson@linaro.org> References: <20230619142333.429028-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=2a00:1450:4864:20::335; envelope-from=richard.henderson@linaro.org; helo=mail-wm1-x335.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, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1687184674557100002 Content-Type: text/plain; charset="utf-8" Reduce the set of required barriers to those needed by the host right from the beginning. Signed-off-by: Richard Henderson --- tcg/tcg-op.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/tcg/tcg-op.c b/tcg/tcg-op.c index 7aadb37756..574001c221 100644 --- a/tcg/tcg-op.c +++ b/tcg/tcg-op.c @@ -115,7 +115,11 @@ void tcg_gen_mb(TCGBar mb_type) #endif =20 if (parallel) { - tcg_gen_op1(INDEX_op_mb, mb_type); + /* We can elide anything which the host provides for free. */ + mb_type &=3D ~TCG_TARGET_DEFAULT_MO; + if (mb_type & TCG_MO_ALL) { + tcg_gen_op1(INDEX_op_mb, mb_type); + } } } =20 --=20 2.34.1 From nobody Fri May 17 10:44:11 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1687184721; cv=none; d=zohomail.com; s=zohoarc; b=FwsZ5Sx2pWQ6CsjiaVGip4llkcZrhg5OP95Z8v0wEUactAYuiwCkRnwFzJJ2soj7DSG5Ol1NNAKuY21qruo2bweUUkl+XfZiDeSrplO0+kOgTzuqHcMHSMvEJoRrY85dV3nDdvU79xVdqjyQ6suhyUhSaNgHJNho7+Xp35BcdOQ= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1687184721; h=Content-Transfer-Encoding:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=wYaXVLSy7te17IjoR6ZeNkrXoDozUSIUDyj3cihp+Jg=; b=jPEPpa0yVsUDXUBybkZ0hycWQQJlG2lHFmae3XLVYbAbKxrGON+Ua6nVi0lfeI8anCZdDLPPUvsYyYQrzVzDiDDhK0Ayjro7AlDf6EW24SBAfGtHTFuocGYa5bW+pC4ukvY1ZlO5Mu+5uaOF11VPL+Qiw3tLWgOCuygiQIbqDhQ= 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 1687184721036994.5867571404589; Mon, 19 Jun 2023 07:25:21 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qBFnK-0004FN-BH; Mon, 19 Jun 2023 10:23:50 -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 1qBFnH-0004ED-I5 for qemu-devel@nongnu.org; Mon, 19 Jun 2023 10:23:47 -0400 Received: from mail-wm1-x335.google.com ([2a00:1450:4864:20::335]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1qBFnF-0000lV-78 for qemu-devel@nongnu.org; Mon, 19 Jun 2023 10:23:47 -0400 Received: by mail-wm1-x335.google.com with SMTP id 5b1f17b1804b1-3f9b4a71623so3163855e9.1 for ; Mon, 19 Jun 2023 07:23:43 -0700 (PDT) Received: from stoup.lan (sar95-h02-176-184-10-225.dsl.sta.abo.bbox.fr. [176.184.10.225]) by smtp.gmail.com with ESMTPSA id k25-20020a7bc419000000b003f96d10eafbsm4143467wmi.12.2023.06.19.07.23.41 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 19 Jun 2023 07:23:42 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1687184623; x=1689776623; 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=wYaXVLSy7te17IjoR6ZeNkrXoDozUSIUDyj3cihp+Jg=; b=GsMASvLtD8hdEgx+CsONDgKpyFnqmLl7DO3hlnrlkAPsJvr+yz8cwY3pQEzpF5xUg6 KkAMdgHaeA6+9M8d94G2SSDBZMsQVyXk5JMQrA0cGFJYMO999wCQuVxQj0XBrzybaXxq XvyymparhakZzXWSYPcjM0yYCAfsy+lOiL7NCkJ149tdIWx6+5krMAJuiBlVjHAQHLkm hhDya6PFg2DcKo5xZ2EX39tr/brnwB5jtt0mKfacqV6Ijg/U85jTW3/9FT1G6IESmmIo Dfvqz8xOPYDSFoZcvwggxl/luMOPTVKZzID/cqKZd9WLxdUiKxZjj7V9x202RAHrQ9EK d6ow== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1687184623; x=1689776623; 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=wYaXVLSy7te17IjoR6ZeNkrXoDozUSIUDyj3cihp+Jg=; b=DomWEa1batAHo7yy458omcnOfpabpiQTK2nKeAcYyDL3hiocSZOmOMjGwYfUoWBp/M CCG/WS5Y+sSXHJbFOaxzBtJrE/jv8pSQvntv3uNifZW4tXp813CstTPfUdbmq4abAXy1 LWoGCHeEEp+Pt6ZKexi0N7dk94kNjwYG9+wvkCxdCpI2Q7PkmiYBT5jgjk+NR/HXNbAO NTy7tAUSVT805/zWwKvwA5WGXn+5J3JA7xVEoQBbab5JFTlyoli+ndy2fN4d4cGj2DHN 6rr95gMiyK4QnhknGF1Ec8yd5TTeLfT+ISI9YeD3Rpy7IPv+3v9rdvPFbboAAdt5jzPm IuGw== X-Gm-Message-State: AC+VfDzpWf63MWFPfl5vrUwlRb+NZkUe71s14LzfJ7S1iu+Xi6KhWpBY MriEDPZ17jqYozaO4A8APiMkwxxV1zwBQMhZ3FxQ4uhD X-Google-Smtp-Source: ACHHUZ5/xZLckgN4FrC9FX8SaOY2YjVLu6gT2sCmJHS1OvXMQ9oVZOm1LUAwFaeBepkUTNZ3aFP3Ow== X-Received: by 2002:a05:600c:203:b0:3f7:f24b:b2ed with SMTP id 3-20020a05600c020300b003f7f24bb2edmr6990245wmi.19.1687184622904; Mon, 19 Jun 2023 07:23:42 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PATCH v3 4/5] tcg: Add host memory barriers to cpu_ldst.h interfaces Date: Mon, 19 Jun 2023 16:23:32 +0200 Message-Id: <20230619142333.429028-5-richard.henderson@linaro.org> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20230619142333.429028-1-richard.henderson@linaro.org> References: <20230619142333.429028-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=2a00:1450:4864:20::335; envelope-from=richard.henderson@linaro.org; helo=mail-wm1-x335.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, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1687184723066100003 Content-Type: text/plain; charset="utf-8" Bring the helpers into line with the rest of tcg in respecting guest memory ordering. Signed-off-by: Richard Henderson Reviewed-by: Philippe Mathieu-Daud=C3=A9 --- accel/tcg/internal.h | 34 ++++++++++++++++++++++++++++++++++ accel/tcg/cputlb.c | 10 ++++++++++ accel/tcg/user-exec.c | 10 ++++++++++ 3 files changed, 54 insertions(+) diff --git a/accel/tcg/internal.h b/accel/tcg/internal.h index 24f225cac7..be0c7753fb 100644 --- a/accel/tcg/internal.h +++ b/accel/tcg/internal.h @@ -78,4 +78,38 @@ extern int64_t max_advance; =20 extern bool one_insn_per_tb; =20 +/** + * tcg_req_mo: + * @type: TCGBar + * + * Filter @type to the barrier that is required for the guest + * memory ordering vs the host memory ordering. A non-zero + * result indicates that some barrier is required. + * + * If TCG_GUEST_DEFAULT_MO is not defined, assume that the + * guest requires strict ordering. + * + * This is a macro so that it's constant even without optimization. + */ +#ifdef TCG_GUEST_DEFAULT_MO +# define tcg_req_mo(type) \ + ((type) & TCG_GUEST_DEFAULT_MO & ~TCG_TARGET_DEFAULT_MO) +#else +# define tcg_req_mo(type) ((type) & ~TCG_TARGET_DEFAULT_MO) +#endif + +/** + * cpu_req_mo: + * @type: TCGBar + * + * If tcg_req_mo indicates a barrier for @type is required + * for the guest memory model, issue a host memory barrier. + */ +#define cpu_req_mo(type) \ + do { \ + if (tcg_req_mo(type)) { \ + smp_mb(); \ + } \ + } while (0) + #endif /* ACCEL_TCG_INTERNAL_H */ diff --git a/accel/tcg/cputlb.c b/accel/tcg/cputlb.c index 5e2ca47243..a48e1c9693 100644 --- a/accel/tcg/cputlb.c +++ b/accel/tcg/cputlb.c @@ -2342,6 +2342,7 @@ static uint8_t do_ld1_mmu(CPUArchState *env, target_u= long addr, MemOpIdx oi, MMULookupLocals l; bool crosspage; =20 + cpu_req_mo(TCG_MO_LD_LD | TCG_MO_ST_LD); crosspage =3D mmu_lookup(env, addr, oi, ra, access_type, &l); tcg_debug_assert(!crosspage); =20 @@ -2363,6 +2364,7 @@ static uint16_t do_ld2_mmu(CPUArchState *env, target_= ulong addr, MemOpIdx oi, uint16_t ret; uint8_t a, b; =20 + cpu_req_mo(TCG_MO_LD_LD | TCG_MO_ST_LD); crosspage =3D mmu_lookup(env, addr, oi, ra, access_type, &l); if (likely(!crosspage)) { return do_ld_2(env, &l.page[0], l.mmu_idx, access_type, l.memop, r= a); @@ -2393,6 +2395,7 @@ static uint32_t do_ld4_mmu(CPUArchState *env, target_= ulong addr, MemOpIdx oi, bool crosspage; uint32_t ret; =20 + cpu_req_mo(TCG_MO_LD_LD | TCG_MO_ST_LD); crosspage =3D mmu_lookup(env, addr, oi, ra, access_type, &l); if (likely(!crosspage)) { return do_ld_4(env, &l.page[0], l.mmu_idx, access_type, l.memop, r= a); @@ -2420,6 +2423,7 @@ static uint64_t do_ld8_mmu(CPUArchState *env, target_= ulong addr, MemOpIdx oi, bool crosspage; uint64_t ret; =20 + cpu_req_mo(TCG_MO_LD_LD | TCG_MO_ST_LD); crosspage =3D mmu_lookup(env, addr, oi, ra, access_type, &l); if (likely(!crosspage)) { return do_ld_8(env, &l.page[0], l.mmu_idx, access_type, l.memop, r= a); @@ -2472,6 +2476,7 @@ static Int128 do_ld16_mmu(CPUArchState *env, target_u= long addr, Int128 ret; int first; =20 + cpu_req_mo(TCG_MO_LD_LD | TCG_MO_ST_LD); crosspage =3D mmu_lookup(env, addr, oi, ra, MMU_DATA_LOAD, &l); if (likely(!crosspage)) { /* Perform the load host endian. */ @@ -2804,6 +2809,7 @@ void helper_stb_mmu(CPUArchState *env, uint64_t addr,= uint32_t val, bool crosspage; =20 tcg_debug_assert((get_memop(oi) & MO_SIZE) =3D=3D MO_8); + cpu_req_mo(TCG_MO_LD_ST | TCG_MO_ST_ST); crosspage =3D mmu_lookup(env, addr, oi, ra, MMU_DATA_STORE, &l); tcg_debug_assert(!crosspage); =20 @@ -2817,6 +2823,7 @@ static void do_st2_mmu(CPUArchState *env, target_ulon= g addr, uint16_t val, bool crosspage; uint8_t a, b; =20 + cpu_req_mo(TCG_MO_LD_ST | TCG_MO_ST_ST); crosspage =3D mmu_lookup(env, addr, oi, ra, MMU_DATA_STORE, &l); if (likely(!crosspage)) { do_st_2(env, &l.page[0], val, l.mmu_idx, l.memop, ra); @@ -2845,6 +2852,7 @@ static void do_st4_mmu(CPUArchState *env, target_ulon= g addr, uint32_t val, MMULookupLocals l; bool crosspage; =20 + cpu_req_mo(TCG_MO_LD_ST | TCG_MO_ST_ST); crosspage =3D mmu_lookup(env, addr, oi, ra, MMU_DATA_STORE, &l); if (likely(!crosspage)) { do_st_4(env, &l.page[0], val, l.mmu_idx, l.memop, ra); @@ -2872,6 +2880,7 @@ static void do_st8_mmu(CPUArchState *env, target_ulon= g addr, uint64_t val, MMULookupLocals l; bool crosspage; =20 + cpu_req_mo(TCG_MO_LD_ST | TCG_MO_ST_ST); crosspage =3D mmu_lookup(env, addr, oi, ra, MMU_DATA_STORE, &l); if (likely(!crosspage)) { do_st_8(env, &l.page[0], val, l.mmu_idx, l.memop, ra); @@ -2901,6 +2910,7 @@ static void do_st16_mmu(CPUArchState *env, target_ulo= ng addr, Int128 val, uint64_t a, b; int first; =20 + cpu_req_mo(TCG_MO_LD_ST | TCG_MO_ST_ST); crosspage =3D mmu_lookup(env, addr, oi, ra, MMU_DATA_STORE, &l); if (likely(!crosspage)) { /* Swap to host endian if necessary, then store. */ diff --git a/accel/tcg/user-exec.c b/accel/tcg/user-exec.c index dc8d6b5d40..ce65021cd4 100644 --- a/accel/tcg/user-exec.c +++ b/accel/tcg/user-exec.c @@ -914,6 +914,7 @@ static uint8_t do_ld1_mmu(CPUArchState *env, abi_ptr ad= dr, uint8_t ret; =20 tcg_debug_assert((mop & MO_SIZE) =3D=3D MO_8); + cpu_req_mo(TCG_MO_LD_LD | TCG_MO_ST_LD); haddr =3D cpu_mmu_lookup(env, addr, mop, ra, MMU_DATA_LOAD); ret =3D ldub_p(haddr); clear_helper_retaddr(); @@ -947,6 +948,7 @@ static uint16_t do_ld2_mmu(CPUArchState *env, abi_ptr a= ddr, uint16_t ret; =20 tcg_debug_assert((mop & MO_SIZE) =3D=3D MO_16); + cpu_req_mo(TCG_MO_LD_LD | TCG_MO_ST_LD); haddr =3D cpu_mmu_lookup(env, addr, mop, ra, MMU_DATA_LOAD); ret =3D load_atom_2(env, ra, haddr, mop); clear_helper_retaddr(); @@ -984,6 +986,7 @@ static uint32_t do_ld4_mmu(CPUArchState *env, abi_ptr a= ddr, uint32_t ret; =20 tcg_debug_assert((mop & MO_SIZE) =3D=3D MO_32); + cpu_req_mo(TCG_MO_LD_LD | TCG_MO_ST_LD); haddr =3D cpu_mmu_lookup(env, addr, mop, ra, MMU_DATA_LOAD); ret =3D load_atom_4(env, ra, haddr, mop); clear_helper_retaddr(); @@ -1021,6 +1024,7 @@ static uint64_t do_ld8_mmu(CPUArchState *env, abi_ptr= addr, uint64_t ret; =20 tcg_debug_assert((mop & MO_SIZE) =3D=3D MO_64); + cpu_req_mo(TCG_MO_LD_LD | TCG_MO_ST_LD); haddr =3D cpu_mmu_lookup(env, addr, mop, ra, MMU_DATA_LOAD); ret =3D load_atom_8(env, ra, haddr, mop); clear_helper_retaddr(); @@ -1052,6 +1056,7 @@ static Int128 do_ld16_mmu(CPUArchState *env, abi_ptr = addr, Int128 ret; =20 tcg_debug_assert((mop & MO_SIZE) =3D=3D MO_128); + cpu_req_mo(TCG_MO_LD_LD | TCG_MO_ST_LD); haddr =3D cpu_mmu_lookup(env, addr, mop, ra, MMU_DATA_LOAD); ret =3D load_atom_16(env, ra, haddr, mop); clear_helper_retaddr(); @@ -1087,6 +1092,7 @@ static void do_st1_mmu(CPUArchState *env, abi_ptr add= r, uint8_t val, void *haddr; =20 tcg_debug_assert((mop & MO_SIZE) =3D=3D MO_8); + cpu_req_mo(TCG_MO_LD_ST | TCG_MO_ST_ST); haddr =3D cpu_mmu_lookup(env, addr, mop, ra, MMU_DATA_STORE); stb_p(haddr, val); clear_helper_retaddr(); @@ -1111,6 +1117,7 @@ static void do_st2_mmu(CPUArchState *env, abi_ptr add= r, uint16_t val, void *haddr; =20 tcg_debug_assert((mop & MO_SIZE) =3D=3D MO_16); + cpu_req_mo(TCG_MO_LD_ST | TCG_MO_ST_ST); haddr =3D cpu_mmu_lookup(env, addr, mop, ra, MMU_DATA_STORE); =20 if (mop & MO_BSWAP) { @@ -1139,6 +1146,7 @@ static void do_st4_mmu(CPUArchState *env, abi_ptr add= r, uint32_t val, void *haddr; =20 tcg_debug_assert((mop & MO_SIZE) =3D=3D MO_32); + cpu_req_mo(TCG_MO_LD_ST | TCG_MO_ST_ST); haddr =3D cpu_mmu_lookup(env, addr, mop, ra, MMU_DATA_STORE); =20 if (mop & MO_BSWAP) { @@ -1167,6 +1175,7 @@ static void do_st8_mmu(CPUArchState *env, abi_ptr add= r, uint64_t val, void *haddr; =20 tcg_debug_assert((mop & MO_SIZE) =3D=3D MO_64); + cpu_req_mo(TCG_MO_LD_ST | TCG_MO_ST_ST); haddr =3D cpu_mmu_lookup(env, addr, mop, ra, MMU_DATA_STORE); =20 if (mop & MO_BSWAP) { @@ -1195,6 +1204,7 @@ static void do_st16_mmu(CPUArchState *env, abi_ptr ad= dr, Int128 val, void *haddr; =20 tcg_debug_assert((mop & MO_SIZE) =3D=3D MO_128); + cpu_req_mo(TCG_MO_LD_ST | TCG_MO_ST_ST); haddr =3D cpu_mmu_lookup(env, addr, mop, ra, MMU_DATA_STORE); =20 if (mop & MO_BSWAP) { --=20 2.34.1 From nobody Fri May 17 10:44:11 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1687184718; cv=none; d=zohomail.com; s=zohoarc; b=QTzLvi/55mha/5EhKqB9s726RKtN/XvG2XmK+Rhmh425zYaNh9bWQ6z2QFKtpFXNQ1ycarCXNAjIEB/AUh09b/Jws6lnPwBZl6lklykmXA4PaTshBDZocIAmioaQT0U1EQ/qr0btZnZVEoAY6rYBWmek+9yUSUpkJhE0wiRNE7s= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1687184718; h=Content-Transfer-Encoding:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=xizQ7tZRgd5GaOFhlyM3OwuFvyke8QeFNMuDXQV/YyE=; b=BVVE1kBXf98eJA+JVVU90M5+/42qpl8GDvpihl6vy3H/m8fVidWWmIaW9IDRCODCeVa6PCtexyJmQEAFDzi50VU7vKuOAa6ZKUIn0uCq2pVXSVpBNJdmKQ7K2DTxFK+SnahbaAcLKq2AvWpHVXqHPBux9D+85yPjwCp/nacdRGw= 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 1687184718771517.5178634144669; Mon, 19 Jun 2023 07:25:18 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qBFnL-0004Fs-3o; Mon, 19 Jun 2023 10:23:51 -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 1qBFnI-0004ER-18 for qemu-devel@nongnu.org; Mon, 19 Jun 2023 10:23:48 -0400 Received: from mail-wm1-x32c.google.com ([2a00:1450: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 1qBFnF-0000lk-F9 for qemu-devel@nongnu.org; Mon, 19 Jun 2023 10:23:47 -0400 Received: by mail-wm1-x32c.google.com with SMTP id 5b1f17b1804b1-3f9b258f3a2so8550605e9.0 for ; Mon, 19 Jun 2023 07:23:45 -0700 (PDT) Received: from stoup.lan (sar95-h02-176-184-10-225.dsl.sta.abo.bbox.fr. [176.184.10.225]) by smtp.gmail.com with ESMTPSA id k25-20020a7bc419000000b003f96d10eafbsm4143467wmi.12.2023.06.19.07.23.43 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 19 Jun 2023 07:23:43 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1687184624; x=1689776624; 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=xizQ7tZRgd5GaOFhlyM3OwuFvyke8QeFNMuDXQV/YyE=; b=KBBmwaTULmC/6FtqOs1WxnJemAB7IsMFoe4IfnKjDx+dYXr1PlTDwU3oeI5HEBC/nd OaAd+9m6j7OOt2rEd57UMp+6etvW3gOWB323fZxzQkXqsECEE1HN494Y/cWJHh68DjaY 63lKrXAK38nE5KQN7LnwTRRLAwYweBtN4NkksGtiSTWbpM4DT70m8EUfdG9nD6wirq6y s+ltsuPIxcXy/xrra8w9P8ZgOAPLzM42Ccowi0mN213wrUh07HXavfO5I+FebHwFORVY 9O4bAw5mhctteAsyVQb9O1JAGB6QmgAPXmOMw/hhbpdpmbbeEO67fCwjQFFA+ga2wVLG 8uiA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1687184624; x=1689776624; 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=xizQ7tZRgd5GaOFhlyM3OwuFvyke8QeFNMuDXQV/YyE=; b=kPIlxqNGWVU0dplrBjmJV+anNmjEyzTZ7P3KNXkDgHS0+JMYMj7/PJXyjrR899f5fB eXkL19PpF/RN6qJWOZYTaeTM7PBDVM9b9zX9sxXBWCSLU31UtAGjC6gYcqlxWpSGaiXs P9qCqTapWVSQ7mGJj/D2iE0xHOMaU3gmrMRKlFugNwPs2Sr9Gc0UTajgtXV2DzvuVkd0 l7EoT2qvNOsW19QmTy6jE0wQqqd76L724riZIHFCLXSOobUFQopwukyW2JmLys2fjOc0 oTt2gIde7TwmvhROp3kCkFLPma7zx2pIun8Y9Y8AlZCV/VE3SzJ9tdc+aZH+aE0pVNnr i6ow== X-Gm-Message-State: AC+VfDzp5x4D6LxpAN+brXzdxAz3o0yKmtoNSZRiURzTZGVFq0CcQjlY cE88h4kSD2hAFR+kGWKft+ZYUyvTGB7R5fUimKSTINiX X-Google-Smtp-Source: ACHHUZ527hMOO+prCji1d7iZfooYblj3ZI3y6ilj++ADOQlyN/MFbZ7Q6gxsGir5IoHsI3+RGcDdjw== X-Received: by 2002:a05:600c:2313:b0:3f7:f884:7be4 with SMTP id 19-20020a05600c231300b003f7f8847be4mr11046556wmo.21.1687184624130; Mon, 19 Jun 2023 07:23:44 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PATCH v3 5/5] accel/tcg: Remove check_tcg_memory_orders_compatible Date: Mon, 19 Jun 2023 16:23:33 +0200 Message-Id: <20230619142333.429028-6-richard.henderson@linaro.org> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20230619142333.429028-1-richard.henderson@linaro.org> References: <20230619142333.429028-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=2a00:1450:4864:20::32c; envelope-from=richard.henderson@linaro.org; helo=mail-wm1-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, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1687184719051100001 Content-Type: text/plain; charset="utf-8" We now issue host memory barriers to match the guest memory order. Continue to disable MTTCG only if the guest has not been ported. Signed-off-by: Richard Henderson --- accel/tcg/tcg-all.c | 39 ++++++++++----------------------------- 1 file changed, 10 insertions(+), 29 deletions(-) diff --git a/accel/tcg/tcg-all.c b/accel/tcg/tcg-all.c index 02af6a2891..03dfd67e9e 100644 --- a/accel/tcg/tcg-all.c +++ b/accel/tcg/tcg-all.c @@ -64,37 +64,23 @@ DECLARE_INSTANCE_CHECKER(TCGState, TCG_STATE, * they can set the appropriate CONFIG flags in ${target}-softmmu.mak * * Once a guest architecture has been converted to the new primitives - * there are two remaining limitations to check. - * - * - The guest can't be oversized (e.g. 64 bit guest on 32 bit host) - * - The host must have a stronger memory order than the guest - * - * It may be possible in future to support strong guests on weak hosts - * but that will require tagging all load/stores in a guest with their - * implicit memory order requirements which would likely slow things - * down a lot. + * there is one remaining limitation to check: + * - The guest can't be oversized (e.g. 64 bit guest on 32 bit host) */ =20 -static bool check_tcg_memory_orders_compatible(void) -{ -#if defined(TCG_GUEST_DEFAULT_MO) && defined(TCG_TARGET_DEFAULT_MO) - return (TCG_GUEST_DEFAULT_MO & ~TCG_TARGET_DEFAULT_MO) =3D=3D 0; -#else - return false; -#endif -} - static bool default_mttcg_enabled(void) { if (icount_enabled() || TCG_OVERSIZED_GUEST) { return false; - } else { -#ifdef TARGET_SUPPORTS_MTTCG - return check_tcg_memory_orders_compatible(); -#else - return false; -#endif } +#ifdef TARGET_SUPPORTS_MTTCG +# ifndef TCG_GUEST_DEFAULT_MO +# error "TARGET_SUPPORTS_MTTCG without TCG_GUEST_DEFAULT_MO" +# endif + return true; +#else + return false; +#endif } =20 static void tcg_accel_instance_init(Object *obj) @@ -162,11 +148,6 @@ static void tcg_set_thread(Object *obj, const char *va= lue, Error **errp) warn_report("Guest not yet converted to MTTCG - " "you may get unexpected results"); #endif - if (!check_tcg_memory_orders_compatible()) { - warn_report("Guest expects a stronger memory ordering " - "than the host provides"); - error_printf("This may cause strange/hard to debug errors\= n"); - } s->mttcg_enabled =3D true; } } else if (strcmp(value, "single") =3D=3D 0) { --=20 2.34.1