From nobody Sat Sep 26 22:14:21 2026 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=reject dis=none) header.from=oss.qualcomm.com ARC-Seal: i=1; a=rsa-sha256; t=1788362512; cv=none; d=zohomail.com; s=zohoarc; b=Zjl8K+x7jUPyoa3+yikpW+M6MRKFOzd6Yzsa+AKdxtGU4fyZrSm1ad5Y6iVQy4lg26nB9wqJXGwDBDe+U+BhugFMo227iMjb9ofkzvZjVzi3nW6ycdSLfGIG3xVU+kNvxhP0Lx9TtDqeFF0mYmwVNRvAWuYoD2cc9vt1Oi7gqfg= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1788362512; h=Content-Type: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=rWS7+0isPXzWm9cMRAgfswUsXMUQK605HjcD8US5czU=; b=gUepOTkX1rOh2/MgFMFEDtsgMqzrhYP+U+bRt24obsiT+2n9B8lTyuXgS6f/yRDcaT1H+zmsiidklOeK+1tgy72wu5SHpwvRSmBTuJF2Jd7wIlsGfG0jTomelSDwm9+zAIqsI+9nFwCmT2MyXGeA60KboI8iw2qhf9CyhafNpWY= 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=reject dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1788362512920493.5702067599624; Wed, 2 Sep 2026 08:21:52 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1x1mlq-0002HX-OP; Wed, 02 Sep 2026 11:21:02 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1x1mlp-0002Gj-NV for qemu-devel@nongnu.org; Wed, 02 Sep 2026 11:21:01 -0400 Received: from mx0a-0031df01.pphosted.com ([205.220.168.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1x1mln-0008SJ-Ap for qemu-devel@nongnu.org; Wed, 02 Sep 2026 11:21:01 -0400 Received: from pps.filterd (m0279863.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 682CR18q1549485 for ; Wed, 2 Sep 2026 15:20:58 GMT Received: from mail-ua1-f69.google.com (mail-ua1-f69.google.com [209.85.222.69]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4gej2c94uc-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Wed, 02 Sep 2026 15:20:57 +0000 (GMT) Received: by mail-ua1-f69.google.com with SMTP id a1e0cc1a2514c-97e9c9e23d8so757366241.1 for ; Wed, 02 Sep 2026 08:20:57 -0700 (PDT) Received: from localhost.localdomain (pmd666.hd.free.fr. [88.187.86.199]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-49ce5927b68sm62703165e9.1.2026.09.02.08.20.55 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Wed, 02 Sep 2026 08:20:55 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= rWS7+0isPXzWm9cMRAgfswUsXMUQK605HjcD8US5czU=; b=V/5C4+vHy0Fjtg02 gDJ8QaN9YSP/fttjWRuD1Dti8U0SC7B66bD26F5OZAOcjrlz2R6PY6U7W2XbNVzc 9XJryUf62zJjYLIzgUHamm5fgSB45t9HDoEpG5VegDqS1QHvXh7E9q0F2YEY6oKN 0nRLlvjcsyoWHySXw8GKVWzIInrlooEH01SImcA3g6e4/uJpGiDXeCO4uC6rf1NU kUY8/SWF485tm1hWfIznky0hRV3tgiBaaKzcGAi7g2gf3QTWv8AYoCNwmWOY/WrH 3hl/Y38Hr0SmT4Itka8mKeHyBldv88i4jzCZPA0vGBRtzuNZM777HY/NTZy+W23Z 9n3rbg== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1788362457; x=1788967257; darn=nongnu.org; h=content-transfer-encoding:content-type:mime-version:references :in-reply-to:message-id:date:subject:cc:to:from:from:to:cc:subject :date:message-id:reply-to:content-type; bh=rWS7+0isPXzWm9cMRAgfswUsXMUQK605HjcD8US5czU=; b=Z/2MnkhYNrDeBv9j1GOoAGKg0Li2dLpWJkONnwMifcKAj+D6WrFz6oSAk+EgWn/3Vq 6Zkii6aRtJmiNmoRz7MVqqrkbXtwvTHUVCWMeSO6vhjcx0UWvgpqLm+dBs3+3axcjuPD BVVWsg0TSRJ0/kF41sJmn8LjQwaNBRILd9ZfDwfm/K2oI8IhIwJki6oFqaw9uBNUaT2m 0FQbu22XlqjbtKqmLGT+d/VxDVLfwIbjBYyIYkkFMVkDJnjfTd9k+3AnkPENn4bJ/R8g EN+QaVqaH6Xv6dPH086a9hfGyZtaWrqdE5MKrwzLmxvBizql7iVofm/jRAro4NCNeuAe gLeQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1788362457; x=1788967257; h=content-transfer-encoding:content-type:mime-version:references :in-reply-to:message-id:date:subject:cc:to:from:x-gm-gg :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to :content-type; bh=rWS7+0isPXzWm9cMRAgfswUsXMUQK605HjcD8US5czU=; b=jjt2NGF0ssjWEQZ6mFJbPs2AzPDQVZ9e3yqen3BDUI0a0UPJQWAUN07JSJwtr4kfXk jfjVd58ufhnl7PcIWFT9Tu4K1v6i1ObE9uWoy3dblxQI9WRBM/80UFo0RIKP95JFjVP+ fXB7WfJafRLOt1og4PhZ5AnCnROh1OU0Vzo/wIXQgg3/hWtad+/zRentIBRQXC8vnArS kZ3X1KDL+6wNe6no0G68FurxSZG0SW7KUGkWO4BdsdQUIbgRXSCG9sl+7FJXAwtPiy3H 06LOPlWG4QD8s6gUsgzkDxYoNBOMgjOCq1LcVaxz9k0VKOxQbDPu3p5GZqTeDO+iv4Dw oSMA== X-Gm-Message-State: AFuF++lSeio0u8Iqy6YTR9ATbHWPBiVvHoIezM5Pr1Ve7whsRYEXD2LL qTfVjXbXGfgawshldxrjaPE2hg2UB9+2FRXFzyGl6wnCnSdgnIgbGOL6/NG6Tw5GEc/wEBBeKzM JS2Yf7bgC4of+5s2PPtNMZlHgJ1WnvKDojuj+aUXMoWH0dPL+MSXoYD41TXkuuPqkCg== X-Gm-Gg: AYBFou2S9H1szCdMGyTnX33SKrpRF2FudlI3IV04ALvr05eJMVdUhj9hnsCbRbLK5Xn 6dv9636vwKk0GXwYV+Qqk41QjjaNroLiA4wuN0lUFJr1Y+har2UN54vAOCgjs3N/S8/L6CNDzzM +XMW6SO4tc1Qm/3Iuftu7I3R0SOq8UTIiUKQodDg1rP0DYPG8xiS+ZL/M9W57Byzg3kk5dnjCq6 p2H7ztjtSbn4TUn86LZ6OCuSSQ2i4JNC7bPD2GyXzCQQB+s0yr/wGVbA7G0+IQkK0jNJdQepdgp KSPEQVa2+NgAv3HemAWqym6L2aeKeQE42oiNIgbiSVQiola34VRY+L/2jtv7/O6LiteY1eYrF/0 7qE996Ac10MtsEKqZx8bJMBG85B3y5rOOp4ktFDMX X-Received: by 2002:a05:6102:5247:b0:785:a48a:e3b9 with SMTP id ada2fe7eead31-78a1f21a6b7mr2373892137.4.1788362456884; Wed, 02 Sep 2026 08:20:56 -0700 (PDT) X-Received: by 2002:a05:6102:5247:b0:785:a48a:e3b9 with SMTP id ada2fe7eead31-78a1f21a6b7mr2373850137.4.1788362456417; Wed, 02 Sep 2026 08:20:56 -0700 (PDT) From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Cc: Mark Cave-Ayland , Peter Maydell , Paolo Bonzini , qemu-ppc@nongnu.org, qemu-s390x@nongnu.org, Richard Henderson , Pierrick Bouvier , qemu-riscv@nongnu.org, qemu-arm@nongnu.org, =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Subject: [PATCH v3 01/11] target/arm: Call arm*_cpu_do_interrupt directly instead of via TCGCPUOps Date: Wed, 2 Sep 2026 17:20:32 +0200 Message-ID: <20260902152044.31291-2-philmd@oss.qualcomm.com> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260902152044.31291-1-philmd@oss.qualcomm.com> References: <20260902152044.31291-1-philmd@oss.qualcomm.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-Proofpoint-Spam-Info: AW1haW4tMjYwOTAyMDEzNSBTYWx0ZWRfXzUt/KWgvSM+V HcFLJq2l29M8OE8mt2KAcyFlqu2F7IOpWl+pqWY7ZMnAu963SR7A1ZhglbBcj2AkV72+PXru3EO FvJ1JA/UqOBgGuL6vOGPgqvAjhqzoBQ= X-Authority-Analysis: v=2.4 cv=G+ss1dk5 c=1 sm=1 tr=0 ts=6a983ed9 cx=c_pps a=UbhLPJ621ZpgOD2l3yZY1w==:117 a=4s3hRJSeHn4rkQlkrse1kQ==:17 a=IkcTkHD0fZMA:10 a=VdqzKS8jKosA:10 a=M51BFTxLslgA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=yOCtJkima9RkubShWh1s:22 a=KKAkSRfTAAAA:8 a=EUspDBNiAAAA:8 a=dCDxpQg89NXWVkCnum4A:9 a=3ZKOabzyN94A:10 a=QEXdDO2ut3YA:10 a=TOPH6uDL9cOC6tEoww4z:22 a=cvBusfyB2V15izCimMoJ:22 X-Proofpoint-GUID: OmiSlNBm7LtEA3AUeL1hVYJA7QjpDq7S X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwOTAyMDEzNSBTYWx0ZWRfX/wOaMXjNunoD S4/71qBpnLnz9FpGKoo4ihZJnSndOWZZ1waNqu36fGqHOe2YFaZSqlF7eXhjIO/EaU2dhAB7jFc G/F3342vcPoLbbyj7sdzyXHWA9iDE3rOUVaYyXp1SHYbvKXXS4I7aBQJ1/wvTBjRIcfUwOsrBG4 3n2jv21F/WYY4gtKJgv0rcogMrj1Pk2Q8A8OdsV0IS+xBben7+16XI2JRyZ0pgnhquC91R4noJi 0lY9Mjuqw0qQNpFoDNyI83daDfXo/D0m7qQPB6w6mLOxa+dbjO5Xm5p1lXbA1hgTeURyp6jHihO izwvJOwyAF6+JT9mvtT00FoRPcaAQBin5H20bbyhc6SU8JfndP5IPG8wTfbXGdcsOIzGbLlJEmr PVCsHVIUSrPzTnUpYpS7MlSqU8mUYxqo8m6XTzU2wXtaj1Qoz5kyFTVUmFA6A4YTKQnbKzDN7V1 eIfynUHcOOdKwZi5YbA== X-Proofpoint-ORIG-GUID: OmiSlNBm7LtEA3AUeL1hVYJA7QjpDq7S X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1176,Hydra:6.1.134,FMLib:17.12.100.49 definitions=2026-09-02_03,2026-09-01_03,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 spamscore=0 priorityscore=1501 malwarescore=0 suspectscore=0 bulkscore=0 impostorscore=0 lowpriorityscore=0 phishscore=0 adultscore=0 clxscore=1015 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2609020135 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=lists1p.gnu.org; Received-SPF: pass client-ip=205.220.168.131; envelope-from=philmd@oss.qualcomm.com; helo=mx0a-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 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_LOW=-0.7, 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: qemu development 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 @qualcomm.com) X-ZM-MESSAGEID: 1788362515513154100 The TCGCPUOps.do_interrupt handler is a target-specific callback installed for use by target-agnostic TCG core methods. Target-specific code should not dispatch through this indirection; call the ARM implementation directly instead. Reported-by: Richard Henderson Signed-off-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: Peter Maydell Reviewed-by: Pierrick Bouvier Reviewed-by: Richard Henderson --- target/arm/cpu-irq.c | 2 +- target/arm/tcg/cpu-v7m.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/target/arm/cpu-irq.c b/target/arm/cpu-irq.c index 883e8a176c3..e8a6520e5ca 100644 --- a/target/arm/cpu-irq.c +++ b/target/arm/cpu-irq.c @@ -270,7 +270,7 @@ bool arm_cpu_exec_interrupt(CPUState *cs, int interrupt= _request) found: cs->exception_index =3D excp_idx; env->exception.target_el =3D target_el; - cs->cc->tcg_ops->do_interrupt(cs); + arm_cpu_do_interrupt(cs); return true; } #endif /* CONFIG_TCG */ diff --git a/target/arm/tcg/cpu-v7m.c b/target/arm/tcg/cpu-v7m.c index 48b31d5eac8..502998dbd1c 100644 --- a/target/arm/tcg/cpu-v7m.c +++ b/target/arm/tcg/cpu-v7m.c @@ -34,7 +34,7 @@ static bool arm_v7m_cpu_exec_interrupt(CPUState *cs, int = interrupt_request) if (interrupt_request & CPU_INTERRUPT_HARD && (armv7m_nvic_can_take_pending_exception(env->nvic))) { cs->exception_index =3D EXCP_IRQ; - cs->cc->tcg_ops->do_interrupt(cs); + arm_v7m_cpu_do_interrupt(cs); ret =3D true; } return ret; --=20 2.53.0 From nobody Sat Sep 26 22:14:21 2026 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=reject dis=none) header.from=oss.qualcomm.com ARC-Seal: i=1; a=rsa-sha256; t=1788362547; cv=none; d=zohomail.com; s=zohoarc; b=JjO6x30RSm2jYGAl378wntl/teuV5JkKe6uGrDkybdqEhnKiYvsWC7nWm18yu/lFY02TU11dC01Ah+6ciqX57PqH8AF+eD980DanMz/xCZ5l+vymw6BEB7CtiRYo6k3fcD0eO/lGeI+rYE7chcegihj5asTEedGTzTHfp0GWGLw= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1788362547; h=Content-Type: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=4mW5qc+t5vaFN0aJ2yA/9y7W8wnxzu9FNORR6ivb568=; b=T2cVpuxSPBZfjLz3pF9GNYG5i8wbD8pXuG1NHqEIErEEKK7X/5D6MpPR5d3V7mHOVYSRCtDrgr8SLkAu151JZUwBIIIYpEotOaCgyyvEBspNZBkPo12utRSRo0n0aM5K9FnR80OXeqmedehclGKxkUgrk/6Xy6TMI4aA7GV3+eQ= 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=reject dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1788362547244879.3126692746911; Wed, 2 Sep 2026 08:22:27 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1x1mmG-0002b4-D5; Wed, 02 Sep 2026 11:21:28 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1x1mm6-0002RZ-U7 for qemu-devel@nongnu.org; Wed, 02 Sep 2026 11:21:20 -0400 Received: from mx0a-0031df01.pphosted.com ([205.220.168.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1x1mm5-0008TR-4D for qemu-devel@nongnu.org; Wed, 02 Sep 2026 11:21:18 -0400 Received: from pps.filterd (m0279865.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 682CR7aJ2252121 for ; Wed, 2 Sep 2026 15:21:05 GMT Received: from mail-vs1-f72.google.com (mail-vs1-f72.google.com [209.85.217.72]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4gebsx2n8h-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Wed, 02 Sep 2026 15:21:05 +0000 (GMT) Received: by mail-vs1-f72.google.com with SMTP id ada2fe7eead31-7800607543dso1100599137.0 for ; Wed, 02 Sep 2026 08:21:05 -0700 (PDT) Received: from localhost.localdomain (pmd666.hd.free.fr. [88.187.86.199]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-49ce5936a5esm26423165e9.3.2026.09.02.08.21.02 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Wed, 02 Sep 2026 08:21:03 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= 4mW5qc+t5vaFN0aJ2yA/9y7W8wnxzu9FNORR6ivb568=; b=ZeD/aQQuHi6edaXD DPaUGcxwqgrrK2D7BWJ+33bdvqfQQI9zDnmJvlpcTFBjO6OAyrLEKYkPFLLGU7Qf jn7Fx7x7KvekSYEbd4tfpr2RICwftNvFwmVSKE8qocuOEvd/81EzyA++tgNbq6X+ FrV2pUKIkX+umTfMoVtnlJ3JlBalURBliOYlQTX8jDabNKkFRUaMV99rTphNLOq1 u/SNW5DGHJ2U4DNPehzIIsLehw+rjrOaWUQYpALzUDeU4Jmn6G4E+Vh9yIsHddL0 yTeucAf4cDCJ65hlPENP/kwQ3VtQUglS1/6w8JvqBQfItP7dfFS7ZvVcXHiK7MSZ idzBeA== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1788362465; x=1788967265; darn=nongnu.org; h=content-transfer-encoding:content-type:mime-version:references :in-reply-to:message-id:date:subject:cc:to:from:from:to:cc:subject :date:message-id:reply-to:content-type; bh=4mW5qc+t5vaFN0aJ2yA/9y7W8wnxzu9FNORR6ivb568=; b=QH5/gs/eov7eIJlHkk8oSKpxZUzWEVYN5aKs06I9oDNt923lLU7MrgL9dxwjV6blOo EfnbEEJljYI+o9c2fH36Ap4/oayOzZfd+Q/LabP+QMgg4NfAU3fQh0ip/sreZhmdNJkR HJSHEazF1yMGvM8HYaH5/21hODk6SpbHg7dRt/t1KUt4CVQh41iheFtx/V7JOpEllUfg C4pqicCZhAT5uesdUjV1rECjv5TqiM48bpL5YOt+KrHJuAQNCVF7xtZAnjpE5G7TSjgL Yes490T+kkJaKaC9aNGHGzFGq2J19zNMd/iCcRfPaGyy4Q5nIqR7SMLRPljaZUlWhLqu yanQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1788362465; x=1788967265; h=content-transfer-encoding:content-type:mime-version:references :in-reply-to:message-id:date:subject:cc:to:from:x-gm-gg :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to :content-type; bh=4mW5qc+t5vaFN0aJ2yA/9y7W8wnxzu9FNORR6ivb568=; b=bSPQ8OUgY0KYUT9rZvymnJ5q28VPlUoAFtijz46zk8lBFLWzN/fImCAHUZKGIZ3v6Q eihecmxoT6/fI9/9v35okmxAEz0NaofhHB39J6DjPPJ1iI30rpNo6Jg8v5uVltVagW+E 9ZWo6Xrx004O1KpX4SSkg6Lju3mrTCLP6iqrn5urT2/qPZ7yJVXWhB53cKTmEJkfcL2Y OsjBRkQ98s24tU/TvnCQbEunoBXNJwEX2cCmZ/N99xkGM59WIyd0el4DI5Z3urO73Hj2 UvW3G8SLoeUM90S/Ra6oXFaRWKOM0lDPUn3kp61SP3PVvNwif7qW7OzFEOduQLmtt9Ad vLFA== X-Gm-Message-State: AFuF++mjfbxchYJ+jkmn+kNwoRDANDEYUUPVifqsEhAoAJhN9cNhNRQu rcnvxZyIr+drc9l5S6JgCMOgYwKai2BG0wqGe8HwScWDai0NK5KAKF5K+Bx2r9HC860Lhhv9Rxg umgUr2m+5oFaUpagpOpDSTYHlKdxhDeBfNyKUHicdS7w86Q6rGq1gZbq4wqEr3iHmHQ== X-Gm-Gg: AYBFou1MGN3EZ1WjHndPxedzYQ+74GDmBXRKQMyIyBB8APRA+t4l3GUjCQxxPJyQhIr 0DEWndSw8LYaW9JJQyg1WNQCFi8p8TyzOvPArJO7V2Z2IeN/V03Ibiv3BeUE4lhMSre8TshRRSr 4gDNr6eiWWqGb2dpG2SaIri4JuQugB1+BeaXaWVAmTV2vurYaQT/kZ2BZivu5wose7r/GhhhQaf YBicIK5Caq4u2SY75HhtjG/LFv1p0KfSKXqQ0ipeOOl80afRS0IS1vBjKGsW6RcK1zZSqZm6IF4 F52bNRTRt5ltb1wuv7zWKnD7luFmdJtm3oNpqilBmtibUFKpF6Ad1N/DWqNCX5TPlr5aj57TvtA ctDBnGOfnD75RiRo6C4wuw4q9lwKpPpqHQhlOZUC/ X-Received: by 2002:a05:6102:512b:b0:785:ab90:bc52 with SMTP id ada2fe7eead31-78a1f36fcd8mr2072187137.8.1788362464683; Wed, 02 Sep 2026 08:21:04 -0700 (PDT) X-Received: by 2002:a05:6102:512b:b0:785:ab90:bc52 with SMTP id ada2fe7eead31-78a1f36fcd8mr2072141137.8.1788362464147; Wed, 02 Sep 2026 08:21:04 -0700 (PDT) From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Cc: Mark Cave-Ayland , Peter Maydell , Paolo Bonzini , qemu-ppc@nongnu.org, qemu-s390x@nongnu.org, Richard Henderson , Pierrick Bouvier , qemu-riscv@nongnu.org, qemu-arm@nongnu.org, =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , Cornelia Huck , Eric Farman , Matthew Rosato , Ilya Leoshkevich , David Hildenbrand Subject: [PATCH v3 02/11] target/s390x: Restrict interrupt handlers to system mode Date: Wed, 2 Sep 2026 17:20:33 +0200 Message-ID: <20260902152044.31291-3-philmd@oss.qualcomm.com> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260902152044.31291-1-philmd@oss.qualcomm.com> References: <20260902152044.31291-1-philmd@oss.qualcomm.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-Proofpoint-ORIG-GUID: 61gR74aziFDP40pdaZrKyc-Fq9vpqxCd X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwOTAyMDEzNSBTYWx0ZWRfX0ricIYLX92k8 IfoL2b2CGMXqCBnGUL6aEtjPycZhLFB/TyD22CiO0x7PtrHXrcO6UwFPFhv2sSv1mOi1Y0NnvlU cwPfrdlT0LnpmQRovvp2MaX+5lUxliIyvrr7ki/+bwjk5JiIbdisXh3vL94uV2xjFtfkGiwobzF clskyM95EyaFUP0VmAhSrgulZKkNfwW3E2dV9z2KdTpCQpAxiime+DPE8CpWVR+qR2lM74z/fHm wFw8zWl8k9nxiNsIGN+0LxVCs/k0FXSX+b/lYEBgPKjfAPEej/gMPSGsZ0Ys+qAw+Y5zkbVrzUb s1APMRFkoXI6suNzNpU9mLPYiYwbY6FuAUbclonusnKY/ZIa7lSUT+MS0i6CsAVTD1JhUTnuusL F5jXRcfUKpQzkaNo2rGYrhI3akd/7V0rpML9Ij7IRsGIeVlbQXIaQlRWTV1xPx9lfYXCjYpveg/ 8o2xOiYbc7ggyNnJKog== X-Proofpoint-GUID: 61gR74aziFDP40pdaZrKyc-Fq9vpqxCd X-Authority-Analysis: v=2.4 cv=AufeGu9P c=1 sm=1 tr=0 ts=6a983ee1 cx=c_pps a=DUEm7b3gzWu7BqY5nP7+9g==:117 a=4s3hRJSeHn4rkQlkrse1kQ==:17 a=IkcTkHD0fZMA:10 a=VdqzKS8jKosA:10 a=M51BFTxLslgA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=Um2Pa8k9VHT-vaBCBUpS:22 a=EUspDBNiAAAA:8 a=PDipHExqzojCLwy3H7UA:9 a=3ZKOabzyN94A:10 a=QEXdDO2ut3YA:10 a=-aSRE8QhW-JAV6biHavz:22 X-Proofpoint-Spam-Info: AW1haW4tMjYwOTAyMDEzNSBTYWx0ZWRfX51nzb0B9f5c8 4XpySyOfIQ8prPxnjQFV724glYCvx/PBAIH0Nmurcl7FLUcz2W0snPfPuUey/L1BQYcYb2qdmuE MLM/hWl4F1fQUoXJpWmzSLUOOu5tqfo= X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1176,Hydra:6.1.134,FMLib:17.12.100.49 definitions=2026-09-02_03,2026-09-01_03,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 clxscore=1015 bulkscore=0 lowpriorityscore=0 impostorscore=0 phishscore=0 spamscore=0 adultscore=0 suspectscore=0 priorityscore=1501 malwarescore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2609020135 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=lists1p.gnu.org; Received-SPF: pass client-ip=205.220.168.131; envelope-from=philmd@oss.qualcomm.com; helo=mx0a-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 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_LOW=-0.7, 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: qemu development 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 @qualcomm.com) X-ZM-MESSAGEID: 1788362547981158500 Move s390_cpu_do_interrupt() and s390_cpu_exec_interrupt() declarations from system/user shared header to system-mode-only section, removing the unused user-mode stub. Signed-off-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: Pierrick Bouvier Reviewed-by: Richard Henderson --- target/s390x/s390x-internal.h | 5 ++--- target/s390x/tcg/excp_helper.c | 5 ----- 2 files changed, 2 insertions(+), 8 deletions(-) diff --git a/target/s390x/s390x-internal.h b/target/s390x/s390x-internal.h index 81da207a5f4..d302187c21d 100644 --- a/target/s390x/s390x-internal.h +++ b/target/s390x/s390x-internal.h @@ -261,9 +261,6 @@ ObjectClass *s390_cpu_class_by_name(const char *name); =20 =20 /* excp_helper.c */ -void s390_cpu_do_interrupt(CPUState *cpu); -bool s390_cpu_exec_interrupt(CPUState *cpu, int int_req); - #ifdef CONFIG_USER_ONLY void s390_cpu_record_sigsegv(CPUState *cs, vaddr address, MMUAccessType access_type, @@ -271,6 +268,8 @@ void s390_cpu_record_sigsegv(CPUState *cs, vaddr addres= s, void s390_cpu_record_sigbus(CPUState *cs, vaddr address, MMUAccessType access_type, uintptr_t retaddr); #else +void s390_cpu_do_interrupt(CPUState *cpu); +bool s390_cpu_exec_interrupt(CPUState *cpu, int int_req); bool s390_cpu_tlb_fill(CPUState *cs, vaddr address, int size, MMUAccessType access_type, int mmu_idx, bool probe, uintptr_t retaddr); diff --git a/target/s390x/tcg/excp_helper.c b/target/s390x/tcg/excp_helper.c index d952bb20cf1..01c0d77b13b 100644 --- a/target/s390x/tcg/excp_helper.c +++ b/target/s390x/tcg/excp_helper.c @@ -101,11 +101,6 @@ void do_unaligned_access(CPUState *cs, uintptr_t retad= dr) =20 #if defined(CONFIG_USER_ONLY) =20 -void s390_cpu_do_interrupt(CPUState *cs) -{ - cs->exception_index =3D -1; -} - void s390_cpu_record_sigsegv(CPUState *cs, vaddr address, MMUAccessType access_type, bool maperr, uintptr_t retaddr) --=20 2.53.0 From nobody Sat Sep 26 22:14:21 2026 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=reject dis=none) header.from=oss.qualcomm.com ARC-Seal: i=1; a=rsa-sha256; t=1788362540; cv=none; d=zohomail.com; s=zohoarc; b=OKG33SNhtgQyH+fWCfmO373Rw0vy68rPGBLiB+sPSK+b5YW/D4RRlryb152mdZURNYSxuG+fkgNztJlhcVtCIDmBGMw6YSsm6rlOqPNiwXd0/Lp34p4AaZDo4gDWV0KKuUAcahQe81i0Af48kSHbFq7OjyBtP+oUGVNHpN8+flA= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1788362540; h=Content-Type: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=Ji5J4HKmPdW/CWTW2SUhTxHcUUTcenx5uhnZFfihhVE=; b=ZyfrmdegCdV03MPVkzgqGOU95stHpu1iwamlHGou9AAenYd9ScLycVA7vTv68aDqsQLBoYTJt8KYRIKoDryuAAsOlIWceOVddKVrIYthSbCKGKjZjPot9ygEaXnuMwkW+hPMHfKP4vzFfI7VLXVBzUv19tPgyFscMI1fQrycKdU= 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=reject dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1788362540746484.03871294341377; Wed, 2 Sep 2026 08:22:20 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1x1mmH-0002ia-Uu; Wed, 02 Sep 2026 11:21:30 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1x1mmE-0002Wo-VR for qemu-devel@nongnu.org; Wed, 02 Sep 2026 11:21:27 -0400 Received: from mx0a-0031df01.pphosted.com ([205.220.168.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1x1mmD-0000EQ-6Z for qemu-devel@nongnu.org; Wed, 02 Sep 2026 11:21:26 -0400 Received: from pps.filterd (m0279863.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 682CR8do1549926 for ; Wed, 2 Sep 2026 15:21:14 GMT Received: from mail-qk1-f198.google.com (mail-qk1-f198.google.com [209.85.222.198]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4gej2c94wa-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Wed, 02 Sep 2026 15:21:13 +0000 (GMT) Received: by mail-qk1-f198.google.com with SMTP id af79cd13be357-92e5fc4c7e9so49211385a.3 for ; Wed, 02 Sep 2026 08:21:13 -0700 (PDT) Received: from localhost.localdomain (pmd666.hd.free.fr. [88.187.86.199]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-49ce58da3acsm127559305e9.0.2026.09.02.08.21.10 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Wed, 02 Sep 2026 08:21:10 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= Ji5J4HKmPdW/CWTW2SUhTxHcUUTcenx5uhnZFfihhVE=; b=cqX616d/uyTXUNky cJut0zr4MaV7+EUooCerieI9I8TrtsBHshbM70H3UK9Dr47Wxv2ZHoBi7AzwTkBn gWQPdyCzT8A6nChtMHsKoGuNAqYlBgfiTbifEpGX/+9I3Hg3/9J5ViI7p3/itsIG vK0H8wMD4hitaKZa4Q6VtvQf/vnVKyyEP2wFLFBOSbQ5NQSyAMTO6DgAdbqC1KEc cgEktR8E3m1/dLAnMZ3QugU3ShnKO8leC48Dlh/oALNRvIfHwjnRmy98hVqW7XFJ Zlzg/ddITZiMX+oqiinFgRGCg55fToMQFACscoee84ANMaotLfd3ahkBFdwINSFR nfMQFg== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1788362473; x=1788967273; darn=nongnu.org; h=content-transfer-encoding:content-type:mime-version:references :in-reply-to:message-id:date:subject:cc:to:from:from:to:cc:subject :date:message-id:reply-to:content-type; bh=Ji5J4HKmPdW/CWTW2SUhTxHcUUTcenx5uhnZFfihhVE=; b=KyopZ55Fb4cGJfufJBbsH+osNZJKqYauriBJAF440QgkjhGHpfj6YXIKZMMQ75DkPx 6Wydz/LhZfTa5+zLgLhwuiYQ/gEg+qEfRuI6MZm5xMLn3WT2GyhaQwMwG6sBUQ1HP8D0 7ECN+tg80FTjgQE/Eb9EbxgUieOAjT4EDxiBppl9SmDW3DUegbFTonZahizSTTmOkoBN ve9uUEMZYWUq5zuXntI+NQNJD0nfTxe0dGIdqi0bx/aVS88IPBfcySFZj2Lchcu8YYKG TPXzRhPFcZ0g1poZro6l92KY8w3V7xqsAMhpzNZ1mUhhF/VY8e0/GV4Kq/JFmVPcLaVV T/cg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1788362473; x=1788967273; h=content-transfer-encoding:content-type:mime-version:references :in-reply-to:message-id:date:subject:cc:to:from:x-gm-gg :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to :content-type; bh=Ji5J4HKmPdW/CWTW2SUhTxHcUUTcenx5uhnZFfihhVE=; b=oqiT6WxXd2sQuf7LH/vYgxGy52Yfm+DZP3TV8VPQvdvY1n3CuhcG+gSq2SZefahwax tRS+KySmKfnaaYGyGNq5ZnHrh7ZOZ0z1QqWfJ8+kdWWccCYNIXKDQKD/KAFmprKpfHm4 2fe7cySqG70gGjd2aVOn2JANFHyDyW7eT3A9J/m6UM0wipRGwdTx/A9zLMKEJBm2FQbZ Qgzen5zwYCK7xubn+Zx712USrejAR48htglZ2QvstdJ0cuq2GJQXSTiOHOh5ZGx078AJ e9RdLA4GQsrIamUQVx0w5KRuWevJQDQQGUItL8G+kJazS5arxub6ltqvqiEnNrSqwxN8 o3kQ== X-Gm-Message-State: AFuF++mHMimdLa4b2K/vjK29+R2Ny6mTZHAu3mL/bFpAe0lmOm4a1obZ KtFWeIHGaR03rsObJVdsnfbRs2p392lSqKl1WqAoUwkAK5ZfW2YKbzCw5vTlvm49DUIPUZEWM+R DTSjUsSJYnvCzpN6HoPD6uOo17oAXzg3VYJ9L/mSDA7fQsPxdzYxpEeD7OuTJaxOp8w== X-Gm-Gg: AR+sD11DJO/EsVKKrkQrkGAI/UPhs0rviElHO4qtSE48CFZTtAY5i46xNq4ZyApEXYv pQ+GTXnLmWAgOT2PljzVG8e6qQ6Z9IdsN9GwyGpQfBz92NU39lvNVt91NM9dRtmjG/EZyP3B7UX 2KcQL3Ag17YJ8FFTyzhLLPGjXNKDFMvLZZmmeR00yBvmheHZHozq11JFuaTmgsE1grc+h+ikF5c rI6eV5uI2+jMEdA7WdzFdWrNeHF8PwkExCABzWJ8I5e7KEZu/lKhKkZ5dTks4qAt59rr+nRg28q XxR8e9HKgwujETgoDynNwsgTZSx3DncdG5huQWDKjxnnB48FQDjvLir5mPirgab/3AuAu0d+IKn E9HhkH6r6jdU0YDnOJZcD1N2gT2Vmmo6mTJ1FEKJN X-Received: by 2002:a05:620a:371c:b0:937:6772:d8d with SMTP id af79cd13be357-93960f1811emr695433785a.20.1788362472228; Wed, 02 Sep 2026 08:21:12 -0700 (PDT) X-Received: by 2002:a05:620a:371c:b0:937:6772:d8d with SMTP id af79cd13be357-93960f1811emr695415885a.20.1788362471438; Wed, 02 Sep 2026 08:21:11 -0700 (PDT) From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Cc: Mark Cave-Ayland , Peter Maydell , Paolo Bonzini , qemu-ppc@nongnu.org, qemu-s390x@nongnu.org, Richard Henderson , Pierrick Bouvier , qemu-riscv@nongnu.org, qemu-arm@nongnu.org, =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Subject: [PATCH v3 03/11] target/i386: Rename fake_do_interrupt to fake_user_exception Date: Wed, 2 Sep 2026 17:20:34 +0200 Message-ID: <20260902152044.31291-4-philmd@oss.qualcomm.com> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260902152044.31291-1-philmd@oss.qualcomm.com> References: <20260902152044.31291-1-philmd@oss.qualcomm.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-Proofpoint-Spam-Info: AW1haW4tMjYwOTAyMDEzNSBTYWx0ZWRfX9jqgn/py7DKH q0Uy848X5YAOJoiu7EOvFO0+KaJwe2DUGq8ZiAo1FZg9dRyDoYXStoveixpJzvYxSLD/jIeTmme aTIg/17wQTHkiuB7Tl1/8u5txCRJ+T0= X-Authority-Analysis: v=2.4 cv=G+ss1dk5 c=1 sm=1 tr=0 ts=6a983ee9 cx=c_pps a=qKBjSQ1v91RyAK45QCPf5w==:117 a=4s3hRJSeHn4rkQlkrse1kQ==:17 a=IkcTkHD0fZMA:10 a=VdqzKS8jKosA:10 a=M51BFTxLslgA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=yOCtJkima9RkubShWh1s:22 a=EUspDBNiAAAA:8 a=QvbPrhRjooIPkqPMRvUA:9 a=3ZKOabzyN94A:10 a=QEXdDO2ut3YA:10 a=NFOGd7dJGGMPyQGDc5-O:22 X-Proofpoint-GUID: ve7-lgHnRJQ3vsnRuWFJhWMAHt5OJw4K X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwOTAyMDEzNSBTYWx0ZWRfX9GplWtmmaUJd 1fXEJjROmKyZgTx7QOX/rpWNRG+vGTkuTkFVuGYn2vjP4gYm6rMpEYIKQy4m4VWg+dG0Uo8SviT c++3W4TP5Wfaae/QWcyrMtow6mf5dIAns62ouQVpCXvctCL6rm0U2b2g45kKndJdyutGNG4nlZu NLxBIetoKf9IACUG8mKQzuH82wh41l8SwB7cAqkBjYvyrvPjCje6P9XDBMRgJx9sw0CHJmWAn0M kla7Mtt+KAs1YeppQm4CA+tIG0qkCF5FveSnvxgVxhWVCVtd3Sc5nwS6nRE+52rrNJcCLTgy56X L8Iu78L334gm6UM1feOz/QIuUvTft+NnOLGooTvyPc1sVEMQtwAK38PU4Oq57nbiqM6r658EfNE wv/LI9F4gDgpMkiUWKovztNyUbfwg9/17lMe3tpQ2gSI1FOMRWe3XAmqONPq1Tlq6aAOK95PgJ+ IrS2QR0LWb9J0PCSyIA== X-Proofpoint-ORIG-GUID: ve7-lgHnRJQ3vsnRuWFJhWMAHt5OJw4K X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1176,Hydra:6.1.134,FMLib:17.12.100.49 definitions=2026-09-02_03,2026-09-01_03,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 spamscore=0 priorityscore=1501 malwarescore=0 suspectscore=0 bulkscore=0 impostorscore=0 lowpriorityscore=0 phishscore=0 adultscore=0 clxscore=1015 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2609020135 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=lists1p.gnu.org; Received-SPF: pass client-ip=205.220.168.131; envelope-from=philmd@oss.qualcomm.com; helo=mx0a-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 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_LOW=-0.7, 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: qemu development 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 @qualcomm.com) X-ZM-MESSAGEID: 1788362542020158500 The fake_user_exception hook handles exceptions in the outer exception loop (cpu_handle_exception), not inner loop interrupts (cpu_handle_interrupt). Rename to clarify the scope and intent. Signed-off-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: Richard Henderson --- include/accel/tcg/cpu-ops.h | 4 ++-- target/i386/tcg/helper-tcg.h | 4 +++- accel/tcg/cpu-exec.c | 4 ++-- target/i386/tcg/tcg-cpu.c | 2 +- target/i386/tcg/user/seg_helper.c | 6 +++--- 5 files changed, 11 insertions(+), 9 deletions(-) diff --git a/include/accel/tcg/cpu-ops.h b/include/accel/tcg/cpu-ops.h index 3ff6e6810e0..ded7cc700df 100644 --- a/include/accel/tcg/cpu-ops.h +++ b/include/accel/tcg/cpu-ops.h @@ -106,12 +106,12 @@ struct TCGCPUOps { =20 #ifdef CONFIG_USER_ONLY /** - * @fake_user_interrupt: Callback for 'fake exception' handling. + * @fake_user_exception: Callback for 'fake exception' handling. * * Simulate 'fake exception' which will be handled outside the * cpu execution loop (hack for x86 user mode). */ - void (*fake_user_interrupt)(CPUState *cpu); + void (*fake_user_exception)(CPUState *cpu); =20 /** * record_sigsegv: diff --git a/target/i386/tcg/helper-tcg.h b/target/i386/tcg/helper-tcg.h index f4b2ff740d5..5349ab71be9 100644 --- a/target/i386/tcg/helper-tcg.h +++ b/target/i386/tcg/helper-tcg.h @@ -35,11 +35,13 @@ * x86_cpu_do_interrupt: * @cpu: vCPU the interrupt is to be handled by. */ -void x86_cpu_do_interrupt(CPUState *cpu); #ifndef CONFIG_USER_ONLY +void x86_cpu_do_interrupt(CPUState *cpu); bool x86_cpu_exec_halt(CPUState *cpu); bool x86_need_replay_interrupt(int interrupt_request); bool x86_cpu_exec_interrupt(CPUState *cpu, int int_req); +#else +void x86_cpu_fake_user_exception(CPUState *cs); #endif =20 void breakpoint_handler(CPUState *cs); diff --git a/accel/tcg/cpu-exec.c b/accel/tcg/cpu-exec.c index 257211235db..609931a0d6e 100644 --- a/accel/tcg/cpu-exec.c +++ b/accel/tcg/cpu-exec.c @@ -717,8 +717,8 @@ static inline bool cpu_handle_exception(CPUState *cpu, = int *ret) * handled outside the cpu execution loop. */ const TCGCPUOps *tcg_ops =3D cpu->cc->tcg_ops; - if (tcg_ops->fake_user_interrupt) { - tcg_ops->fake_user_interrupt(cpu); + if (tcg_ops->fake_user_exception) { + tcg_ops->fake_user_exception(cpu); } *ret =3D cpu->exception_index; cpu->exception_index =3D -1; diff --git a/target/i386/tcg/tcg-cpu.c b/target/i386/tcg/tcg-cpu.c index 6f5dc06b3b9..7a4d73e7fee 100644 --- a/target/i386/tcg/tcg-cpu.c +++ b/target/i386/tcg/tcg-cpu.c @@ -173,7 +173,7 @@ const TCGCPUOps x86_tcg_ops =3D { .cpu_exec_enter =3D x86_cpu_exec_enter, .cpu_exec_exit =3D x86_cpu_exec_exit, #ifdef CONFIG_USER_ONLY - .fake_user_interrupt =3D x86_cpu_do_interrupt, + .fake_user_exception =3D x86_cpu_fake_user_exception, .record_sigsegv =3D x86_cpu_record_sigsegv, .record_sigbus =3D x86_cpu_record_sigbus, #else diff --git a/target/i386/tcg/user/seg_helper.c b/target/i386/tcg/user/seg_h= elper.c index 3a4a6d5a745..019a781458b 100644 --- a/target/i386/tcg/user/seg_helper.c +++ b/target/i386/tcg/user/seg_helper.c @@ -42,7 +42,7 @@ void helper_syscall(CPUX86State *env, int next_eip_addend) * instruction. It is only relevant if is_int is TRUE or if intno * is EXCP_SYSCALL. */ -static void do_interrupt_user(CPUX86State *env, int intno, int is_int, +static void do_exception_user(CPUX86State *env, int intno, int is_int, int error_code, target_ulong next_eip) { if (is_int) { @@ -76,7 +76,7 @@ static void do_interrupt_user(CPUX86State *env, int intno= , int is_int, } } =20 -void x86_cpu_do_interrupt(CPUState *cs) +void x86_cpu_fake_user_exception(CPUState *cs) { X86CPU *cpu =3D X86_CPU(cs); CPUX86State *env =3D &cpu->env; @@ -84,7 +84,7 @@ void x86_cpu_do_interrupt(CPUState *cs) /* if user mode only, we simulate a fake exception which will be handled outside the cpu execution loop */ - do_interrupt_user(env, cs->exception_index, + do_exception_user(env, cs->exception_index, env->exception_is_int, env->error_code, env->exception_next_eip); --=20 2.53.0 From nobody Sat Sep 26 22:14:21 2026 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=reject dis=none) header.from=oss.qualcomm.com ARC-Seal: i=1; a=rsa-sha256; t=1788362522; cv=none; d=zohomail.com; s=zohoarc; b=Kt98E8O2VB65PHV1uyDLrpekoYbpSkxijnsZ9ugrjWt2Yyy0+/TSMObtU5k4WSUwHPbnodeVx6hRsMljkVMh2Xoypues2ZzCD8CFw99/k3tJ1rFr+inP5f0nypZqxWaVi4Yr4Gd9IchKVGxcIVEa8WJHHNhU8jdWP8C+733NX0o= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1788362522; h=Content-Type: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=+YPNLAnu1HEAYVb+feaZUL0eZ0sSfOiNmPRQjU24rs8=; b=n4yMXPVBvosyr/0ZFuIKbRs4NxiXIRxAR7+OMUKhx0OLgiDfsooO6b6u1jEkfoDMb/OTPCyb1URTiHTt2cdYt7Ja7TAbq77/qbuenVd+Oid7hr/MNsGs7kLyscDNUiYHhx4P1RKwsge6ch2l2c7XQHr/QHzt3Yb3W8cnAvBLGdI= 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=reject dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1788362522908408.6772846402266; Wed, 2 Sep 2026 08:22:02 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1x1mmG-0002cN-Rz; Wed, 02 Sep 2026 11:21:28 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1x1mmD-0002WM-7R for qemu-devel@nongnu.org; Wed, 02 Sep 2026 11:21:27 -0400 Received: from mx0b-0031df01.pphosted.com ([205.220.180.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1x1mm9-0000Ff-Nf for qemu-devel@nongnu.org; Wed, 02 Sep 2026 11:21:24 -0400 Received: from pps.filterd (m0279868.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 682Ecrck1675942 for ; Wed, 2 Sep 2026 15:21:20 GMT Received: from mail-qk1-f200.google.com (mail-qk1-f200.google.com [209.85.222.200]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4genrdr58m-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Wed, 02 Sep 2026 15:21:20 +0000 (GMT) Received: by mail-qk1-f200.google.com with SMTP id af79cd13be357-93915f50a5cso513181985a.1 for ; Wed, 02 Sep 2026 08:21:20 -0700 (PDT) Received: from localhost.localdomain (pmd666.hd.free.fr. [88.187.86.199]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-49ce591f846sm26874605e9.1.2026.09.02.08.21.17 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Wed, 02 Sep 2026 08:21:18 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= +YPNLAnu1HEAYVb+feaZUL0eZ0sSfOiNmPRQjU24rs8=; b=E0R1wYBZw7yRHNTj z0iYW4nAYBxbStmxtH5NOl2iDX9zxcP7M+8ocutI2+iae7gXi0scsAFvMvi3hxY1 lkr3VK1IX1AystE393oHZnC1K1vc+HxWC+lUolRLAS56FwAf0yxyyPHqCC3oX43F seSBprsV2vGVJegxae83m4ftHbdDzRZo+NYLfTywSKSRtlxrlm4hQ9VsExw1eQqc cbxCJvOk8mE2Flcqi2yzxmoi4wBpfkLEC1ot9wiD7qix2CKW98gUXAtGO6pWF7Wc EJcCfvpi/a4+LakL+J+qHiTdAObnAKZ8h8p8q77YmgYifdR0+qaTHVksOGEHktMT WlM5Vw== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1788362480; x=1788967280; darn=nongnu.org; h=content-transfer-encoding:content-type:mime-version:references :in-reply-to:message-id:date:subject:cc:to:from:from:to:cc:subject :date:message-id:reply-to:content-type; bh=+YPNLAnu1HEAYVb+feaZUL0eZ0sSfOiNmPRQjU24rs8=; b=hXL/ShQnX4Va95LXlgzVW8gm7PBlQcQerRJywYJnbtbAiyWJAu2gQnOhBAJIcbhghX X4NwwFU61O+LwqZxDKJeY/seuYDdVIGXWTfG51+70V+O4YJnJYtipt/FTidmytAWG0Eh +Moc7LN1+Y1jD+JmM8MokohqNI83mT9Otsedpl0EKbwRGVwb71zFMiyfmHQ3w8nFDkEe aW8gab9SOeA9DEplzphRocQRPEqdv/M2s2R5Au27xYu2WT6h3QYXjrUJ1w+tBbZe9iTZ 2FS+MQmK+PzpOo8CSUxOgx7bMBlJK7oA0SYmFdpQqWYES6MJfI8J66ZJC9Xbu0/r0+tS 2hDQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1788362480; x=1788967280; h=content-transfer-encoding:content-type:mime-version:references :in-reply-to:message-id:date:subject:cc:to:from:x-gm-gg :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to :content-type; bh=+YPNLAnu1HEAYVb+feaZUL0eZ0sSfOiNmPRQjU24rs8=; b=sktqgSOmVyrgYVlzbShO0PyYAELT5S16l/p0ark3lGaCQ/sSzDHn5pF4nW3eeI4fHq 7uWmEcxMez2rwTdNRiFZhCxXr20QeMveUYWcZI1Y5hu/awXus0/D41rWewK0lQs23nn6 rRR96vOfKFP0pR63h5A0dw1Oh4dZWKF+VGY9ZWCjtO3fU4GZPAID78UCLTxKQ8sH1ueF kn5OcReqICUtJuxNqaxEsvT0yzfAvRUgtXdAUqehlOG9hq4WmCJ7zIU8gzbDGwA0e26N TEWCu39b+PQTTwPlGM25vcp1kz0oW1n2mIDvEWW1rxaiaNFLPDeAZmrkEoTnW8EO5/B2 oUIA== X-Gm-Message-State: AFuF++k5JYHHg2cUYiXFah1WaEzab7NRX6YM0nowC6Ju/Fby73Mh6o42 HEdwEodfQfHGRHVmh9TjVnJlnX6uSGDmzixHZbgdPtgGyjqr/LhNk8ODfQLLRJ+xrO3HCjEJy/E saCh7Dij0W5d4mE8VJquKxI6Hms4LTOOjLdoXg0ogrptOV3gjO2WJfKOIapyt0U3pFw== X-Gm-Gg: AR+sD11PmS0LRDI2HO0zkXKPbNUKna8RAm3LvXCUhp/NZBX/UqyHcX17mZGtVKHI/AX Tn2BtAeXUvBHODpuA4djlQcHzmyf9FnCkTpk9Ow1ZHCfSLrpChW1sSot+VaygEiVKMdGbtuyF75 3xiNpIPccbxHctobs0mS8te6R/PZKup6K+5okiQE3EgQ1+QEHayQdpBFC9vDjnfMhx7UrQSg01i neZLSsGVaU22wvXgQKw7FCgC1svSVb4gQu+Q8/tyQP8XNpEDOeFSkWcmHaf2MJHmwOQRlATDn1D VQA3N/MOLc+nN87aJ2FXzpPNT2j4BMjilv1xJ22MZY+fuPvqakInN5AiomqBVUbeoznF9dm5Doy iaIPxTTXf6zKn4LWu/x1EcxfRx1tYBgfWgRJWKboo X-Received: by 2002:a05:620a:4553:b0:939:3f4f:7254 with SMTP id af79cd13be357-93965bfbc2fmr430856485a.14.1788362479977; Wed, 02 Sep 2026 08:21:19 -0700 (PDT) X-Received: by 2002:a05:620a:4553:b0:939:3f4f:7254 with SMTP id af79cd13be357-93965bfbc2fmr430843185a.14.1788362479299; Wed, 02 Sep 2026 08:21:19 -0700 (PDT) From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Cc: Mark Cave-Ayland , Peter Maydell , Paolo Bonzini , qemu-ppc@nongnu.org, qemu-s390x@nongnu.org, Richard Henderson , Pierrick Bouvier , qemu-riscv@nongnu.org, qemu-arm@nongnu.org, =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Subject: [PATCH v3 04/11] accel/tcg: Document cpu_exec_interrupt() callback contract Date: Wed, 2 Sep 2026 17:20:35 +0200 Message-ID: <20260902152044.31291-5-philmd@oss.qualcomm.com> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260902152044.31291-1-philmd@oss.qualcomm.com> References: <20260902152044.31291-1-philmd@oss.qualcomm.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-Authority-Analysis: v=2.4 cv=H4/rBeYi c=1 sm=1 tr=0 ts=6a983ef0 cx=c_pps a=hnmNkyzTK/kJ09Xio7VxxA==:117 a=4s3hRJSeHn4rkQlkrse1kQ==:17 a=IkcTkHD0fZMA:10 a=VdqzKS8jKosA:10 a=M51BFTxLslgA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=ZpdpYltYx_vBUK5n70dp:22 a=EUspDBNiAAAA:8 a=SWPfrzv3WwVL6hwBn9sA:9 a=3ZKOabzyN94A:10 a=QEXdDO2ut3YA:10 a=PEH46H7Ffwr30OY-TuGO:22 X-Proofpoint-GUID: LxgrlK6cToqcq-1XE3RD3hEganaCBx0k X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwOTAyMDEzNSBTYWx0ZWRfXzeCengirvBCN noklULrWe1g88DhDuw6e7KSrgJMIXwXS01M3QYhxnzPzxy+idwKgXIC9LHEYE0BAmAL45Eid8Vd dtixzraRKsab8uqXNUNwkt2dn90r9rBVdTk/cJjTJEx03svw4O49eHGzwKCwSzDvkHAc0OqfpWI dKfpWGCALsX7UTR+IZDcCaz1yN6HKVyAUQdTl4qP4iL+kaY/eR/a9aMorGdupjF1Zt5MSzj68Li ofNUMqGhlHHWJV0mU5oh5u8uhHbeU5qElvZpXeuwvKAbiQ/F+l0tRAn2k1NqZPkP2Pu191g5sKh SHn1cbq9FSeuLClw1JaCHp54p7O+aKlgO95BNpBeTNlmxEm8RLtKAY94OQ+WbFfKr5KwtoLAIRK QiGzwl1Kr05sokR0Q2GRIk6JiGFzC9IsJ1T2dRElPRGr9rPEnWWM3t1OEqvqBA7MibuDl/1+jPp whDv1yLBzFJ0/1oa6Bw== X-Proofpoint-Spam-Info: AW1haW4tMjYwOTAyMDEzNSBTYWx0ZWRfX0rL02MbrcASu XciDVPhO8FoRj7RTcTCAY2h+XhX89lircAxm3CI/7w3EcTyqU+x0H7EjO8LcChfMgyP444wgZEe N9MzohEJdM/h/ZMiqYYfbAXUPVoeyQw= X-Proofpoint-ORIG-GUID: LxgrlK6cToqcq-1XE3RD3hEganaCBx0k X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1176,Hydra:6.1.134,FMLib:17.12.100.49 definitions=2026-09-02_03,2026-09-01_03,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 lowpriorityscore=0 priorityscore=1501 adultscore=0 bulkscore=0 clxscore=1015 malwarescore=0 spamscore=0 phishscore=0 impostorscore=0 suspectscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2609020135 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=lists1p.gnu.org; Received-SPF: pass client-ip=205.220.180.131; envelope-from=philmd@oss.qualcomm.com; helo=mx0b-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 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_LOW=-0.7, 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: qemu development 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 @qualcomm.com) X-ZM-MESSAGEID: 1788362525106154100 Expand docstring to clarify that @interrupt_request is a bitmask, the handler is called with BQL held, and document the return value semantics. Fix typo in arm_cpu_exec_interrupt() documentation (s/inrerrupt/interrupt). Signed-off-by: Philippe Mathieu-Daud=C3=A9 --- include/accel/tcg/cpu-ops.h | 15 ++++++++++++++- target/arm/internals.h | 2 +- 2 files changed, 15 insertions(+), 2 deletions(-) diff --git a/include/accel/tcg/cpu-ops.h b/include/accel/tcg/cpu-ops.h index ded7cc700df..87850402203 100644 --- a/include/accel/tcg/cpu-ops.h +++ b/include/accel/tcg/cpu-ops.h @@ -171,8 +171,21 @@ struct TCGCPUOps { #else /** @do_interrupt: Callback for interrupt handling. */ void (*do_interrupt)(CPUState *cpu); - /** @cpu_exec_interrupt: Callback for processing interrupts in cpu_exe= c */ + + /** + * @cpu_exec_interrupt: Callback for processing target-specific interr= upts + * @cpu: cpu context + * @interrupt_request: Bitmask of pending interrupts + * + * Called from cpu_handle_interrupt() with the BQL held. Process the + * pending interrupt according to the target specific @interrupt_reque= st + * masking rules. + * + * Returns: %true if an interrupt was processed and the next TB should + * be restarted, %false to continue normal execution. + */ bool (*cpu_exec_interrupt)(CPUState *cpu, int interrupt_request); + /** @cpu_exec_reset: Callback for reset in cpu_exec. */ void (*cpu_exec_reset)(CPUState *cpu); /** diff --git a/target/arm/internals.h b/target/arm/internals.h index 1775835ad50..551a6b4a872 100644 --- a/target/arm/internals.h +++ b/target/arm/internals.h @@ -1248,7 +1248,7 @@ static inline const char *aarch32_mode_name(uint32_t = psr) } =20 /** - * arm_cpu_exec_interrupt(): Implementation of the cpu_exec_inrerrupt hook. + * arm_cpu_exec_interrupt(): Implementation of the cpu_exec_interrupt hook. */ bool arm_cpu_exec_interrupt(CPUState *cs, int interrupt_request); =20 --=20 2.53.0 From nobody Sat Sep 26 22:14:21 2026 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=reject dis=none) header.from=oss.qualcomm.com ARC-Seal: i=1; a=rsa-sha256; t=1788362536; cv=none; d=zohomail.com; s=zohoarc; b=TRcSuR9m/5c9aR6/IGWhOu2DQmaIJw4sePnuZNetW2ojntpCKXhhCrud0FFgbJiRmpgI3IHDZz1V2EWV1XrDwESFJfiATjLZOPDtUdh2BsEDsLscFDiN1AfXoaR2sAC0cnxlu/qw9uXVAvZXo1dFIdf/tha+UFNew8O0LmY0hOQ= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1788362536; h=Content-Type: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=r2aOxU1OdRH+ieAz6UeTtKs+gXpfulUXbtYA5sNg/bo=; b=Wx3FhMLIHri+Ey43Jp/FpUv4/vllSbaUJbH8EOj87f/4OMLS8/KFyP0QbSjfIQd0961nm4Kcop+WtosEBRdaTmUZJIG9Bto13WkobxaKse7Rs7nCbJGNkwPMAOUMLqKYfug9vw6nPUKJeZ5kufXjk1TeLRWx356Ov2jHNIzGJM0= 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=reject dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1788362536340586.8838586293108; Wed, 2 Sep 2026 08:22:16 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1x1mmV-0003HT-J6; Wed, 02 Sep 2026 11:21:43 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1x1mmT-0003Em-VF for qemu-devel@nongnu.org; Wed, 02 Sep 2026 11:21:42 -0400 Received: from mx0a-0031df01.pphosted.com ([205.220.168.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1x1mmR-0000HA-Lv for qemu-devel@nongnu.org; Wed, 02 Sep 2026 11:21:41 -0400 Received: from pps.filterd (m0279867.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 682EdQlE2947753 for ; Wed, 2 Sep 2026 15:21:28 GMT Received: from mail-qk1-f197.google.com (mail-qk1-f197.google.com [209.85.222.197]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4genrng5cs-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Wed, 02 Sep 2026 15:21:28 +0000 (GMT) Received: by mail-qk1-f197.google.com with SMTP id af79cd13be357-93922c75037so39179785a.1 for ; Wed, 02 Sep 2026 08:21:28 -0700 (PDT) Received: from localhost.localdomain (pmd666.hd.free.fr. [88.187.86.199]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-48448e7f8f9sm7097056f8f.9.2026.09.02.08.21.25 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Wed, 02 Sep 2026 08:21:25 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= r2aOxU1OdRH+ieAz6UeTtKs+gXpfulUXbtYA5sNg/bo=; b=Kr7C+ea3bee01m59 f0ahN8xaJFC6QcUa5zei1+XAzrxlVm433/QmjeMg22pIrGprsUw8AEh8+J2KPCBe FBhzBAjWR7LRmjS46UZZbEOMY2/G8md2WMtgBKC5HZPqsy98HAgmA26o83NgjLSb Qha8XLBPuY7f2t/2MB+ODXb3LSobiCW+yblvbmfmOAll+QIld2qSz6d/jYtnnuB4 bhPhIa7610XsNQY24txrv2mOObyhR+NogSBOewCNK3SEy56yuczSiT03rjgWpFk8 4tUBgeFxMJcClfe1Usv58MlgK1X/EqQsBg+ocGYe2//Hos+C8JejiciOxbEW0mVE TdWwvQ== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1788362487; x=1788967287; darn=nongnu.org; h=content-transfer-encoding:content-type:mime-version:references :in-reply-to:message-id:date:subject:cc:to:from:from:to:cc:subject :date:message-id:reply-to:content-type; bh=r2aOxU1OdRH+ieAz6UeTtKs+gXpfulUXbtYA5sNg/bo=; b=V3sxVFJoPe3tuERGw2OlV5bEVUYWiiUwJyVjNTwUuIMOmnX/2bkS/FecWTLDfGiIdB sSQSXmgaHoWk+JiK+dWLfIBNXc+5pXmC/BvGJyxmK/J8Pp3z/XPVhMxD8UKQC0b84JVw vXfFrR5GpSSQ74SUgbnC5R13M5CglGYsG8PreJGFSD0DBUy/8irJOjiEPPreddl2GFpv 2L/uDwou/3vTkdkpXqDrAc4xdRObWxKoLD3o+hZukxTWVJn1jhStYHG+EYlW/NvW4Ljn 8oGenuQDaT7Bz9UEND/jamN6ybXXqZ4BvMUojHYUKE8jrCNcJrjTdIY8kUGlKAxksaSe 74VA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1788362487; x=1788967287; h=content-transfer-encoding:content-type:mime-version:references :in-reply-to:message-id:date:subject:cc:to:from:x-gm-gg :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to :content-type; bh=r2aOxU1OdRH+ieAz6UeTtKs+gXpfulUXbtYA5sNg/bo=; b=nizmIvjgdty4LKOC+Q7yJ+JHtauFNonORr4KpgLy2G+k8VjqhDP9mz7t2s12P/0B4E C9E8QhySDsLVG5Za9gJUnDNFXh9PAYo3N2gWk/oasqCRckbY4RaWOx+gALhV6ASmHvuV DXAstJs86B2Ej8WWXpAVOCmJeymOs0ZEaG8eyBR18cTDW+LFHFBlHLHO6OGG+ABsD6pB ZFGoMKQYatO+MuWQgtEmZsygEszpFLzsguDkhxD8rM2+7VYN2ou0DGbik1sblZ89CNK+ hw9lCyN13R8JLb6EVXv6O00sq6JIkuViIGAD34DvcRAPKmfTSjoxdZP+hcjrHQBh9M2F 0ozg== X-Gm-Message-State: AFuF++mYkWWZq00213TQUW5FfFpmrh8mQ9oTsPj37LcReDS8JRHzG/4Y 7im5gYw0zg69ffWdWhIMlACGVkPlDVGIDoV7ledXwogqgDYRZQAcMYausM/eMC/2eY22FZiDvTz 4OA14wJCFpi604P9Q5UdB486/TKssJJ4JK0PVz2GQp01xfhvBsAI7n7Cv0PIegElc6g== X-Gm-Gg: AR+sD133kCNOVu5gU6PGTM6fqiFrYs0QX+7dHgQb6sraabfV49jvr6hfdFnIzUVCL8i N22meWXbhe+TBShPD4UYPDjQgU7gKE675or06kcKp6TD4l77SbqbCB7MexYA6322FICIYh5N7iS G9v72VH230M4joWjmBZ3rDQEF/j2uAmTad/S+1lYynp14dE+kfe32q2HgRrt9mFCgGZvQ88J0so qt9dAfPdTP7Y5KUiJVnQMUy8JiSUBNe/gHG+A+aahsCwZe634lmqIYBiB3Au+2hsIB9RsCdpY+T sNXvCwr/No88AnYVN7BtbvAw7peAdHO2hjyZqEmjkwuM6EFIAGpjmF7nXGQQQqbjqLdUl7WUbOE Wy9I9cGvArLhGRNRoqZTWO8bCjdgx3D3BxlIhpVRL X-Received: by 2002:a05:620a:630b:20b0:939:3fcd:4c3a with SMTP id af79cd13be357-93960e009f1mr569568885a.17.1788362487085; Wed, 02 Sep 2026 08:21:27 -0700 (PDT) X-Received: by 2002:a05:620a:630b:20b0:939:3fcd:4c3a with SMTP id af79cd13be357-93960e009f1mr569559685a.17.1788362486541; Wed, 02 Sep 2026 08:21:26 -0700 (PDT) From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Cc: Mark Cave-Ayland , Peter Maydell , Paolo Bonzini , qemu-ppc@nongnu.org, qemu-s390x@nongnu.org, Richard Henderson , Pierrick Bouvier , qemu-riscv@nongnu.org, qemu-arm@nongnu.org, =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Subject: [PATCH v3 05/11] accel/tcg: Document do_interrupt() callback contract Date: Wed, 2 Sep 2026 17:20:36 +0200 Message-ID: <20260902152044.31291-6-philmd@oss.qualcomm.com> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260902152044.31291-1-philmd@oss.qualcomm.com> References: <20260902152044.31291-1-philmd@oss.qualcomm.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-Proofpoint-GUID: v0gRw_WzWYd8mGRAOwSMe3t6cE0AW-H- X-Proofpoint-ORIG-GUID: v0gRw_WzWYd8mGRAOwSMe3t6cE0AW-H- X-Authority-Analysis: v=2.4 cv=YKuvDxGx c=1 sm=1 tr=0 ts=6a983ef8 cx=c_pps a=50t2pK5VMbmlHzFWWp8p/g==:117 a=4s3hRJSeHn4rkQlkrse1kQ==:17 a=IkcTkHD0fZMA:10 a=VdqzKS8jKosA:10 a=M51BFTxLslgA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=eoimf2acIAo5FJnRuUoq:22 a=EUspDBNiAAAA:8 a=knkeNUhTHSQ0ZtdBXmcA:9 a=3ZKOabzyN94A:10 a=QEXdDO2ut3YA:10 a=IoWCM6iH3mJn3m4BftBB:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwOTAyMDEzNSBTYWx0ZWRfX9vs9050E16dH NBi0NPC3weqZO+D835ItpzPhAHvqTmZazEF3PMrJJGhjCTyMioQ65N9Ag66tfbcOkFa9VpZXiYj 8sJsWZA1HQFSufhpYmNvTt7Aj/OGI3FAec4QnkdXPIA0uN7JnSLttykCh8KwovCx9T01MYSZ2Oi 65r/vbvAiZGQPiOf4bGX/T/pLTX4kOBGH4XgzgPoyva38vFMvmNT2Mky53i5/GLcd6qnmDXt9UG UBOKKaCb90oNizTy/4hEst08PyuQxSOzSzsPYG2uCyfrW+yBrG4j3/4g9VrOVjpiHI2J4RKj3rz PlUNoo9h89RaCIFY8/L4UZE81j+Nxnaqw0Gsu1XpAiJl7ud/rYZ7hwXFCAm8Z5guA4iBaTW15lP 2/N9ei32PyjVEM1HVS3QoImvtElBEJQ/90Bis5O9hzp+k17dZDXQ2Y/U0xOOllIbzFTcx6X4vE+ mxGIylNTayrJA/RjJaQ== X-Proofpoint-Spam-Info: AW1haW4tMjYwOTAyMDEzNSBTYWx0ZWRfXzTDtsztKnAbZ KPsIQlzWTk2LU+sDADDaJMrlA/J76RR3fgCrgPWJ0y8hKVzghBhAiI8VjEgzLYjheFzIZJW/uAV Iv2Iuba9+SmvnKREnqKfDDJVaTfNQ2M= X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1176,Hydra:6.1.134,FMLib:17.12.100.49 definitions=2026-09-02_03,2026-09-01_03,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 bulkscore=0 spamscore=0 adultscore=0 impostorscore=0 malwarescore=0 phishscore=0 clxscore=1015 priorityscore=1501 lowpriorityscore=0 suspectscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2609020135 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=lists1p.gnu.org; Received-SPF: pass client-ip=205.220.168.131; envelope-from=philmd@oss.qualcomm.com; helo=mx0a-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 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_LOW=-0.7, 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: qemu development 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 @qualcomm.com) X-ZM-MESSAGEID: 1788362537919158500 Expand docstring to clarify the handler is called with BQL held. Add assertion that this callback is mandatory and never NULL, since all targets must implement interrupt handling. Signed-off-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: Richard Henderson --- include/accel/tcg/cpu-ops.h | 11 ++++++++++- accel/tcg/cpu-exec.c | 1 + 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/include/accel/tcg/cpu-ops.h b/include/accel/tcg/cpu-ops.h index 87850402203..13df70eaa9f 100644 --- a/include/accel/tcg/cpu-ops.h +++ b/include/accel/tcg/cpu-ops.h @@ -169,7 +169,16 @@ struct TCGCPUOps { */ vaddr (*untagged_addr)(CPUState *cs, vaddr addr); #else - /** @do_interrupt: Callback for interrupt handling. */ + /** + * @do_interrupt: Deliver a pending exception/interrupt to the CPU + * @cpu: cpu context + * + * Called when cs->exception_index contains an exception code to deliv= er. + * Updates CPU architectural state (usually before executing a guest + * exception handler). + * + * Called from cpu_handle_exception() with BQL held. + */ void (*do_interrupt)(CPUState *cpu); =20 /** diff --git a/accel/tcg/cpu-exec.c b/accel/tcg/cpu-exec.c index 609931a0d6e..2fae2c024b8 100644 --- a/accel/tcg/cpu-exec.c +++ b/accel/tcg/cpu-exec.c @@ -1059,6 +1059,7 @@ bool tcg_exec_realizefn(CPUState *cpu, Error **errp) assert(tcg_ops->cpu_exec_halt); assert(tcg_ops->cpu_exec_interrupt); assert(tcg_ops->cpu_exec_reset); + assert(tcg_ops->do_interrupt); assert(tcg_ops->pointer_wrap); #endif /* !CONFIG_USER_ONLY */ assert(tcg_ops->translate_code); --=20 2.53.0 From nobody Sat Sep 26 22:14:21 2026 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=reject dis=none) header.from=oss.qualcomm.com ARC-Seal: i=1; a=rsa-sha256; t=1788362535; cv=none; d=zohomail.com; s=zohoarc; b=mgxvPZ7m0Cb7gY+PBXOUFAW69F4w8a+ItVGP5S9jT4rcqTb8Mo46n7ekeqb+i3wOyCsOc3A+25bpUOMXlXb39z/ob8sFJwyGFhBTWhK1T2wys2y9ZLRgnUUQeQlwJhCMmi7XEc9zk2gcbkIYaA9F/d7cwCWpFy4k+CHqn1PB/uw= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1788362535; h=Content-Type: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=h2+ZiWw8+5mpW6m21rupiFU1RDmVanI9GjdO6x6eHwo=; b=Wao7HzzDfp37hZevdlpjLE3mxUKs7nKOWm35yfWcLsnh8yTSUS8/7OscAP/eZqQC5/A3HUjZos8CLNdKB/xObecNwKwrKgSqAGJQxE9istrREEowkWKdGx9KlNn7lxyr7QhoT525jUk13vDEwG7r7YxW8UprxjIJIqEqGc41hHU= 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=reject dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1788362535308213.04892488498876; Wed, 2 Sep 2026 08:22:15 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1x1mmU-0003G5-Kt; Wed, 02 Sep 2026 11:21:42 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1x1mmS-0003B5-J6 for qemu-devel@nongnu.org; Wed, 02 Sep 2026 11:21:40 -0400 Received: from mx0b-0031df01.pphosted.com ([205.220.180.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1x1mmP-0000Ic-UK for qemu-devel@nongnu.org; Wed, 02 Sep 2026 11:21:40 -0400 Received: from pps.filterd (m0279871.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 682CRPQR2002273 for ; Wed, 2 Sep 2026 15:21:37 GMT Received: from mail-ua1-f72.google.com (mail-ua1-f72.google.com [209.85.222.72]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4geguy1fej-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Wed, 02 Sep 2026 15:21:36 +0000 (GMT) Received: by mail-ua1-f72.google.com with SMTP id a1e0cc1a2514c-97e8be2221eso85638241.2 for ; Wed, 02 Sep 2026 08:21:36 -0700 (PDT) Received: from localhost.localdomain (pmd666.hd.free.fr. [88.187.86.199]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-49cdce0b456sm178993705e9.2.2026.09.02.08.21.32 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Wed, 02 Sep 2026 08:21:34 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= h2+ZiWw8+5mpW6m21rupiFU1RDmVanI9GjdO6x6eHwo=; b=H6YrUhHjWkcvUm8S /qv26Ao2ZGm2l2/ig7AiSwF+J1MavGJGhzF/YmlkyBY0Od2Osj7rbOtPOU7j3fnV jItlemjXWAzwQtFZBaAmjw69XA/WkHVzCquXEvUBX9SKObECPr02ic0YXlJWN7aS OtBssKygj3A2YnAfcjL0ma8u912GytjQRFNGWtonIppDSNSQBZ60j0IhhrcES4da xfSgOGLfpuYHGCbFhgRx8IjeWHvtrJojvInkFBXWLMmrEvibrw2Qm/VYrmu+N7eE 6XH7EGtqKDszqt3Z+6vChf34Z264EHdrHp1dKF/hw0nnnPUhBLmENNSMwnKtJhLz 8+bndA== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1788362496; x=1788967296; darn=nongnu.org; h=content-transfer-encoding:content-type:mime-version:references :in-reply-to:message-id:date:subject:cc:to:from:from:to:cc:subject :date:message-id:reply-to:content-type; bh=h2+ZiWw8+5mpW6m21rupiFU1RDmVanI9GjdO6x6eHwo=; b=Ld2qXcYYvR6hsMcosumUXSfWh73GLMIHN2qr+Ep/cWXRXpHJ42RXaGMdcQ+XnEYhOh z+SMA8rVA6WoBpslX5xFTX1SmDe425iZ8ACjm1G0EoMJD5CbAD2px9RHW67tcddcl196 HeiIIwKy6UBBMW+uq8TlmZBH/VekKs/4wFXLqejzXl6ae5C7Rem5DNhTwUzIMlMBgANY AobBsEufXT1yjMlQ+TaGiL1BOeeBCF5HtHbJIiyaL2MxnVduIJS/rG1xpeLlTZoSFw2V j0XW4Tl9b787CT3R9Ds59fIn6pKEJu8jfeJ94cA1I4WyqJ9cYjXGQeQ352OxJZpAa0Hw aJ7g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1788362496; x=1788967296; h=content-transfer-encoding:content-type:mime-version:references :in-reply-to:message-id:date:subject:cc:to:from:x-gm-gg :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to :content-type; bh=h2+ZiWw8+5mpW6m21rupiFU1RDmVanI9GjdO6x6eHwo=; b=BvJ/61wThfaAoZQwOmV8EYFLZfdulD0BbcD0suwrlWkdHvhEqR/Qo/C8y4Qzm7koD1 HjRLOS+6yWuEPqjoPOdgrJMCknK6BU2s6QhGIs/O2RbaMlQod7c1Bg5GZPo7JxKWGhff 8VYuZDayQ76gByWjArFEwkQjgjG6x5GqHJ0kgNj3Qt7QjdAfT+y7VgAaHaW5KoG96njM wVk04iTL/XKbfM0qc4GP3pds6PIZpSVY6Behre8jnV5F4dR2F/LI+cR5tJ3lVbRz8+kz brQ16xEigJ1Z8CfQvpMDxRl9gASdPG1zTnoE6kG0GkB3tI6MelK2K543XbDNtwB4OWWr Arvg== X-Gm-Message-State: AFuF++l/rXGMHtSGEIuqEDPI1BUbFSp0Xp6l6a5cwksB8dZHzv9cU+IQ +0NxN7uLUODWj6eFyJ0nPyzGWOCz0wnzwSCsTiD/43Kre13qoOOD8KEcd4f+tl8+CIyNEYI9p5W r4VXBwU0lvmfdrNOqQgFvlrNrGszYc2V49OkFk5whlrNoTRqQeJNO+Txea/qVfHi+kA== X-Gm-Gg: AYBFou03Fc9mwjrtNEC6RqpOwfZb72fnU8LgGJseL2VtEVYGyhDQiQ80vZRiR4zfzHt lc/8Pn2cbaNHF47wDla/8EGfkM2ILCTGy9xCAJApsInOlg68r0VJkKbR4tISZVpZtQrLLb5qOlb 1/THNSTSL4GwjyWObLH1CX8YVbZwPKtO0vJCdyXZzHJV2mcEQ1lM8Qwn9rITAAAb5ytG2Q8k/bC Avs0Bs1EWYGUbwHhXO1y6xV4QmxVOqs5sgLmKIy+r0x6M/CcikyJsK4LWhRaAl4K/opAq6uJm9U 9SiuGtCtpuMviuKcJddIDVFdMrXitfgvp7fC0t6sSgMe+DdPwFKgTot7j+y4IMbNSakIU6yrLqO Pbi46mdMhI12UV+zRzVrPnWVn0aWMgDjjc88dsqiy X-Received: by 2002:a05:6102:14a5:b0:784:94dd:5389 with SMTP id ada2fe7eead31-78a1f3954bfmr1681518137.13.1788362495997; Wed, 02 Sep 2026 08:21:35 -0700 (PDT) X-Received: by 2002:a05:6102:14a5:b0:784:94dd:5389 with SMTP id ada2fe7eead31-78a1f3954bfmr1681490137.13.1788362495303; Wed, 02 Sep 2026 08:21:35 -0700 (PDT) From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Cc: Mark Cave-Ayland , Peter Maydell , Paolo Bonzini , qemu-ppc@nongnu.org, qemu-s390x@nongnu.org, Richard Henderson , Pierrick Bouvier , qemu-riscv@nongnu.org, qemu-arm@nongnu.org, Robert Foley , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , Michael Rolnik , Brian Cain , Helge Deller , Song Gao <17746591750@163.com>, Bibo Mao , Xianglai Li , Laurent Vivier , "Edgar E. Iglesias" , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , Aurelien Jarno , Jiaxun Yang , Aleksandar Rikalo , Stafford Horne , Chinmay Rath , Nicholas Piggin , Glenn Miles , Harsh Prateek Bora , Palmer Dabbelt , Alistair Francis , Weiwei Li , Daniel Henrique Barboza , Liu Zhiwei , Chao Liu , Yoshinori Sato , Cornelia Huck , Eric Farman , Matthew Rosato , Ilya Leoshkevich , David Hildenbrand , Artyom Tarasenko , Max Filippov Subject: [PATCH v3 06/11] accel/tcg: Rename do_interrupt() to do_interrupt_locked() Date: Wed, 2 Sep 2026 17:20:37 +0200 Message-ID: <20260902152044.31291-7-philmd@oss.qualcomm.com> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260902152044.31291-1-philmd@oss.qualcomm.com> References: <20260902152044.31291-1-philmd@oss.qualcomm.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-Authority-Analysis: v=2.4 cv=UZthjqSN c=1 sm=1 tr=0 ts=6a983f00 cx=c_pps a=ULNsgckmlI/WJG3HAyAuOQ==:117 a=4s3hRJSeHn4rkQlkrse1kQ==:17 a=IkcTkHD0fZMA:10 a=VdqzKS8jKosA:10 a=M51BFTxLslgA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=3WHJM1ZQz_JShphwDgj5:22 a=KKAkSRfTAAAA:8 a=20KFwNOVAAAA:8 a=EUspDBNiAAAA:8 a=2r7OHPqeXRgJTkdu1hoA:9 a=3ZKOabzyN94A:10 a=QEXdDO2ut3YA:10 a=1WsBpfsz9X-RYQiigVTh:22 a=cvBusfyB2V15izCimMoJ:22 X-Proofpoint-GUID: c2wxrWx-yodyeQTD4ogns5q3mkGVJ310 X-Proofpoint-Spam-Info: AW1haW4tMjYwOTAyMDEzNiBTYWx0ZWRfX5VCm2W8xca3g z7pcqyQOs3w4fcVhgsoSubDgNcMJ4XbeLIIP1/DD1GHXk5DjnuwOd8ynZlV+LdTz8YbarJCh6AA /aTndGHqy7ApB6aK3/lrfOth/lb8sg4= X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwOTAyMDEzNiBTYWx0ZWRfX6c2tBdMhHFjf ijpPeb8niYkYfw339U9qcrLHVrBL22AsQNDtLQcB+Sbjqt6nYMqmZoFlKDtZyIBumDE+aC/EU3z kGhZ9VaK7pOV3HqmNYuuFX10qIc/adKieHbf7gswORbvrB+VYNK5NPOKsAnvVqP/mMMMvSlTwi4 OhPCJOVAM56qxFMHDedj0Zmbhd2WZW12WpenI2H/UyPWglkl2itL3hxOdgsbWtHIAYNhHq2BrvC AXig08SW0pqIJioLKO+wJXezgnSUnrR999vrfDNLYIFRoESA0uF6OmSI34CaWYe1ktseuSbAlLi qBTsI+uhENYDb+ShLKWG8cjj9+xnL2Sn0/4g9OLW6QwXwNZEjpC6OoJdHkRmwidD/cf9B0C2nxO 15NIRA2QswHN/G/InmQO5LFp+0uPW2BJ/F7PbXC5hYVO87OneOS9umzGBYztNeBCIIgsLwXMnEC 0mjBnoHHtq7eVF1Ap2Q== X-Proofpoint-ORIG-GUID: c2wxrWx-yodyeQTD4ogns5q3mkGVJ310 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1176,Hydra:6.1.134,FMLib:17.12.100.49 definitions=2026-09-02_03,2026-09-01_03,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 suspectscore=0 bulkscore=0 impostorscore=0 adultscore=0 malwarescore=0 lowpriorityscore=0 spamscore=0 clxscore=1015 phishscore=0 priorityscore=1501 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2609020136 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=lists1p.gnu.org; Received-SPF: pass client-ip=205.220.180.131; envelope-from=philmd@oss.qualcomm.com; helo=mx0b-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 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_LOW=-0.7, 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: qemu development 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 @qualcomm.com) X-ZM-MESSAGEID: 1788362536482158500 From: Robert Foley Prepare for pushing BQL locking down to per-target implementations. The old do_interrupt() name will later be reused for a wrapper that acquires BQL and calls do_interrupt_locked(), enabling targets to eventually remove BQL from the cpu_handle_interrupt/exception paths. Suggested-by: Paolo Bonzini Signed-off-by: Robert Foley [PMD: Rebased and reworded description] Signed-off-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: Richard Henderson --- include/accel/tcg/cpu-ops.h | 4 ++-- accel/tcg/cpu-exec.c | 4 ++-- target/alpha/cpu.c | 2 +- target/arm/cpu.c | 2 +- target/arm/tcg/cpu-v7m.c | 2 +- target/avr/cpu.c | 2 +- target/hexagon/cpu.c | 2 +- target/hppa/cpu.c | 2 +- target/i386/tcg/tcg-cpu.c | 2 +- target/loongarch/tcg/tcg_cpu.c | 2 +- target/m68k/cpu.c | 2 +- target/microblaze/cpu.c | 2 +- target/mips/cpu.c | 2 +- target/or1k/cpu.c | 2 +- target/ppc/cpu_init.c | 2 +- target/riscv/tcg/tcg-cpu.c | 2 +- target/rx/cpu.c | 2 +- target/s390x/cpu.c | 2 +- target/sh4/cpu.c | 2 +- target/sparc/cpu.c | 2 +- target/xtensa/cpu.c | 2 +- 21 files changed, 23 insertions(+), 23 deletions(-) diff --git a/include/accel/tcg/cpu-ops.h b/include/accel/tcg/cpu-ops.h index 13df70eaa9f..2e97f79a373 100644 --- a/include/accel/tcg/cpu-ops.h +++ b/include/accel/tcg/cpu-ops.h @@ -170,7 +170,7 @@ struct TCGCPUOps { vaddr (*untagged_addr)(CPUState *cs, vaddr addr); #else /** - * @do_interrupt: Deliver a pending exception/interrupt to the CPU + * @do_interrupt_locked: Deliver a pending exception/interrupt to the = CPU * @cpu: cpu context * * Called when cs->exception_index contains an exception code to deliv= er. @@ -179,7 +179,7 @@ struct TCGCPUOps { * * Called from cpu_handle_exception() with BQL held. */ - void (*do_interrupt)(CPUState *cpu); + void (*do_interrupt_locked)(CPUState *cpu); =20 /** * @cpu_exec_interrupt: Callback for processing target-specific interr= upts diff --git a/accel/tcg/cpu-exec.c b/accel/tcg/cpu-exec.c index 2fae2c024b8..8d9c203f222 100644 --- a/accel/tcg/cpu-exec.c +++ b/accel/tcg/cpu-exec.c @@ -728,7 +728,7 @@ static inline bool cpu_handle_exception(CPUState *cpu, = int *ret) const TCGCPUOps *tcg_ops =3D cpu->cc->tcg_ops; =20 bql_lock(); - tcg_ops->do_interrupt(cpu); + tcg_ops->do_interrupt_locked(cpu); bql_unlock(); cpu->exception_index =3D -1; =20 @@ -1059,7 +1059,7 @@ bool tcg_exec_realizefn(CPUState *cpu, Error **errp) assert(tcg_ops->cpu_exec_halt); assert(tcg_ops->cpu_exec_interrupt); assert(tcg_ops->cpu_exec_reset); - assert(tcg_ops->do_interrupt); + assert(tcg_ops->do_interrupt_locked); assert(tcg_ops->pointer_wrap); #endif /* !CONFIG_USER_ONLY */ assert(tcg_ops->translate_code); diff --git a/target/alpha/cpu.c b/target/alpha/cpu.c index 12e86021663..aca9e82bfb2 100644 --- a/target/alpha/cpu.c +++ b/target/alpha/cpu.c @@ -267,7 +267,7 @@ static const TCGCPUOps alpha_tcg_ops =3D { .cpu_exec_interrupt =3D alpha_cpu_exec_interrupt, .cpu_exec_halt =3D alpha_cpu_has_work, .cpu_exec_reset =3D cpu_reset, - .do_interrupt =3D alpha_cpu_do_interrupt, + .do_interrupt_locked =3D alpha_cpu_do_interrupt, .do_transaction_failed =3D alpha_cpu_do_transaction_failed, .do_unaligned_access =3D alpha_cpu_do_unaligned_access, #endif /* !CONFIG_USER_ONLY */ diff --git a/target/arm/cpu.c b/target/arm/cpu.c index 77aa78f00e2..0d0555b7ad4 100644 --- a/target/arm/cpu.c +++ b/target/arm/cpu.c @@ -2606,7 +2606,7 @@ static const TCGCPUOps arm_tcg_ops =3D { .cpu_exec_interrupt =3D arm_cpu_exec_interrupt, .cpu_exec_halt =3D arm_cpu_exec_halt, .cpu_exec_reset =3D cpu_reset, - .do_interrupt =3D arm_cpu_do_interrupt, + .do_interrupt_locked =3D arm_cpu_do_interrupt, .do_transaction_failed =3D arm_cpu_do_transaction_failed, .do_unaligned_access =3D arm_cpu_do_unaligned_access, .adjust_watchpoint_address =3D arm_adjust_watchpoint_address, diff --git a/target/arm/tcg/cpu-v7m.c b/target/arm/tcg/cpu-v7m.c index 502998dbd1c..1f698b70283 100644 --- a/target/arm/tcg/cpu-v7m.c +++ b/target/arm/tcg/cpu-v7m.c @@ -304,7 +304,7 @@ static const TCGCPUOps arm_v7m_tcg_ops =3D { .cpu_exec_interrupt =3D arm_v7m_cpu_exec_interrupt, .cpu_exec_halt =3D arm_cpu_exec_halt, .cpu_exec_reset =3D cpu_reset, - .do_interrupt =3D arm_v7m_cpu_do_interrupt, + .do_interrupt_locked =3D arm_v7m_cpu_do_interrupt, .do_transaction_failed =3D arm_cpu_do_transaction_failed, .do_unaligned_access =3D arm_cpu_do_unaligned_access, .adjust_watchpoint_address =3D arm_adjust_watchpoint_address, diff --git a/target/avr/cpu.c b/target/avr/cpu.c index f8409f32ab9..bc7639031b8 100644 --- a/target/avr/cpu.c +++ b/target/avr/cpu.c @@ -249,7 +249,7 @@ static const TCGCPUOps avr_tcg_ops =3D { .cpu_exec_halt =3D avr_cpu_has_work, .cpu_exec_reset =3D cpu_reset, .tlb_fill =3D avr_cpu_tlb_fill, - .do_interrupt =3D avr_cpu_do_interrupt, + .do_interrupt_locked =3D avr_cpu_do_interrupt, /* * TODO: code and data wrapping are different, but for the most part * AVR only references bytes or aligned code fetches. But we use diff --git a/target/hexagon/cpu.c b/target/hexagon/cpu.c index 7067e5b70f7..b5dcbfc99db 100644 --- a/target/hexagon/cpu.c +++ b/target/hexagon/cpu.c @@ -769,7 +769,7 @@ static const TCGCPUOps hexagon_tcg_ops =3D { .tlb_fill =3D hexagon_tlb_fill, .do_unaligned_access =3D hexagon_cpu_do_unaligned_access, .cpu_exec_halt =3D hexagon_cpu_has_work, - .do_interrupt =3D hexagon_cpu_do_interrupt, + .do_interrupt_locked =3D hexagon_cpu_do_interrupt, #endif /* !CONFIG_USER_ONLY */ }; =20 diff --git a/target/hppa/cpu.c b/target/hppa/cpu.c index 07b49e51326..c6d915d314f 100644 --- a/target/hppa/cpu.c +++ b/target/hppa/cpu.c @@ -272,7 +272,7 @@ static const TCGCPUOps hppa_tcg_ops =3D { .cpu_exec_interrupt =3D hppa_cpu_exec_interrupt, .cpu_exec_halt =3D hppa_cpu_has_work, .cpu_exec_reset =3D cpu_reset, - .do_interrupt =3D hppa_cpu_do_interrupt, + .do_interrupt_locked =3D hppa_cpu_do_interrupt, .do_unaligned_access =3D hppa_cpu_do_unaligned_access, .do_transaction_failed =3D hppa_cpu_do_transaction_failed, #endif /* !CONFIG_USER_ONLY */ diff --git a/target/i386/tcg/tcg-cpu.c b/target/i386/tcg/tcg-cpu.c index 7a4d73e7fee..ff65641654d 100644 --- a/target/i386/tcg/tcg-cpu.c +++ b/target/i386/tcg/tcg-cpu.c @@ -179,7 +179,7 @@ const TCGCPUOps x86_tcg_ops =3D { #else .tlb_fill =3D x86_cpu_tlb_fill, .pointer_wrap =3D x86_pointer_wrap, - .do_interrupt =3D x86_cpu_do_interrupt, + .do_interrupt_locked =3D x86_cpu_do_interrupt, .cpu_exec_halt =3D x86_cpu_exec_halt, .cpu_exec_interrupt =3D x86_cpu_exec_interrupt, .cpu_exec_reset =3D x86_cpu_exec_reset, diff --git a/target/loongarch/tcg/tcg_cpu.c b/target/loongarch/tcg/tcg_cpu.c index 4b1d44a1644..6455ae0c99a 100644 --- a/target/loongarch/tcg/tcg_cpu.c +++ b/target/loongarch/tcg/tcg_cpu.c @@ -329,7 +329,7 @@ const TCGCPUOps loongarch_tcg_ops =3D { .cpu_exec_interrupt =3D loongarch_cpu_exec_interrupt, .cpu_exec_halt =3D loongarch_cpu_has_work, .cpu_exec_reset =3D cpu_reset, - .do_interrupt =3D loongarch_cpu_do_interrupt, + .do_interrupt_locked =3D loongarch_cpu_do_interrupt, .do_transaction_failed =3D loongarch_cpu_do_transaction_failed, #endif }; diff --git a/target/m68k/cpu.c b/target/m68k/cpu.c index 9b52ad5fc23..85496deff67 100644 --- a/target/m68k/cpu.c +++ b/target/m68k/cpu.c @@ -712,7 +712,7 @@ static const TCGCPUOps m68k_tcg_ops =3D { .cpu_exec_interrupt =3D m68k_cpu_exec_interrupt, .cpu_exec_halt =3D m68k_cpu_has_work, .cpu_exec_reset =3D cpu_reset, - .do_interrupt =3D m68k_cpu_do_interrupt, + .do_interrupt_locked =3D m68k_cpu_do_interrupt, .do_transaction_failed =3D m68k_cpu_transaction_failed, #endif /* !CONFIG_USER_ONLY */ }; diff --git a/target/microblaze/cpu.c b/target/microblaze/cpu.c index 389a5124b12..649bcebf703 100644 --- a/target/microblaze/cpu.c +++ b/target/microblaze/cpu.c @@ -450,7 +450,7 @@ static const TCGCPUOps mb_tcg_ops =3D { .cpu_exec_interrupt =3D mb_cpu_exec_interrupt, .cpu_exec_halt =3D mb_cpu_has_work, .cpu_exec_reset =3D cpu_reset, - .do_interrupt =3D mb_cpu_do_interrupt, + .do_interrupt_locked =3D mb_cpu_do_interrupt, .do_transaction_failed =3D mb_cpu_transaction_failed, .do_unaligned_access =3D mb_cpu_do_unaligned_access, #endif /* !CONFIG_USER_ONLY */ diff --git a/target/mips/cpu.c b/target/mips/cpu.c index 0fead20d651..073e466b713 100644 --- a/target/mips/cpu.c +++ b/target/mips/cpu.c @@ -718,7 +718,7 @@ static const TCGCPUOps mips_tcg_ops =3D { .cpu_exec_interrupt =3D mips_cpu_exec_interrupt, .cpu_exec_halt =3D mips_cpu_has_work, .cpu_exec_reset =3D cpu_reset, - .do_interrupt =3D mips_cpu_do_interrupt, + .do_interrupt_locked =3D mips_cpu_do_interrupt, .do_transaction_failed =3D mips_cpu_do_transaction_failed, .do_unaligned_access =3D mips_cpu_do_unaligned_access, .io_recompile_replay_branch =3D mips_io_recompile_replay_branch, diff --git a/target/or1k/cpu.c b/target/or1k/cpu.c index 66c00c0930c..83dc071c180 100644 --- a/target/or1k/cpu.c +++ b/target/or1k/cpu.c @@ -268,7 +268,7 @@ static const TCGCPUOps openrisc_tcg_ops =3D { .cpu_exec_interrupt =3D openrisc_cpu_exec_interrupt, .cpu_exec_halt =3D openrisc_cpu_has_work, .cpu_exec_reset =3D cpu_reset, - .do_interrupt =3D openrisc_cpu_do_interrupt, + .do_interrupt_locked =3D openrisc_cpu_do_interrupt, #endif /* !CONFIG_USER_ONLY */ }; =20 diff --git a/target/ppc/cpu_init.c b/target/ppc/cpu_init.c index 6c626843c93..2676562b2f1 100644 --- a/target/ppc/cpu_init.c +++ b/target/ppc/cpu_init.c @@ -7498,7 +7498,7 @@ static const TCGCPUOps ppc_tcg_ops =3D { .cpu_exec_interrupt =3D ppc_cpu_exec_interrupt, .cpu_exec_halt =3D ppc_cpu_has_work, .cpu_exec_reset =3D cpu_reset, - .do_interrupt =3D ppc_cpu_do_interrupt, + .do_interrupt_locked =3D ppc_cpu_do_interrupt, .cpu_exec_enter =3D ppc_cpu_exec_enter, .cpu_exec_exit =3D ppc_cpu_exec_exit, .do_unaligned_access =3D ppc_cpu_do_unaligned_access, diff --git a/target/riscv/tcg/tcg-cpu.c b/target/riscv/tcg/tcg-cpu.c index 9e3cc87f8a3..ea3189ab3d2 100644 --- a/target/riscv/tcg/tcg-cpu.c +++ b/target/riscv/tcg/tcg-cpu.c @@ -289,7 +289,7 @@ const TCGCPUOps riscv_tcg_ops =3D { .cpu_exec_interrupt =3D riscv_cpu_exec_interrupt, .cpu_exec_halt =3D riscv_cpu_has_work, .cpu_exec_reset =3D cpu_reset, - .do_interrupt =3D riscv_cpu_do_interrupt, + .do_interrupt_locked =3D riscv_cpu_do_interrupt, .do_transaction_failed =3D riscv_cpu_do_transaction_failed, .do_unaligned_access =3D riscv_cpu_do_unaligned_access, .debug_excp_handler =3D riscv_cpu_debug_excp_handler, diff --git a/target/rx/cpu.c b/target/rx/cpu.c index 9b8473d71cf..ea58a804154 100644 --- a/target/rx/cpu.c +++ b/target/rx/cpu.c @@ -229,7 +229,7 @@ static const TCGCPUOps rx_tcg_ops =3D { .cpu_exec_interrupt =3D rx_cpu_exec_interrupt, .cpu_exec_halt =3D rx_cpu_has_work, .cpu_exec_reset =3D cpu_reset, - .do_interrupt =3D rx_cpu_do_interrupt, + .do_interrupt_locked =3D rx_cpu_do_interrupt, }; =20 static void rx_cpu_class_init(ObjectClass *klass, const void *data) diff --git a/target/s390x/cpu.c b/target/s390x/cpu.c index 7c725b8a4a4..053eafaa842 100644 --- a/target/s390x/cpu.c +++ b/target/s390x/cpu.c @@ -386,7 +386,7 @@ static const TCGCPUOps s390_tcg_ops =3D { .cpu_exec_interrupt =3D s390_cpu_exec_interrupt, .cpu_exec_halt =3D s390_cpu_has_work, .cpu_exec_reset =3D cpu_reset, - .do_interrupt =3D s390_cpu_do_interrupt, + .do_interrupt_locked =3D s390_cpu_do_interrupt, .debug_excp_handler =3D s390x_cpu_debug_excp_handler, .do_unaligned_access =3D s390x_cpu_do_unaligned_access, #endif /* !CONFIG_USER_ONLY */ diff --git a/target/sh4/cpu.c b/target/sh4/cpu.c index 3bbdee301d5..fdab5106b27 100644 --- a/target/sh4/cpu.c +++ b/target/sh4/cpu.c @@ -314,7 +314,7 @@ static const TCGCPUOps superh_tcg_ops =3D { .cpu_exec_interrupt =3D superh_cpu_exec_interrupt, .cpu_exec_halt =3D superh_cpu_has_work, .cpu_exec_reset =3D cpu_reset, - .do_interrupt =3D superh_cpu_do_interrupt, + .do_interrupt_locked =3D superh_cpu_do_interrupt, .do_unaligned_access =3D superh_cpu_do_unaligned_access, .io_recompile_replay_branch =3D superh_io_recompile_replay_branch, #endif /* !CONFIG_USER_ONLY */ diff --git a/target/sparc/cpu.c b/target/sparc/cpu.c index ae9bdca9df8..23fd0a5e3fe 100644 --- a/target/sparc/cpu.c +++ b/target/sparc/cpu.c @@ -1076,7 +1076,7 @@ static const TCGCPUOps sparc_tcg_ops =3D { .cpu_exec_interrupt =3D sparc_cpu_exec_interrupt, .cpu_exec_halt =3D sparc_cpu_has_work, .cpu_exec_reset =3D cpu_reset, - .do_interrupt =3D sparc_cpu_do_interrupt, + .do_interrupt_locked =3D sparc_cpu_do_interrupt, .do_transaction_failed =3D sparc_cpu_do_transaction_failed, .do_unaligned_access =3D sparc_cpu_do_unaligned_access, #endif /* !CONFIG_USER_ONLY */ diff --git a/target/xtensa/cpu.c b/target/xtensa/cpu.c index 7c25b9ab707..e980a13eadd 100644 --- a/target/xtensa/cpu.c +++ b/target/xtensa/cpu.c @@ -327,7 +327,7 @@ static const TCGCPUOps xtensa_tcg_ops =3D { .cpu_exec_interrupt =3D xtensa_cpu_exec_interrupt, .cpu_exec_halt =3D xtensa_cpu_has_work, .cpu_exec_reset =3D cpu_reset, - .do_interrupt =3D xtensa_cpu_do_interrupt, + .do_interrupt_locked =3D xtensa_cpu_do_interrupt, .do_transaction_failed =3D xtensa_cpu_do_transaction_failed, .do_unaligned_access =3D xtensa_cpu_do_unaligned_access, .debug_check_breakpoint =3D xtensa_debug_check_breakpoint, --=20 2.53.0 From nobody Sat Sep 26 22:14:21 2026 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=reject dis=none) header.from=oss.qualcomm.com ARC-Seal: i=1; a=rsa-sha256; t=1788362564; cv=none; d=zohomail.com; s=zohoarc; b=VNFROQ1XL/PXVU7BCNmdeEr8L44xTp620SC0MDDkyYq9mIDhr62FHUnaFusZ31wfy87cmowu+xzez6TXy7eBbUWWHEG4PMtSq0Zcaef+CIoVNsyar0yYYqKGPWDJZtEvgrk37Ev344bQObPY9C1qQ1UoZlgntv2OEJBHLlQLF1E= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1788362564; h=Content-Type: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=UJpne1gOhrg51mvH9yKBs1FZAHlDg3KE1SVFoAMoBeM=; b=jXsTtVEX+QX0/RbUel1h7qcH6Xjdanr7uRVBLWgKpTtmbzXRGINwjeyYuQWFiTziAtoR7yjVzKbY2qny832OBIpCarjiZjWlQSu14AvFYHPE1irY84KqdZrMxkn2y+5uxta+CAVhWVg61/I3SdkQsQMuaI7PSpi7tr4oT9hCuW8= 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=reject dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1788362564963390.51917166308306; Wed, 2 Sep 2026 08:22:44 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1x1mmn-0003g8-Vz; Wed, 02 Sep 2026 11:22:02 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1x1mmm-0003aV-6B for qemu-devel@nongnu.org; Wed, 02 Sep 2026 11:22:00 -0400 Received: from mx0b-0031df01.pphosted.com ([205.220.180.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1x1mmk-0000LM-CM for qemu-devel@nongnu.org; Wed, 02 Sep 2026 11:21:59 -0400 Received: from pps.filterd (m0279872.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 682DHB1q1046583 for ; Wed, 2 Sep 2026 15:21:47 GMT Received: from mail-vs1-f71.google.com (mail-vs1-f71.google.com [209.85.217.71]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4gemj4rfvx-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Wed, 02 Sep 2026 15:21:47 +0000 (GMT) Received: by mail-vs1-f71.google.com with SMTP id ada2fe7eead31-78449c66789so297789137.1 for ; Wed, 02 Sep 2026 08:21:47 -0700 (PDT) Received: from localhost.localdomain (pmd666.hd.free.fr. [88.187.86.199]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-49ce47885b1sm76527705e9.14.2026.09.02.08.21.41 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Wed, 02 Sep 2026 08:21:41 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= UJpne1gOhrg51mvH9yKBs1FZAHlDg3KE1SVFoAMoBeM=; b=bdc7SC5tKL+xiyN8 ZtlBXyVJhbDdVukHTeykLrwUIQ2OmlNMIEGOAtJ/hXtTxCEyl5KUHWS/nuyQzjyI nVEYURafEKu7ReSUCVmgATPNwQnZUavT5EDNuX0LIMa5p/ObtfYOf6cE5DQ7Pdj6 4YNJbSTUnLIOBvZLnjIwHdTquMPcQvfXwGGdDfxqIepr2qnV7e9e1j2Qm9UMX4Sq SPIN7W6rJ6zHuRNJamSLDvZ/ugflAGLUMlbwEFo6dmDRxOiI8wmjd4T505aj0Elq VjFD7YI8CGMBQYcnkt+4redP74PlYbDpqsGxs+PB9flqVl2/2HeIVuqFC89T2odg bYAZRA== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1788362507; x=1788967307; darn=nongnu.org; h=content-transfer-encoding:content-type:mime-version:references :in-reply-to:message-id:date:subject:cc:to:from:from:to:cc:subject :date:message-id:reply-to:content-type; bh=UJpne1gOhrg51mvH9yKBs1FZAHlDg3KE1SVFoAMoBeM=; b=JJvj/ubzYwl5dL+ta/qcl+dooZJywpZLB2ezuogosR4XnzzSWcok32EYG0zOBg/npv i7k5am+SIQBybs9R2y8dhohurVTC9fWX/sxqpp6FEEGSgmnE3SdsNbLzBKCh/2v7l9xD DF+ZxaSJFUBvA/obPlZE+BJsLRuJbsqGwQPxXFl3BGMd12O4oz+IOF+zLaQB7jPwqG8l nn+cDxKQtTGhig0kQm7Uu9gJIig+PTOJ/6+1poODKXRyRhEj6r7VtTMabr2cnanYENyF OEPRe9W2SuXT9G2hRfNDXavj5px/ySpin3GpNce6AijScEWIHc/l0KJJWJRsZpupkSUp kF6A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1788362507; x=1788967307; h=content-transfer-encoding:content-type:mime-version:references :in-reply-to:message-id:date:subject:cc:to:from:x-gm-gg :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to :content-type; bh=UJpne1gOhrg51mvH9yKBs1FZAHlDg3KE1SVFoAMoBeM=; b=Vqk8N6rfEw649vE0+3HVzz4phY7kg4sbCbjTpQt0XKfaOIbhps1reLGdG774JJ4A4e rB7YaDstZaPSIsjtlSH7AnZWWfWYkGd5UwbHCDJ7GRZZjJMblpsdCyq/V+ys2ltvKiOV t/OHg6XU91kACDJ3Ga8njzbDcPnbAQa+TGZTBomZW5quar7Kgm+xaFvvPNCrMKpB5efZ rykcD9niSY34N6dCBrEVB+fE2U4Up+U5P16ty9wf/6H5rQNK5mGrLKiWSp5BCZoeOZ30 oVv+102ZO54B5aahEHGvxRlwyi4UoM50KTDQXilokws/tnlulAwi0omYQ/tkl+ZJgv38 dwLg== X-Gm-Message-State: AFuF++lBuxl38+/A24Hxqm7NwLdGp4AUdO+LQ/77tt3QLvNb1926OQuB QThppStpwZLmJeWjhkQmRY0HvVW5YPknCv9pnWMbNei4yC6fFy6ULYAndGqbxZdNMroULPjn8PE YyZ4Ang5z5x9kAUvj026r3HvWxvX/c8Tc+05Y6qXyXTvXvtHH78zYti27JeKXowqNSQ== X-Gm-Gg: AYBFou016qOx3aGe7DLwDMV8ia0vWZaLeCDUg6UCeTEktotQnYAFlPFGfMBafvMxrOJ fe9DF5Tv7+57ct6bDEkyofHOXQqhogJtQH+R36sVwAMU++hdNVUmXu7OnjL9dNTdMu5pDs1Gou0 ghT6EgSk3+T4ptIEGHpxNJG0iZP0wDSNhb0uCV9g9tzAzk/qc9bMtj3TWs5lsnRmwGwE7OPLWRq mHT9yXdjr4PzafW1ttuQGywotvfEz3FCbcpllgPF9cmqBP8FRyuQTYuzs0vr7S7lp9Bytq/+Sc8 5W/A/sGa+LO5YOv01ouzZZBLmG24Zzs6TPSxBPpO8ggDk1LRLJMY28zGXv3L/C71RWvrxFg2sPp /TXADfa+V/RvwqWQSusnWgRxGy845Xtro2cT6DvGl X-Received: by 2002:a05:6102:524a:b0:77c:dbae:f9d2 with SMTP id ada2fe7eead31-78a1f2df7a6mr1579428137.9.1788362503339; Wed, 02 Sep 2026 08:21:43 -0700 (PDT) X-Received: by 2002:a05:6102:524a:b0:77c:dbae:f9d2 with SMTP id ada2fe7eead31-78a1f2df7a6mr1579397137.9.1788362502696; Wed, 02 Sep 2026 08:21:42 -0700 (PDT) From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Cc: Mark Cave-Ayland , Peter Maydell , Paolo Bonzini , qemu-ppc@nongnu.org, qemu-s390x@nongnu.org, Richard Henderson , Pierrick Bouvier , qemu-riscv@nongnu.org, qemu-arm@nongnu.org, =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Subject: [PATCH v3 07/11] accel/tcg: Add do_interrupt() wrapper for targets to manage BQL Date: Wed, 2 Sep 2026 17:20:38 +0200 Message-ID: <20260902152044.31291-8-philmd@oss.qualcomm.com> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260902152044.31291-1-philmd@oss.qualcomm.com> References: <20260902152044.31291-1-philmd@oss.qualcomm.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwOTAyMDEzNiBTYWx0ZWRfX0wsjboSSxkh/ zUcBZjjLd3uXudoiE1XBsz/2e17e5DyDuGgnLVqSujVvLqXTKZ3n2WQ41wv6CsxDvQ95z1IXjOh vmFLFuRdUxX0nNBKE54aFicW+0F+FBiUlnMFjesqfhZhYmOLidvsQO4+h6ZX0Tc7qsz+J3b9l0L ZweYC4AYO70tCF64Z+99JNSGAEuWacYrMS1ul/YD4xY3hzvKH08pWUMWRZxuoVwj0kCQfXi96+8 08ws1AQS3+JIBWqbPwz2zNDfpp1JIRyY5W8CkueeKQMRxobTlrQXTUQroDNtJ+CkZb4ch8fvJMI MAwyb5G3pSivhqokaR2jvssKte4NfsXyMLXeEU2judDSx7KHTfz04owe9lHfDFixItR88hJPM5T bWJKIkaq5TlUPMzydGMNPTHTMlwTQu4ikaGVGH7DPs3WCboi8BeEPmn2iv/dDsldNH19bhDjJSA VXuIL9utwAyhY6iZw6w== X-Proofpoint-ORIG-GUID: _ApbttnUkmxeRRT58us4UmeThjmKXDz_ X-Authority-Analysis: v=2.4 cv=MdhcfZ/f c=1 sm=1 tr=0 ts=6a983f0b cx=c_pps a=P2rfLEam3zuxRRdjJWA2cw==:117 a=4s3hRJSeHn4rkQlkrse1kQ==:17 a=IkcTkHD0fZMA:10 a=VdqzKS8jKosA:10 a=M51BFTxLslgA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=yx91gb_oNiZeI1HMLzn7:22 a=EUspDBNiAAAA:8 a=2yN2iZOksrgf2_ncbZYA:9 a=3ZKOabzyN94A:10 a=QEXdDO2ut3YA:10 a=ODZdjJIeia2B_SHc_B0f:22 X-Proofpoint-GUID: _ApbttnUkmxeRRT58us4UmeThjmKXDz_ X-Proofpoint-Spam-Info: AW1haW4tMjYwOTAyMDEzNiBTYWx0ZWRfX9pJFwEB3GeXD 7AQSTRvuvpqGuRknsjtV1u7bbldJD6PV4xdBiaUatB71tE3NSFS9JWh3wqyfAm5dIM7K4cNZwbm xTS0bZbVcm5ANwORExvAaAsNOUmNu/4= X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1176,Hydra:6.1.134,FMLib:17.12.100.49 definitions=2026-09-02_03,2026-09-01_03,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 priorityscore=1501 bulkscore=0 adultscore=0 suspectscore=0 malwarescore=0 phishscore=0 clxscore=1015 spamscore=0 lowpriorityscore=0 impostorscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2609020136 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=lists1p.gnu.org; Received-SPF: pass client-ip=205.220.180.131; envelope-from=philmd@oss.qualcomm.com; helo=mx0b-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 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_LOW=-0.7, 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: qemu development 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 @qualcomm.com) X-ZM-MESSAGEID: 1788362567580154100 Add TCGCPUOps::do_interrupt() as a wrapper that targets can implement to control BQL locking independently. The existing do_interrupt_locked() callback remains for BQL-held contexts. This allows each target to decide when to acquire the BQL. Signed-off-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: Richard Henderson --- include/accel/tcg/cpu-ops.h | 14 ++++++++++++++ accel/tcg/cpu-exec.c | 12 ++++++++---- 2 files changed, 22 insertions(+), 4 deletions(-) diff --git a/include/accel/tcg/cpu-ops.h b/include/accel/tcg/cpu-ops.h index 2e97f79a373..e2e67f796f6 100644 --- a/include/accel/tcg/cpu-ops.h +++ b/include/accel/tcg/cpu-ops.h @@ -169,6 +169,20 @@ struct TCGCPUOps { */ vaddr (*untagged_addr)(CPUState *cs, vaddr addr); #else + /** + * @do_interrupt: Deliver a pending exception/interrupt to the CPU + * + * Called when cs->exception_index contains the exception code to deli= ver. + * Updates CPU architectural state (usually before executing a guest + * exception handler). + * + * Called from cpu_handle_exception(). Implementations must acquire the + * BQL before modifying CPU state and hold it for the duration of the + * handler (this ensures safe access to shared CPU and device state du= ring + * exception delivery, which may be cross-vCPU). + */ + void (*do_interrupt)(CPUState *cpu); + /** * @do_interrupt_locked: Deliver a pending exception/interrupt to the = CPU * @cpu: cpu context diff --git a/accel/tcg/cpu-exec.c b/accel/tcg/cpu-exec.c index 8d9c203f222..4deb7e00571 100644 --- a/accel/tcg/cpu-exec.c +++ b/accel/tcg/cpu-exec.c @@ -727,9 +727,13 @@ static inline bool cpu_handle_exception(CPUState *cpu,= int *ret) if (replay_exception()) { const TCGCPUOps *tcg_ops =3D cpu->cc->tcg_ops; =20 - bql_lock(); - tcg_ops->do_interrupt_locked(cpu); - bql_unlock(); + if (tcg_ops->do_interrupt) { + tcg_ops->do_interrupt(cpu); + } else { + bql_lock(); + tcg_ops->do_interrupt_locked(cpu); + bql_unlock(); + } cpu->exception_index =3D -1; =20 if (unlikely(cpu_single_stepping(cpu))) { @@ -1059,7 +1063,7 @@ bool tcg_exec_realizefn(CPUState *cpu, Error **errp) assert(tcg_ops->cpu_exec_halt); assert(tcg_ops->cpu_exec_interrupt); assert(tcg_ops->cpu_exec_reset); - assert(tcg_ops->do_interrupt_locked); + assert(tcg_ops->do_interrupt || tcg_ops->do_interrupt_locked); assert(tcg_ops->pointer_wrap); #endif /* !CONFIG_USER_ONLY */ assert(tcg_ops->translate_code); --=20 2.53.0 From nobody Sat Sep 26 22:14:21 2026 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=reject dis=none) header.from=oss.qualcomm.com ARC-Seal: i=1; a=rsa-sha256; t=1788362574; cv=none; d=zohomail.com; s=zohoarc; b=Ddd55fvzjsIggxz4depPKbbWriUlf+vkvtfkeHhQjdEkcEaZEJG9M/8hGhLL0u+CXMDL4zuE4qWcGfDUOCAiPYzw041X+mxnBgl6CKsD/ZS5HjMvhtpNXf34kTQgjrzydzrAsxmeGJRedCw0z/eh8YKkrbo5NxVEfnPD5zXC6F8= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1788362574; h=Content-Type: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=u3sukywh0ccw7qimtYe5ZWsz5XS1jMV02iGullEuYuQ=; b=nZNJk+UapaD9LOJ9QF0gbDbikOJ8x5FlAVNIJxfrxyOIcVenV1OMvqust43iYFYUXH+C2zcBoJEd4V64eH9xiPRfgf0gaRzXf2Ks3M1npGy1SnmuJqDZgPfwCbaFQIJaS/uyZcKKPw1YaGdJw8kOq7k0DtqMxHRzDyS/zv/jOTQ= 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=reject dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1788362574214454.9901845348237; Wed, 2 Sep 2026 08:22:54 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1x1mmr-0003ur-SN; Wed, 02 Sep 2026 11:22:05 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1x1mmq-0003r4-Ai for qemu-devel@nongnu.org; Wed, 02 Sep 2026 11:22:04 -0400 Received: from mx0b-0031df01.pphosted.com ([205.220.180.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1x1mmo-0000Li-JR for qemu-devel@nongnu.org; Wed, 02 Sep 2026 11:22:03 -0400 Received: from pps.filterd (m0279871.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 682CRF372001702 for ; Wed, 2 Sep 2026 15:21:51 GMT Received: from mail-qk1-f197.google.com (mail-qk1-f197.google.com [209.85.222.197]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4geguy1fff-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Wed, 02 Sep 2026 15:21:51 +0000 (GMT) Received: by mail-qk1-f197.google.com with SMTP id af79cd13be357-93922c75037so39232385a.1 for ; Wed, 02 Sep 2026 08:21:51 -0700 (PDT) Received: from localhost.localdomain (pmd666.hd.free.fr. [88.187.86.199]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-49ce47b9817sm57021005e9.1.2026.09.02.08.21.48 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Wed, 02 Sep 2026 08:21:49 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= u3sukywh0ccw7qimtYe5ZWsz5XS1jMV02iGullEuYuQ=; b=OfJqEvtgSkyBdzij i8crWBsRff2zllkptMivcqE/b0COULYQ96bOebNoaz96YcuwtuMDsvKe9RwGY2ei hit9egGJUbub4TuCSfOzFFnfCSsh7cWJHpMQsJG8Rz3QcWRyEd7g6RR8slg6jqpn lxD0pD8eYF8kf1ne/CUo+/GzjNDcHR8q4u8dyd10b571U3TxT0PArm2ABrznNe7p W2weUc97iuv7hbQOEcfTCF7f0Oe8Lda9VpPm0BsTkRloSMgSd4F119opjJoSIJEq KuEVASRWC+fDCfDc4kT4hTUgM/SHDHqQEz2jzQsPbTH/Sq1PbnLZy0rsdiqcKnGA 5sUIbA== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1788362511; x=1788967311; darn=nongnu.org; h=content-transfer-encoding:content-type:mime-version:references :in-reply-to:message-id:date:subject:cc:to:from:from:to:cc:subject :date:message-id:reply-to:content-type; bh=u3sukywh0ccw7qimtYe5ZWsz5XS1jMV02iGullEuYuQ=; b=eaTyyzKrpGtEUJOfTKWk05M+dK8AVs71bpzPKwEndskiJ+TnlEml1GwAEk5VS2dJ5w YWYa4g+YsUO2SEY8jJK4ezeWNYGZHE7VoGs4ZQmjUv3TujXYEqRtKTtdM/HFxc7guSr3 mmWLA6f27lhqbKPVpBL+P7Pak0ROSEiJsHYqtQMlHLtgJy5rTPVbUVlGAQ3Az2rs9R1u VwoEBI2piabEEEhqA+qP5EnfU2Cw61Rq+5AK5rQhztdlBF24Rn8RziS38yARbxfiAZ2d PCouXSet+IFbG2dd0sdgCI1IYBj4prplfut19/lW306GxJuUN2LoVVPaHmRcoMDLa4St Rlbg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1788362511; x=1788967311; h=content-transfer-encoding:content-type:mime-version:references :in-reply-to:message-id:date:subject:cc:to:from:x-gm-gg :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to :content-type; bh=u3sukywh0ccw7qimtYe5ZWsz5XS1jMV02iGullEuYuQ=; b=BLPZKPPLPm9Tx02FoosrleDsvINdB6Rkmps33TFxp9+R3uiIpOmOUZY+TE9+eyQ6zD DqvzXFwm7XY35rxvZvPLWfxZmjxTBgjs2/6VYfBdzglqurFMzUKsb0M9tsbS3UHhw7A7 /yavYlGERpMtk9FbVkzPNRE/xR70HJsPKoPqDA6V+g+yEZFz7Bl8VqbgMvzAVr7hARod l9uzwKENa7BDl0gfIXqNXPQCs4AdyISjaJhHFQI7hPwIRVXsHmq9gWJ5gevg1xIZD1Vo zpXAk/xGrrFf+Dapmq0b9fVMZg9MrKKWNr5sZY+xH+adAu1nEv20tzf5fBC7czc3CJnc n8AA== X-Gm-Message-State: AFuF++kn6OvWgSR4vJ8O/hTy+5h3ZsnO3kDqn2WkNLyUzw4GrjyRnuBu DxqsLODiNFcxYdy/ofNRw7FOHESsCVKGnmUr4vUfveR2FdyQZRWm3zfgm9Dx5iYtfHnrtEK17Ys zYthwtUXQD7S0dLxWAUcUB7n+olnjjTTePGdwpODaiizMuSgTCF2F1FcTzvwukaJQJQ== X-Gm-Gg: AR+sD10vvVPrLx6alCl5jjTPAFJhcRLDkjJWbqN/GqrwpjTTLckY1VlAIrPZPCFsRWU XwtDPAl+vAdZw1nJWoocWmRzlXLGkdlXcyFRvA5TesOfbA0MQPdv0HaBxluZsJumNwNzqv0NS3y ktOG7GcMWbjDngalCxAjRZ3YFP/MOBYrj8c6JRdJ6hbSmE1ZcWqlBOLgP7cqWNGvXkvImwnR/Nz A86FLEWkNCKvOni1EawMDTxYmM6P8PACEVlNIAyYbhTwaijrHVEGDd556YoiAsb4LtZuB2sG1o7 1C3oiwbQUtQuM5K+LUCuuNCp8zd0fAKqCRGojDKMHHJwZHfyDCYK1ZgGoxxorLxBPtfUeTV5zx5 LpkyA3D9koLl/oZUfuPmXMhqGIlRe6C87zsDW2T+C X-Received: by 2002:a05:620a:1a15:b0:937:1538:6b93 with SMTP id af79cd13be357-93960ff982bmr701341485a.40.1788362510782; Wed, 02 Sep 2026 08:21:50 -0700 (PDT) X-Received: by 2002:a05:620a:1a15:b0:937:1538:6b93 with SMTP id af79cd13be357-93960ff982bmr701328385a.40.1788362510044; Wed, 02 Sep 2026 08:21:50 -0700 (PDT) From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Cc: Mark Cave-Ayland , Peter Maydell , Paolo Bonzini , qemu-ppc@nongnu.org, qemu-s390x@nongnu.org, Richard Henderson , Pierrick Bouvier , qemu-riscv@nongnu.org, qemu-arm@nongnu.org, =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , Brian Cain Subject: [PATCH v3 08/11] target/hexagon: Move to do_interrupt() (BQL acquired internally) Date: Wed, 2 Sep 2026 17:20:39 +0200 Message-ID: <20260902152044.31291-9-philmd@oss.qualcomm.com> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260902152044.31291-1-philmd@oss.qualcomm.com> References: <20260902152044.31291-1-philmd@oss.qualcomm.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-Authority-Analysis: v=2.4 cv=UZthjqSN c=1 sm=1 tr=0 ts=6a983f0f cx=c_pps a=50t2pK5VMbmlHzFWWp8p/g==:117 a=4s3hRJSeHn4rkQlkrse1kQ==:17 a=IkcTkHD0fZMA:10 a=VdqzKS8jKosA:10 a=M51BFTxLslgA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=3WHJM1ZQz_JShphwDgj5:22 a=EUspDBNiAAAA:8 a=kjvkjD5W99lJKOkStTcA:9 a=3ZKOabzyN94A:10 a=QEXdDO2ut3YA:10 a=IoWCM6iH3mJn3m4BftBB:22 X-Proofpoint-GUID: 2b84j2cIh-TnUGHdZ7l0KaiimpWtT-Ai X-Proofpoint-Spam-Info: AW1haW4tMjYwOTAyMDEzNiBTYWx0ZWRfX51hy0geBlO+p i1SGYvAKMV40S2aTp/akOPrfk3ZphNw4ZK2PalzNZWWLotWP+CFFPVqveihqd0KpiOajlT/aveJ y94+1U9ZehCazwcejjyA0Z9u6BtkkLs= X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwOTAyMDEzNiBTYWx0ZWRfXxxasNkMxhw83 vy3YQ4BoYpM8SZWZrAP3IwgkDj+4/+EYKpKMf8uxC7RwTJ92x8R+c6JGW+buicnAZYETkbyJ4k3 Z7DDSuz24B8jIhFlVHidpICKWML8k3O6Pkw8Ir4HsTqd7l8QGe6u6FtPl9IxOdJ8TtKs4242Ycq WA3dkIL6eTDuw3osnoWmfQE/Xq4UZnXDmr+sE9TbGF5rFFGS0jOeE3dk8S0AfSH1pXO5UcRQ2eq 8prKXIIdnGPD1NV3FeBzAVJ3tZ6UVrGQmXCkwZe+UpRteBePmmbPnziia1NYde0T3R5C3l7jWmL aermYp5NsxSNWl19Qlsl35jttaAXBN6JBgWchEhTVoivx+O5fVnd2pbtcWgPs6vG039mB5hBxGK Mra9K7MXDhKj6+dqZVQIwWFEVuN75dWq5QU9f0ZtH2lIbEZ+oq3lhe/eOHC3gbtsNifObBi6uTN WbIC66aeajFpLXi0aqA== X-Proofpoint-ORIG-GUID: 2b84j2cIh-TnUGHdZ7l0KaiimpWtT-Ai X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1176,Hydra:6.1.134,FMLib:17.12.100.49 definitions=2026-09-02_03,2026-09-01_03,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 suspectscore=0 bulkscore=0 impostorscore=0 adultscore=0 malwarescore=0 lowpriorityscore=0 spamscore=0 clxscore=1015 phishscore=0 priorityscore=1501 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2609020136 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=lists1p.gnu.org; Received-SPF: pass client-ip=205.220.180.131; envelope-from=philmd@oss.qualcomm.com; helo=mx0b-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 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_LOW=-0.7, 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: qemu development 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 @qualcomm.com) X-ZM-MESSAGEID: 1788362576187158500 hexagon_cpu_do_interrupt() already acquires the BQL internally, so register it as do_interrupt() instead of do_interrupt_locked(). This reflects the actual locking model used by the target. Signed-off-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: Brian Cain --- target/hexagon/cpu.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/target/hexagon/cpu.c b/target/hexagon/cpu.c index b5dcbfc99db..7067e5b70f7 100644 --- a/target/hexagon/cpu.c +++ b/target/hexagon/cpu.c @@ -769,7 +769,7 @@ static const TCGCPUOps hexagon_tcg_ops =3D { .tlb_fill =3D hexagon_tlb_fill, .do_unaligned_access =3D hexagon_cpu_do_unaligned_access, .cpu_exec_halt =3D hexagon_cpu_has_work, - .do_interrupt_locked =3D hexagon_cpu_do_interrupt, + .do_interrupt =3D hexagon_cpu_do_interrupt, #endif /* !CONFIG_USER_ONLY */ }; =20 --=20 2.53.0 From nobody Sat Sep 26 22:14:21 2026 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=reject dis=none) header.from=oss.qualcomm.com ARC-Seal: i=1; a=rsa-sha256; t=1788362561; cv=none; d=zohomail.com; s=zohoarc; b=IC2L8H6W/6/GVACpLLxNnOeLUErLBL38w+/JctaaXXIcrLwjKwclB+4/Nm99Yj+Sb2HfrxaUpmGIGojNGXPo2+VGaTW9+ju38p0OYaDVpgGUhWBSxOMSdf3iDa+N2fX+tcrv+U9YAJ7dvcqG6mfVJ7Q0Goddu15C/nvUG0Ajlqc= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1788362561; h=Content-Type: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=SjB+WsiUNVtJNvJVB5dqKRZIiGYlMTYMCAkchDEtNgc=; b=NVgBN+siSwKS/H7x+zZDh5hrcn/tYp3L7j9EDt2klQP/nJu2u7FSbmKY/YPaA2ZMBm8dK4DXj/gTcARu/URqhLreyOBQUA0PRdG9qf2AaXoSgKDz3tkW3PdGNRGnWzAN41f++iDEGb8lZQEKRoVK1fEkyHsph9OSVmQ3+l9rdwI= 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=reject dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1788362561891845.824997175021; Wed, 2 Sep 2026 08:22:41 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1x1mn1-0004Mh-1Y; Wed, 02 Sep 2026 11:22:15 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1x1mmz-0004Gj-1C for qemu-devel@nongnu.org; Wed, 02 Sep 2026 11:22:13 -0400 Received: from mx0b-0031df01.pphosted.com ([205.220.180.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1x1mmw-0000ND-UW for qemu-devel@nongnu.org; Wed, 02 Sep 2026 11:22:12 -0400 Received: from pps.filterd (m0279870.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 682CR8dN1647731 for ; Wed, 2 Sep 2026 15:22:00 GMT Received: from mail-ua1-f69.google.com (mail-ua1-f69.google.com [209.85.222.69]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4gejv88x8f-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Wed, 02 Sep 2026 15:21:59 +0000 (GMT) Received: by mail-ua1-f69.google.com with SMTP id a1e0cc1a2514c-97cb18cfa04so803870241.0 for ; Wed, 02 Sep 2026 08:21:59 -0700 (PDT) Received: from localhost.localdomain (pmd666.hd.free.fr. [88.187.86.199]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-49ce309e418sm97965215e9.13.2026.09.02.08.21.55 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Wed, 02 Sep 2026 08:21:56 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= SjB+WsiUNVtJNvJVB5dqKRZIiGYlMTYMCAkchDEtNgc=; b=TUDPoA5uCVbKCwsC IMgSPhLFOiV4N7UcK99Sbemz82kwmsh8TXE8cCqZgH+8HyRImfyCMltv0+jBXjD4 vET/gdrQ6C5KD86Wc8k/5EpuKwgSAQq4JZxDm1TFsdkdo35bv+ir/dbP24+bubJW FFmGJmmR5/uFHcbB6HPR6yZwVuSKyaH7Iuw/LO/m7/A0v55cymY1CeK4swIPq8uI 5eSRwaYLlAkrV/kicszyzvSD+8bmwF/WcsaZNbb1wuNROGfg3rRPvUxFtd/+kWbt g7T597L6gZ5/FbaLlr5S4HSbAy+AA7CUpRCbX+jXqQCCXvi6iZgWolbKlyp39v5u 1P+F4Q== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1788362519; x=1788967319; darn=nongnu.org; h=content-transfer-encoding:content-type:mime-version:references :in-reply-to:message-id:date:subject:cc:to:from:from:to:cc:subject :date:message-id:reply-to:content-type; bh=SjB+WsiUNVtJNvJVB5dqKRZIiGYlMTYMCAkchDEtNgc=; b=glYZmRR5It+9Du5ECLyZQjJWNEsfJiU9Difwyg13PP9biTTb0KSqj+oQ/O/ppsBode E70qbsY5YfHcyadWoBVQgoQaQOPx66CuSEX9b5p5/jDiKDrScQXC2Sv8yIukyqCxG/gO yLMKg13+zSEeJBE1PKV8glKWcTnb1F9spyOSrerjfJm6ODnKjw22iRNj/slPugx5xJ0y RpNsxTDL4QXrY8Xkf1OdgVRsTmKACoxR6s4eJXV7Wn2bVGz8FuPbbe4m08iKXnd2RH1E dbd4D19DxwE1BlD2EsH+Xq14Obf0FuwfYBF4i2RIBVEkm4lOJKlsHdZVeYx68HT/I6tE ulog== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1788362519; x=1788967319; h=content-transfer-encoding:content-type:mime-version:references :in-reply-to:message-id:date:subject:cc:to:from:x-gm-gg :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to :content-type; bh=SjB+WsiUNVtJNvJVB5dqKRZIiGYlMTYMCAkchDEtNgc=; b=jUGkrGBRCcbYf6a/9qsQDWrTaiXiryfA3CMG2nAEPBbvIAEqrsDZlf985h8oMZ7Nyq NCwiaOEIggGyQ0nXYRWBqwW/qts2J/vYKc9dx/laofPS2nwkFFWDL+0C2znfQwbpUWqy sYglw17vi95Fq4yn/CB4C5PrqYFzljwW/PNK4I1wmtDPrQ4cLtOlEx/rXnJWdgdhjIyH JFTJwjOxRafQx6iFsFva7GW9flqx38k6ImxBrgZXEJ6pS0YElWyLsHI1eRSX8GCBwa5a FuUs+eelLumWiq3oM4xiCM8LjFbEnm0rW1fsSorh4+oxoDL/G0uF+TQeKeaVwV5eOlme SbIg== X-Gm-Message-State: AFuF++lgVA6EL9VWuwIW3wyPNjG6tWYiiPw2JSsNVrJF2i8eZP+BzRKI fInMdB92p+o3ed5le7NgruFlO1v5uwyHXo1Cn6mbdp2jbmI1J0vx1IpALTUeIQdPBQcEi+HXDJQ 4sjqXDsrS+Y6FLJNzaPfHD9YEsicjDijEw172YmsDGUpL2TSDH6OPEXhwA4pFQZF/5g== X-Gm-Gg: AYBFou3kufrlym3YH14Tz9H+7gKIEiQoyvqLoPRXvYJSBrs7LgZoCLC56li9E7My54l QTTpgOzdrbz94N988UwFqf1WxVmYVkOu6Uw9+QwEN9rKt8iOV0QndYKy9Qiz7W0xLL432QHeYbW LLdEgBr4SymmljjKBPZzxDLF1aOBipiKhqNfkDipRFjMKq93qQNcpDFagnsDWhWFEPbym5LZd7y QC4eLH51cZcSSrg0tBe4fVu6e8daXLu86xZFtHsD3aJ/5Pfsc3I80Nr8Yh47PGQFrUHxVXIaGlC tpWvsLDfAfdixaBJvA1gzPOTt9ulfwhcBgj7JxvTVe/GyulAFK729J7DCy69hFb79uHgH7Twn7x USyf+euckMPg+dqv3yNwoYGWA0Va3H+a0YzYtY2Hw X-Received: by 2002:a05:6102:4243:b0:786:e7a0:603e with SMTP id ada2fe7eead31-78a1f233cb6mr2343304137.7.1788362518042; Wed, 02 Sep 2026 08:21:58 -0700 (PDT) X-Received: by 2002:a05:6102:4243:b0:786:e7a0:603e with SMTP id ada2fe7eead31-78a1f233cb6mr2343259137.7.1788362517484; Wed, 02 Sep 2026 08:21:57 -0700 (PDT) From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Cc: Mark Cave-Ayland , Peter Maydell , Paolo Bonzini , qemu-ppc@nongnu.org, qemu-s390x@nongnu.org, Richard Henderson , Pierrick Bouvier , qemu-riscv@nongnu.org, qemu-arm@nongnu.org, =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , Song Gao <17746591750@163.com>, Bibo Mao , Xianglai Li , Laurent Vivier , "Edgar E. Iglesias" , Stafford Horne Subject: [RFC PATCH v3 09/11] targets: Move interrupt handlers to do_interrupt() Date: Wed, 2 Sep 2026 17:20:40 +0200 Message-ID: <20260902152044.31291-10-philmd@oss.qualcomm.com> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260902152044.31291-1-philmd@oss.qualcomm.com> References: <20260902152044.31291-1-philmd@oss.qualcomm.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-Proofpoint-GUID: 6enHd2UqgVKvpTFHQhdw2yZ_A7hzpk7P X-Authority-Analysis: v=2.4 cv=L+wtheT8 c=1 sm=1 tr=0 ts=6a983f18 cx=c_pps a=UbhLPJ621ZpgOD2l3yZY1w==:117 a=4s3hRJSeHn4rkQlkrse1kQ==:17 a=IkcTkHD0fZMA:10 a=VdqzKS8jKosA:10 a=M51BFTxLslgA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=gowsoOTTUOVcmtlkKump:22 a=EUspDBNiAAAA:8 a=-wU1GuQjd2BOtWieTlsA:9 a=3ZKOabzyN94A:10 a=QEXdDO2ut3YA:10 a=TOPH6uDL9cOC6tEoww4z:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwOTAyMDEzNiBTYWx0ZWRfX0aWfKMPwovnM e3jVBhfn5tZOcMsUraXxxZ1o53lNlTiazAzrhmWKl3UZqHJCh7r0mEShi30wbBj3KneCLzBIh/U 9SYIsJ9u3uLAlE9w8b3KByi0WuLQQyqypHVq5L+olU4+YaddFhnuifMlTUCe05oBh7PY+QYhujg tBgQLq3y9xYe30TgeOy3tBDaOvOxPex7Nus42THKYbs8Lsf5/DfWAhbSxAksyvQ2LDszXcqt3gv QLA6jH3TrVtKZ5qVbp9qjODnAy2+/GCnCqnM/VaGe+7Jk/yMhJtJuQ7CSx+QygJEkmPUvL5+4Z1 h1SGiPRC2cbd2TXYwoblgD2m3jSVif/HA0LqPAS8P6wLMdrz5hFwt+5yjzCaQf0WZY9rd93z1+N BetZ7ywyUNqouNDgYY5qH7qypr2zRTh8MkdFC9Bk9O+FCYMF4UwSBlba8QyhWX0IgkslWJqBeFy CGLquDwHp/siVJ1hgkg== X-Proofpoint-Spam-Info: AW1haW4tMjYwOTAyMDEzNiBTYWx0ZWRfX01SYjoLf9Wgg /ChETuGNC4jrwo2inXGqlyyIKBswDQy+BqXbUaJfwYGMcplNWH264yW2xzWD8d5s0soZnGiVF3D d5adqx1/BjSJfQ1EYrMvWxhlNeRjWLQ= X-Proofpoint-ORIG-GUID: 6enHd2UqgVKvpTFHQhdw2yZ_A7hzpk7P X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1176,Hydra:6.1.134,FMLib:17.12.100.49 definitions=2026-09-02_03,2026-09-01_03,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 lowpriorityscore=0 clxscore=1015 bulkscore=0 impostorscore=0 phishscore=0 spamscore=0 suspectscore=0 adultscore=0 priorityscore=1501 malwarescore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2609020136 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=lists1p.gnu.org; Received-SPF: pass client-ip=205.220.180.131; envelope-from=philmd@oss.qualcomm.com; helo=mx0b-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 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_LOW=-0.7, 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: qemu development 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 @qualcomm.com) X-ZM-MESSAGEID: 1788362562270158500 LoongArch, M68K, MicroBlaze, and OpenRISC interrupt handlers don't require external BQL protection, so move them from do_interrupt_locked() to do_interrupt(). Signed-off-by: Philippe Mathieu-Daud=C3=A9 --- target/loongarch/tcg/tcg_cpu.c | 2 +- target/m68k/cpu.c | 2 +- target/microblaze/cpu.c | 2 +- target/or1k/cpu.c | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/target/loongarch/tcg/tcg_cpu.c b/target/loongarch/tcg/tcg_cpu.c index 6455ae0c99a..4b1d44a1644 100644 --- a/target/loongarch/tcg/tcg_cpu.c +++ b/target/loongarch/tcg/tcg_cpu.c @@ -329,7 +329,7 @@ const TCGCPUOps loongarch_tcg_ops =3D { .cpu_exec_interrupt =3D loongarch_cpu_exec_interrupt, .cpu_exec_halt =3D loongarch_cpu_has_work, .cpu_exec_reset =3D cpu_reset, - .do_interrupt_locked =3D loongarch_cpu_do_interrupt, + .do_interrupt =3D loongarch_cpu_do_interrupt, .do_transaction_failed =3D loongarch_cpu_do_transaction_failed, #endif }; diff --git a/target/m68k/cpu.c b/target/m68k/cpu.c index 85496deff67..9b52ad5fc23 100644 --- a/target/m68k/cpu.c +++ b/target/m68k/cpu.c @@ -712,7 +712,7 @@ static const TCGCPUOps m68k_tcg_ops =3D { .cpu_exec_interrupt =3D m68k_cpu_exec_interrupt, .cpu_exec_halt =3D m68k_cpu_has_work, .cpu_exec_reset =3D cpu_reset, - .do_interrupt_locked =3D m68k_cpu_do_interrupt, + .do_interrupt =3D m68k_cpu_do_interrupt, .do_transaction_failed =3D m68k_cpu_transaction_failed, #endif /* !CONFIG_USER_ONLY */ }; diff --git a/target/microblaze/cpu.c b/target/microblaze/cpu.c index 649bcebf703..389a5124b12 100644 --- a/target/microblaze/cpu.c +++ b/target/microblaze/cpu.c @@ -450,7 +450,7 @@ static const TCGCPUOps mb_tcg_ops =3D { .cpu_exec_interrupt =3D mb_cpu_exec_interrupt, .cpu_exec_halt =3D mb_cpu_has_work, .cpu_exec_reset =3D cpu_reset, - .do_interrupt_locked =3D mb_cpu_do_interrupt, + .do_interrupt =3D mb_cpu_do_interrupt, .do_transaction_failed =3D mb_cpu_transaction_failed, .do_unaligned_access =3D mb_cpu_do_unaligned_access, #endif /* !CONFIG_USER_ONLY */ diff --git a/target/or1k/cpu.c b/target/or1k/cpu.c index 83dc071c180..66c00c0930c 100644 --- a/target/or1k/cpu.c +++ b/target/or1k/cpu.c @@ -268,7 +268,7 @@ static const TCGCPUOps openrisc_tcg_ops =3D { .cpu_exec_interrupt =3D openrisc_cpu_exec_interrupt, .cpu_exec_halt =3D openrisc_cpu_has_work, .cpu_exec_reset =3D cpu_reset, - .do_interrupt_locked =3D openrisc_cpu_do_interrupt, + .do_interrupt =3D openrisc_cpu_do_interrupt, #endif /* !CONFIG_USER_ONLY */ }; =20 --=20 2.53.0 From nobody Sat Sep 26 22:14:21 2026 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=reject dis=none) header.from=oss.qualcomm.com ARC-Seal: i=1; a=rsa-sha256; t=1788362621; cv=none; d=zohomail.com; s=zohoarc; b=FlqYZptfqNejeVhgpfnY1r1SoZqyRK4g42bedBCqVmAgZ8Ymt8zJ5E8cuoRKg4Q4vPy0urrY1mTDVJWaTMHMEHjbS0JbjYIiNU6IutX0A7ApElaaqkBVHa0sa1sST38zM/7LAaf5nr2fwl8yoT44AWrX+0asHbqVxjOFFdvKmmQ= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1788362621; h=Content-Type: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=KXT2HoT9XOUG9FUuZMd1l0BLthY+lhHbpK91MW/9FJA=; b=ScpdnFH1ww4tnJFS8V3Lzinwg+e73WxkFveaDF4U+tbIFkofhobc+1TOu6WBfG7Qo62dlwMP4HqOz/77WXATDxgC3SpKDMi3a6XJDs06SE5iTAxa4FXtuAWkiQhUuYAzcOZOhPte/2MXc2jmLNRidk2FvJvwcYiW5//wnVObRxI= 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=reject dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1788362621884436.0720512256663; Wed, 2 Sep 2026 08:23:41 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1x1mnQ-0005xX-6y; Wed, 02 Sep 2026 11:22:40 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1x1mnO-0005uc-JG for qemu-devel@nongnu.org; Wed, 02 Sep 2026 11:22:38 -0400 Received: from mx0a-0031df01.pphosted.com ([205.220.168.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1x1mnL-0000ST-DZ for qemu-devel@nongnu.org; Wed, 02 Sep 2026 11:22:38 -0400 Received: from pps.filterd (m0279863.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 682CR2Xi1549590 for ; Wed, 2 Sep 2026 15:22:24 GMT Received: from mail-ua1-f69.google.com (mail-ua1-f69.google.com [209.85.222.69]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4gej2c9541-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Wed, 02 Sep 2026 15:22:23 +0000 (GMT) Received: by mail-ua1-f69.google.com with SMTP id a1e0cc1a2514c-97e8be2221eso85909241.2 for ; Wed, 02 Sep 2026 08:22:23 -0700 (PDT) Received: from localhost.localdomain (pmd666.hd.free.fr. [88.187.86.199]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-49ce7d04c69sm42533125e9.8.2026.09.02.08.22.03 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Wed, 02 Sep 2026 08:22:04 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= KXT2HoT9XOUG9FUuZMd1l0BLthY+lhHbpK91MW/9FJA=; b=O0ydlC3zDIFT0N8R j6iOADnr9d2ynI5Hg5Dbha2fnqHfn+5SWKA2bcUqO4B1K6lqHnHEXBEUZBZnzjCA FK0DMnAUEvVjSSfwkTwkug85TsCjPbRf5SLeD65FUW89SEp6q19D/U14dXRH4XEM 0XRNEVdUgI2pVKuY2bXl2IFP5fmTtysQ+cCKZ5vH5aFraOksd+QZcPkr/l3bdXyd 430/YleCwWYSgh6SX3UTAjW5EVy8JtlHacalzygdGiIZX1mOisOlfzFAGvxtJrsf QqlYrEWI6fBIOtEoBTR7T8IVeLPN3xymniVpwX5Q0FaOX3f9Ah7DI3d+SZRjb8w4 eW8NYw== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1788362543; x=1788967343; darn=nongnu.org; h=content-transfer-encoding:content-type:mime-version:references :in-reply-to:message-id:date:subject:cc:to:from:from:to:cc:subject :date:message-id:reply-to:content-type; bh=KXT2HoT9XOUG9FUuZMd1l0BLthY+lhHbpK91MW/9FJA=; b=VlOxHXKY69YyYO5FgSxp89rTu7dlvpzCTHpuc9Axv5g7qDWKYIVqnaXBlLEF3myapE EbFVSwLhWJs3kE+Q9FsM/JvvapRfN/Gt238JFtCfUss9k4hn1XrZHXKXN7UJ1YtMu6Yz PANeSaFAGKRB69wYTqNtjsuDyRx7MxCQq0XsZQkCykpo6idsHaGEmZ/RIqPZ0pe2h2oN TU1SgvYYy7L6UiqTNKJGDz8p349GSXD/J0runEBEDJNDYalk2iw33N+/J1GbRb/oXIXE S3NkxYWzsM+lGyHUbX5Yyi9BDMnY7yqnzmSnEpn/Z0llt8xVf12OJLB6CsEp9W6iYVQA 7KeQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1788362543; x=1788967343; h=content-transfer-encoding:content-type:mime-version:references :in-reply-to:message-id:date:subject:cc:to:from:x-gm-gg :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to :content-type; bh=KXT2HoT9XOUG9FUuZMd1l0BLthY+lhHbpK91MW/9FJA=; b=kEKl7bTFshQwQ9FRt8fyAi4NI3bOmVqfuYnvlbpR+e7gqSkCSGkgoBP2IlkwXuHbDd RH1OGusCyy3vIvHKJqEjSHD6ErkCSUgK++vIKHC+JOqbu0FV3pSpCMTJOoJtwvapqqD8 fxg5BS/3zGjsnICyG4uLdEx6LOwVu3+DMNPFYYsp+zRFrNoGyhmncFetFmZmIzMWCMJb 3kW58ZFY5TcIKnzj+KJtJF743MrTPn8/UtcYeE9q30GyiN3tPTeS/9a8RUg4EmymPpgH UeIaYTbbwWM/nJwmtewy+gwzNmqHTS/WAWbaPYSU/xsVel8PcPCPj6IdbAGUePS7aKKl 2ERw== X-Gm-Message-State: AFuF++k7DWVWNBAWlN0rTRkKRtC5c3/1J0VPrFS0i+fTOF5pV9EbXM1W 82Ik+xnyK8idTBczBFoGj7v5m5XgYiQtfNXYjppKLMT/vAEh+lRzTTTzo6+iblxZD6ECMz3FO1v 4r9Fu1+WdU1bkw03Rd4UZs34ifJlzKSkbdQsb3uYEY99C1ncIzqN9c6bhp0vb9jgZhQ== X-Gm-Gg: AYBFou2KdlDD9zqkeE9T5ATIf2B6sndgeBvbHBz16izLbcnIcR2UO1UF9ViXZfbLH9Q M5xhHNIfAYaVRdUatL4giPM+ggZE3AayVDGKzso2RBfSfU/QX4K+zxQUBZ6vSoAxIIL9jNmsQf4 lfCpiRHMx5S1szTuPSA+9Wz5dMKjFOx4vFzxiTQWbefnDXyUVFRLsr6Alr1hqQCGO8PP0MvhlN0 kf4HoeMNjnCcmR6UozMpD3PJ4LnBYFJrE02Rv+Pw/DhY+XOR4V6XM1zTkZB7wkrRFBq+ug1NA+U aB7MpnhmzUCIJv5sltX3bAncM5gtT9oJARHzeOWLlt5Kze8bpWvu6LsZr1+lGGgd2Yj9HxLLW9/ cf3W8M34h6PCWiTrOLOBXlOZ24Y0V1OOn1uTekezn X-Received: by 2002:a05:6102:14a5:b0:784:94dd:5389 with SMTP id ada2fe7eead31-78a1f3954bfmr1682906137.13.1788362532152; Wed, 02 Sep 2026 08:22:12 -0700 (PDT) X-Received: by 2002:a05:6102:14a5:b0:784:94dd:5389 with SMTP id ada2fe7eead31-78a1f3954bfmr1682618137.13.1788362525679; Wed, 02 Sep 2026 08:22:05 -0700 (PDT) From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Cc: Mark Cave-Ayland , Peter Maydell , Paolo Bonzini , qemu-ppc@nongnu.org, qemu-s390x@nongnu.org, Richard Henderson , Pierrick Bouvier , qemu-riscv@nongnu.org, qemu-arm@nongnu.org, =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , Michael Rolnik , Helge Deller , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , Aurelien Jarno , Jiaxun Yang , Aleksandar Rikalo , Chinmay Rath , Nicholas Piggin , Glenn Miles , Harsh Prateek Bora , Palmer Dabbelt , Alistair Francis , Weiwei Li , Daniel Henrique Barboza , Liu Zhiwei , Chao Liu , Yoshinori Sato , Ilya Leoshkevich , David Hildenbrand , Cornelia Huck , Eric Farman , Matthew Rosato , Artyom Tarasenko , Max Filippov Subject: [RFC PATCH v3 10/11] targets: Move BQL locking into do_interrupt() handlers Date: Wed, 2 Sep 2026 17:20:41 +0200 Message-ID: <20260902152044.31291-11-philmd@oss.qualcomm.com> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260902152044.31291-1-philmd@oss.qualcomm.com> References: <20260902152044.31291-1-philmd@oss.qualcomm.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-Proofpoint-Spam-Info: AW1haW4tMjYwOTAyMDEzNiBTYWx0ZWRfXwMciV1UGbkhG 7eC3ZLGSBUbCnIetQvJCgjGKd5AAYH7PLBfYD/3DMRkm4en3/S1FxGyvWA+3QayPsQSDd8S3MQD 3TOdr+/wt1duWqC4Cpjgw9WqPF8NqBg= X-Authority-Analysis: v=2.4 cv=G+ss1dk5 c=1 sm=1 tr=0 ts=6a983f30 cx=c_pps a=UbhLPJ621ZpgOD2l3yZY1w==:117 a=4s3hRJSeHn4rkQlkrse1kQ==:17 a=IkcTkHD0fZMA:10 a=VdqzKS8jKosA:10 a=M51BFTxLslgA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=yOCtJkima9RkubShWh1s:22 a=EUspDBNiAAAA:8 a=u4KzQEefR3bvkf7lQMoA:9 a=3ZKOabzyN94A:10 a=QEXdDO2ut3YA:10 a=TOPH6uDL9cOC6tEoww4z:22 X-Proofpoint-GUID: zbEBzS9V4siG8gk737yGszMtHSGpDkiI X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwOTAyMDEzNiBTYWx0ZWRfX/OYDsyWEx5he 1F2g4uqTmRmg+eUDXhXbOo9UQbdgQOv10lKF/I+s99tsqLGo4dW95GlwepRBemEhxJnxhFiiC9I ADyO1MJhFb9/NPgJgBt9ambFD4Vh/yVFYbK6039sU+bhLFrRGbchLnCNbK3YaZpRbSPFfSUpq3i 295b3E8mZ4JxwB+OnPxYgT+hPvNFsFz9uIFEMAEOVpT7+u3ujY7IwoC+3ZSt7LrapvPbK7T3fhS yJ7whzJWjc646PaNLsOaf+unukU32vRzmBzEfm6phBMtsok+kjQr20iZZ9IALdRXpcvSNEfWw3x kl1sGyzNFl/VaUgGNNR4zFAFodxVDtP+1WuzmRfe+M90Xz32W/+H0SXZrgbT/2j4L6gi99b655K IEor9YRE841zX5ES0lPUfysOaG29Db7iCyRhmn4wSM1QhF2epzOiMyT4iD/Oz2TKZaAi0g52xEb QjoKj4zvyAPqz+IKuug== X-Proofpoint-ORIG-GUID: zbEBzS9V4siG8gk737yGszMtHSGpDkiI X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1176,Hydra:6.1.134,FMLib:17.12.100.49 definitions=2026-09-02_03,2026-09-01_03,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 spamscore=0 priorityscore=1501 malwarescore=0 suspectscore=0 bulkscore=0 impostorscore=0 lowpriorityscore=0 phishscore=0 adultscore=0 clxscore=1015 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2609020136 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=lists1p.gnu.org; Received-SPF: pass client-ip=205.220.168.131; envelope-from=philmd@oss.qualcomm.com; helo=mx0a-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 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_LOW=-0.7, 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: qemu development 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 @qualcomm.com) X-ZM-MESSAGEID: 1788362624435154100 Migrate 13 targets to acquire the BQL explicitly within their do_interrupt() implementations instead of relying on the TCG core to hold it. This allows per-target control over locking granularity and paves the way for fine-grained BQL optimization. Signed-off-by: Philippe Mathieu-Daud=C3=A9 --- target/alpha/cpu.c | 2 +- target/alpha/helper.c | 3 +++ target/arm/cpu.c | 2 +- target/arm/helper.c | 1 + target/arm/tcg/cpu-v7m.c | 2 +- target/arm/tcg/m_helper.c | 2 ++ target/avr/cpu.c | 2 +- target/avr/helper.c | 3 +++ target/hppa/cpu.c | 2 +- target/hppa/int_helper.c | 2 ++ target/i386/tcg/system/seg_helper.c | 2 ++ target/i386/tcg/tcg-cpu.c | 2 +- target/mips/cpu.c | 2 +- target/mips/tcg/system/tlb_helper.c | 3 +++ target/ppc/cpu_init.c | 2 +- target/ppc/excp_helper.c | 2 ++ target/riscv/tcg/tcg-cpu.c | 2 +- target/rx/cpu.c | 2 +- target/rx/helper.c | 3 +++ target/s390x/cpu.c | 2 +- target/s390x/tcg/excp_helper.c | 3 +++ target/sh4/cpu.c | 2 +- target/sh4/helper.c | 3 +++ target/sparc/cpu.c | 2 +- target/sparc/int32_helper.c | 2 ++ target/sparc/int64_helper.c | 2 ++ target/xtensa/cpu.c | 2 +- target/xtensa/exc_helper.c | 2 ++ 28 files changed, 47 insertions(+), 14 deletions(-) diff --git a/target/alpha/cpu.c b/target/alpha/cpu.c index aca9e82bfb2..12e86021663 100644 --- a/target/alpha/cpu.c +++ b/target/alpha/cpu.c @@ -267,7 +267,7 @@ static const TCGCPUOps alpha_tcg_ops =3D { .cpu_exec_interrupt =3D alpha_cpu_exec_interrupt, .cpu_exec_halt =3D alpha_cpu_has_work, .cpu_exec_reset =3D cpu_reset, - .do_interrupt_locked =3D alpha_cpu_do_interrupt, + .do_interrupt =3D alpha_cpu_do_interrupt, .do_transaction_failed =3D alpha_cpu_do_transaction_failed, .do_unaligned_access =3D alpha_cpu_do_unaligned_access, #endif /* !CONFIG_USER_ONLY */ diff --git a/target/alpha/helper.c b/target/alpha/helper.c index c3614ecafda..e21cd8e2b44 100644 --- a/target/alpha/helper.c +++ b/target/alpha/helper.c @@ -26,6 +26,7 @@ #include "fpu/softfloat-types.h" #include "fpu/softfloat-helpers.h" #include "exec/helper-proto.h" +#include "qemu/main-loop.h" #include "qemu/qemu-print.h" #include "system/memory.h" #include "accel/tcg/cpu-loop.h" @@ -341,6 +342,8 @@ void alpha_cpu_do_interrupt(CPUState *cs) int i =3D cs->exception_index; uint64_t last_pc =3D env->pc; =20 + BQL_LOCK_GUARD(); + if (qemu_loglevel_mask(CPU_LOG_INT)) { static int count; const char *name =3D ""; diff --git a/target/arm/cpu.c b/target/arm/cpu.c index 0d0555b7ad4..77aa78f00e2 100644 --- a/target/arm/cpu.c +++ b/target/arm/cpu.c @@ -2606,7 +2606,7 @@ static const TCGCPUOps arm_tcg_ops =3D { .cpu_exec_interrupt =3D arm_cpu_exec_interrupt, .cpu_exec_halt =3D arm_cpu_exec_halt, .cpu_exec_reset =3D cpu_reset, - .do_interrupt_locked =3D arm_cpu_do_interrupt, + .do_interrupt =3D arm_cpu_do_interrupt, .do_transaction_failed =3D arm_cpu_do_transaction_failed, .do_unaligned_access =3D arm_cpu_do_unaligned_access, .adjust_watchpoint_address =3D arm_adjust_watchpoint_address, diff --git a/target/arm/helper.c b/target/arm/helper.c index c3f607e6d6b..fbedb3fa39c 100644 --- a/target/arm/helper.c +++ b/target/arm/helper.c @@ -9714,6 +9714,7 @@ void arm_cpu_do_interrupt(CPUState *cs) uint64_t last_pc =3D cs->cc->get_pc(cs); =20 assert(!arm_feature(env, ARM_FEATURE_M)); + BQL_LOCK_GUARD(); =20 arm_log_exception(cs); qemu_log_mask(CPU_LOG_INT, "...from EL%d to EL%d\n", arm_current_el(en= v), diff --git a/target/arm/tcg/cpu-v7m.c b/target/arm/tcg/cpu-v7m.c index 1f698b70283..502998dbd1c 100644 --- a/target/arm/tcg/cpu-v7m.c +++ b/target/arm/tcg/cpu-v7m.c @@ -304,7 +304,7 @@ static const TCGCPUOps arm_v7m_tcg_ops =3D { .cpu_exec_interrupt =3D arm_v7m_cpu_exec_interrupt, .cpu_exec_halt =3D arm_cpu_exec_halt, .cpu_exec_reset =3D cpu_reset, - .do_interrupt_locked =3D arm_v7m_cpu_do_interrupt, + .do_interrupt =3D arm_v7m_cpu_do_interrupt, .do_transaction_failed =3D arm_cpu_do_transaction_failed, .do_unaligned_access =3D arm_cpu_do_unaligned_access, .adjust_watchpoint_address =3D arm_adjust_watchpoint_address, diff --git a/target/arm/tcg/m_helper.c b/target/arm/tcg/m_helper.c index 33c9e7c55bc..9e15781f08d 100644 --- a/target/arm/tcg/m_helper.c +++ b/target/arm/tcg/m_helper.c @@ -2214,6 +2214,8 @@ void arm_v7m_cpu_do_interrupt(CPUState *cs) bool ignore_stackfaults; uint64_t last_pc =3D env->regs[15]; =20 + BQL_LOCK_GUARD(); + arm_log_exception(cs); =20 /* diff --git a/target/avr/cpu.c b/target/avr/cpu.c index bc7639031b8..f8409f32ab9 100644 --- a/target/avr/cpu.c +++ b/target/avr/cpu.c @@ -249,7 +249,7 @@ static const TCGCPUOps avr_tcg_ops =3D { .cpu_exec_halt =3D avr_cpu_has_work, .cpu_exec_reset =3D cpu_reset, .tlb_fill =3D avr_cpu_tlb_fill, - .do_interrupt_locked =3D avr_cpu_do_interrupt, + .do_interrupt =3D avr_cpu_do_interrupt, /* * TODO: code and data wrapping are different, but for the most part * AVR only references bytes or aligned code fetches. But we use diff --git a/target/avr/helper.c b/target/avr/helper.c index f452c9d9040..ed839b6db31 100644 --- a/target/avr/helper.c +++ b/target/avr/helper.c @@ -21,6 +21,7 @@ #include "qemu/osdep.h" #include "qemu/log.h" #include "qemu/error-report.h" +#include "qemu/main-loop.h" #include "cpu.h" #include "accel/tcg/cpu-ops.h" #include "accel/tcg/cpu-loop.h" @@ -89,6 +90,8 @@ void avr_cpu_do_interrupt(CPUState *cs) vector =3D ctz64(env->intsrc) + 1; } =20 + BQL_LOCK_GUARD(); + if (avr_feature(env, AVR_FEATURE_3_BYTE_PC)) { do_stb(env, env->sp--, ret, 0); do_stb(env, env->sp--, ret >> 8, 0); diff --git a/target/hppa/cpu.c b/target/hppa/cpu.c index c6d915d314f..07b49e51326 100644 --- a/target/hppa/cpu.c +++ b/target/hppa/cpu.c @@ -272,7 +272,7 @@ static const TCGCPUOps hppa_tcg_ops =3D { .cpu_exec_interrupt =3D hppa_cpu_exec_interrupt, .cpu_exec_halt =3D hppa_cpu_has_work, .cpu_exec_reset =3D cpu_reset, - .do_interrupt_locked =3D hppa_cpu_do_interrupt, + .do_interrupt =3D hppa_cpu_do_interrupt, .do_unaligned_access =3D hppa_cpu_do_unaligned_access, .do_transaction_failed =3D hppa_cpu_do_transaction_failed, #endif /* !CONFIG_USER_ONLY */ diff --git a/target/hppa/int_helper.c b/target/hppa/int_helper.c index 3e87b9a0011..852d0649d84 100644 --- a/target/hppa/int_helper.c +++ b/target/hppa/int_helper.c @@ -98,6 +98,8 @@ void hppa_cpu_do_interrupt(CPUState *cs) uint64_t old_psw, old_gva_offset_mask; uint64_t last_pc =3D cs->cc->get_pc(cs); =20 + BQL_LOCK_GUARD(); + /* As documented in pa2.0 -- interruption handling. */ /* step 1 */ env->cr[CR_IPSW] =3D old_psw =3D cpu_hppa_get_psw(env); diff --git a/target/i386/tcg/system/seg_helper.c b/target/i386/tcg/system/s= eg_helper.c index 8c7856be81e..8eaeb746128 100644 --- a/target/i386/tcg/system/seg_helper.c +++ b/target/i386/tcg/system/seg_helper.c @@ -115,6 +115,8 @@ void x86_cpu_do_interrupt(CPUState *cs) X86CPU *cpu =3D X86_CPU(cs); CPUX86State *env =3D &cpu->env; =20 + BQL_LOCK_GUARD(); + if (cs->exception_index =3D=3D EXCP_VMEXIT) { assert(env->old_exception =3D=3D -1); do_vmexit(env); diff --git a/target/i386/tcg/tcg-cpu.c b/target/i386/tcg/tcg-cpu.c index ff65641654d..7a4d73e7fee 100644 --- a/target/i386/tcg/tcg-cpu.c +++ b/target/i386/tcg/tcg-cpu.c @@ -179,7 +179,7 @@ const TCGCPUOps x86_tcg_ops =3D { #else .tlb_fill =3D x86_cpu_tlb_fill, .pointer_wrap =3D x86_pointer_wrap, - .do_interrupt_locked =3D x86_cpu_do_interrupt, + .do_interrupt =3D x86_cpu_do_interrupt, .cpu_exec_halt =3D x86_cpu_exec_halt, .cpu_exec_interrupt =3D x86_cpu_exec_interrupt, .cpu_exec_reset =3D x86_cpu_exec_reset, diff --git a/target/mips/cpu.c b/target/mips/cpu.c index 073e466b713..0fead20d651 100644 --- a/target/mips/cpu.c +++ b/target/mips/cpu.c @@ -718,7 +718,7 @@ static const TCGCPUOps mips_tcg_ops =3D { .cpu_exec_interrupt =3D mips_cpu_exec_interrupt, .cpu_exec_halt =3D mips_cpu_has_work, .cpu_exec_reset =3D cpu_reset, - .do_interrupt_locked =3D mips_cpu_do_interrupt, + .do_interrupt =3D mips_cpu_do_interrupt, .do_transaction_failed =3D mips_cpu_do_transaction_failed, .do_unaligned_access =3D mips_cpu_do_unaligned_access, .io_recompile_replay_branch =3D mips_io_recompile_replay_branch, diff --git a/target/mips/tcg/system/tlb_helper.c b/target/mips/tcg/system/t= lb_helper.c index 4398c6f80b4..2b8478f9a9d 100644 --- a/target/mips/tcg/system/tlb_helper.c +++ b/target/mips/tcg/system/tlb_helper.c @@ -18,6 +18,7 @@ */ #include "qemu/osdep.h" #include "qemu/bitops.h" +#include "qemu/main-loop.h" #include "qemu/plugin.h" =20 #include "cpu.h" @@ -1045,6 +1046,8 @@ void mips_cpu_do_interrupt(CPUState *cs) int cause =3D -1; uint64_t last_pc =3D env->active_tc.PC; =20 + BQL_LOCK_GUARD(); + if (qemu_loglevel_mask(CPU_LOG_INT) && cs->exception_index !=3D EXCP_EXT_INTERRUPT) { qemu_log("%s enter: PC " TARGET_FMT_lx " EPC " TARGET_FMT_lx diff --git a/target/ppc/cpu_init.c b/target/ppc/cpu_init.c index 2676562b2f1..6c626843c93 100644 --- a/target/ppc/cpu_init.c +++ b/target/ppc/cpu_init.c @@ -7498,7 +7498,7 @@ static const TCGCPUOps ppc_tcg_ops =3D { .cpu_exec_interrupt =3D ppc_cpu_exec_interrupt, .cpu_exec_halt =3D ppc_cpu_has_work, .cpu_exec_reset =3D cpu_reset, - .do_interrupt_locked =3D ppc_cpu_do_interrupt, + .do_interrupt =3D ppc_cpu_do_interrupt, .cpu_exec_enter =3D ppc_cpu_exec_enter, .cpu_exec_exit =3D ppc_cpu_exec_exit, .do_unaligned_access =3D ppc_cpu_do_unaligned_access, diff --git a/target/ppc/excp_helper.c b/target/ppc/excp_helper.c index 6d05b865058..6352a4fcaf3 100644 --- a/target/ppc/excp_helper.c +++ b/target/ppc/excp_helper.c @@ -1761,6 +1761,8 @@ void ppc_cpu_do_interrupt(CPUState *cs) { PowerPCCPU *cpu =3D POWERPC_CPU(cs); =20 + BQL_LOCK_GUARD(); + powerpc_excp(cpu, cs->exception_index); } =20 diff --git a/target/riscv/tcg/tcg-cpu.c b/target/riscv/tcg/tcg-cpu.c index ea3189ab3d2..9e3cc87f8a3 100644 --- a/target/riscv/tcg/tcg-cpu.c +++ b/target/riscv/tcg/tcg-cpu.c @@ -289,7 +289,7 @@ const TCGCPUOps riscv_tcg_ops =3D { .cpu_exec_interrupt =3D riscv_cpu_exec_interrupt, .cpu_exec_halt =3D riscv_cpu_has_work, .cpu_exec_reset =3D cpu_reset, - .do_interrupt_locked =3D riscv_cpu_do_interrupt, + .do_interrupt =3D riscv_cpu_do_interrupt, .do_transaction_failed =3D riscv_cpu_do_transaction_failed, .do_unaligned_access =3D riscv_cpu_do_unaligned_access, .debug_excp_handler =3D riscv_cpu_debug_excp_handler, diff --git a/target/rx/cpu.c b/target/rx/cpu.c index ea58a804154..9b8473d71cf 100644 --- a/target/rx/cpu.c +++ b/target/rx/cpu.c @@ -229,7 +229,7 @@ static const TCGCPUOps rx_tcg_ops =3D { .cpu_exec_interrupt =3D rx_cpu_exec_interrupt, .cpu_exec_halt =3D rx_cpu_has_work, .cpu_exec_reset =3D cpu_reset, - .do_interrupt_locked =3D rx_cpu_do_interrupt, + .do_interrupt =3D rx_cpu_do_interrupt, }; =20 static void rx_cpu_class_init(ObjectClass *klass, const void *data) diff --git a/target/rx/helper.c b/target/rx/helper.c index 0f99279bbaa..784193ebd40 100644 --- a/target/rx/helper.c +++ b/target/rx/helper.c @@ -18,6 +18,7 @@ =20 #include "qemu/osdep.h" #include "qemu/bitops.h" +#include "qemu/main-loop.h" #include "cpu.h" #include "exec/log.h" #include "accel/tcg/cpu-ldst.h" @@ -47,6 +48,8 @@ void rx_cpu_do_interrupt(CPUState *cs) uint32_t save_psw; uint64_t last_pc =3D env->pc; =20 + BQL_LOCK_GUARD(); + env->in_sleep =3D 0; =20 if (env->psw_u) { diff --git a/target/s390x/cpu.c b/target/s390x/cpu.c index 053eafaa842..7c725b8a4a4 100644 --- a/target/s390x/cpu.c +++ b/target/s390x/cpu.c @@ -386,7 +386,7 @@ static const TCGCPUOps s390_tcg_ops =3D { .cpu_exec_interrupt =3D s390_cpu_exec_interrupt, .cpu_exec_halt =3D s390_cpu_has_work, .cpu_exec_reset =3D cpu_reset, - .do_interrupt_locked =3D s390_cpu_do_interrupt, + .do_interrupt =3D s390_cpu_do_interrupt, .debug_excp_handler =3D s390x_cpu_debug_excp_handler, .do_unaligned_access =3D s390x_cpu_do_unaligned_access, #endif /* !CONFIG_USER_ONLY */ diff --git a/target/s390x/tcg/excp_helper.c b/target/s390x/tcg/excp_helper.c index 01c0d77b13b..d39d41bfcf3 100644 --- a/target/s390x/tcg/excp_helper.c +++ b/target/s390x/tcg/excp_helper.c @@ -28,6 +28,7 @@ #include "s390x-internal.h" #include "tcg_s390x.h" #ifndef CONFIG_USER_ONLY +#include "qemu/main-loop.h" #include "qemu/timer.h" #include "system/address-spaces.h" #include "system/memory.h" @@ -503,6 +504,8 @@ void s390_cpu_do_interrupt(CPUState *cs) bool stopped =3D false; uint64_t last_pc =3D cpu->env.psw.addr; =20 + BQL_LOCK_GUARD(); + qemu_log_mask(CPU_LOG_INT, "%s: %d at psw=3D%" PRIx64 ":%" PRIx64 "\n", __func__, cs->exception_index, env->psw.mask, env->psw.a= ddr); =20 diff --git a/target/sh4/cpu.c b/target/sh4/cpu.c index fdab5106b27..3bbdee301d5 100644 --- a/target/sh4/cpu.c +++ b/target/sh4/cpu.c @@ -314,7 +314,7 @@ static const TCGCPUOps superh_tcg_ops =3D { .cpu_exec_interrupt =3D superh_cpu_exec_interrupt, .cpu_exec_halt =3D superh_cpu_has_work, .cpu_exec_reset =3D cpu_reset, - .do_interrupt_locked =3D superh_cpu_do_interrupt, + .do_interrupt =3D superh_cpu_do_interrupt, .do_unaligned_access =3D superh_cpu_do_unaligned_access, .io_recompile_replay_branch =3D superh_io_recompile_replay_branch, #endif /* !CONFIG_USER_ONLY */ diff --git a/target/sh4/helper.c b/target/sh4/helper.c index b6b057f104b..1d854262d13 100644 --- a/target/sh4/helper.c +++ b/target/sh4/helper.c @@ -28,6 +28,7 @@ #include "qemu/plugin.h" =20 #if !defined(CONFIG_USER_ONLY) +#include "qemu/main-loop.h" #include "hw/sh4/sh_intc.h" #include "system/runstate.h" #endif @@ -64,6 +65,8 @@ void superh_cpu_do_interrupt(CPUState *cs) int do_exp, irq_vector =3D cs->exception_index; uint64_t last_pc =3D env->pc; =20 + BQL_LOCK_GUARD(); + /* prioritize exceptions over interrupts */ =20 do_exp =3D cs->exception_index !=3D -1; diff --git a/target/sparc/cpu.c b/target/sparc/cpu.c index 23fd0a5e3fe..ae9bdca9df8 100644 --- a/target/sparc/cpu.c +++ b/target/sparc/cpu.c @@ -1076,7 +1076,7 @@ static const TCGCPUOps sparc_tcg_ops =3D { .cpu_exec_interrupt =3D sparc_cpu_exec_interrupt, .cpu_exec_halt =3D sparc_cpu_has_work, .cpu_exec_reset =3D cpu_reset, - .do_interrupt_locked =3D sparc_cpu_do_interrupt, + .do_interrupt =3D sparc_cpu_do_interrupt, .do_transaction_failed =3D sparc_cpu_do_transaction_failed, .do_unaligned_access =3D sparc_cpu_do_unaligned_access, #endif /* !CONFIG_USER_ONLY */ diff --git a/target/sparc/int32_helper.c b/target/sparc/int32_helper.c index d6bb3fa1e54..3eea824c9a3 100644 --- a/target/sparc/int32_helper.c +++ b/target/sparc/int32_helper.c @@ -105,6 +105,8 @@ void sparc_cpu_do_interrupt(CPUState *cs) CPUSPARCState *env =3D cpu_env(cs); int cwp, intno =3D cs->exception_index; =20 + BQL_LOCK_GUARD(); + if (qemu_loglevel_mask(CPU_LOG_INT)) { static int count; const char *name; diff --git a/target/sparc/int64_helper.c b/target/sparc/int64_helper.c index 60ab0478fc6..e26d3ac5142 100644 --- a/target/sparc/int64_helper.c +++ b/target/sparc/int64_helper.c @@ -138,6 +138,8 @@ void sparc_cpu_do_interrupt(CPUState *cs) int intno =3D cs->exception_index; trap_state *tsptr; =20 + BQL_LOCK_GUARD(); + #ifdef DEBUG_PCALL if (qemu_loglevel_mask(CPU_LOG_INT)) { static int count; diff --git a/target/xtensa/cpu.c b/target/xtensa/cpu.c index e980a13eadd..7c25b9ab707 100644 --- a/target/xtensa/cpu.c +++ b/target/xtensa/cpu.c @@ -327,7 +327,7 @@ static const TCGCPUOps xtensa_tcg_ops =3D { .cpu_exec_interrupt =3D xtensa_cpu_exec_interrupt, .cpu_exec_halt =3D xtensa_cpu_has_work, .cpu_exec_reset =3D cpu_reset, - .do_interrupt_locked =3D xtensa_cpu_do_interrupt, + .do_interrupt =3D xtensa_cpu_do_interrupt, .do_transaction_failed =3D xtensa_cpu_do_transaction_failed, .do_unaligned_access =3D xtensa_cpu_do_unaligned_access, .debug_check_breakpoint =3D xtensa_debug_check_breakpoint, diff --git a/target/xtensa/exc_helper.c b/target/xtensa/exc_helper.c index 7cb67d179a8..81b303a35f3 100644 --- a/target/xtensa/exc_helper.c +++ b/target/xtensa/exc_helper.c @@ -208,6 +208,8 @@ void xtensa_cpu_do_interrupt(CPUState *cs) { CPUXtensaState *env =3D cpu_env(cs); =20 + BQL_LOCK_GUARD(); + if (cs->exception_index =3D=3D EXC_IRQ) { uint64_t last_pc =3D env->pc; =20 --=20 2.53.0 From nobody Sat Sep 26 22:14:21 2026 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=reject dis=none) header.from=oss.qualcomm.com ARC-Seal: i=1; a=rsa-sha256; t=1788362646; cv=none; d=zohomail.com; s=zohoarc; b=NuHtpmLwyV+SLdU1DeIb5r6h8Yqtsju0o5/pDIEKl8kYR+t73c96ZWw4yq1UIHx0NXXrfnwcqscSeJnjhbd/C7wRyO5En1GnDIqmbK9E73fnOREfwGlF2ca+1DSO/WJSd3M+mcQ6MwZDwXghG4MuZi5379T5592b8HM1DE36Ry0= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1788362646; h=Content-Type: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=PcKu3i44ri1OZFtnx4XTf2WZmuF2eslyvAy1y2DWDCw=; b=i49qcfgVZVPTTW5vHYt0Ry0Gyn6A4NrwpzyeBCeaoGp3NqABYk/kM50gqVMz4x0643qdPcYWfXDArz8MbmA7XReUos3T/9DaGukOtjwsvDIxlxJo7O/r/DBYsoH4tAdxKB1lZz3iOHU76GO9zpMllR1SrsJNrxc4lnMX4QECUhw= 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=reject dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 178836264667754.40332947667764; Wed, 2 Sep 2026 08:24:06 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1x1mnL-0005lL-Fc; Wed, 02 Sep 2026 11:22:35 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1x1mnF-0005ZE-QH for qemu-devel@nongnu.org; Wed, 02 Sep 2026 11:22:29 -0400 Received: from mx0a-0031df01.pphosted.com ([205.220.168.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1x1mnC-0000QF-M8 for qemu-devel@nongnu.org; Wed, 02 Sep 2026 11:22:29 -0400 Received: from pps.filterd (m0279863.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 682CR7bl1549918 for ; Wed, 2 Sep 2026 15:22:15 GMT Received: from mail-ua1-f72.google.com (mail-ua1-f72.google.com [209.85.222.72]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4gej2c9533-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Wed, 02 Sep 2026 15:22:15 +0000 (GMT) Received: by mail-ua1-f72.google.com with SMTP id a1e0cc1a2514c-9806e283b0eso478804241.3 for ; Wed, 02 Sep 2026 08:22:15 -0700 (PDT) Received: from localhost.localdomain (pmd666.hd.free.fr. [88.187.86.199]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-48448e72d2asm6668125f8f.8.2026.09.02.08.22.11 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Wed, 02 Sep 2026 08:22:12 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= PcKu3i44ri1OZFtnx4XTf2WZmuF2eslyvAy1y2DWDCw=; b=auO83S/jtBNSjXby P6vGB4nV8V+kM3i/suLTlNTIYeBRVdvmQefRefisPKUwhvK6RY1OKqRUu9OXlHs9 pTdNPL8ldigIfVa0DsriYiB9ty3TJ98m4ifW9p2kicq8GqGfx4atXzD5izEqPrxU HHjUBsE1FPqdUFeLASIR6+VGSCa4fWVKD39/mImS/2abGu7vV8yFIohip18IZZpx DYj7+NjkG34fPFmIRwNBkr5+qFwowmqDNVYmdKwOGJv4YpRy1o90Ig8BW2gXxs5x +FTe1JVdRV+9SfJKp1u41AnEiJB4+gwv1uv5trhFLKZgBClSAJjCVj9JSkZlI0Fb mhmR3w== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1788362534; x=1788967334; darn=nongnu.org; h=content-transfer-encoding:content-type:mime-version:references :in-reply-to:message-id:date:subject:cc:to:from:from:to:cc:subject :date:message-id:reply-to:content-type; bh=PcKu3i44ri1OZFtnx4XTf2WZmuF2eslyvAy1y2DWDCw=; b=CAgOD0MIMmZGEe+bHWrZgHUqi9Go2n8CbmEu9XNwz3WxU3Xo3nN67ac+d1GYuRBktN 9tWx0UE/wJqYxRmhnK1JZ0xvNAf+Jfkw8MuAoKJ9k6+j84M0eW8vdiKiDc2xqJUagTXO +33POnl7lHoQAXiXpZYy+xBIZD5ggEbSzYJEiKVDunnuQg6QgzwbJfPMRBLUlve17tGr 3JA3rAFIIoyEieVHJz4B9DHBnLIlFT45xbVAXNtUY6zjSc6hFJvK0Rd3sUWQ+2FulJVN Vd2pYBH4l/KMaOt5TMffabntWhNS7n0SVzzN2TE2A7kVKClKFkkolygYdOiX89wLjhEI 5NPA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1788362534; x=1788967334; h=content-transfer-encoding:content-type:mime-version:references :in-reply-to:message-id:date:subject:cc:to:from:x-gm-gg :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to :content-type; bh=PcKu3i44ri1OZFtnx4XTf2WZmuF2eslyvAy1y2DWDCw=; b=kCnd8WZViGg27aFGjhXHekB/f0cmLiv9oBHCxaYs+kI/kYwMLm13ygBMBQsa/X3UMl RdOZ5PzcdAlU7vdK7tqXvIAk6devBHovRpCB5G3M/eaueZZHc23RR2bd34nxD3Xg8otG 5yI7nbTHrzuJEWOuxoExZGnJGrx3Cw+iSL/rFmT/NI6eNIG/7731DFUnAlzXnCTOfMEe +KG3bXkmkN8mxDJ7UtGFzOCspcV7gYJib692lhr2+C16UJzSRLlnW/ISHnpVL9ULurRj rwJqdayHmrdcCQTd6fDVHa/bz9EQ/qDyxQeEDr7I8Y+VIgQkcusxB4b0Rwsyzr7VSr/m EFQw== X-Gm-Message-State: AFuF++lE28QDuLgY4AX3LrU2OEXym3caM8spdnPbkcbT09BXyj24fMjf IWq0qfYe91ChGp5NJ0h8I3wXyvO8/c3vdf10Gro9Chrnj6D3dDMeUekeZE5A+EUoq58eHXUz+Te wWO5o2mWH0p/sC89fFYk+aCyeErl3ecNG+OnYDH3nc8bqrd+MTPuRDkoDG15TZV+huA== X-Gm-Gg: AYBFou3qPIOgxRCL8eu/1WGGO/t5KaM0K6voyLdjacyXCkZXdwPsqdx+JErQUpjyHd+ kyhCnTf3lgBNdKDjTiNsl8u+tx7o2ehSocbukeZw7QmtWjD4oP5aA6T6ZY4xKG2TmKuL5dlKa2o F85vEHQAyKSSVxcbbELwMftFT6BEF7dazVP9s9sM9Vd4kQE2Uqkufsie2tFR3RNBJ+KWcpaii+r N/m+tw8cwjHRTn3FuTq+H8ib20XpGnW5TQ6DAfWx62ndoHeL+c1b8Y9C5L6yQ9wtGXNOwh8/fzq lwwlZQqKqBSotEoghgwNsnMDFGAxnrJ3qDspuDZrTLvJsNR07sMSWbQeJO1p11cfgwlUlPq4E/E YHoJnCRkOxNWRVZiGu+/l69Gk2VAvU6eOlEnYM1j6 X-Received: by 2002:a05:6102:2c03:b0:785:8f76:654d with SMTP id ada2fe7eead31-78a1f4c036amr2122341137.13.1788362534149; Wed, 02 Sep 2026 08:22:14 -0700 (PDT) X-Received: by 2002:a05:6102:2c03:b0:785:8f76:654d with SMTP id ada2fe7eead31-78a1f4c036amr2122219137.13.1788362532902; Wed, 02 Sep 2026 08:22:12 -0700 (PDT) From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Cc: Mark Cave-Ayland , Peter Maydell , Paolo Bonzini , qemu-ppc@nongnu.org, qemu-s390x@nongnu.org, Richard Henderson , Pierrick Bouvier , qemu-riscv@nongnu.org, qemu-arm@nongnu.org, =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Subject: [PATCH v3 11/11] accel/tcg: Remove do_interrupt_locked() callback Date: Wed, 2 Sep 2026 17:20:42 +0200 Message-ID: <20260902152044.31291-12-philmd@oss.qualcomm.com> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260902152044.31291-1-philmd@oss.qualcomm.com> References: <20260902152044.31291-1-philmd@oss.qualcomm.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-Proofpoint-Spam-Info: AW1haW4tMjYwOTAyMDEzNiBTYWx0ZWRfX1/ky+8Ml7+Q/ G+EBfn4qvvFm4bqrv1+5QsFElQEfgYIA3jegYXk2x59gZcBzfHChmSuUOaE604nBK92jZrmFa+c kun228UIQAA1rUZj15AhWllUDJNFw+c= X-Authority-Analysis: v=2.4 cv=G+ss1dk5 c=1 sm=1 tr=0 ts=6a983f27 cx=c_pps a=ULNsgckmlI/WJG3HAyAuOQ==:117 a=4s3hRJSeHn4rkQlkrse1kQ==:17 a=IkcTkHD0fZMA:10 a=VdqzKS8jKosA:10 a=M51BFTxLslgA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=yOCtJkima9RkubShWh1s:22 a=EUspDBNiAAAA:8 a=tCPwWEVRRVLTMAjpPnAA:9 a=3ZKOabzyN94A:10 a=QEXdDO2ut3YA:10 a=1WsBpfsz9X-RYQiigVTh:22 X-Proofpoint-GUID: EjSKEjusdH33JAnjbtyXp_NTqHRS65v5 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwOTAyMDEzNiBTYWx0ZWRfXypbS2Y7geZsN nB9lRWvL0wLzmeb1OpAVkmeWvWzdw1SdIskLSsDNAkeLJLAXPW4Y3mZR20yAeXfrVCVMQdS8LrS 8g5t2Xc7LfdvLdEvzco5yji8llFyJ6WJOHOTcSFzjsclqIZySenxfhDR5LNiYPliJ+7Wa4FHmUL AOlTi6tu9qFcwsuvXbMHxJiTBgud19Zos25/kFBGBgNmeXfDP1p4QPQiqPccolnYpCYGodV1V9T Y4+K5SGanRMXQsmeX+KF4605cN6yqTMvmAgYTy1m4gIR3YGIy2ls3thyhJco3GDp4pZ/eDXTqMn lLMGq3Ec8slHwlwfaTl9RY3V1BTIee+kzOE9WLhX2sWREkyLg9X7qV9RWkRlJlkGBzgl9/ildaq GzBuoWkbVwh/QlmkihA/bBjA29MGfUhm42kOGPrSXVYOSj5aZ5ZQjWRXkWgjum7g5T9Rgh3zswd wO4C669l+46bacYcG9w== X-Proofpoint-ORIG-GUID: EjSKEjusdH33JAnjbtyXp_NTqHRS65v5 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1176,Hydra:6.1.134,FMLib:17.12.100.49 definitions=2026-09-02_03,2026-09-01_03,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 spamscore=0 priorityscore=1501 malwarescore=0 suspectscore=0 bulkscore=0 impostorscore=0 lowpriorityscore=0 phishscore=0 adultscore=0 clxscore=1015 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2609020136 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=lists1p.gnu.org; Received-SPF: pass client-ip=205.220.168.131; envelope-from=philmd@oss.qualcomm.com; helo=mx0a-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 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_LOW=-0.7, 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: qemu development 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 @qualcomm.com) X-ZM-MESSAGEID: 1788362649043158500 All targets now manage their own BQL locking via do_interrupt(), making the do_interrupt_locked() hook unnecessary. Remove it to simplify the TCGCPUOps interface. Signed-off-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: Richard Henderson --- include/accel/tcg/cpu-ops.h | 12 ------------ accel/tcg/cpu-exec.c | 10 ++-------- 2 files changed, 2 insertions(+), 20 deletions(-) diff --git a/include/accel/tcg/cpu-ops.h b/include/accel/tcg/cpu-ops.h index e2e67f796f6..89b3a11fd6a 100644 --- a/include/accel/tcg/cpu-ops.h +++ b/include/accel/tcg/cpu-ops.h @@ -183,18 +183,6 @@ struct TCGCPUOps { */ void (*do_interrupt)(CPUState *cpu); =20 - /** - * @do_interrupt_locked: Deliver a pending exception/interrupt to the = CPU - * @cpu: cpu context - * - * Called when cs->exception_index contains an exception code to deliv= er. - * Updates CPU architectural state (usually before executing a guest - * exception handler). - * - * Called from cpu_handle_exception() with BQL held. - */ - void (*do_interrupt_locked)(CPUState *cpu); - /** * @cpu_exec_interrupt: Callback for processing target-specific interr= upts * @cpu: cpu context diff --git a/accel/tcg/cpu-exec.c b/accel/tcg/cpu-exec.c index 4deb7e00571..5d4b26357ff 100644 --- a/accel/tcg/cpu-exec.c +++ b/accel/tcg/cpu-exec.c @@ -727,13 +727,7 @@ static inline bool cpu_handle_exception(CPUState *cpu,= int *ret) if (replay_exception()) { const TCGCPUOps *tcg_ops =3D cpu->cc->tcg_ops; =20 - if (tcg_ops->do_interrupt) { - tcg_ops->do_interrupt(cpu); - } else { - bql_lock(); - tcg_ops->do_interrupt_locked(cpu); - bql_unlock(); - } + tcg_ops->do_interrupt(cpu); cpu->exception_index =3D -1; =20 if (unlikely(cpu_single_stepping(cpu))) { @@ -1063,7 +1057,7 @@ bool tcg_exec_realizefn(CPUState *cpu, Error **errp) assert(tcg_ops->cpu_exec_halt); assert(tcg_ops->cpu_exec_interrupt); assert(tcg_ops->cpu_exec_reset); - assert(tcg_ops->do_interrupt || tcg_ops->do_interrupt_locked); + assert(tcg_ops->do_interrupt); assert(tcg_ops->pointer_wrap); #endif /* !CONFIG_USER_ONLY */ assert(tcg_ops->translate_code); --=20 2.53.0