From patchwork Tue Oct 22 10:56:14 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Alex_Benn=C3=A9e?= X-Patchwork-Id: 837555 Delivered-To: patch@linaro.org Received: by 2002:a5d:50c9:0:b0:37d:45d0:187 with SMTP id f9csp2479461wrt; Tue, 22 Oct 2024 04:05:35 -0700 (PDT) X-Forwarded-Encrypted: i=2; AJvYcCUDt02+YEc2l3cZloJwHWdbQ2lbakfMrHYPrlMwpFIiORA9qoaUHp4MvmZsg18scL8vtajaaw==@linaro.org X-Google-Smtp-Source: AGHT+IGUlKszoISLjmp4tfrsmZl7HLACV5S5RxqgcNOeQKWq5paS5Zi9oGE1rkMrY5Pnfrc7Yani X-Received: by 2002:a05:620a:4101:b0:7a9:acd5:1b21 with SMTP id af79cd13be357-7b157bdb730mr2015745885a.50.1729595134997; Tue, 22 Oct 2024 04:05:34 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1729595134; cv=none; d=google.com; s=arc-20240605; b=ZGgzuLKQSptzkLuCNbuZSUJVtwmIycKK5XGUSaq5FSCiI7o4VUWQU/NeY5yRYhTpOh mLq3uiV5ewKreLoDI+IfORcFsKtgtrnX8bVjyvlhgCyQm/81I17FbLf6v0L74hun2iAq WVjI4tNAK+MTebVy132yZvVx6ek0eEO4eqVkEsIapMBKp2T1xkqqXYvvuNazBBswOt6I C/JCRhMnSHWx0imc6T+tdN+2FL/3bDhqSC7KbuYt6wh0EZuyH8FVxDSjAcM/dzu5WbY6 5GLanS7YqF0tNgiYfpLfHksdgr5CP4yC5Gm7LVOd3cy7MMiIVQtt37X0nXwK/bKoqYlt /cPw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=sender:errors-to:list-subscribe:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:content-transfer-encoding :mime-version:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=0yP4SNsaEappmzZc/gnms0PRD/uAmEAQCRgu6RQMiI8=; fh=QD25Hc+ygJ0XbcXg3/ArJIMCX64ZGVFFmcpicpFhJT8=; b=k2i9XVu++ncxTd01fCnWalhSYey2I1Xlw58sqnnuXS6hiZKaPk6LjiSVjcx2i9NQWI 7NJlppgqPGj9u4rBJ7VLauDQeoPShi8nxHnP1Z3l0fHIZQZSrBmRWMQJ6kJlMKcA7+EK aneKYh9OtwIaHJ0Ujf2n/LS+aDYeW4K7dHS1AEz2GnUV5M5APdIBQYRfwaZZ4pGTNhH4 lXAXl2rP3X8+P0f7QdXgY/4KxVOxsOOTovq6a5OcfBC6XbKR0e2PfrJGM2vR3UvKLCk8 17wTSG53fDx3CC9W99d4JGiwCVOCVb0csP0v5DbPDq2ucGNHnE68Acn43Ye0/oUkIc+Q aOSw==; dara=google.com ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=RBuwLTTf; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org; dara=neutral header.i=@linaro.org Return-Path: Received: from lists.gnu.org (lists.gnu.org. [209.51.188.17]) by mx.google.com with ESMTPS id af79cd13be357-7b165a9c52bsi666627385a.635.2024.10.22.04.05.34 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Tue, 22 Oct 2024 04:05:34 -0700 (PDT) Received-SPF: pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; Authentication-Results: mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=RBuwLTTf; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org; dara=neutral header.i=@linaro.org Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1t3Cgu-00076c-F8; Tue, 22 Oct 2024 07:04:44 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1t3Cgo-00072D-LZ for qemu-devel@nongnu.org; Tue, 22 Oct 2024 07:04:38 -0400 Received: from mail-lf1-x131.google.com ([2a00:1450:4864:20::131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1t3Cgh-00035h-59 for qemu-devel@nongnu.org; Tue, 22 Oct 2024 07:04:35 -0400 Received: by mail-lf1-x131.google.com with SMTP id 2adb3069b0e04-539f84907caso6181014e87.3 for ; Tue, 22 Oct 2024 04:03:56 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1729595035; x=1730199835; 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=0yP4SNsaEappmzZc/gnms0PRD/uAmEAQCRgu6RQMiI8=; b=RBuwLTTfBoDy2tgBI+oVY11RuQeRF3xUZT1TVevJ11C2dA2aIj02N1b0qy1cqz2B6U V3mI/G1bKm3S+/P8drX95tSwmQFsT2IZfOwl/gyGRPPNOYmx4KCBk6dfGykmJTbWY0by p2S3aqYa5mn47g2mF/N1C+RDRwDSIO6CS55J+XUHpz9jxob4GpFns3xmkanuygEMDV/R zTFHss718oiHzMEoqCzPtcDtJA85kVYOgNOUPGggf75kkDWT0vpKFXr9/lBWzIBLnunp pAz+zlQoGkXAGaxI9xaauQtw2sDQP9XbAe7ArQ6QlG3i5uIqunDPFPRQXTqcX7erKQzG 1N9g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1729595035; x=1730199835; 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=0yP4SNsaEappmzZc/gnms0PRD/uAmEAQCRgu6RQMiI8=; b=hpMoDPw9UWuFUzuVoUl7eG9Ksc+Ox7K3zzJbwZXUt3H2v8T03Az1bo2TUQOeGBPCLM JfCCAmTPYqwhglVKIbuTapUKGJ+i1pCugLqWHkp4/y+csKykHrY2An2o+HKaHtUcnUM7 J5URaD5THJP9yqx90QeHyoa9v3pRuvhjMfuEP4B8Thx8fayhnvxl33+oKQpvOXhlK9Ll 6PJQcDxo4HnMAzs55BIXLZPE9LrpteI4spdNurWa/PALLcQCFZACa96F9troKxoDBJ6f pDBjxAT512pb1TzM6UDvXt2S/UoWLgHaV79AmTRkZXt9E+v7pFbpsyTLWuqW2kn65Wvk zDWw== X-Gm-Message-State: AOJu0YzSdB9oy32RBHDmWlA73G1WOwPB2X3Eld+9G8r+YZ91H2hW84XM wu2swDnuPgjJY51SlhjcRMHtSq6cAuNSQ8sQ6MybYDdGBsToCNiKIFYWcKvTK8s= X-Received: by 2002:a05:6512:3185:b0:539:f65b:3d1 with SMTP id 2adb3069b0e04-53a152198c9mr7757327e87.21.1729595035308; Tue, 22 Oct 2024 04:03:55 -0700 (PDT) Received: from draig.lan ([85.9.250.243]) by smtp.gmail.com with ESMTPSA id 4fb4d7f45d1cf-5cb66c6b120sm3010139a12.59.2024.10.22.04.03.54 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 22 Oct 2024 04:03:54 -0700 (PDT) Received: from draig.lan (localhost [IPv6:::1]) by draig.lan (Postfix) with ESMTP id 62F045FC48; Tue, 22 Oct 2024 11:56:16 +0100 (BST) From: =?utf-8?q?Alex_Benn=C3=A9e?= To: qemu-devel@nongnu.org Cc: Beraldo Leal , Laurent Vivier , Wainer dos Santos Moschetta , Mahmoud Mandour , Jiaxun Yang , =?utf-8?q?Alex_Benn=C3=A9e?= , Yanan Wang , Thomas Huth , John Snow , =?utf-8?q?Marc-Andr=C3=A9_Lureau?= , qemu-arm@nongnu.org, =?utf-8?q?Daniel_P=2E_Berrang=C3=A9?= , Eduardo Habkost , devel@lists.libvirt.org, Cleber Rosa , kvm@vger.kernel.org, =?utf-8?q?Philippe_Mat?= =?utf-8?q?hieu-Daud=C3=A9?= , Alexandre Iooss , Peter Maydell , Richard Henderson , Riku Voipio , Zhao Liu , Marcelo Tosatti , "Edgar E. Iglesias" , Marcel Apfelbaum , Pierrick Bouvier , Paolo Bonzini , Robbin Ehn Subject: [PATCH v2 20/20] plugins: fix qemu_plugin_reset Date: Tue, 22 Oct 2024 11:56:14 +0100 Message-Id: <20241022105614.839199-21-alex.bennee@linaro.org> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20241022105614.839199-1-alex.bennee@linaro.org> References: <20241022105614.839199-1-alex.bennee@linaro.org> MIME-Version: 1.0 Received-SPF: pass client-ip=2a00:1450:4864:20::131; envelope-from=alex.bennee@linaro.org; helo=mail-lf1-x131.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=unavailable autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+patch=linaro.org@nongnu.org Sender: qemu-devel-bounces+patch=linaro.org@nongnu.org From: Pierrick Bouvier 34e5e1 refactored the plugin context initialization. After this change, tcg_ctx->plugin_insn is not reset inconditionnally anymore, but only if one plugin at least is active. When uninstalling the last plugin active, we stopped reinitializing tcg_ctx->plugin_insn, which leads to memory callbacks being emitted. This results in an error as they don't appear in a plugin op sequence as expected. The correct fix is to make sure we reset plugin translation variables after current block translation ends. This way, we can catch any potential misuse of those after a given block, in more than fixing the current bug. Fixes: https://gitlab.com/qemu-project/qemu/-/issues/2570 Reviewed-by: Richard Henderson Signed-off-by: Pierrick Bouvier Tested-by: Robbin Ehn Message-Id: <20241015003819.984601-1-pierrick.bouvier@linaro.org> [AJB: trim patch version details from commit msg] Signed-off-by: Alex Bennée --- accel/tcg/plugin-gen.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/accel/tcg/plugin-gen.c b/accel/tcg/plugin-gen.c index 2ee4c22bef..0f47bfbb48 100644 --- a/accel/tcg/plugin-gen.c +++ b/accel/tcg/plugin-gen.c @@ -467,4 +467,8 @@ void plugin_gen_tb_end(CPUState *cpu, size_t num_insns) /* inject the instrumentation at the appropriate places */ plugin_gen_inject(ptb); + + /* reset plugin translation state (plugin_tb is reused between blocks) */ + tcg_ctx->plugin_db = NULL; + tcg_ctx->plugin_insn = NULL; }