From nobody Sat Sep 26 20:01:25 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=1790095992; cv=none; d=zohomail.com; s=zohoarc; b=gi4ZhQ3f83TdOBcLfR0iSI3CKoL9oFMPpgulvp8T5FEYx4U2TrJrbYY7Gc4Q2xdyBDOlCZTnRtMxt8Eb01A8Qh/FicDgY+7ILdPauWPiOsM0MTN5MPLIb/8fHlsOKiUFub+Efw2wBl81RoFzA33OcDJssRIcMsAzIkzem8LdkgE= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1790095992; 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:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=bAjPGKjObvrHSu8DXVRbAWjcrM6pRucHJzyibk07IRk=; b=c6wK2Cu9EpTxSAWHqzcR//8mL974sLKZYNphUt5UpG36ZRxVrgiZt8X4jw986A+axNSxxNXt3SIlXDDAiJQ1XwHqrYC6yuazO8Dy7wm3AuNbw5Stl+Nx02KuvrSo9244b7XKLm8UFCo/mSeWCPS/X2278WTRlVhiIdwVlNWTaIg= 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 1790095992415306.3506680353988; Tue, 22 Sep 2026 09:53:12 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1x93gn-0003aJ-ES; Tue, 22 Sep 2026 12:49:53 -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 1x93gj-0003YH-T0 for qemu-devel@nongnu.org; Tue, 22 Sep 2026 12:49:50 -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 1x93gi-0002DO-77 for qemu-devel@nongnu.org; Tue, 22 Sep 2026 12:49:49 -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 68MEjKQW318032 for ; Tue, 22 Sep 2026 16:49:47 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 4gupbqj7ct-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Tue, 22 Sep 2026 16:49:47 +0000 (GMT) Received: by mail-vs1-f72.google.com with SMTP id ada2fe7eead31-7915a83539fso709137.1 for ; Tue, 22 Sep 2026 09:49:47 -0700 (PDT) Received: from localhost.localdomain (pmd666.hd.free.fr. [88.187.86.199]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-49fdaada7b6sm42135825e9.2.2026.09.22.09.49.44 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Tue, 22 Sep 2026 09:49:45 -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= bAjPGKjObvrHSu8DXVRbAWjcrM6pRucHJzyibk07IRk=; b=LVB/4KqkPFulLrhe LssceO+TXm/ved14iDPcs5hb0GA2W4pS+a5HNm95dRjGTJrqWS7FQ7Yw8M1iWIOX Dgy36zMixj79zpuC3r7RiecXQpuJpf1pitdbZ0js89v4gc/ur05WUFxZ2L5gyb4e hsvQw/CyYDGcHNxxRBBsDuHlNkbjlSZvH/CYsGlkOxPFPwQAdyBl4JJCDUXJnRZW LVF7+zQ4S86eXkh9St1X/NfDsrO9yLXUgpP0ktYbPmLQAR15F6BkUBTneGY/2E9S Lff5GbuVTNXjyJKqwQ/Ca+dBRC9m1eLa8cgsWKB0edi5mgSp1pCe9L/0S8yQOi9l ixmxGw== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1790095787; x=1790700587; 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=bAjPGKjObvrHSu8DXVRbAWjcrM6pRucHJzyibk07IRk=; b=ebIy20IN8zKKCd7jnARM7CLquMDBR8lykS9gC4zVMu5JJ739R/I9gwHp/NZvljsKdY sHbTgiGMMdd9OkkZREW1m7RoKk4l3b1AWxoYiM8MKW6y0elR7h1eFKEZE8H7Xb93MR3X +tzcs0Ybjl6ex+HUWZm4wezVs5RUKhRNrQhTUwVwMCC9e7za46OD7bVwwWfvub0iXUEX ij55RF/iDsPktZiQSLh3ZPfj+EZU6NHC2eqBcNOViIEJmi7rsbFm9LXLmqCyTt2XYbv3 5KXwKalbH85KzFx1blGXo5Fh2ylDK32TZnTYTFAs/gTupJIcpfJaTKAaqDN0T/M4rJdP 5scg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20260707; t=1790095787; x=1790700587; 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=bAjPGKjObvrHSu8DXVRbAWjcrM6pRucHJzyibk07IRk=; b=jTkZ60dFfBmLEOPUgpr9buptO7f74xzdLpKte6rqjRIuu514oCJ1cCc1bMWhVinWwh aHx5ZHzQc3fSkxx19V5i+BYoz0hG0JGlogr+nz43S3fq28OSbfNo80dKvUrejmpmhP3I HQVukin+qQIqxM698l5eJ6Zh3+/MiK35UIAfun3Q60ebaWArspxqzZk2EXoFnxTJ9WuJ S/ajGxYN2JwQuxYDGKnQ3A9gDDW4RWkRUazdu9PAmdsvDt9pSaIo37IgIY2r+Me07VBA Gv7ZZuPuh1Y/20wywmnEQpFG5VVAwie1hqMnEDm7yNNtWNexRyc3hfffnXKi4/1MPv7G J0vg== X-Gm-Message-State: AFuF++mRV/w3UJRQXFBAJgCX2+wlYtmSCTDouzAHkI6dto6IhumP/Bmw fvbYjcqlaCPWJnZtsS5DNQhHz23yKXJ4tY1yYDgzpTb9H26f6bySrl46bn5R9VWtxx5AkeGfn7O u9VP0fPjiAjid38gbxN+BTh26yuRiBDqZeV0/0bN9sWSinPmojkHq7UtIUGM72jtEfw== X-Gm-Gg: AYBFou2eUm6EThu4gWC6mn+8JqK/XKmYdtnCP5stG5FzgnxZkg4c73EFj0cWTvVhnqR vXA49er99xHyebsuqdE6leadSMSLm3RHOykusL46SQiRlQ5zbd491RK4Ik0JNNhcezrbpWAnbND gaz6teW+h5Pc4ohl3AIpvQY/Bon/DjmcLpxJn2RYDLebHJJyE4BPb+aIi8D0XDyGP1p5YLV6P58 dQQ3XOV/ZgqsqsNM/SsfTRP3GKFYOtmAk6UPesgrnFz2i1X1KZh6rt9yAsu2jWBL4nsLolZ21OR rXd6Oqp+JgHtM6mVfNtvsoTS3BkVMG6ytTqI+tBUHqZJQ6NaXWAEA032vp5cuQxwKA0A0iT6Mz7 /8IR8f/Dazdt5JqHTmVq9k75q6yiBzKZYp3tw/q8m X-Received: by 2002:a05:6102:2922:b0:7a3:4e75:d1f0 with SMTP id ada2fe7eead31-7a55d38b2b7mr9259945137.23.1790095786637; Tue, 22 Sep 2026 09:49:46 -0700 (PDT) X-Received: by 2002:a05:6102:2922:b0:7a3:4e75:d1f0 with SMTP id ada2fe7eead31-7a55d38b2b7mr9259874137.23.1790095786038; Tue, 22 Sep 2026 09:49:46 -0700 (PDT) From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Cc: qemu-riscv@nongnu.org, Peter Maydell , qemu-ppc@nongnu.org, Paolo Bonzini , qemu-s390x@nongnu.org, Richard Henderson , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Subject: [PATCH v2 01/17] system: Document has_work() synchronization requirements Date: Tue, 22 Sep 2026 18:49:19 +0200 Message-ID: <20260922164936.15189-2-philmd@oss.qualcomm.com> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260922164936.15189-1-philmd@oss.qualcomm.com> References: <20260922164936.15189-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: AW1haW4tMjYwOTIyMDI0NiBTYWx0ZWRfX/zcN6CMdht30 6V51lSEzjKON12dwkOizf+P/wUeR/NcC46Ze+2Ozc1adfgw+Ehjh9i0FDEH+9Qe5iUfH+bDquX2 2a6LolbHjF8PcrtPnzKzSB+qE8s+STNNtWIvsXKqJgrBSmfNzFimpW2QKwu/tABbZLzWY61CAg+ 2SrUMu3JcOVYOBy9U1sKad8sxyRyrbBWmiffAGGEjbywdemYHPR4VECGNba+lpo8jMxWrv8fx9c xjxAd2zK0OMjqs9KOoHcOWIv9DxKzan7/++SoT0qT1X84ysNEGH5vXyfyA2TClcEWpyeBHawlkL pV5z/g1g4l+oqM/A0xTYlIAFhLoN+6MUzUeYm4Mo1o3uvvmljIx/r0WJ3LsMTkFashAj8conu27 bt5K7+J3yj6ldYBU/kNPypgvoWR5HYFLINBrZefanMrponEWKGmbykNpIYXXKTAqXphzfLpBX52 9dhntHFOb5YQNJOSETw== X-Authority-Analysis: v=2.4 cv=FdaiV5+6 c=1 sm=1 tr=0 ts=6ab2b1ab 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=ZpdpYltYx_vBUK5n70dp:22 a=KKAkSRfTAAAA:8 a=EUspDBNiAAAA:8 a=XUsUnerbLd2lX0N3J0UA:9 a=3ZKOabzyN94A:10 a=QEXdDO2ut3YA:10 a=-aSRE8QhW-JAV6biHavz:22 a=cvBusfyB2V15izCimMoJ:22 X-Proofpoint-ORIG-GUID: C7PHXEZm0lf8U9TGmfx_fADLeZ-XuMZg X-Proofpoint-GUID: C7PHXEZm0lf8U9TGmfx_fADLeZ-XuMZg X-Proofpoint-Spam-Info: AW1haW4tMjYwOTIyMDI0NiBTYWx0ZWRfX+ZchzXAj+taH vN7vpXO4WokAZhpU1Frk9RN9WIJeI0uf8UVN2FstPY1b5rFgC5ELw+7ya2w8tNdpXcofUiTOteh k/k1XvxqOtO6wE1yeAyEZLJBL+ZVrZg= 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-22_02,2026-09-21_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 suspectscore=0 adultscore=0 bulkscore=0 lowpriorityscore=0 phishscore=0 malwarescore=0 spamscore=0 priorityscore=1501 clxscore=1015 impostorscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2609040000 definitions=main-2609220246 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: 1790095992708158500 Document that has_work() may be called with or without the BQL. Require implementations to remain idempotent and avoid consuming work, and to synchronize state shared with other threads without acquiring the BQL unconditionally. Suggested-by: Peter Maydell Signed-off-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: Richard Henderson --- include/hw/core/sysemu-cpu-ops.h | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/include/hw/core/sysemu-cpu-ops.h b/include/hw/core/sysemu-cpu-= ops.h index e56eea18b78..d125540262d 100644 --- a/include/hw/core/sysemu-cpu-ops.h +++ b/include/hw/core/sysemu-cpu-ops.h @@ -19,8 +19,10 @@ typedef struct SysemuCPUOps { /** * @has_work: Callback for checking if there is work to do. * - * This function should be idempotent (i.e. not change state) as - * it will likely be queried multiple times before a CPU resumes. + * This callback may be called with or without the BQL. It must be + * idempotent, must not consume work, and must not assume that the BQL + * is held or acquire it unconditionally. State shared with other + * threads must use appropriate synchronization. */ bool (*has_work)(CPUState *cpu); /* MANDATORY NON-NULL */ /** --=20 2.53.0 From nobody Sat Sep 26 20:01:25 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=1790095885; cv=none; d=zohomail.com; s=zohoarc; b=CetfUn3NNRSY3Md0kqZ2LkYZ4xFVjA3gR3FAfooiaSrEaR6TDvyCE3QVxA5Bdsp9W2mrQu37jtdHmcrlZRr/jc712QutIFu1Aanag42+pn0vXhHIgGK+NuZv5TItvxFqx//1kLmfgQ6GmxUy+WewGMBUgJY9zhljjPimFsl5zQU= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1790095885; 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:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=lESZqux2tT8zaKL4sOF2SXzC6djv6bY/JcFrRBVPU1Q=; b=m+sQpDXOiHE6BSKQpVzSrwanTsz9sPghzoYx4Q55PkTe3zHWHDH0OQPfZ7HuspWVbRAECOBqRKyeXpOpmA2nj5u7D2KXHkEKCzGkcWfS/+T0vuoSW8mXWxrT7eaw+bzAKqm0upZ6aTGw1+6HmIz5DP6FhsJR9DmzJFqcAROlrw8= 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 1790095885319314.76628357482593; Tue, 22 Sep 2026 09:51:25 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1x93gu-0003fL-P7; Tue, 22 Sep 2026 12:50:00 -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 1x93gs-0003eB-VY for qemu-devel@nongnu.org; Tue, 22 Sep 2026 12:49:59 -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 1x93gp-0002EG-Tw for qemu-devel@nongnu.org; Tue, 22 Sep 2026 12:49:58 -0400 Received: from pps.filterd (m0279869.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 68MEjdXa898318 for ; Tue, 22 Sep 2026 16:49:54 GMT Received: from mail-ua1-f70.google.com (mail-ua1-f70.google.com [209.85.222.70]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4gueybkvre-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Tue, 22 Sep 2026 16:49:54 +0000 (GMT) Received: by mail-ua1-f70.google.com with SMTP id a1e0cc1a2514c-97cb18cfa04so28936241.0 for ; Tue, 22 Sep 2026 09:49:54 -0700 (PDT) Received: from localhost.localdomain (pmd666.hd.free.fr. [88.187.86.199]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-49fdaa9dbd6sm69580415e9.2.2026.09.22.09.49.52 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Tue, 22 Sep 2026 09:49:52 -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= lESZqux2tT8zaKL4sOF2SXzC6djv6bY/JcFrRBVPU1Q=; b=UxntCIoChXyNmnvh NRfBjwDIt8pLkxx5F8hjl3dsEmmo0QxZKbnm/oUwOgiAohfteDu0VqmgyLmmYn7v H7vf0ihw5zh49XlPQj+A4G2g7P9VuUQhNPvv4okOOEZ8Iux90gkocqqliHrw8rnS PA46Fv7pQPz51YXn445Q5wpWSvMSimTwzYZ1cjgqdpTDgi26mUTwKoKXqCSJpznE urx2dcc5Z2KSzCb9FIJTPkDC0bxLpKVT282BnLhMgT9mh6zcr5yxCFkG/ki7kkcF LIzI16Zj9A0lP0NUR1vKO7nxt52ma2FB7Ln7G+0Zigdz8vdv9j+eO3980vSZR9F/ 5fz1Dg== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1790095794; x=1790700594; 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=lESZqux2tT8zaKL4sOF2SXzC6djv6bY/JcFrRBVPU1Q=; b=Hau8qiP+nACFTSGaiZA1P6/5SHFF3PxuTjArOiRo/iZBDyOZdsbE8c8n3X5Z6QfGIh Tex0JvPSPS/d3PhAmE1H7PHdTqlbACk3IMshOVdfgKo8gPayaDqhpGzNhfHuTr3FZXLW /tUSm/wr/gGkppOjPxwZkbW4kYRVuZwKbxtunWKzQ2GN/wuf3trHhMvq0pStOpEwBY3B CTPigoaoWds2mBSU2hAeIvoGYEGnXjfIyEk4uJjpp6/MuuClogMUSRkqNTsvyRxGnfrB Ln1KR+NILUcjxJ48FKBe5lxQDiOaG+rNlWd6FZOUIFwDInu5cl9EYUQ33yA9plkW6vJh qZDA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20260707; t=1790095794; x=1790700594; 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=lESZqux2tT8zaKL4sOF2SXzC6djv6bY/JcFrRBVPU1Q=; b=yydmXZg8rhm0S/1QdGSjpSaWrkTV3Ab7aXvd5S0om51l6rZa+oPbx7e6dysrmR3fTa Z67FhZqZPxXcjY7xZlP94xYYhZLDjUmBL+kBcBKZYr6HSk2dI4ddFAL03xoZDiTervwd ukj1YmJcAB3HeiLigywj0EDfbd45ij/W1G/9aNkklrdet85tkfQWrkJ9xVtwP7il2PnP uG6I5Hd1FG1abVYgKmdI9qjgK+h4Eg2UNZT+v/2zUsgk3TI/fuhBG80jQpct2VDF0S2m nrnAoyAnjC/Epx/pN2sokRrixuJye+Q6T8A1bwePxXiIwpHw61NRm7K4D+MGxbs+g4vP v/6w== X-Gm-Message-State: AFuF++lz+kWDcnwN40LsKm6z4U/XkIxkQQuSZqGxIqmaS19q2KGOMzEN QbUsL72pvWCqar2XGcUpwT7kfgaGat0DU77fx0IIhYoKsnT5s20OewZMc3i2Z+8NxSsH4YUBStj vuSuoCUzMK2u512oP7opXJunayO5KTXj46dSekeiUqtLxMT7uS3+zl4AZsUxd5Gx8eQ== X-Gm-Gg: AYBFou1OJOKmayEKcScEQZB1iF/ys4mX6ITRX11dIBDSgfhox8/TKRdIZdIo9JfkDia 1EzqCAIcFbu70jE3QfyCd52EQZQD3Hbx/DZd9TJYhAHqIv9g1R7GLb7HtD0wA4TP00CDl4hOLp2 ejhTJehkj1Hy15ESN+dSVuMq7QVLLhBrcq3TYq6jZ8hGOA/f+3QW9kpeiqLwdXmQdabgxi75EGL X85ZYKpVbmqO2i72sl/7w9p2cCQC8W6eXC9Kyp7DrWkvdVvCElVmmqKWSEMihnOWlUxsYTZbd8L fbGQp9IFgSMbGik0Z0QnPu0WeqTA0VQV0WLeNgpwYMnZNcdBkznwx4qOAHIv4zsNWenEhyzu0Lf oCPQr6trRWY3CcAMBCdleymmF3/TpUYzGALJtYgSJ X-Received: by 2002:a05:6102:149a:b0:7a7:ce1f:6b93 with SMTP id ada2fe7eead31-7a7ce1f80e8mr7184928137.3.1790095793776; Tue, 22 Sep 2026 09:49:53 -0700 (PDT) X-Received: by 2002:a05:6102:149a:b0:7a7:ce1f:6b93 with SMTP id ada2fe7eead31-7a7ce1f80e8mr7184873137.3.1790095793383; Tue, 22 Sep 2026 09:49:53 -0700 (PDT) From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Cc: qemu-riscv@nongnu.org, Peter Maydell , qemu-ppc@nongnu.org, Paolo Bonzini , qemu-s390x@nongnu.org, Richard Henderson , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , Cornelia Huck , Eric Farman , Matthew Rosato , Ilya Leoshkevich , David Hildenbrand , Halil Pasic , Christian Borntraeger Subject: [PATCH v2 02/17] target/s390x: Use s390_cpu_get_state() consistently Date: Tue, 22 Sep 2026 18:49:20 +0200 Message-ID: <20260922164936.15189-3-philmd@oss.qualcomm.com> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260922164936.15189-1-philmd@oss.qualcomm.com> References: <20260922164936.15189-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=bP6Ds/+Z c=1 sm=1 tr=0 ts=6ab2b1b2 cx=c_pps a=R6oCqFB+Yf/t2GF8e0/dFg==: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=_glEPmIy2e8OvE2BGh3C:22 a=EUspDBNiAAAA:8 a=z94vmTcaOVfBjqTZL9kA:9 a=3ZKOabzyN94A:10 a=QEXdDO2ut3YA:10 a=TD8TdBvy0hsOASGTdmB-:22 X-Proofpoint-ORIG-GUID: XznxEPpbNLaRv9DF_ejCVeLHmtGAbPAO X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwOTIyMDI0NiBTYWx0ZWRfX+jhH821IRGy4 xMg+P8Pw6UTAblYbn3JpOAAZpVWldkasIHSq9Zut1n0A+wCrDOTA9nj1WPuxq3wXWGLYHMQdQpI CdIQswT7q2hTX0nfYhyGl7s2yhbkx3fTl1fuim+V2AfktflhWV6GXxLonbGH9qCfOQJ6g9cBWA6 fTlZwX9EiYr8seWT32nAGDVmUWRbJ98+LGxaYOWA7oDf2Xm3NxE7P12wgSoz7wWm4AwRtas6ZrH JIzTiHlJzbbpzAJlG9pKvNAfp/bcX/jjBafg0DI+T8Yy0x7BIu8+H7Rw3qGj0AaykSpdh78rRNw g+qpMW95RzTn+JiWl7GMroY421x+QYttztWqSAFI3kvS2eYkwtwmSyePJqgoA1+uPbxuYAz/oMN opW6ljrsHCqgLnMr2ELymEXgj7/Jt3o4Z9M+k5zWjRMJdWJa5MzlK1n4aYCFAVkUQYd0Qpfadib p/pSkSHI1pL9Rb7A4HQ== X-Proofpoint-Spam-Info: AW1haW4tMjYwOTIyMDI0NiBTYWx0ZWRfXyl/prW0YUxeb O0a6x6hc86gAHgVCC6ceiFj99oGBFf6K0qzfwqZqtDnwwGEZ3oaNU0zZROIuvlilV00VXS2u2T4 klB9WohZ8dPNP+/BDD67lcm/bqMwiDY= X-Proofpoint-GUID: XznxEPpbNLaRv9DF_ejCVeLHmtGAbPAO 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-22_02,2026-09-21_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 clxscore=1015 malwarescore=0 priorityscore=1501 spamscore=0 bulkscore=0 suspectscore=0 adultscore=0 phishscore=0 lowpriorityscore=0 impostorscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2609040000 definitions=main-2609220246 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: 1790095888348158501 Replace direct reads of env::cpu_state with s390_cpu_get_state(). This keeps CPU state reads consistent across CPU transitions. Signed-off-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: Eric Farman --- target/s390x/cpu-system.c | 2 +- target/s390x/cpu.c | 2 +- target/s390x/kvm/kvm.c | 2 +- target/s390x/machine.c | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/target/s390x/cpu-system.c b/target/s390x/cpu-system.c index cc9685221ae..c938c77d0bd 100644 --- a/target/s390x/cpu-system.c +++ b/target/s390x/cpu-system.c @@ -263,7 +263,7 @@ unsigned int s390_cpu_set_state(uint8_t cpu_state, S390= CPU *cpu) cpu_state); exit(1); } - if (kvm_enabled() && cpu->env.cpu_state !=3D cpu_state) { + if (kvm_enabled() && s390_cpu_get_state(cpu) !=3D cpu_state) { kvm_s390_set_cpu_state(cpu, cpu_state); } cpu->env.cpu_state =3D cpu_state; diff --git a/target/s390x/cpu.c b/target/s390x/cpu.c index 7c725b8a4a4..85afc5dec9a 100644 --- a/target/s390x/cpu.c +++ b/target/s390x/cpu.c @@ -130,7 +130,7 @@ static void s390_query_cpu_fast(CPUState *cpu, CpuInfoF= ast *value) { S390CPU *s390_cpu =3D S390_CPU(cpu); =20 - value->u.s390x.cpu_state =3D s390_cpu->env.cpu_state; + value->u.s390x.cpu_state =3D s390_cpu_get_state(s390_cpu); #if !defined(CONFIG_USER_ONLY) if (s390_has_topology()) { value->u.s390x.has_dedicated =3D true; diff --git a/target/s390x/kvm/kvm.c b/target/s390x/kvm/kvm.c index b34a9127141..6622886032e 100644 --- a/target/s390x/kvm/kvm.c +++ b/target/s390x/kvm/kvm.c @@ -407,7 +407,7 @@ int kvm_arch_init_vcpu(CPUState *cs) { unsigned int max_cpus =3D MACHINE(qdev_get_machine())->smp.max_cpus; S390CPU *cpu =3D S390_CPU(cs); - kvm_s390_set_cpu_state(cpu, cpu->env.cpu_state); + kvm_s390_set_cpu_state(cpu, s390_cpu_get_state(cpu)); cpu->irqstate =3D g_malloc0(VCPU_IRQ_BUF_SIZE(max_cpus)); return 0; } diff --git a/target/s390x/machine.c b/target/s390x/machine.c index f714834a98a..b44fba43f14 100644 --- a/target/s390x/machine.c +++ b/target/s390x/machine.c @@ -32,7 +32,7 @@ static int cpu_post_load(void *opaque, int version_id) * than via cpu_synchronize_state, we need update kvm here. */ if (kvm_enabled()) { - kvm_s390_set_cpu_state(cpu, cpu->env.cpu_state); + kvm_s390_set_cpu_state(cpu, s390_cpu_get_state(cpu)); return kvm_s390_vcpu_interrupt_post_load(cpu); } =20 --=20 2.53.0 From nobody Sat Sep 26 20:01:25 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=1790095947; cv=none; d=zohomail.com; s=zohoarc; b=MyymKu83tDIT2KYaYwC7GGTTS5fDkYhIUr146ucmrKmbFdKNsR/1AduoGYgzoBo3bIHksueRcMsHCCu2To5oeq/SJC6Sjm3GEjG1T0xbWX89DAfIXWzFWl4Wg+PQoFl+kkNUmehIeYNoUs9Qnkpt/US4LO0lQu3flbr2nnWK8Bo= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1790095947; 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:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=zB9WBbNZHM6m2phYTFE/2aurRaYcx6r0ryBqsnQvO6o=; b=f+XEQUZ9NVOK/5pz2sXoiBIyNmQPO7nvRlQ6+cGzP6laUi/lyxQKlrzlm2juelabtBJyO/APEjdn2xsyv9oYA/wN5YyBMhiUNudtGYRTbS2N/Jv76BC2IBL7H6awqShEgy9AEQltVI7ieR3zEL7xfc7pwbEpk8+g50cnPVlM6+Y= 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 179009594702631.417244940175124; Tue, 22 Sep 2026 09:52:27 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1x93h1-0003iB-6q; Tue, 22 Sep 2026 12:50:07 -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 1x93h0-0003hp-8l for qemu-devel@nongnu.org; Tue, 22 Sep 2026 12:50:06 -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 1x93gy-0002Ii-A2 for qemu-devel@nongnu.org; Tue, 22 Sep 2026 12:50:05 -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 68MEjNMf318307 for ; Tue, 22 Sep 2026 16:50:03 GMT Received: from mail-ua1-f70.google.com (mail-ua1-f70.google.com [209.85.222.70]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4gupbqj7ea-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Tue, 22 Sep 2026 16:50:03 +0000 (GMT) Received: by mail-ua1-f70.google.com with SMTP id a1e0cc1a2514c-98513b850f1so6187241.2 for ; Tue, 22 Sep 2026 09:50:03 -0700 (PDT) Received: from localhost.localdomain (pmd666.hd.free.fr. [88.187.86.199]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-49fdaa544e5sm50831325e9.1.2026.09.22.09.49.59 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Tue, 22 Sep 2026 09:50:01 -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= zB9WBbNZHM6m2phYTFE/2aurRaYcx6r0ryBqsnQvO6o=; b=AxR3mFZI9DkmVHx4 7C6jxFrlHvgtvULEfkziLD8lhFa5sVlpBfDJkZZGdiINjhsNcgJ2h31XVgTNl5bV opwFvPdXM489Emy+Xut2eDZutP27lL4fNesmTKWDgmxp6z+DHyQAFfsm1lEf1Jl9 BM8F7vHkvJ6o0VLNm/RVDz5fqNBQnTGMxm49i0wcJ1rSrGesNz/ADzrE8OUw7Ox8 LWKPAheaoGarv1yjcZcCxcEE1Zvcauq2xlA7DETKbA8jgRtZsvPKdVwkZrPiuZGr KO6ZgPoF1QX4fcIGt6gksc64Nb4NqPbJrKnAbaukINGuKj+nOtH5f5XEiq+ZKGtS +UkG4g== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1790095802; x=1790700602; 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=zB9WBbNZHM6m2phYTFE/2aurRaYcx6r0ryBqsnQvO6o=; b=hB+c5UWBogNSyevI78N5z4qCMYm90rN33zYxLpgNCef7JdxK2yXL6PGtO0dvMxO07V rSvnSKp/A17+0fHShoXGO0xo//sVMgI3wbFpI4Rof/VgTpLgILZ53WHR90syf8pCKfeR AedJADQiji0rIcqBMOjhoYwFnlDiO3EprD7Aa5jiNIooQ/i3373A/AfO3zujgDM08uYv azkfYAUPnpLFOyx0NhLUo7JBqtcLJR7oXrUdxmQM7rkuhf4c6xzbNh2f6y/wMrAXoJNY khbRa1xzX96NU5p9ZyIXuptnk5Qf5Ku0pcqwAJgKvI7jtZGynjXPnVp0y7wp/ksdQugy eiOQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20260707; t=1790095802; x=1790700602; 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=zB9WBbNZHM6m2phYTFE/2aurRaYcx6r0ryBqsnQvO6o=; b=q6Re/HKEjzdQ1BTRtlYbY6b4m0aB0sakXXqhkkR+nDEsSxpLHafQRXmb8BpVzjIEPY ySetJqq+/E3SrHknTkPk25XO6WyQx6ixkD6aubz8x61ChRFBKX1u4tZqfUqo+cnXNEck RaNbvRsqqsQ0KHAn0LJybxzYromLveKSBRNeVLDJRtNSLFbKdagtxG+fybsve4PWgAze +yzs1qwzElHkdi6TFw47iKdxfxrtxKPl/T1Qs81redmPsTB43TqInhUN488MdMM/3s8K pnv6pUSIwfbbYeNzFbFVnL4Fax5ie7Ha/AbqhRBd8LRZEhd72DQz2N8iaQMTbRjH9oRo MN4g== X-Gm-Message-State: AFuF++kqjr6Wp/EHCZ737+AQZnXmve++JJzz2GiuPK5hkrT5tGVb+qYR stYQEFzjYuPJ3GE7bI3aohlHC9qJVK2itkU3KSrCzOQ5iXpY/CxV2gVnSSWD4G3UaFd1QtJqEND CC1TzgbX2M0oa/jGyPYAIivq/XwIqXOQmPAiMmAhyjL98Tpl15yi91wKAMTeIFdrsgQ== X-Gm-Gg: AYBFou34pEF+0+KDvFHmWSCH4jWPlY6rcUbx40zC3V/tJ+WD8wAaXZKlSjh4BffFOKF DCMSrZmx0O2G8Hmmb0aki9O8w9moLGqUpLXIFzRswRI52udYwvvmqau0BNDMXZuwqGy/tUMX3cX 03IgOobvTPp3luQxl4Kuk2IAe6Ppo6aTK5+kbOlbLqxB4I/c7NOloTK1UqxQVuX3Bxprqgnkh05 UabRLT6kU/D1JMK2Q3TSxe7JQhenzrybMKdF6nT2kU3GuB5rqVVN6gnV0SgITeFp4Lzm30/BUff /UU1nWi01s1KL4Vy0g6hYHmVQ+24CzHL9VAAL8yZK72ax5sFTs9NUvJiRlT+CJkvLuwpGmOxZPt vA/5x9cHXpCSbhPw90pwNKg225xzFVGKbYtXcoyfs X-Received: by 2002:a05:6102:3ec3:b0:7a6:cd3d:4990 with SMTP id ada2fe7eead31-7a6cd3d508fmr7311123137.1.1790095802457; Tue, 22 Sep 2026 09:50:02 -0700 (PDT) X-Received: by 2002:a05:6102:3ec3:b0:7a6:cd3d:4990 with SMTP id ada2fe7eead31-7a6cd3d508fmr7311073137.1.1790095801988; Tue, 22 Sep 2026 09:50:01 -0700 (PDT) From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Cc: qemu-riscv@nongnu.org, Peter Maydell , qemu-ppc@nongnu.org, Paolo Bonzini , qemu-s390x@nongnu.org, Richard Henderson , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , Cornelia Huck , Eric Farman , Matthew Rosato , Ilya Leoshkevich , David Hildenbrand , Halil Pasic , Christian Borntraeger Subject: [PATCH v2 03/17] target/s390x: Make s390_cpu_set_state() return void Date: Tue, 22 Sep 2026 18:49:21 +0200 Message-ID: <20260922164936.15189-4-philmd@oss.qualcomm.com> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260922164936.15189-1-philmd@oss.qualcomm.com> References: <20260922164936.15189-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: AW1haW4tMjYwOTIyMDI0NiBTYWx0ZWRfX9xWgkl9a9vt1 6kDrJc5uQ+2PwmKydyjUodoO8UFJ88cHVRsitQKEk73qNw4ZqwhOtThp+QaTldn4blDPzG/w7nL PnV9oNyVGZAkyR9Me0CkqIJZNWB+7yCvQcoa4VbYyCIsr53DV/sc5NM8u2bFPuS0G+zNqgttz02 JJFgIK2NAH+yX2q5V1V1CwGjBaVGKJzsbsrLvSGxHZdw+MsuNcetsL/PCRcoUk7UzK41WYPUskj xEvpwEgED8lX34/CjrfPjZPFl2nZITQ89A2GWLGGn2g/pNXDKOPVhepq3hARAGI1u76kIzI3z9F oKHRRdJwWfCZEZwWoiYIZwcXzZEuH3NkcJrWZULcke3yD4+fzdmWLwG0aMkzU1KvwboaCOyVkKI 5Xx83T5op1EWkaO22Mo02YbWTubvTIBdUbaz76duZheuKMyoqKU0hZs2adLfE3/JJDD3kofRdWD guLMRY4cfc4cBhTLMWg== X-Authority-Analysis: v=2.4 cv=FdaiV5+6 c=1 sm=1 tr=0 ts=6ab2b1bb cx=c_pps a=R6oCqFB+Yf/t2GF8e0/dFg==: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=otiJeUf2ZByGLVp8V8QA:9 a=3ZKOabzyN94A:10 a=QEXdDO2ut3YA:10 a=TD8TdBvy0hsOASGTdmB-:22 X-Proofpoint-ORIG-GUID: prnKaTxnxNgx4MnlHJJAhuuRjhK06q_H X-Proofpoint-GUID: prnKaTxnxNgx4MnlHJJAhuuRjhK06q_H X-Proofpoint-Spam-Info: AW1haW4tMjYwOTIyMDI0NiBTYWx0ZWRfX5iPU396HpD/v g8TzXAu6GpJ0XN2NaqCdFdDgHlGLKmkbxHaew8gzxuyCElqb0ukCFyom6pia7STxWxugEhp2pYT a+wy2JwrNRWfwqWGMCCqkODOQVbvXHI= 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-22_02,2026-09-21_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 suspectscore=0 adultscore=0 bulkscore=0 lowpriorityscore=0 phishscore=0 malwarescore=0 spamscore=0 priorityscore=1501 clxscore=1015 impostorscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2609040000 definitions=main-2609220246 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: 1790095948541158500 The return value of s390_cpu_set_state() is only used by the STOP interrupt handler. Make the setter return void and count running CPUs directly at that call site. Signed-off-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: Eric Farman --- target/s390x/cpu.h | 5 ++--- target/s390x/cpu-system.c | 4 +--- target/s390x/sigp.c | 3 ++- 3 files changed, 5 insertions(+), 7 deletions(-) diff --git a/target/s390x/cpu.h b/target/s390x/cpu.h index 998bbb0d7ff..2d1dcc7045c 100644 --- a/target/s390x/cpu.h +++ b/target/s390x/cpu.h @@ -847,11 +847,10 @@ void s390_do_cpu_set_diag318(CPUState *cs, run_on_cpu= _data arg); int s390_assign_subch_ioeventfd(EventNotifier *notifier, uint32_t sch_id, int vq, bool assign); #ifndef CONFIG_USER_ONLY -unsigned int s390_cpu_set_state(uint8_t cpu_state, S390CPU *cpu); +void s390_cpu_set_state(uint8_t cpu_state, S390CPU *cpu); #else -static inline unsigned int s390_cpu_set_state(uint8_t cpu_state, S390CPU *= cpu) +static inline void s390_cpu_set_state(uint8_t cpu_state, S390CPU *cpu) { - return 0; } #endif /* CONFIG_USER_ONLY */ static inline uint8_t s390_cpu_get_state(const S390CPU *cpu) diff --git a/target/s390x/cpu-system.c b/target/s390x/cpu-system.c index c938c77d0bd..52561fffa3a 100644 --- a/target/s390x/cpu-system.c +++ b/target/s390x/cpu-system.c @@ -236,7 +236,7 @@ void s390_cpu_unhalt(S390CPU *cpu) } } =20 -unsigned int s390_cpu_set_state(uint8_t cpu_state, S390CPU *cpu) +void s390_cpu_set_state(uint8_t cpu_state, S390CPU *cpu) { trace_cpu_set_state(CPU(cpu)->cpu_index, cpu_state); =20 @@ -267,8 +267,6 @@ unsigned int s390_cpu_set_state(uint8_t cpu_state, S390= CPU *cpu) kvm_s390_set_cpu_state(cpu, cpu_state); } cpu->env.cpu_state =3D cpu_state; - - return s390_count_running_cpus(); } =20 void s390_cmma_reset(void) diff --git a/target/s390x/sigp.c b/target/s390x/sigp.c index b6d44c5c31b..1801b8caa6e 100644 --- a/target/s390x/sigp.c +++ b/target/s390x/sigp.c @@ -617,7 +617,8 @@ void do_stop_interrupt(CPUS390XState *env) s390_store_status(cpu, S390_STORE_STATUS_DEF_ADDR, true); } env->sigp_order =3D 0; - if (s390_cpu_set_state(S390_CPU_STATE_STOPPED, cpu) =3D=3D 0) { + s390_cpu_set_state(S390_CPU_STATE_STOPPED, cpu); + if (s390_count_running_cpus() =3D=3D 0) { qemu_system_shutdown_request(SHUTDOWN_CAUSE_GUEST_SHUTDOWN); } env->pending_int &=3D ~INTERRUPT_STOP; --=20 2.53.0 From nobody Sat Sep 26 20:01:25 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=1790095907; cv=none; d=zohomail.com; s=zohoarc; b=gVgA0VAoZ9C/WCxR6XkZ+bf41cCkPHqEhJbXcm/DeW+qZZUzh7bxtnfc7Grp+rx6Qd0a27IvmtlcO7iIixByC5nncYCujB92y9qvu4oNkJrqrOs3BiP6DHw7H5ONyFgg/h+ywqsTMVUtUv1a7UgPsIKRnVhzQm4b2BDuIOu1e0w= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1790095907; 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:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=LmAYAv4MmXNPysrlCBEQ9Xi/U5G6KHBy5hspKYOHyfE=; b=G2iatr1aWqP2QlTJEFEMamVnmuBlMK9xRPHYl4umiFPnfYevkvVfKMeEKnk3nuD2tDV2ONFLkIqQdlNG+YL+F2xGwpDfPpO+uCeDcy2TI7v34shz4moHmvcOmhj0dmGwPJHEg1mLslNWYB3RTjFfS6NPLkbxdIhygQ2gA1FfXNc= 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 1790095907330190.97634994762575; Tue, 22 Sep 2026 09:51:47 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1x93hJ-00043d-OH; Tue, 22 Sep 2026 12:50:25 -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 1x93hH-00040B-OV for qemu-devel@nongnu.org; Tue, 22 Sep 2026 12:50:23 -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 1x93hG-0002Rv-1U for qemu-devel@nongnu.org; Tue, 22 Sep 2026 12:50:23 -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 68MEjVpx1058319 for ; Tue, 22 Sep 2026 16:50:11 GMT Received: from mail-vs1-f70.google.com (mail-vs1-f70.google.com [209.85.217.70]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4guha5uguk-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Tue, 22 Sep 2026 16:50:10 +0000 (GMT) Received: by mail-vs1-f70.google.com with SMTP id ada2fe7eead31-7915a83539fso1076137.1 for ; Tue, 22 Sep 2026 09:50:10 -0700 (PDT) Received: from localhost.localdomain (pmd666.hd.free.fr. [88.187.86.199]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-49fde17dab9sm5101265e9.2.2026.09.22.09.50.08 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Tue, 22 Sep 2026 09:50:08 -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= LmAYAv4MmXNPysrlCBEQ9Xi/U5G6KHBy5hspKYOHyfE=; b=dP/KHzYaQCYlTT3i KVITpjHfDLk+aJnNbwG7R+Uyvl63Ps9IEGGtaaTa+FVtLusE3oMr2rwvllCkhOR9 df94lhfL3RkP9YTRd6Q+XLILeh/GFa+Y1UiOUMZECgcEkVNMX7DiS9y+JYHzqyhl CzQyIUlDGuXm+YK7Ql5W4Prkr6W2CCRR7pJwBtZvPi1gzJcU9vhMvkbM/QpkHe/V /tTijooHWNiyGzE89qNhbPBykzhWpEj8oPxxo0A7yfN0vRI4aTVMFpWt9QvdzT29 PYCedgHHUDxepLVz2OwCuVSQ9PiEoEEFs2a+G4+QIPQJgc7tugDDLOx946vklGVH NnKBLQ== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1790095810; x=1790700610; 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=LmAYAv4MmXNPysrlCBEQ9Xi/U5G6KHBy5hspKYOHyfE=; b=Z1J86MhIYepZcLP6fWVo1acoPBS10KOlA3MrU8miO5ZgPB50Vo7C0kSoNRMKgUSTKO LRX1H9rJbQojqI+BYCPXf1Fnxpp7uUlRus/n0wRGfgeUxImdv5Z+FkoFttQEQR0k19HT fwd0lnrJtAUlyoD5GZ67+rE7y0RguntD9rhDzhT4jOgczhRSZdh7HoBnN9nwBIYGLDTm JaEfULAjrJwgCEcRfa6dL1/S13FoEUM+9+pxyQPeL1ecao9qVRcFX/av5UWdd23Djsrw c6PkSnzXLu5OlxpO0XBvaJX61bjBZ2YpoWIaE0h+KdMQK7vuhsYSCnr8pDhQ20g16A0n 0a/w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20260707; t=1790095810; x=1790700610; 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=LmAYAv4MmXNPysrlCBEQ9Xi/U5G6KHBy5hspKYOHyfE=; b=ikZUWZk/iCz1opdjmf2r6Pki1cAOSmEpOuUksvpnY7c8CFtDctpzY1oBcMRqaM7TEF d/sRxmfhDl24RdzWAFzEAjn1yHZyFncFak6SECMCq3FHKXCvx5rdlsHejcQyvVKcl02w gzbEHdiEGU/U1YNJOAyKxvWxrvs7DJCvMu/wG+eOcIGjJIfcTHdNXMUHWUoQdvrS3+O7 xZNSr5Hb0G0xQvjvZH4JWf0FBlsoz7VSm6RghBUcRreo8WEJoiXawtOxlbThWwXAIl3W OgCs9493tnaKkAq+0d+UZeD3nvjoQJ3CGYICHx4uBO+awPBnOfgLmC8NykUTVXa0dkCQ YfTA== X-Gm-Message-State: AFuF++kXLWCfHsoYq3KxprZOFnDnCohPZ0dxRBj60wknH/Mrk7s4bs2W RB8bNazwDrAFmlAkb+1TMb2zsaWLml59/QbXGlfOWuo6BXL4Fh8FgxXWexHTE+51VSzsK6V0cPe pikIBRNLP94ndYK4xcxYafEXIoJBpAEPgIxB+WaFQdQiBTkxgSrR+jsk1MiIkArYm0Q== X-Gm-Gg: AYBFou0dqaGb+xkPr1ZoF7+S9UEeu4Ukj/Yey7q06iEx2mPwJcF4h1d1/qvKd01Z4JK 6nkR5Uqf91roiLTBtR2vzjgRHFfydJkRWl8MNHDeyAXQR0Xt+FvueejjAAFmjZ2mZrwccroNZVu nQeGGVswQyWnP+OU8uAKSReMZVwtTuPFLK2oPc12/3xyCfkKKMZs8tYD46Ey/3SAe40zfR09N+a GIv/bUhEPr5nBPrMAW9S3iYjILci6IGrFlAcHwd3b/vk/xVt1y0Nh4c9HS0XiMZi+ZEqfShX0HR CKmELNaWDmaRs8Gzf2fo7pnLZOAbNEJ4whUBbNSWq1PV6s6HPduxnP+cVJlDRgI93YeRl9kJqdb HaJEdnbjX2QzUvZx/2e3UQoda/TKOvgUKvUYXJGoj X-Received: by 2002:a05:6102:5cc2:b0:7a7:1b62:2d3 with SMTP id ada2fe7eead31-7a71b620fb6mr6991070137.37.1790095810271; Tue, 22 Sep 2026 09:50:10 -0700 (PDT) X-Received: by 2002:a05:6102:5cc2:b0:7a7:1b62:2d3 with SMTP id ada2fe7eead31-7a71b620fb6mr6991002137.37.1790095809491; Tue, 22 Sep 2026 09:50:09 -0700 (PDT) From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Cc: qemu-riscv@nongnu.org, Peter Maydell , qemu-ppc@nongnu.org, Paolo Bonzini , qemu-s390x@nongnu.org, Richard Henderson , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , Cornelia Huck , Eric Farman , Matthew Rosato , Halil Pasic , Christian Borntraeger , David Hildenbrand , Jason Herne , Ilya Leoshkevich Subject: [PATCH v2 04/17] target/s390x: Use S390CpuState for CPU state APIs Date: Tue, 22 Sep 2026 18:49:22 +0200 Message-ID: <20260922164936.15189-5-philmd@oss.qualcomm.com> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260922164936.15189-1-philmd@oss.qualcomm.com> References: <20260922164936.15189-1-philmd@oss.qualcomm.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-Proofpoint-GUID: _BIEXrMV9utHztIPlqrfOht-xzSg9Wrm X-Proofpoint-Spam-Info: AW1haW4tMjYwOTIyMDI0NiBTYWx0ZWRfX/7uZLQs9tLTG 8mTQ4nOyRFBAsnv7YWUmwO6kzZ8ui9uDsb1uiBssyfuvJi/gmq8nxYy9JoC8/h8R1fVkg3uFwBE mAMtGNXz75oVAXrZK4HPYRcZy8/JpFE= X-Authority-Analysis: v=2.4 cv=U+4Hnuru c=1 sm=1 tr=0 ts=6ab2b1c3 cx=c_pps a=N1BjEkVkxJi3uNfLdpvX3g==: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=J-bIcBNL7rHnt2l8aaoA:9 a=3ZKOabzyN94A:10 a=QEXdDO2ut3YA:10 a=crWF4MFLhNY0qMRaF8an:22 X-Proofpoint-ORIG-GUID: _BIEXrMV9utHztIPlqrfOht-xzSg9Wrm X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwOTIyMDI0NiBTYWx0ZWRfX2j7QiKGsIKHE Iz08nHEtqKFtFGJ1tU8t5C0tj5ENbY2GyUjr2m2Nx/AyA+sEwh/HOXudLH3rMBN7TS5qSW01H46 iZ4p2lslUZ/dBIYI4NWRWMmwHHMn5qTUl+jw7wle2H0e4aJFLORQ0FcY1Fb/yuDwrAvufho0d2q wo7u/Gk+15Fr7lamUazc1Ix4zOlodK2YefF1Hnq1znQHhJYR2P1Xw5kpweK9QqPYAZrXCHBYgLM V09GJ3cWJXEI5NDmKP9RLxsauzjItv3WgevBuGkIOrcqsL/fqspXEMHZJtIbhfht7YGOnPLGyrh Y5TH6KxKUayAhgAzJJKkLDtBNAtB1DclS/dXprAgvUcWLlLQoqVV2TbO2WvPhI1jPLly8g5gXf1 aK8rx+ibjbjXhXuvKubiKrWFOJ+9iUAyHNlAPq1He5zo+jTEjqI4zLkRWOAUhzPGxy99R6BXAnc emXQVnn9esniNPUqXCg== 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-22_02,2026-09-21_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 clxscore=1015 impostorscore=0 adultscore=0 phishscore=0 lowpriorityscore=0 priorityscore=1501 suspectscore=0 bulkscore=0 spamscore=0 malwarescore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2609040000 definitions=main-2609220246 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: 1790095908437158500 Use the QAPI S390CpuState enum for CPU state accessors instead of uint8_t. Handle state checks with switch statements and assert unexpected states in SIGP restart and stop handling. Signed-off-by: Philippe Mathieu-Daud=C3=A9 --- FIXME: g_assert_not_reached -> break? --- target/s390x/cpu.h | 6 +++--- target/s390x/kvm/kvm_s390x.h | 2 +- hw/intc/s390_flic.c | 7 +++++-- target/s390x/cpu-system.c | 18 ++++++++++++------ target/s390x/kvm/kvm.c | 2 +- target/s390x/kvm/stubs.c | 2 +- target/s390x/sigp.c | 6 +++++- 7 files changed, 28 insertions(+), 15 deletions(-) diff --git a/target/s390x/cpu.h b/target/s390x/cpu.h index 2d1dcc7045c..bf9f6ed1de2 100644 --- a/target/s390x/cpu.h +++ b/target/s390x/cpu.h @@ -847,13 +847,13 @@ void s390_do_cpu_set_diag318(CPUState *cs, run_on_cpu= _data arg); int s390_assign_subch_ioeventfd(EventNotifier *notifier, uint32_t sch_id, int vq, bool assign); #ifndef CONFIG_USER_ONLY -void s390_cpu_set_state(uint8_t cpu_state, S390CPU *cpu); +void s390_cpu_set_state(S390CpuState cpu_state, S390CPU *cpu); #else -static inline void s390_cpu_set_state(uint8_t cpu_state, S390CPU *cpu) +static inline void s390_cpu_set_state(S390CpuState cpu_state, S390CPU *cpu) { } #endif /* CONFIG_USER_ONLY */ -static inline uint8_t s390_cpu_get_state(const S390CPU *cpu) +static inline S390CpuState s390_cpu_get_state(const S390CPU *cpu) { return cpu->env.cpu_state; } diff --git a/target/s390x/kvm/kvm_s390x.h b/target/s390x/kvm/kvm_s390x.h index 3c4fa0489cf..b1ff66f04e3 100644 --- a/target/s390x/kvm/kvm_s390x.h +++ b/target/s390x/kvm/kvm_s390x.h @@ -22,7 +22,7 @@ int kvm_s390_mem_op(S390CPU *cpu, vaddr addr, uint8_t ar,= void *hostbuf, int kvm_s390_mem_op_pv(S390CPU *cpu, vaddr addr, void *hostbuf, int len, bool is_write); void kvm_s390_program_interrupt(S390CPU *cpu, uint16_t code); -int kvm_s390_set_cpu_state(S390CPU *cpu, uint8_t cpu_state); +int kvm_s390_set_cpu_state(S390CPU *cpu, S390CpuState cpu_state); void kvm_s390_vcpu_interrupt_pre_save(S390CPU *cpu); int kvm_s390_vcpu_interrupt_post_load(S390CPU *cpu); int kvm_s390_get_hpage(void); diff --git a/hw/intc/s390_flic.c b/hw/intc/s390_flic.c index 57fd4b2b81c..b5256b3ba88 100644 --- a/hw/intc/s390_flic.c +++ b/hw/intc/s390_flic.c @@ -193,8 +193,11 @@ static void qemu_s390_flic_notify(uint32_t type) cpu_set_interrupt(cs, CPU_INTERRUPT_HARD); =20 /* ignore CPUs that are not sleeping */ - if (s390_cpu_get_state(cpu) !=3D S390_CPU_STATE_OPERATING && - s390_cpu_get_state(cpu) !=3D S390_CPU_STATE_LOAD) { + switch (s390_cpu_get_state(cpu)) { + case S390_CPU_STATE_LOAD: + case S390_CPU_STATE_OPERATING: + break; + default: continue; } =20 diff --git a/target/s390x/cpu-system.c b/target/s390x/cpu-system.c index 52561fffa3a..fffac09f241 100644 --- a/target/s390x/cpu-system.c +++ b/target/s390x/cpu-system.c @@ -44,8 +44,11 @@ bool s390_cpu_has_work(CPUState *cs) S390CPU *cpu =3D S390_CPU(cs); =20 /* STOPPED cpus can never wake up */ - if (s390_cpu_get_state(cpu) !=3D S390_CPU_STATE_LOAD && - s390_cpu_get_state(cpu) !=3D S390_CPU_STATE_OPERATING) { + switch (s390_cpu_get_state(cpu)) { + case S390_CPU_STATE_LOAD: + case S390_CPU_STATE_OPERATING: + break; + default: return false; } =20 @@ -202,12 +205,15 @@ unsigned s390_count_running_cpus(void) int nr_running =3D 0; =20 CPU_FOREACH(cpu) { - uint8_t state =3D S390_CPU(cpu)->env.cpu_state; - if (state =3D=3D S390_CPU_STATE_OPERATING || - state =3D=3D S390_CPU_STATE_LOAD) { + switch (s390_cpu_get_state(S390_CPU(cpu))) { + case S390_CPU_STATE_LOAD: + case S390_CPU_STATE_OPERATING: if (!disabled_wait(cpu)) { nr_running++; } + break; + default: + break; } } =20 @@ -236,7 +242,7 @@ void s390_cpu_unhalt(S390CPU *cpu) } } =20 -void s390_cpu_set_state(uint8_t cpu_state, S390CPU *cpu) +void s390_cpu_set_state(S390CpuState cpu_state, S390CPU *cpu) { trace_cpu_set_state(CPU(cpu)->cpu_index, cpu_state); =20 diff --git a/target/s390x/kvm/kvm.c b/target/s390x/kvm/kvm.c index 6622886032e..dc67e848864 100644 --- a/target/s390x/kvm/kvm.c +++ b/target/s390x/kvm/kvm.c @@ -2007,7 +2007,7 @@ int kvm_s390_get_ri(void) return cap_ri; } =20 -int kvm_s390_set_cpu_state(S390CPU *cpu, uint8_t cpu_state) +int kvm_s390_set_cpu_state(S390CPU *cpu, S390CpuState cpu_state) { struct kvm_mp_state mp_state =3D {}; int ret; diff --git a/target/s390x/kvm/stubs.c b/target/s390x/kvm/stubs.c index ebf3c83994d..c5ec7d3f1d3 100644 --- a/target/s390x/kvm/stubs.c +++ b/target/s390x/kvm/stubs.c @@ -128,7 +128,7 @@ int kvm_s390_mem_op_pv(S390CPU *cpu, vaddr addr, void *= hostbuf, int len, g_assert_not_reached(); } =20 -int kvm_s390_set_cpu_state(S390CPU *cpu, uint8_t cpu_state) +int kvm_s390_set_cpu_state(S390CPU *cpu, S390CpuState cpu_state) { g_assert_not_reached(); } diff --git a/target/s390x/sigp.c b/target/s390x/sigp.c index 1801b8caa6e..6e3367e2725 100644 --- a/target/s390x/sigp.c +++ b/target/s390x/sigp.c @@ -39,7 +39,7 @@ static void set_sigp_status(SigpInfo *si, uint64_t status) =20 static void sigp_sense(S390CPU *dst_cpu, SigpInfo *si) { - uint8_t state =3D s390_cpu_get_state(dst_cpu); + S390CpuState state =3D s390_cpu_get_state(dst_cpu); bool ext_call =3D dst_cpu->env.pending_int & INTERRUPT_EXTERNAL_CALL; uint64_t status =3D 0; =20 @@ -221,6 +221,8 @@ static void sigp_stop_and_store_status(CPUState *cs, ru= n_on_cpu_data arg) cpu_synchronize_state(cs); s390_store_status(cpu, S390_STORE_STATUS_DEF_ADDR, true); break; + default: + g_assert_not_reached(); } si->cc =3D SIGP_CC_ORDER_CODE_ACCEPTED; } @@ -362,6 +364,8 @@ static void sigp_restart(CPUState *cs, run_on_cpu_data = arg) case S390_CPU_STATE_OPERATING: cpu_inject_restart(cpu); break; + default: + g_assert_not_reached(); } si->cc =3D SIGP_CC_ORDER_CODE_ACCEPTED; } --=20 2.53.0 From nobody Sat Sep 26 20:01:25 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=1790095885; cv=none; d=zohomail.com; s=zohoarc; b=l+EJEGGvDeysJ6M7K27sOlrdI+5dbO+kGvWKCPPROJdPdRurIK1TCyi9WuvGWkW7y8kT7yyfjG70aeaDVHAkDZz9Ywqq034SUItMzwH5krZHuz0rQvRBniCyiWJIoIvnX1zv8u4yKyxp3j7cikkXPZY/8ExN7gasMsVgp5/od2I= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1790095885; 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:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=k6UxGihtlILmLNAlJDNzlMp6lYb9vw/O1Tq4HlIquyw=; b=NiJ5eRoYGbWuoMr+ECJuFezwrUwCeKAopOyIgkuslwUW2W3LyZ7SyMgd+c3YgzuwMCKNIz6svy7vd82rEpHj+PK+a+9Qupsdtf8I5v2QLYKnY41ir/Stk+5vY9SYXK5XF2vUw9iexkcIbkYshagu9yjFyDs8eswTtjOxt01zk/o= 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 1790095884992145.1845752404398; Tue, 22 Sep 2026 09:51:24 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1x93hQ-00049r-LD; Tue, 22 Sep 2026 12:50:32 -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 1x93hP-00048H-9h for qemu-devel@nongnu.org; Tue, 22 Sep 2026 12:50:31 -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 1x93hN-0002Sa-3N for qemu-devel@nongnu.org; Tue, 22 Sep 2026 12:50:31 -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 68MEjoA63952905 for ; Tue, 22 Sep 2026 16:50:18 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 4gufsqbp5c-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Tue, 22 Sep 2026 16:50:18 +0000 (GMT) Received: by mail-vs1-f72.google.com with SMTP id ada2fe7eead31-78f4d6af128so661137.1 for ; Tue, 22 Sep 2026 09:50:17 -0700 (PDT) Received: from localhost.localdomain (pmd666.hd.free.fr. [88.187.86.199]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-49fde1c0f6csm3767665e9.3.2026.09.22.09.50.15 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Tue, 22 Sep 2026 09:50:16 -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= k6UxGihtlILmLNAlJDNzlMp6lYb9vw/O1Tq4HlIquyw=; b=StDmECc0yJSAVTEB glDeQ+sMgMDNV6rHCrZEoSt2rb/o7tS9cCMJELHITszNs3blQ8exRLmzNv+fbzZc 2wXGuApDmX2ZeWLBqJO0kISt3dpOFOj1Kq1IUIMUhZCDPqCz+khg6Z0LborSSVL8 oNbnSwiNHUv8DcaN4Tqf+7lKtbnM7f15S78aC/tDPleVRYJLWRUjQ9HjZxxH4o89 9vVt2FxqnMtvjz3fBorRyKsuideczx/X7oLMXzKiR+y0mpvrErXZPE699DXUtzra M7QfA0Zj8ukU6wU6Oyz6WvPtsKKppw4how1sbmuOhS69Dvo57aakJEfAPGASUVfu z0Ce0g== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1790095817; x=1790700617; 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=k6UxGihtlILmLNAlJDNzlMp6lYb9vw/O1Tq4HlIquyw=; b=cMwNkOcJrgcNDEBQ8oMYZ70BkNxWpx+/YlkrOLkcKcNzL/eFt1+sgToTzbvGUPyC+J vtqXKEWmDvp46kIlel6rGq0O7O90+3WGofRZxgwH1oGerUEcIVhHNqsguDVJX1OvQsp4 8ncuOz+aGm7RAiqNn47gMQVRGXarMIhHRYy1PBUH7BpU45bhIQP4l88+hAPwjOMQWKOn KLzbQYI47px7V51hCxHFpnVuvf4K42VE6KNo9tYJOp3Li/TBybjlenIzzXuO9650YZko Vs15wOQfcc34JrxQUK1/N3ijAVrVSDctjfp2ZWvKvMgRaMr4CQKBm+n0yTIH/QccTF0u DK7Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20260707; t=1790095817; x=1790700617; 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=k6UxGihtlILmLNAlJDNzlMp6lYb9vw/O1Tq4HlIquyw=; b=IveDDVRS3cJ+nR4XVqQRVcoXbVxBLeMH6ZvmynebtO/ROE6X/VwOOItiXJIP0RXUd4 TFXNc068xOekQiUYUC7PyHb8kQbXgrjErDtK7xoFph+IzkiSx+EKniUm1Hi0Uhvo8d7e VapApBLkL47t56iy7RPe8KqAlWcTxpbhFu+etYuvwJRL2P9bXRgoffvY4IVAs/KPbtOI uFNggadwCCerXS2TG4ZwZZ4+Mss+AkJ6YOnjvKURUMRD3foedJ80jw2kfVcnckDqKKhx Jz5F7AgtNYb4aFSPqtihdSAhDzgtgOPzszDAnaJuXb6+EUBXK/TNdOgaSSaVnuxgAGJv N40A== X-Gm-Message-State: AFuF++mazk63/OpyEoB0gwHTX6Eha150nVPoBMAyTDAs12aFqlCvyX8a KiU4EsOJ0jxgNawtDec7lxeR797nqe0EnlME4Bre3qJWgLkOjmR8nDFerCST7mHITxXkKwf2vVJ qJgKAq9aq4ChEnKSEPAHh0ywKgLIhgzGC/4S6n3xpRw9GpbeDkL/sG8LYEo84jJEfVQ== X-Gm-Gg: AYBFou0KmetDgyd0omBhoFEqWD/Haa9UT/CaDlTRTT0qGZ3+yZWloaDNzVnCAWt7T/8 FvOuvfLCo7gFvXZ7jhT9njbrP8ZDP1ufvD+jIbhtUZapE1oE7HaZz59Kms7EQCqBKx0vQ3DG8pJ 4nLm8gXqjFiRgOy0HJg2AYJFxesKMN3m5QJlA0N1Ti/l763KmG3+oDMEwYxsvUL0ZBuOURGNRAl koO+T4MlyfU8/OVZjXTEOZQ0n3bwBYF4qMJ4vMIyvCEPjl/1oTo1py8vbh7s6LC/w/Po6qCod1s l/9Me0TMPj+tLIfIlh95+zmYk4mevccov2hmUKHd1d/GvjxAw+00iaF+caY/I2ktixX56hLAFg6 h4DlUXYUVM/WER+nfR6fuAiQ6Fpq4dsjj6Ci2fKNJ X-Received: by 2002:a05:6102:370c:b0:7a1:f7d2:e80c with SMTP id ada2fe7eead31-7a55ca8a2ffmr6835343137.20.1790095817266; Tue, 22 Sep 2026 09:50:17 -0700 (PDT) X-Received: by 2002:a05:6102:370c:b0:7a1:f7d2:e80c with SMTP id ada2fe7eead31-7a55ca8a2ffmr6835317137.20.1790095816785; Tue, 22 Sep 2026 09:50:16 -0700 (PDT) From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Cc: qemu-riscv@nongnu.org, Peter Maydell , qemu-ppc@nongnu.org, Paolo Bonzini , qemu-s390x@nongnu.org, Richard Henderson , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , Ilya Leoshkevich , David Hildenbrand , Cornelia Huck , Eric Farman , Matthew Rosato Subject: [PATCH v2 05/17] target/s390x: Access S390CpuState atomically Date: Tue, 22 Sep 2026 18:49:23 +0200 Message-ID: <20260922164936.15189-6-philmd@oss.qualcomm.com> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260922164936.15189-1-philmd@oss.qualcomm.com> References: <20260922164936.15189-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: KTzqmst0-K2I5fyJZUyX9hSK7w_wJRJ1 X-Proofpoint-GUID: KTzqmst0-K2I5fyJZUyX9hSK7w_wJRJ1 X-Proofpoint-Spam-Info: AW1haW4tMjYwOTIyMDI0NiBTYWx0ZWRfX6QHDwD7oK+8c REE3VZ4X7evJldc0VRn0gSVavAUVPmlRV0Fpg6uftvHj9+Hym8U3R0DIotEOmwlOgl67YJjhOUM +05sePobz8RBs+wquZiioN3WCWz69Fs= X-Authority-Analysis: v=2.4 cv=NKBAaE6g c=1 sm=1 tr=0 ts=6ab2b1ca 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=yx91gb_oNiZeI1HMLzn7:22 a=EUspDBNiAAAA:8 a=jkZ4ftcXAbePN3d4lLkA:9 a=3ZKOabzyN94A:10 a=QEXdDO2ut3YA:10 a=-aSRE8QhW-JAV6biHavz:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwOTIyMDI0NiBTYWx0ZWRfX4SpasvS7/akg QiPCmSsoaOvoRDX7NZKn7C5Ba9KHW4MFhVH09K4T+ZIZaAniG1FAo8y2If8JYBmiOYBoVQoXHcV nW0YpH2QEVwTkvInu7krSbevjeCTjFT3mSEmi2ns8/u8TmKk4tnEz00XHviFUtegoaeSdVAhTWg fAx6bOL7U9QWY0DcmpL8cDSiy9VJLk92763g95tlEdH3L47TSUlXBAjH0n8nLUsMfKINSyrra/6 U0hqZmDoHRPFLCmBt1ZWdknpXkwFB3NN3BZr8x3bVqKiNo8ObyEHSpoTm9+QPhhuwhWSEM1+N4N wc8ZAwB/NkQA/O/csVQA7q5lw8c6BjdhCFraybhZZlvtWf2Q3yQXXPdSEKDaYunCd9F7L0pqgV6 roB1OR9pzeUusAkoW8SUnpQPH0xDwnabI5cqKXY9EHuJFYHGv6xGmoiGKMOAZIw1YCA0Kc9wMaY BMp2khGS0zsR83kmmoQ== 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-22_02,2026-09-21_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 priorityscore=1501 bulkscore=0 suspectscore=0 adultscore=0 malwarescore=0 clxscore=1015 phishscore=0 spamscore=0 impostorscore=0 lowpriorityscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2609040000 definitions=main-2609220246 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: 1790095886415158500 Use qatomic_read/set() in the S390 CPU state accessors. This avoids non-atomic reads in s390_cpu_has_work(). Signed-off-by: Philippe Mathieu-Daud=C3=A9 Reported-by: Paolo Bonzini Reviewed-by: Eric Farman --- target/s390x/cpu.h | 2 +- target/s390x/cpu-system.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/target/s390x/cpu.h b/target/s390x/cpu.h index bf9f6ed1de2..ef73b15218e 100644 --- a/target/s390x/cpu.h +++ b/target/s390x/cpu.h @@ -855,7 +855,7 @@ static inline void s390_cpu_set_state(S390CpuState cpu_= state, S390CPU *cpu) #endif /* CONFIG_USER_ONLY */ static inline S390CpuState s390_cpu_get_state(const S390CPU *cpu) { - return cpu->env.cpu_state; + return qatomic_read(&cpu->env.cpu_state); } =20 =20 diff --git a/target/s390x/cpu-system.c b/target/s390x/cpu-system.c index fffac09f241..d38de4fea2b 100644 --- a/target/s390x/cpu-system.c +++ b/target/s390x/cpu-system.c @@ -272,7 +272,7 @@ void s390_cpu_set_state(S390CpuState cpu_state, S390CPU= *cpu) if (kvm_enabled() && s390_cpu_get_state(cpu) !=3D cpu_state) { kvm_s390_set_cpu_state(cpu, cpu_state); } - cpu->env.cpu_state =3D cpu_state; + qatomic_set(&cpu->env.cpu_state, cpu_state); } =20 void s390_cmma_reset(void) --=20 2.53.0 From nobody Sat Sep 26 20:01:25 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=1790095997; cv=none; d=zohomail.com; s=zohoarc; b=La50j07XWErWBRs2EMXoA+8TcKLo4hGLDRdRpko/I7T9dMoF+3p4VlIQsBtvB7Bf6c11n8Rumufhbj4C3QFwS4KUIWeUPvBj8iJ7LaLveXU8zH4aCCLOReHcOQ20PAuFLntgye+TJaVrggvJwpuF1zQf3lXIVHrvS17VOtsOFR4= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1790095997; 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:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=72N0GXBzAI2IR3Q2JwAh1iUuA/4cXofbC72GnfMvljs=; b=DrNQg+sZ5bkHc4WHmU6AL63Ji2cofwUiAytbNvdiLT7/lnoMLoQEfOAMqppNEoNLmIrGsbVGPWaTz2NdW3LgtmMbiSpbapM/uncrswltIqNpmu8LjPk4oHGNTSYTaaRCPdjB2d00qR8R1SUdSLFmCwVyD6/6SYmkFdoDApsKMYk= 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 1790095997792505.51463864141476; Tue, 22 Sep 2026 09:53:17 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1x93i3-0004Pc-Uw; Tue, 22 Sep 2026 12:51: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 1x93hX-0004H7-Pk for qemu-devel@nongnu.org; Tue, 22 Sep 2026 12:50: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 1x93hU-0002TR-9H for qemu-devel@nongnu.org; Tue, 22 Sep 2026 12:50:39 -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 68MEjowS3952916 for ; Tue, 22 Sep 2026 16:50:25 GMT Received: from mail-vk1-f199.google.com (mail-vk1-f199.google.com [209.85.221.199]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4gufsqbp5u-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Tue, 22 Sep 2026 16:50:25 +0000 (GMT) Received: by mail-vk1-f199.google.com with SMTP id 71dfb90a1353d-5c83007a11cso31559e0c.2 for ; Tue, 22 Sep 2026 09:50:25 -0700 (PDT) Received: from localhost.localdomain (pmd666.hd.free.fr. [88.187.86.199]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-488626d29dasm6729910f8f.0.2026.09.22.09.50.22 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Tue, 22 Sep 2026 09:50:23 -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= 72N0GXBzAI2IR3Q2JwAh1iUuA/4cXofbC72GnfMvljs=; b=A17rl21NYJSn4WOW Nuos9WqMytoQDEEkCz99z/UoWrqnmlcv6qghWNoISwzkVbm4A/Sqc4n3l7Qr5mTr 5LrDoP56uBy4LOn5qTTpp+bXlghoX+LiRAAgsZeXAYcGInUCzJSITlBpK2naLenW HCol5uEdJHsvbFp+b6WVwp/bFlDb6hkQMJPJrnkYU+pRSelOI5+u98LYepMvcjFZ yCyOcjpHQ3s4cWBptS1Z2+YjkR96FmpAQbUunluYoDVUiM06dk+zrehWtZL7e1sv CX70lDkhfgEtxeFKvvn45aVhKG+Ii+s3EYMOgrbnWTYPIjH9OB7AQr4k/tcxPz4U qEmFew== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1790095825; x=1790700625; 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=72N0GXBzAI2IR3Q2JwAh1iUuA/4cXofbC72GnfMvljs=; b=KVbbLiYmfQdKG23yyv+lmAeXELJYZ+Al0p1/JeOu/1RQj7V1v5mvtefv7dWnsplzVM 2lryLHH16ZoCKKi1ZS/fUTKp4UPzuecrHswxsBkmYSFpzTpx//SZSYaHTNZQno/41VsY 7pjZ8dJAD7qi8WMeSHeeVLCxQfujV2zHHwn5pDWMHmelLgJUy6HO95GpSLBdPKu2rmDN /R1Dizx15fhML2fnDH1ZvYTvVvBAQK4owD5jAvVfTt7KK0sohaBTE8o29hSJEYxiVEko xyk7YQKvS5WHWJeCLRDPG0kJN+H+LzQfWVlvU0pv91J5zbOAWpw8zTeiEj1mFP9w7p3M mk5A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20260707; t=1790095825; x=1790700625; 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=72N0GXBzAI2IR3Q2JwAh1iUuA/4cXofbC72GnfMvljs=; b=ZgEFJEWcvHzA3oc0hHOgMECcgrltDqm/RhHP0tlzLW18Zg8OrytR/sbs+KwCteuULg 6RI8icbkcMmMEpJExqbVEfz2Pu0DRqHTnbMzE6nPICgxFBk8gw+5WXbzbPStTFu/TXdI kR5LqJ8Al/gNHpU7K4UY94mh6hu3ybb8lLJ45n/yUqvFv2dQ/5k0e5KAG1y8QKNM3EIf jWDxyeULR0CbcGaHrAZroav+R1nzzZFST1HrvXM0vgVDEOB5vC/n1CZGN+1/2c3D8xUn HlmUGZBOkpnKKUumrXlL5X/uFdpt893Wp/XvkqS/kY/hWus4Po3LPEY4Ycc9N+4gKO/a w4IQ== X-Gm-Message-State: AFuF++lJFxLQkPmH+jn0EwKrRddbp75JFtXFVGkhAoeK8LSgPXrgzAjc pcijK+5CuS60qv3uD0CcBHsj/LvW8WTe/NZgUCvPCEp3V05tPo837TdWAWnOE1XADPKMGNcY4pg EUm7JWcERVk1eHm7rp7tSLIdYlmKKmMaW/bpjjeVD+s39jJTZ4sBWbAhveUJ9EYX24w== X-Gm-Gg: AYBFou3hEvys530Qw1X8PSGje85ZnBY3tGshS8OyEOJ1clU0spmYMOT76kNSaPLR6Pm QGx318x8e02Cg9YWLyCIXFwtfoXajEmt9ahF3vURyOMhmdMNv11tiI5oBGP7dy3HIf/0qHz7ct/ /DxjHSN7/VTCLjLNHogD73HQDHEJGbZIENn0FMgubLnwuZoxlkgNPsUtOziQJlfWWSX/Evo4qmg dnNsHr3PlquQNK2Hkr+EqJMYbY60Ak6RPEtf/7qMSr1q4wBLAq7e4ETHXqGr7qXMInStcaZzd1w AjNVksxzlBkHDHDJMPcA7bp5gWFfYaA86i6pa/eC3WzvRzxs+s0+MOK5dbs26v/yu6242GfOQZ6 9iPRZjhq5i/ShSFFrTF3R6a9ZTzjlAgjD7nnLkVg1 X-Received: by 2002:a05:6122:1312:b0:5c9:a60b:e5d5 with SMTP id 71dfb90a1353d-5c9f1655c76mr124695e0c.15.1790095824509; Tue, 22 Sep 2026 09:50:24 -0700 (PDT) X-Received: by 2002:a05:6122:1312:b0:5c9:a60b:e5d5 with SMTP id 71dfb90a1353d-5c9f1655c76mr124660e0c.15.1790095824066; Tue, 22 Sep 2026 09:50:24 -0700 (PDT) From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Cc: qemu-riscv@nongnu.org, Peter Maydell , qemu-ppc@nongnu.org, Paolo Bonzini , qemu-s390x@nongnu.org, Richard Henderson , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , qemu-arm@nongnu.org Subject: [PATCH v2 06/17] target/arm: Un-inline arm_set_cpu_power_state() Date: Tue, 22 Sep 2026 18:49:24 +0200 Message-ID: <20260922164936.15189-7-philmd@oss.qualcomm.com> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260922164936.15189-1-philmd@oss.qualcomm.com> References: <20260922164936.15189-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: KE3igR3HHo_me6xYzSMV3ZFjm6rpgPDt X-Proofpoint-GUID: KE3igR3HHo_me6xYzSMV3ZFjm6rpgPDt X-Proofpoint-Spam-Info: AW1haW4tMjYwOTIyMDI0NiBTYWx0ZWRfX7Qe5LNBSiMSo Qs1DnMIbCD0fAgr9kplT23MdMcowwN9MGgQuXl/PWIRIu2qAAYbNNtrrrSorjgqpmckNDTcmMi/ Sy1Wu+vPHiYRHGhjZAVdDg+noJpC0ME= X-Authority-Analysis: v=2.4 cv=NKBAaE6g c=1 sm=1 tr=0 ts=6ab2b1d1 cx=c_pps a=+D9SDfe9YZWTjADjLiQY5g==: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=or-B4SToQ6AIma83kDAA:9 a=3ZKOabzyN94A:10 a=QEXdDO2ut3YA:10 a=vmgOmaN-Xu0dpDh8OwbV:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwOTIyMDI0NiBTYWx0ZWRfXzsT0DVNPVds3 p5w8rgQMorVqLAUmcE14z9NIY4qWEKqheykfJFvIBVGWjAviTcpME3UZ4HceZOWPwbn7McQaLLY 3d2dcRj1mkUHCjjiEi+HPjHk37TDafH11nsnIWoRB751skvLYOc8ks+l8Uefq7TMh+rT4QfK3RZ 72/4Z4ky9VOgeOXzhT0MnnS8nGsSug0qQIEqlHKMr5GxE9xOQcCTaY6R83ABZm9otFFQHv5rz96 nzoj77PmG6ayeyBspQ3plN1jon44n93B4IPMvV+q6CCH1C3IFq6f9Mdj/6l9NrRK3ZbGeJ3B2xK H0lB90xlC0wJDnvsD7xYXHb16E8ESq+wgZnorIBzbffjbXY6mc9BrQQ3z41Kygx6J58gMU17dRQ PlInYkGLmkl0i/dUSiCv6QF+7BZeq3Afw7xCrHetBDyJ53yUDGO4y5f7ycXTIvzpVTBZHLfN6+Z 8lQVPDia1zDBePTazQw== 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-22_02,2026-09-21_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 priorityscore=1501 bulkscore=0 suspectscore=0 adultscore=0 malwarescore=0 clxscore=1015 phishscore=0 spamscore=0 impostorscore=0 lowpriorityscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2609040000 definitions=main-2609220246 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: 1790095998948158500 Move arm_set_cpu_power_state() from the header to arm-powerctl.c, keeping the power-state helper with the other power-control code. Restrict the call in arm_cpu_reset_hold() to system emulation. Signed-off-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: Richard Henderson --- target/arm/internals.h | 8 +------- target/arm/arm-powerctl.c | 7 +++++++ target/arm/cpu.c | 4 ++-- 3 files changed, 10 insertions(+), 9 deletions(-) diff --git a/target/arm/internals.h b/target/arm/internals.h index 1775835ad50..1efda543270 100644 --- a/target/arm/internals.h +++ b/target/arm/internals.h @@ -2082,12 +2082,6 @@ bool arm_cpu_match_cpreg_mig_tolerance(ARMCPU *cpu, = uint64_t kvmidx, /** * arm_set_cpu_power_state() - set power state synced with halt_reason */ -static inline void arm_set_cpu_power_state(ARMCPU *cpu, ARMPSCIState state) -{ - CPUARMState *env =3D &cpu->env; - - cpu->power_state =3D state; - env->halt_reason =3D state =3D=3D PSCI_OFF ? HALT_PSCI : NOT_HALTED; -} +void arm_set_cpu_power_state(ARMCPU *cpu, ARMPSCIState state); =20 #endif diff --git a/target/arm/arm-powerctl.c b/target/arm/arm-powerctl.c index a06be5cc997..213e7ae056c 100644 --- a/target/arm/arm-powerctl.c +++ b/target/arm/arm-powerctl.c @@ -45,6 +45,13 @@ struct CpuOnInfo { bool target_aa64; }; =20 +void arm_set_cpu_power_state(ARMCPU *cpu, ARMPSCIState state) +{ + CPUARMState *env =3D &cpu->env; + + cpu->power_state =3D state; + env->halt_reason =3D state =3D=3D PSCI_OFF ? HALT_PSCI : NOT_HALTED; +} =20 static void arm_set_cpu_on_async_work(CPUState *target_cpu_state, run_on_cpu_data data) diff --git a/target/arm/cpu.c b/target/arm/cpu.c index f58a1db843a..76aa47ac503 100644 --- a/target/arm/cpu.c +++ b/target/arm/cpu.c @@ -351,8 +351,6 @@ static void arm_cpu_reset_hold(Object *obj, ResetType t= ype) env->vfp.xregs[ARM_VFP_MVFR1] =3D cpu->isar.mvfr1; env->vfp.xregs[ARM_VFP_MVFR2] =3D cpu->isar.mvfr2; =20 - arm_set_cpu_power_state(cpu, cs->start_powered_off ? PSCI_OFF : PSCI_O= N); - if (arm_feature(env, ARM_FEATURE_AARCH64)) { /* 64 bit CPUs always start in 64 bit mode */ env->aarch64 =3D true; @@ -671,6 +669,8 @@ static void arm_cpu_reset_hold(Object *obj, ResetType t= ype) arm_set_ah_fp_behaviours(&env->vfp.fp_status[FPST_AH_F16]); =20 #ifndef CONFIG_USER_ONLY + arm_set_cpu_power_state(cpu, cs->start_powered_off ? PSCI_OFF : PSCI_O= N); + if (kvm_enabled()) { kvm_arm_reset_vcpu(cpu); } --=20 2.53.0 From nobody Sat Sep 26 20:01:25 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=1790095992; cv=none; d=zohomail.com; s=zohoarc; b=S9o7K4ixVYm6t5/aNHYNDgpt69gWKfsoDn19c+le+7zK6fxoFLMbJVjMLGcOpxMo7kR4EdUdbmpmUL/RTzJZVnMCySBctYMMJ8QvFJVqSxgP4jgl/jfJLbext4ZlnAa+lNUGDuWU816yFHyVssjrWcoJ76+hZCWHZHne0AWhM5k= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1790095992; 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:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=NVL8DScROpX5FRrNBTXD1YKsAIvozSDWDpA2JU39ztQ=; b=jdkGJtWjgQJc51XOA2oKx04t9s8kAYhi2Tzy4Qd+3FN0M12sjL9ty6IuuWqv7kYiXNfsysFxJ2fjxew0voE1yuGgaep1e/+9UW9XREyUSMhRY2lFq10zma4Oy6/RYiGB8TR4qrIsfU2RZexV/yB490/vPHD9t4mD/50pnNMEdiI= 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 1790095992056221.0018594555729; Tue, 22 Sep 2026 09:53:12 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1x93j4-0005Ae-U2; Tue, 22 Sep 2026 12:52:18 -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 1x93hf-0004LB-2i for qemu-devel@nongnu.org; Tue, 22 Sep 2026 12:50:51 -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 1x93hc-0002Uh-BK for qemu-devel@nongnu.org; Tue, 22 Sep 2026 12:50:46 -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 68MG5qJf884508 for ; Tue, 22 Sep 2026 16:50:32 GMT Received: from mail-ua1-f71.google.com (mail-ua1-f71.google.com [209.85.222.71]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4guvw7g6rr-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Tue, 22 Sep 2026 16:50:32 +0000 (GMT) Received: by mail-ua1-f71.google.com with SMTP id a1e0cc1a2514c-9832d9be02fso21102241.0 for ; Tue, 22 Sep 2026 09:50:32 -0700 (PDT) Received: from localhost.localdomain (pmd666.hd.free.fr. [88.187.86.199]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-49fde199c21sm3642075e9.9.2026.09.22.09.50.30 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Tue, 22 Sep 2026 09:50:30 -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= NVL8DScROpX5FRrNBTXD1YKsAIvozSDWDpA2JU39ztQ=; b=ZoOJBd0AGI1LqeNn 1CaexlAOGlHxB8NI/0SWOnMkfuI6u0Kwu/4T4TFyofiBA1GNEhx0mFCufkcl0fT/ DIY3j/jPh0G3m5OIqa3sJM3fLRAa0lcrkayWQsY615sRLgq/BOXabksd4s7iEF4p IKOm/JWEmYaM3qyRY9yBRRBoitsjjqfCcPaHDEHjGc8el7Ehwf3h/WIegAK0/+gV 6AanJbP8ULz6aytXgiZX6goNktb7YsMjaMlVeEWtFc2/pYfJ6bOmqWSKohjGeKSe w1uF6WhTHlGLWr5IoftLZXFA4C0pc2wP0AjKqna6e6AH0AzSOYdq0GiDwCCGVdY+ a5DaKg== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1790095832; x=1790700632; 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=NVL8DScROpX5FRrNBTXD1YKsAIvozSDWDpA2JU39ztQ=; b=DUvw/vVtBdQ2hmUHyZnhJ1Pt3dv2B1r45QNavY6ZkVMY7ewyhKewP6aZIlwotUjj6u fPVTQ4uyZxnt5IEi7pdpfA+l6P8O31N4kBqdOgAJ4MxiuDZww305h2fYRvK4k8OnKILd QE6Wn5n9MjN9rLX65ur1jrk8R5fdaVG2e3pEJgpzwFoo58Vt/tumQiRSSBJqO1/QOl4o UMGxpCFQlpLK/AHVCdvCkh/F7XJmZYMUIql6rAAl3DxUDeszuL+Aio2p1mi0V0yst/5F IhTH5IjKrTCaRimxpkeSHs+egbvfHdPCOrCpwvmzUPC2TAIUN7GS9uqLFAsjbx0OLgAt 1Htg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20260707; t=1790095832; x=1790700632; 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=NVL8DScROpX5FRrNBTXD1YKsAIvozSDWDpA2JU39ztQ=; b=Q5V9mj93WzLLzm2JjF3tawN3faJSM3IdgF0IJ+I+3ZDVa6iwfk5FYy8O7wCd+8jqq2 JEHlctqZuCs4soPFC4rUoSTL0l+pHFlq6GpObMJifNvXXugcKqwvMVuzVKwC/cGdXZfI ZQQGOLogfK5q1gKAxwbzJBWTJgE15AUjA+C6InQb2lO7hxmEdjd4Uih2CEmhrHPo/T95 MYH67SUBKc48UPczGV2gX43h/tWsSafXv7E0tSPB6uCrbAWaHedOK3eo5JIvVd/OJEPh rIvHeqjscN+QCeQnyFdlgqIgTB0ZhVAbPdvemvzlxL5dJMc+dFI8sms8c+vVYpodQWAG al7g== X-Gm-Message-State: AFuF++lV606CreK696AVdVXZ7CsvZnlP4TN2JDzEkEl85rs53YJJoEgP /1Cwr54BfCvJwBqRr8wHjXSPOdTnWAXERiaheilvGlVD1ZR8+pygchDV6Tqnt6jQf6fmZgHec7O CTeQEtlAy+EGScBvkIOYjRMj2uMY1bUgMyO7Yv9RBAnzMroPgoBW2LXov+SsjVKYncg== X-Gm-Gg: AYBFou0mXn+5NplZ8nHJ/w2Og82L9pOvfcgKoK/EG5hF2frgXHo8JKkbfaVnIDkd7Dc O6KojOIdHghDqJoIjxr4mIvV5cj9JqO7ZeWAp82Fzs5nP2+g7qOHO31og00iTHuc6Yx9e+MCQ7w W3n7X4gg5JrBRlLy80NZetbi8MGoV05EXNxFtyVBK9KKEGnn6bngFTf3LNgE/iKn4aKclXdacs2 J3oKdM+tToJb8XvPnyMfjvR5s/5D+/ByAbG9/b41ShDhVwPWsSYNh7UtBj+7fNNbip4le6thjXw rwdTXEZZXjLd0OxWEhCoyD5zaGdon16svgot7Xhg9+FzqwQ0lEXv+DuA3u99mwC/zQckpinVhsV McJhxNUPU/fch4IBW+iNtYJQDk43m76jTRl2Gr/d2 X-Received: by 2002:a05:6102:5f0c:b0:7a1:f7d2:e81b with SMTP id ada2fe7eead31-7a55d28bc28mr7904512137.20.1790095831695; Tue, 22 Sep 2026 09:50:31 -0700 (PDT) X-Received: by 2002:a05:6102:5f0c:b0:7a1:f7d2:e81b with SMTP id ada2fe7eead31-7a55d28bc28mr7904471137.20.1790095831349; Tue, 22 Sep 2026 09:50:31 -0700 (PDT) From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Cc: qemu-riscv@nongnu.org, Peter Maydell , qemu-ppc@nongnu.org, Paolo Bonzini , qemu-s390x@nongnu.org, Richard Henderson , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , qemu-arm@nongnu.org Subject: [PATCH v2 07/17] target/arm: Kick vCPU after updating PSCI power state Date: Tue, 22 Sep 2026 18:49:25 +0200 Message-ID: <20260922164936.15189-8-philmd@oss.qualcomm.com> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260922164936.15189-1-philmd@oss.qualcomm.com> References: <20260922164936.15189-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: AW1haW4tMjYwOTIyMDI0NiBTYWx0ZWRfX76VnNbchj6LI huHsslJ+R3lHxGGDlnWOFY9hBqbZj/EAaVtFqVom8uXVGu2fi2U3kqKc0I7nitN7qVVZh2LGz/f MIe+j7AIcixNj1gR9/YoiDGb3wJbwRQ= X-Authority-Analysis: v=2.4 cv=ZYqIpcVA c=1 sm=1 tr=0 ts=6ab2b1d8 cx=c_pps a=KB4UBwrhAZV1kjiGHFQexw==: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=20KFwNOVAAAA:8 a=EUspDBNiAAAA:8 a=ZUU6x_L2PbSNHYkWwXMA:9 a=3ZKOabzyN94A:10 a=QEXdDO2ut3YA:10 a=o1xkdb1NAhiiM49bd1HK:22 X-Proofpoint-ORIG-GUID: fS21d0sRUxfme_g3rS_0cGt1EnqPvb85 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwOTIyMDI0NiBTYWx0ZWRfX1M26qoTBvIM8 j85n817YYTA91lgmC5wBhza0DCND4ILfeWVpCTman6MGN6/9IU3NhBhUvmpPUPCzUuv4EWtlnpQ ccYJEGQskWYoGC85LSqDJG/9Ar/sYwl5SMPPAtk+D0Mqgs+ZYXsUDxbOLWs03d3532AV1l05dE/ yPBFgMJA3JDDwUjtzYyIVtY98/6KfNaXnqKYmdW9v/I+qZI11DEMgXSu+lj39ko7dbj6hILOzum oXuK7rWO3iRsO9tHZOKhUbUHmBRulEzX8kwYrOhsoQCTTQYa148pSJidMmk0OAyGWdgaWqD7/Xj 8754sVDjWUEd5egsSp+/HWPGcqrZzV2ggO9FqCIfyR83BDVCBaF9E6rnX0v+jqmhPMW/cOK7d/u HRgI0o/ewlI+Ym1fMRIWl07R3Wf8eZbySDwaIaE7do2BfSndXTv1IqcNJlH3xNDBeMVORyqw16M anXiyk2r7jEhBX/0OVg== X-Proofpoint-GUID: fS21d0sRUxfme_g3rS_0cGt1EnqPvb85 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-22_02,2026-09-21_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 bulkscore=0 priorityscore=1501 malwarescore=0 spamscore=0 impostorscore=0 phishscore=0 lowpriorityscore=0 suspectscore=0 clxscore=1015 adultscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2609040000 definitions=main-2609220246 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: 1790095992700158500 PSCI can update the power state of a vCPU other than the caller. Kick that vCPU after changing its state so it observes the update promptly. Reported-by: Paolo Bonzini Signed-off-by: Philippe Mathieu-Daud=C3=A9 --- target/arm/arm-powerctl.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/target/arm/arm-powerctl.c b/target/arm/arm-powerctl.c index 213e7ae056c..1bd8a549cc9 100644 --- a/target/arm/arm-powerctl.c +++ b/target/arm/arm-powerctl.c @@ -48,9 +48,14 @@ struct CpuOnInfo { void arm_set_cpu_power_state(ARMCPU *cpu, ARMPSCIState state) { CPUARMState *env =3D &cpu->env; + CPUState *cs =3D CPU(cpu); =20 cpu->power_state =3D state; env->halt_reason =3D state =3D=3D PSCI_OFF ? HALT_PSCI : NOT_HALTED; + + if (!qemu_cpu_is_self(cs)) { + qemu_cpu_kick(cs); + } } =20 static void arm_set_cpu_on_async_work(CPUState *target_cpu_state, --=20 2.53.0 From nobody Sat Sep 26 20:01:25 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=1790095984; cv=none; d=zohomail.com; s=zohoarc; b=NZqqI4T6VOzxVkR9xcESjQfDy8HPJh+SMMcLomnd6alquePNMxMddrmYJ98Qs9XEB3j0SFVDUK3CzYcz6OuM9Y9KkqWl1A+Ak/3V7dxFi7ZcGb+HkB4Sv2yGD8zFcrVgKtN4aoyQug0BvGyKMh6LjjkInlbBT7TD+NFB4hD4wyo= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1790095984; 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:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=VWAPWAp+zhiL5Viz57fv4ZOSFOIrqkMoe1JjS/wZSI4=; b=bUwkAuBX9PiihqCGYny0sN2uYa8QdLlaojpFofHEWIOhS9r5KRB2WodAArju6zQqaw4J/6yv8KHfhre9uc76UqSHxyXeDOw7BzDYGQRQrRJnzTTl3rrV2rSnW/WrluTuW9MLKMbkp7aC0r82xesJAjOHbbJRMFZr10K0Y5w0Zbg= 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 1790095984334470.4404474933243; Tue, 22 Sep 2026 09:53:04 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1x93jY-0005v9-P8; Tue, 22 Sep 2026 12:52:48 -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 1x93hn-0004N4-7j for qemu-devel@nongnu.org; Tue, 22 Sep 2026 12:50:58 -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 1x93hi-0002Vn-Ml for qemu-devel@nongnu.org; Tue, 22 Sep 2026 12:50:54 -0400 Received: from pps.filterd (m0279873.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 68MEjI29449492 for ; Tue, 22 Sep 2026 16:50:39 GMT Received: from mail-vk1-f197.google.com (mail-vk1-f197.google.com [209.85.221.197]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4gunjytfmf-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Tue, 22 Sep 2026 16:50:39 +0000 (GMT) Received: by mail-vk1-f197.google.com with SMTP id 71dfb90a1353d-5c8487ce333so79173e0c.1 for ; Tue, 22 Sep 2026 09:50:39 -0700 (PDT) Received: from localhost.localdomain (pmd666.hd.free.fr. [88.187.86.199]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-488627314d2sm6503348f8f.2.2026.09.22.09.50.37 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Tue, 22 Sep 2026 09:50:37 -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= VWAPWAp+zhiL5Viz57fv4ZOSFOIrqkMoe1JjS/wZSI4=; b=P2WOBmfCgtkoa4gk AqiUrXvrD0z9QPbOpyMdMlGZeeEp2kGxb9Ey0Nt7/KIUc+RuohOgqlidnx59f92Y bc09Mgc2ggtTXy7Lhz8XYH4+/1MexSuoltYYzFZGLmET02X5i4Vkn3M/nK50MORs wluMJN/e0+/290Y7Fj8Eu8pow0LqfKmfBHaq2NuN0AZ0ZMDP2JcWVSkv/tYIEPW5 Q6OpTjdyKb/xFyQJI/muGdsLr16hCBmcW4HK9/kT+0jb2iYULX1YfwN1P835Z0kg D7zK2HOE5g88tMYLz427Nt+U4qxrpA/baVWUSGoHYx7f62PaxHHcbf0scYBGx79z TrQa/Q== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1790095839; x=1790700639; 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=VWAPWAp+zhiL5Viz57fv4ZOSFOIrqkMoe1JjS/wZSI4=; b=QUaUBKBWifXgJ890RNU0RB3odaB9HrfQvFwv2OvvGn9ghY6yyTbcxjEN7kGOxCjPaq 6ixyTQBkfUr7gzE4Ruywyllbzl44PRgTt/2tqTuQOHc52+/gr9cmm1NK67ML7lKuMWig gXj4pnKAnCoWXV02XA42/MVPRyf9xc+1/ElBTc3cw91Te5zLFBUonKJW2+/Q8lAj2u18 FoSlAXHkvkLyABHKP8uuErULCVjWbjOmgTWz8rdFWOjo5Eb0dXVoBRg2dtCoUWwVq3Z0 jwljf9u7QsjP2pXb4Urcx5tmN5COg63pG35ws8SFOrfMLm9ymAD7G54UnFK5mMqOJsta e7gA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20260707; t=1790095839; x=1790700639; 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=VWAPWAp+zhiL5Viz57fv4ZOSFOIrqkMoe1JjS/wZSI4=; b=qFWL2RwFUB6+ivjLJ1ZifUPp5/nObKzdquD5kckehqr6rPyWFddqDSPWlwkgxL9jD+ hCS4Ac+50yqpjKqGBPPNZtiwkRuAtxlVc0kdAuudQwDdD2pbMRUaIytvsuDok5FHigio Fycx8nDQXSwZXyQFJDh1PpjrZOOdLGgvGJoPvFYFkyZIFSAVOUXpBjgKHk/5dfwx2a6S aFxdjaTRXpReOmznrPy03OM8hoobKRIrpjmV78qECX+MW5serZJgyd4uHjw0GrH7LuOD hdq1a6tRHAOujbDhrtlQYa0opsTWTRsO8XcJlkgEKxsdYhnlt6MhKOHxMGpdm+B1N39+ uPsg== X-Gm-Message-State: AFuF++nH2CDOXqvkWpFrGKk4ckakgDNJbOgKnv8m0QKPruK/Slo7yTaV 9TbUBrRp+re8T6CqCESsEQM6ikIM+LdgCR79w1/m5a8X2GQ3ZeUKxXUNdQrWY1IULxKqztVMnoq WlmiLo/cvbe16L/VbNtRyxS51GOZ812sogojsykAJVXstjLKb9Ts3cYhterpjvGClPA== X-Gm-Gg: AYBFou0YkA2YitKvfQdapp8KeINhosHMvqTIF7usolLpNvmFzEe3qLtoHq0tyJzFfbJ 8GFalYJF/rBM/TXLSW9HaEf7dJuV/KVeuSzsfdpJLkNpYtfZz38LQ64zPCf3smHQHaLcBkoXn5y quAXCh4St0lGUEUp7+puoCn3AY0dCnjDzzak4gz+czrLm8FEejNsM5jaA36+c+n2hE1d7nvnWgb s1uUgdz/VdDDJv+7CEcbVcrKQS7r+4jAekvXF46kOHrDE6c37nYJFpERuIlRbZFokfqKsR2s28E my0ismgObCiodhUmuxVDl3yr0IT5jRQQIJW8l5VFKAzn69sJSw9EqesaKV4DOxN3X+0pL/nItnJ IwcsMiRD0WK5/ZQ0mWqKNPel0SQ75TI5Vek6gbauq X-Received: by 2002:a05:6122:1d08:b0:5bf:b3a0:388c with SMTP id 71dfb90a1353d-5c9f15a1910mr164133e0c.6.1790095838954; Tue, 22 Sep 2026 09:50:38 -0700 (PDT) X-Received: by 2002:a05:6122:1d08:b0:5bf:b3a0:388c with SMTP id 71dfb90a1353d-5c9f15a1910mr164091e0c.6.1790095838531; Tue, 22 Sep 2026 09:50:38 -0700 (PDT) From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Cc: qemu-riscv@nongnu.org, Peter Maydell , qemu-ppc@nongnu.org, Paolo Bonzini , qemu-s390x@nongnu.org, Richard Henderson , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , qemu-arm@nongnu.org Subject: [PATCH v2 08/17] target/arm: Access PSCI state atomically Date: Tue, 22 Sep 2026 18:49:26 +0200 Message-ID: <20260922164936.15189-9-philmd@oss.qualcomm.com> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260922164936.15189-1-philmd@oss.qualcomm.com> References: <20260922164936.15189-1-philmd@oss.qualcomm.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-Proofpoint-GUID: UW40keXrv0I7c6X4uwPHJR7qffNRmRBZ X-Authority-Analysis: v=2.4 cv=KqHYSmWN c=1 sm=1 tr=0 ts=6ab2b1df cx=c_pps a=JIY1xp/sjQ9K5JH4t62bdg==: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=rJkE3RaqiGZ5pbrm-msn:22 a=EUspDBNiAAAA:8 a=MMc1H2EL_fK9NYWBrJgA:9 a=3ZKOabzyN94A:10 a=QEXdDO2ut3YA:10 a=tNoRWFLymzeba-QzToBc:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwOTIyMDI0NiBTYWx0ZWRfX+E7PMseWwDer e0Ulj03rHWgAw1+lJPKXRace1vsMyeIV6ERAtd5p7/xEXpZW6Z7v4QC5WrlRWmFZ3HJQjLpmkFw eZQ1bAf6by+caWJcdtMWx0dAceC0vve9Z201edTDgv1DXg68H663eWAPdex5YIE/Gd63ZWEzmmU 92m0p6Ki/Zin4oy+st8dLs199DoDmKUhkLUmun8kTas2ywbgeuRfmy5p/aTi321VuuqisKsw2Gd 8SpA3smrArR7qKiXaELjHuEH7rN33AvIW3TWIcHTUBRUpW54geQToc6uQnjjRB6uX1bPUy1K5NC impzSfD3VJCN4f9qd4V7e6IO3b44VMGZ/7H7BZzF6CUKtLppLcjrKk7x1w3XqPU+DEdp3UK+cdr NaOLTp9B8MnhQCaqv0OSYxXyGUVWgYOvrQ23Bs0lojzEZelOxEfoZls1dm1OXWvUIPk5ngoYQUh C3VFsYOQ/j6wyTT8X/g== X-Proofpoint-ORIG-GUID: UW40keXrv0I7c6X4uwPHJR7qffNRmRBZ X-Proofpoint-Spam-Info: AW1haW4tMjYwOTIyMDI0NiBTYWx0ZWRfX2YdQ4GeU+u3H zVPrxEmm58nrKni+Ux1kydV/q53re083zk+6pTz2UCeC+FKdQrYBwHVvcCZpp0aicSygO1V+96G /qHCm75jT2G3rx/qTENqFp6CC5oIKIE= 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-22_02,2026-09-21_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 impostorscore=0 spamscore=0 bulkscore=0 priorityscore=1501 phishscore=0 malwarescore=0 suspectscore=0 clxscore=1015 adultscore=0 lowpriorityscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2609040000 definitions=main-2609220246 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: 1790095984768158501 Use qatomic_set() when updating ARMCPU::power_state and CPUARMState::halt_reason. Read ARMCPU::power_state atomically in arm_cpu_has_work(), which can run without the BQL held. Signed-off-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: Richard Henderson --- target/arm/arm-powerctl.c | 5 +++-- target/arm/cpu.c | 2 +- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/target/arm/arm-powerctl.c b/target/arm/arm-powerctl.c index 1bd8a549cc9..fcac26d9190 100644 --- a/target/arm/arm-powerctl.c +++ b/target/arm/arm-powerctl.c @@ -50,8 +50,9 @@ void arm_set_cpu_power_state(ARMCPU *cpu, ARMPSCIState st= ate) CPUARMState *env =3D &cpu->env; CPUState *cs =3D CPU(cpu); =20 - cpu->power_state =3D state; - env->halt_reason =3D state =3D=3D PSCI_OFF ? HALT_PSCI : NOT_HALTED; + qatomic_set(&cpu->power_state, state); + qatomic_set(&env->halt_reason, state =3D=3D PSCI_OFF ? HALT_PSCI + : NOT_HALTED); =20 if (!qemu_cpu_is_self(cs)) { qemu_cpu_kick(cs); diff --git a/target/arm/cpu.c b/target/arm/cpu.c index 76aa47ac503..5cfd3bcfc8e 100644 --- a/target/arm/cpu.c +++ b/target/arm/cpu.c @@ -149,7 +149,7 @@ static bool arm_cpu_has_work(CPUState *cs) * Only another PSCI call can wake the CPU up in which case the * power_state would be set by arm_set_cpu_on_and_reset_async_work() */ - if (cpu->power_state =3D=3D PSCI_OFF) { + if (qatomic_read(&cpu->power_state) =3D=3D PSCI_OFF) { g_assert(cpu->env.halt_reason =3D=3D HALT_PSCI); return false; } --=20 2.53.0 From nobody Sat Sep 26 20:01:25 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=1790096124; cv=none; d=zohomail.com; s=zohoarc; b=BGpSXmZvsxHF4PrPw4gQM6ABqT53hh49kYhYUxPNYGNxeYuh0bqD3gFWRedsk0bpVynR9oYt8mUfEtDI083J1bmE6OC+BdsQfZp+ioB5hnHvQ3+6KDlpfPBaNDGocxM557RRPG2/nEMBIQyUYhy236wMuw5NG+hjxU3Iz7vsCrY= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1790096124; 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:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=wzgwIgPwTbv5GuXC1qq/1cp5HK8wllQnhGsYgJ3NxUk=; b=Xwxake6DVxl0+nURN5bghjch7PjQRam4wOJ+iJRcRL7pScysmEKG/LCakJIO+xAZMLtDOkdJhRbJIM8WlMdIDP/RMOhe2w64XoT4BA9kdMZwI1D2vORvEexi1Bywn2H7xuiCwrRBdD7h9wuBHLeYTj8ExJlEYD4z9qWzUfDH6C4= 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 1790096124821709.8233252932614; Tue, 22 Sep 2026 09:55:24 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1x93kC-0007AB-Eq; Tue, 22 Sep 2026 12:53:24 -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 1x93ht-0004Pe-3v for qemu-devel@nongnu.org; Tue, 22 Sep 2026 12:51: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 1x93hq-0002XA-Of for qemu-devel@nongnu.org; Tue, 22 Sep 2026 12:51:00 -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 68MG5q3h884502 for ; Tue, 22 Sep 2026 16:50:47 GMT Received: from mail-ua1-f71.google.com (mail-ua1-f71.google.com [209.85.222.71]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4guvw7g6su-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Tue, 22 Sep 2026 16:50:47 +0000 (GMT) Received: by mail-ua1-f71.google.com with SMTP id a1e0cc1a2514c-982a39e0c4dso8554241.3 for ; Tue, 22 Sep 2026 09:50:47 -0700 (PDT) Received: from localhost.localdomain (pmd666.hd.free.fr. [88.187.86.199]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-49fde197466sm3544725e9.7.2026.09.22.09.50.44 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Tue, 22 Sep 2026 09:50:45 -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= wzgwIgPwTbv5GuXC1qq/1cp5HK8wllQnhGsYgJ3NxUk=; b=YNvKOs4wZLxJEQB8 MxRtMyv51FVS2mRHvXc8yqJN2OzBK28HhlOz6yaxzk/0wWNeSNYqOCUL603U5Myf eHCBL4UiROupy2buqxpdSVHBQIL1huygbNBDhc6faNNmo69eHDzLjLzP+NoJcHaG cN8W8zSK0NeCeET9EWtMvlBsjVBh9Zy2WaaZB0CgfeWG4gO0EVL+Yv8G4ZWSM2SP AmKc56D+CUwXosKWXncclOY9KDZgk0XZKn2EoR/r4JIm8MSNYYyO0sOg2IEOr/mP bCntzkTFyY7ew51eS068NHEmtTKoGfYMhp3cW2A91HyVp5x/zcMC9nVGqgAWFUEj TJUUqw== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1790095846; x=1790700646; 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=wzgwIgPwTbv5GuXC1qq/1cp5HK8wllQnhGsYgJ3NxUk=; b=H4Qqg152/gmQaDAjEyjrjDaKw2iGmnyuatkfeiDyCo8YwqvDs0LNGO9o2//QHJJzUU B8pJ/P0Cmjy9P4PdpyrtRjnR6HO1fcy6r4kqin5c9F4MbsAVy51fJQm5vFTdObLbFjGR WL/r9JpLG42Rf1Vqpk6eJFRP6OsEKAn/6xlOBneCAeWUtR8FmH2a3XRb/DYDPHXq0Ngu iEGkp1Nc25cBtfmIpzYbGvemFkbBmQHfT1bu9IOFZfODUB9WWTImDSSzOh9ZglL+BEnQ 3mJS8x3VKtamL3fx7+REZWCDUNxq2CrB3kf0jqtxDjpvus980jpYl5dVRV/8KUqZTe5y VKtQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20260707; t=1790095846; x=1790700646; 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=wzgwIgPwTbv5GuXC1qq/1cp5HK8wllQnhGsYgJ3NxUk=; b=2t3/kYtQ5CiOnSXITg3Fd6mRQ10gdxUfc833Yw0LjKrx6/b42vpIpNI3PpM7F1JxGW lp4zG7cOLmHM2FMydMayZDABftZXr6oPBBvaWmj2yEQ8BX9FaPyXoWDkvXLwb2BsJZNM w7kRmAcQ1wtbOGs7/K1lqUSuyB5VsnQctj3Uj0GQCpSJyWJO/O8vQJiVtBfmyaedZrpV 3WBhGprNIpsKPvV+YWymQlLX649V+CRnrE6HcPocUuCct7iVaUpNUBAKDKPYpfeZi2Vb aBe5gQaNZoml/93O8rd6iXqW9qJ9Hi1sqWawYkzkt9ca9SJRfHTOdsKpYdsH6deEYsPz BZnw== X-Gm-Message-State: AFuF++mTX/u4knueCgETjL9JkSIpeLVy79sY0ETYt0yTg3PMqY4QoGiW QqEGOX1FSxBzcR/JJbdcgNIIz0Gspt1Sem42R/5foonLm2CWik+WzMxxMYh2y4wk0LjTydZN3mF CFLuBheNpZH/yYfYPOnDeHUPT4lyGht1uEGg3Jr2ttbGvZyc+ya3yMJPkDmCUKyW+fA== X-Gm-Gg: AYBFou0I3dyY4nA7iDTCHt4UDOWFviN9eibsyDYOMav+43z7e4ujLOXt0onxhhg7LRM uuvpDHD+lQbvpNs+dSJ4Okg/nPgGu/AgPUX1gRI6NbCY4eYPZv7+mgkNpUzH6N3GC3tPf90Atlo l9IK3AKCQwPLt1bFtadRJACY8hjZTo+lcitZGvp5s2KLAtsqnHoq7gbIa+yAQ3br1jk89wcs/Va tD8EBv3DsuYvABhkM/dVm63Qe/8MsofFZQbJHf6TEPmz49ztjKgJbzLlWf9QbTcs9mkwJXkRb0U jD/cv+JNJ7KV38J3KO8nhzvTIgCxADdZIZt2PQsIf3626DBiqyxqo5UHQSa9UoU6+bqObI6n70G AQsD2vVkgmbEahDoIwPE7HD+eXLMbqQwftMnR03I2 X-Received: by 2002:a05:6102:41ce:b0:7a5:1d50:ac35 with SMTP id ada2fe7eead31-7a56fb37fe7mr6286080137.21.1790095846024; Tue, 22 Sep 2026 09:50:46 -0700 (PDT) X-Received: by 2002:a05:6102:41ce:b0:7a5:1d50:ac35 with SMTP id ada2fe7eead31-7a56fb37fe7mr6286056137.21.1790095845679; Tue, 22 Sep 2026 09:50:45 -0700 (PDT) From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Cc: qemu-riscv@nongnu.org, Peter Maydell , qemu-ppc@nongnu.org, Paolo Bonzini , qemu-s390x@nongnu.org, Richard Henderson , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , qemu-arm@nongnu.org Subject: [PATCH v2 09/17] target/arm: Read halt state atomically in arm_cpu_has_work() Date: Tue, 22 Sep 2026 18:49:27 +0200 Message-ID: <20260922164936.15189-10-philmd@oss.qualcomm.com> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260922164936.15189-1-philmd@oss.qualcomm.com> References: <20260922164936.15189-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: AW1haW4tMjYwOTIyMDI0NiBTYWx0ZWRfXzaJXOTNtVM0T 4p+fSCy92igt2ipY5W81vs4mLIGxYKIrI/u0r1r/FB1iFiS31pWoR82sVzGl9aLYh3OGnKpy1nz lUWBR+nIj7q3Gr+Os6uqQ5DcTHvGEjo= X-Authority-Analysis: v=2.4 cv=ZYqIpcVA c=1 sm=1 tr=0 ts=6ab2b1e7 cx=c_pps a=KB4UBwrhAZV1kjiGHFQexw==: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=fCBUlyQ174aHMSgJZicA:9 a=3ZKOabzyN94A:10 a=QEXdDO2ut3YA:10 a=o1xkdb1NAhiiM49bd1HK:22 X-Proofpoint-ORIG-GUID: 8Szn6mnifi9q8YLKb1ccLmwqNQH8v1J7 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwOTIyMDI0NiBTYWx0ZWRfXzHov23IB41y5 xtYHataIpuKrRxofZI0H1R7hnGisDWL5uOgAhYcZOcqhVBtCTmPZJ/lVshqZBYFd1TZy6UkBBRr zLIAFRO32iumalbV6zUxOMAN6sNJgp4oUNViKBOX5KgUF7gScQ61IJhXstVD36xr4mR6slbvmEN HHfKvq0AfQxBDevBbJ8yWvmnM42QcfJN0klWbjhJ8Q0NEpixh9ToVkjC8bJV+2NcPJIBJHppR4B uPF3u3q9hVeqopJIiK2/HUitPyqjUVbtiXtn2wEDdTYiY0s2iTSwFAbLyq6PHUVYAuu6WBgfqVm lsGyNaZFJuG4zstwju2or9L42iaFUz/iTqjbgIAr0bgvHrFkbQF9QKAyEZCkDiYNOYDkI/DFfAm Tv+jg00oZq8BlfeuvOAd5EPSF/3g0HzYx0nH8lEMZvPG/JGnvy5CITmtfftoSUpgs19iKsgk6M0 LVh8R+upjMlHhxpeU7Q== X-Proofpoint-GUID: 8Szn6mnifi9q8YLKb1ccLmwqNQH8v1J7 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-22_02,2026-09-21_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 bulkscore=0 priorityscore=1501 malwarescore=0 spamscore=0 impostorscore=0 phishscore=0 lowpriorityscore=0 suspectscore=0 clxscore=1015 adultscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2609040000 definitions=main-2609220246 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: 1790096125787158500 arm_cpu_has_work() runs without the BQL held. Use atomic reads for halt_reason and event_register to safely inspect state updated by other CPU contexts. Signed-off-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: Richard Henderson --- target/arm/cpu.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/target/arm/cpu.c b/target/arm/cpu.c index 5cfd3bcfc8e..ccc6630026c 100644 --- a/target/arm/cpu.c +++ b/target/arm/cpu.c @@ -144,20 +144,21 @@ int arm_cpu_mmu_index(CPUState *cs, bool ifetch) static bool arm_cpu_has_work(CPUState *cs) { ARMCPU *cpu =3D ARM_CPU(cs); + ARMHaltReason halt_reason =3D qatomic_read(&cpu->env.halt_reason); =20 /* * Only another PSCI call can wake the CPU up in which case the * power_state would be set by arm_set_cpu_on_and_reset_async_work() */ if (qatomic_read(&cpu->power_state) =3D=3D PSCI_OFF) { - g_assert(cpu->env.halt_reason =3D=3D HALT_PSCI); + g_assert(halt_reason =3D=3D HALT_PSCI); return false; } =20 /* * A wake-up event should only wake us if we are halted on a WFE */ - if (cpu->env.halt_reason =3D=3D HALT_WFE && cpu->env.event_register) { + if (halt_reason =3D=3D HALT_WFE && qatomic_read(&cpu->env.event_regist= er)) { return true; } =20 --=20 2.53.0 From nobody Sat Sep 26 20:01:26 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=1790096126; cv=none; d=zohomail.com; s=zohoarc; b=nYzvtqKxIpHH7seLSH1lSIcU6GAw9aAb/iHaLZIQNfScym2Hno/Lx/UioeN2MHmi2U5rR2siRgF2YLuwKI+sGRznGe64Bu/mEFQJwtJ2+OZKyJTBoZ989r69t9ctJkvbo3y6z5Hsk5CHka9xGgT/5cqSVy2qrM14TDzU5oxITv0= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1790096126; 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:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=kDFRggGBgd+2DtAqNLeUqcVcpYvkyK4ydCRh++BAI8w=; b=J7FSNMEDoqQnd+D8WEe0f01q4LgQr+D8Bhh8/LwNT3ugo4Lz5pIZRt58aaCReWBGaqd009GbB6P4n0lca2bPCKhRf3dZedgU/3Noq4eD0RjaQ6mu9W2FdcPz40VvBPEYaoWr8n6pvizSIBMreTIPMaB7f5E24stF2Y+Coq4+Ij8= 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 1790096126836590.6743776694891; Tue, 22 Sep 2026 09:55:26 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1x93js-0006U8-DX; Tue, 22 Sep 2026 12:53:04 -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 1x93hz-0004RN-OA for qemu-devel@nongnu.org; Tue, 22 Sep 2026 12:51:12 -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 1x93hy-0002YP-8L for qemu-devel@nongnu.org; Tue, 22 Sep 2026 12:51:07 -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 68MEjNCL318300 for ; Tue, 22 Sep 2026 16:50:54 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 4gupbqj7j7-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Tue, 22 Sep 2026 16:50:54 +0000 (GMT) Received: by mail-ua1-f72.google.com with SMTP id a1e0cc1a2514c-97e768af628so3476862241.3 for ; Tue, 22 Sep 2026 09:50:54 -0700 (PDT) Received: from localhost.localdomain (pmd666.hd.free.fr. [88.187.86.199]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-49fdabe8a2asm68093685e9.4.2026.09.22.09.50.51 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Tue, 22 Sep 2026 09:50:52 -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= kDFRggGBgd+2DtAqNLeUqcVcpYvkyK4ydCRh++BAI8w=; b=ZjSxuWWZhzYvfDsX Ba/AmxUDn6I7edwNCDrZkY19c4bXh0Iri2c9g5fI8mKgJpfB3Srt5qRZWvlHpxic A70GV0xTg1Nz84H27jUdZxhb8EHJzjZ1YXZoDDoJOeJIajzqTFpNtRqbACZWQ/NI Yk+QwdjhKIuu0rWDYxW2NQDC8pDx+qngsAHZq4+rZsG6EejOE4k1ew602OFDqG73 y0eMO3PJrXWj+j6diamEfJpGnosYgsFPbHZd7fbcsC0/pzLWCTZ6OpkaY9W/B3VD B07jGsW5BtWQ3w8rgUlBV6SCR1oGlNUAqN176/Ufgh9MobAvU4x6gH2fEpfQFcBu RyeWZA== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1790095854; x=1790700654; 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=kDFRggGBgd+2DtAqNLeUqcVcpYvkyK4ydCRh++BAI8w=; b=dmSGtzKQ0l8E3G5erfLQctzNYEGMFuD/sRTegOFnUrYXUnbBxzIxAv2e6s5Ex8NyeX fj2F31PV/fo/WuOwrvO2b/M7OGLNcDfb4gCX6II+0GJJ4DX6NPxH8UqgZqTkkmE9GDka ZewrWHl4l/c6bvkeD1WEJkH0S+icfbDPkuLTSMcNZnVk1Ew3lwedrIZf7Iv3KYdIYC26 MLPfhc4MhrIL9JgyUStF+5ZmqGNyw/wmEH/WGgVVUTiEZA2+UOi035h6XNevIH86+fgL q7Qi2zn6NocPC0PRMl5waajzwo13rro1RzlBEbecdSG2QVN7gqRB+LSIwRSLCOjefXtY +Xfw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20260707; t=1790095854; x=1790700654; 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=kDFRggGBgd+2DtAqNLeUqcVcpYvkyK4ydCRh++BAI8w=; b=qwmQ8f//nAnRrnt8ZSADaiMrEQZRH6oRakAWYs3jXgqo/xa3kDW+foHN6reFFAgSXu UGHK2vvJhOPP7X1L6f1dxDmzIP6Rj3DHCo9dVx48mvzw0MhLtruqXjnF95dRDMUvw35q mbBcmT/asdMdHK0NXI3BtpGQBllEcCw6NYRDF5KdfefDntaIdXKMQdQ1fvMsP/QJpUQI 4ROx4hz6g3Ka9/9BJWDhseFxMbSTTV5YhHLTEBKDNS2X9E55Es1vxbuvA5Otkz1u3bG2 8Dur6fiCjFOyvs4nVZpduyfQ7uuzp7tFlNhMLsrBYv58uxZX8JO8F0w/Y0Y8VZLN53vy eCtw== X-Gm-Message-State: AFuF++lgKQPB6nJ5fWb1ruxzlJg1TGKu39pa6QU7bpEwSv50RERYAX0w 7gTq3Dl+/UtjEcecpbF7tzrgTS6RqGV0zvXe0K5EAQKpKGtw+F+GMM9YPOoanDSJHxFWRGYeeUh di5N1t9RqRAHbpni5h8r4MvoPduYSpDAcOpFha0o2zCrQkprEfvgJgIOE3tcCP5CVmw== X-Gm-Gg: AYBFou1li57T42Hok4zM6JBQix0uW9tMlrW4vSCZxjJJ1t/5Lbd17h8MDfjCdzNzBhc N4mExL18CbHjLhGBO5aN3aXR70tHUrMTNBoY5MS84SAi2oSObjh0Oe28bxELIdnqObkOmPlfJRx Od2rbYig8MIO6/Kw7fT5zhNy0jYi+gTh3mbLJod4vUdO7uEYk0J2OTrzTRGhbyAYqOX42fXYWG1 zmD7X/eVCGLjIpPJk+U1vYuEX56sj//J/5p10CgazBSqc2Qxvs/oeGV/l1FgUv9zS9eI5Zoadx2 Q0DJSnk/lEGluvj8iU52usmO64JH44gsUUYKsJRrlQJmLfzO4SEyFmm+BNJyvyfMcnIiuBNp/yi OCrfTZyjyBiImyI256wOVBPFO3HoZJfntV/V40+PC X-Received: by 2002:a05:6102:8552:10b0:7a7:ad9f:53e2 with SMTP id ada2fe7eead31-7a7ad9f8177mr5127613137.1.1790095853341; Tue, 22 Sep 2026 09:50:53 -0700 (PDT) X-Received: by 2002:a05:6102:8552:10b0:7a7:ad9f:53e2 with SMTP id ada2fe7eead31-7a7ad9f8177mr5127568137.1.1790095852801; Tue, 22 Sep 2026 09:50:52 -0700 (PDT) From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Cc: qemu-riscv@nongnu.org, Peter Maydell , qemu-ppc@nongnu.org, Paolo Bonzini , qemu-s390x@nongnu.org, Richard Henderson , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Subject: [PATCH v2 10/17] accel/tcg: Refactor poll-while-halted flow in cpu_exec() Date: Tue, 22 Sep 2026 18:49:28 +0200 Message-ID: <20260922164936.15189-11-philmd@oss.qualcomm.com> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260922164936.15189-1-philmd@oss.qualcomm.com> References: <20260922164936.15189-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: AW1haW4tMjYwOTIyMDI0NiBTYWx0ZWRfX8u32rO3IM6LL tZrwJGxyJUdlOIISvq9vesdniWGoIw01VD33df9ImvpdpHUhakggcv6YJD/7QTM9hzUmIWFJ0Q/ VnYoeZug0NkdCDi0asBbNM/KESJ7a7JMcUsTZN+ZA7yDjlktzL4Ad4NxzTuWCDjMt7+HwJexaXX EbczAHVLpZg+bqvNArc40+G4iT+0jsLL4GI1W4ePgNqPsM8Cu0Vzy10FLwo0AlxJI1T3Ui3s7Uj qt/jfRE66muDkrrSR8eXGYrQM50veXN+ea5SQY1coF0+SX5grEKktf1PcND8Mk6em8rRKYRaZIp CGQYXwxMoPxtWVcHI7WGOqIvyHp7YG9qI3PnJWrLsz5kGal1riO+d/nusT80vY74QoLRMCLJ7ZS gSqJ9EhEpDDJZ+P4suP7ehAGXB4CUWtLHkymGXnBPASSKYfXV6nEDqJaOivTFqhOaRw9NUfpIUr GonUHqWmW9itUr/CqYw== X-Authority-Analysis: v=2.4 cv=FdaiV5+6 c=1 sm=1 tr=0 ts=6ab2b1ee 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=ZpdpYltYx_vBUK5n70dp:22 a=EUspDBNiAAAA:8 a=KKAkSRfTAAAA:8 a=xF3Xt6V14tk6trZ56bgA:9 a=3ZKOabzyN94A:10 a=QEXdDO2ut3YA:10 a=O8hF6Hzn-FEA:10 a=1WsBpfsz9X-RYQiigVTh:22 a=cvBusfyB2V15izCimMoJ:22 X-Proofpoint-ORIG-GUID: C1iOU-9Rqd_XQgTAvWzNJFLFrFZw096K X-Proofpoint-GUID: C1iOU-9Rqd_XQgTAvWzNJFLFrFZw096K X-Proofpoint-Spam-Info: AW1haW4tMjYwOTIyMDI0NiBTYWx0ZWRfXwQH99Bq9NvEQ P5Ihj7vlITdpdjZntDyBd6GqXsmeZ9t7LzTgaRxyzvYFEDRadePqadR4zlcqTxQMrdTfLB6K6nv ubjq4BX8UYJ8Yz7OjdNUau0DI22gAuU= 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-22_02,2026-09-21_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 suspectscore=0 adultscore=0 bulkscore=0 lowpriorityscore=0 phishscore=0 malwarescore=0 spamscore=0 priorityscore=1501 clxscore=1015 impostorscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2609040000 definitions=main-2609220246 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: 1790096127737158500 Invert cpu_handle_halt()'s logic to read in cpu_exec() as "if halted, poll for async events and find work; if no work, return". Rename as cpu_poll_while_halted(). Signed-off-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: Richard Henderson --- accel/tcg/cpu-exec.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/accel/tcg/cpu-exec.c b/accel/tcg/cpu-exec.c index 46b723cb734..76182803592 100644 --- a/accel/tcg/cpu-exec.c +++ b/accel/tcg/cpu-exec.c @@ -654,18 +654,18 @@ static inline void tb_add_jump(TranslationBlock *tb, = int n, } =20 #ifndef CONFIG_USER_ONLY -static inline bool cpu_handle_halt(CPUState *cpu) +static bool cpu_poll_while_halted(CPUState *cpu) { const TCGCPUOps *tcg_ops =3D cpu->cc->tcg_ops; bool leave_halt =3D tcg_ops->cpu_exec_halt(cpu); =20 if (!leave_halt) { - return true; + return false; } =20 cpu->halted =3D 0; /* allow execution */ =20 - return false; + return true; } #endif /* !CONFIG_USER_ONLY */ =20 @@ -1027,7 +1027,7 @@ int cpu_exec(CPUState *cpu) =20 #ifndef CONFIG_USER_ONLY if (cpu->halted) { - if (cpu_handle_halt(cpu)) { + if (!cpu_poll_while_halted(cpu)) { return EXCP_HALTED; } assert(!cpu->halted); --=20 2.53.0 From nobody Sat Sep 26 20:01:26 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=1790096033; cv=none; d=zohomail.com; s=zohoarc; b=VtL/XrrLT3rXP2WrFklo/s7SmsjO1Y0EKYzfzFCxyxrOchm9tarhjB3/7A2VqlGpxtjWOZtFVJc+KtWLZ3Z1XmlCutbzSiTRFw5Q13dQtnLPXAEBOnRQTk2MKPGwvTUuAvevbYg9M2s8E62gk8xuUVjhvU7XAp5gZhpsP5SHdS8= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1790096033; 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:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=TmpLRtcALdGvnoiA64jtGQ7kzwpnFEecY1PS7YhgtmQ=; b=mM6eiDKOqaiXGvbVUPPbb5+qj1hughakirvLnsD6JIKw7Q9AO6/JL/DiZFZoLHE4ifu9cEawNSB7qc/wv15EcLZIe6zCq39Q7JzoxDHsdz56nYEcldjoONQ4MCl4mroXYWxsF/U5zitU3IkIg2aBihaYJwZxzY/9N47xp7DLodk= 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 1790096033404969.1444212222489; Tue, 22 Sep 2026 09:53:53 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1x93kC-00078m-4y; Tue, 22 Sep 2026 12:53:24 -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 1x93i6-0004cH-Rj for qemu-devel@nongnu.org; Tue, 22 Sep 2026 12:51:17 -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 1x93i5-0002ZC-3Q for qemu-devel@nongnu.org; Tue, 22 Sep 2026 12:51:14 -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 68MEjmM73952765 for ; Tue, 22 Sep 2026 16:51:02 GMT Received: from mail-vs1-f69.google.com (mail-vs1-f69.google.com [209.85.217.69]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4gufsqbp8f-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Tue, 22 Sep 2026 16:51:01 +0000 (GMT) Received: by mail-vs1-f69.google.com with SMTP id ada2fe7eead31-79013d05471so1178137.1 for ; Tue, 22 Sep 2026 09:51:01 -0700 (PDT) Received: from localhost.localdomain (pmd666.hd.free.fr. [88.187.86.199]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-49fde1a3b46sm3415365e9.11.2026.09.22.09.50.58 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Tue, 22 Sep 2026 09:50:59 -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= TmpLRtcALdGvnoiA64jtGQ7kzwpnFEecY1PS7YhgtmQ=; b=cOF5E3ijO9WQ4RVq 1kWMO1hQDpt9X5D53SrLpfzR5pBS+Fupgn2MxGjcVa2DRfcr4bOUo/JIaVakaWDg QQLxweSl/KIOO6XO8OTew/iBA/yZdMXJwwvspSfZsj9ntDvRPDMQfRXaGBFX25PD D4QPfMscBarXx53DaYnBqSKOA8gdgxM6EKmR2k3vU7ipnBllaAXYdygJM9sp562U TPwWy+4hqCwZ5an8leAebwvM5WwdyaMTLSl63rH+Ev9NvZU5NvbyA6F6fiClm/N4 paWR/unWVWS+DXMOkTWzV7VlWwxRktNntos1riDnhMm0QgEM+POraMgKgynjHPsm vkKY6g== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1790095861; x=1790700661; 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=TmpLRtcALdGvnoiA64jtGQ7kzwpnFEecY1PS7YhgtmQ=; b=JiN/5Gz5qbtSj2D/W/48ccvCMH9JaQRlFmEVW5RhcdbbFpBKmc6/REp2noVCmrW71y T/dgWIu/2C6vf5aMHjhGBRBNa58DgA/ciVMwDpTgJCwZv9HmAYYXLFtJNKzoKkxPN3Ar 0wGsMxS7eoMZbz2r+I6n00jtSDRD3zL6Ghh3q5n61xpjLzM9hOsX5zB6z8/KUObYMUE8 h+zqTRKWd4wpjOF92h8/TU++1NqhRiGeD9TRqDfgSJAw1PfRpA9+XQsv+e8ykt3YMUlp ZhX9hvtYFFnghHmzjTNnkgyhNix1INYV8k5z+9fQztD9k/ZVoZWqvJmIwyxysZ+soRzG fyZA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20260707; t=1790095861; x=1790700661; 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=TmpLRtcALdGvnoiA64jtGQ7kzwpnFEecY1PS7YhgtmQ=; b=YWMUg00XWBx/hbFUpv/fL8T8zKF41gVf5LKghBucaTcUcI60faFtnEir/mP5N/WrfC 9T2PEWsB0HpoQKJ62JtE0K1xtZXGGh8qKiJCNmEFkzz3SJxrWKXvRgQTLMObCI2QFzZ2 lnAfg3dgwq/kRZS4YmbP5D+ZQdX1zsHk3qGCLsWELTmM8GtIzIo1y5G7o1cwrGRjm+s3 ZyOqsY1uqNz37CHUcrLQsr+SKLhBQG8PbN+CeICDAQ+dcZvuRTCFAAfmpvnDk09zr3ub iupnnK6uxwI4wVuLPyzeYAHvrEFSmpUxVCgeDRz+3Uh8C3NSZKDIN7hb262z+RJDoat4 GhpA== X-Gm-Message-State: AFuF++mS+8F0+fQIF2IH/H4QKqIsa2clxWtFuA4kQMJb7aye5F1+KaC4 cR6fAfPs5ADvudzfyCP7hpAP1GnsqrGVRS609pVIea4joWz8hXsG852nCIeh041/PYCJHWXdb+A KLIOqWIxfXml1eGp3h+mLDgWpz3mANQvEiUte1NHyUQYYJIArqO6aSxnMrZrw5LmDRQ== X-Gm-Gg: AYBFou1LmYfZXQ4c84NPraJ3yAdpPTQLUPqj/H3T4Ymy7eYiRsc7C1a1LKiBpldmMm1 irHpfRz6UXC9+flv9f3clTQX9RbS490ww2CAyyTAHBaOp1fVvGxJJtzOX1Sz6r1gNoVPwU3/N7J cfAN7sNkgOILdXul/QrfGaTBOVqUHT4WkwL0ZrOL7aFW5Xym287kNWWOD5kSJWZHZDu28dwndCX QPOcz1ATBigEN8ceAv0H+VraGElJiPAV5n5e6nwXHYE4gh6XeI0GrY94F/pcaTED8nsYAEB3hu1 EvTelBTiufS/sOKKU/N3IetWMISXBTdj32TFnz9cvndhWEJtxtxOL9ULpFB5LHYqvbBtn2ajoCM w6LauXptCiEhQ4WNt8Ei4OBFqhG1SPFA7OSz+Ox13 X-Received: by 2002:a05:6102:6a85:b0:7a7:fbfb:aa03 with SMTP id ada2fe7eead31-7a7fbfbaa9amr6088053137.21.1790095861175; Tue, 22 Sep 2026 09:51:01 -0700 (PDT) X-Received: by 2002:a05:6102:6a85:b0:7a7:fbfb:aa03 with SMTP id ada2fe7eead31-7a7fbfbaa9amr6087990137.21.1790095860642; Tue, 22 Sep 2026 09:51:00 -0700 (PDT) From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Cc: qemu-riscv@nongnu.org, Peter Maydell , qemu-ppc@nongnu.org, Paolo Bonzini , qemu-s390x@nongnu.org, Richard Henderson , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Subject: [PATCH v2 11/17] accel/tcg: Introduce poll_during_halt() and leaving_halt() Date: Tue, 22 Sep 2026 18:49:29 +0200 Message-ID: <20260922164936.15189-12-philmd@oss.qualcomm.com> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260922164936.15189-1-philmd@oss.qualcomm.com> References: <20260922164936.15189-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: ULhTn_0LP_5kWV_sUpAWtrWQEjqQkfmo X-Proofpoint-GUID: ULhTn_0LP_5kWV_sUpAWtrWQEjqQkfmo X-Proofpoint-Spam-Info: AW1haW4tMjYwOTIyMDI0NiBTYWx0ZWRfX/iVRYHJGS3ro +BHhlnkUx/E6GZmbtUnSQxy1UhmS0PmRdTMTpIaAVDIRs6TrjutLIswTePbmoukDN/kT0wH0QYn lvueRoCPZl/FbGcnRuMaNILd7mss50o= X-Authority-Analysis: v=2.4 cv=NKBAaE6g c=1 sm=1 tr=0 ts=6ab2b1f6 cx=c_pps a=5HAIKLe1ejAbszaTRHs9Ug==: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=20KFwNOVAAAA:8 a=EUspDBNiAAAA:8 a=KKAkSRfTAAAA:8 a=DbqnPDNGgojIjNu1nyEA:9 a=3ZKOabzyN94A:10 a=QEXdDO2ut3YA:10 a=gYDTvv6II1OnSo0itH1n:22 a=cvBusfyB2V15izCimMoJ:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwOTIyMDI0NiBTYWx0ZWRfX0GmHB3HRaz3B DWYMX8DFjOIPSAR+/f33IdPdoH9dDDe48avKgBtczhIuGpnDsWIhT2wQR+51tJw5xED7zqS/NXl gM3ys5rgiJEwLdUn9alMdOl4Ojq6iwX4iA9zbxXp6zLBfo5m6ON1gCXLBn35LBxnS85v6kn8a9v fi1vbJXFZkG3ro+fx88lS4Mw16v75G5aXF7JtgCbNGX7h3IcI/91kI42eSD/b/MSf7pH3h6dPpC DIdHisivCtteRsBeh92q4WeZmAF5Q9vibbsqGkd/mah6V2X81oEk2e+IEHnX20kPc1w73VV+NsZ AhkuHfirjsfrY5QXJYLnfi5KYFJoLX0rWk8pjoA36xJg3/YkbKtwp10TJ24Pzt/kEiF/mUAfQxi KwZ3ZiAyNvtu4i9ALQovE50XorFMbEUpSzF475FbPayi+hdTuc6177s+FIDIzNV15X3OiBFdHjr AS3YK9SfwYTBWCAZjQA== 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-22_02,2026-09-21_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 priorityscore=1501 bulkscore=0 suspectscore=0 adultscore=0 malwarescore=0 clxscore=1015 phishscore=0 spamscore=0 impostorscore=0 lowpriorityscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2609040000 definitions=main-2609220246 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: 1790096034957158500 Split target-specific halt handling into an optional poll_during_halt() callback before cpu_has_work() and a leaving_halt() callback after work is found. Keep cpu_exec_halt() as a legacy alternative for targets that have not migrated. Require each target to provide either cpu_exec_halt() or leaving_halt(), but not both. Inspired-by: Paolo Bonzini Signed-off-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: Richard Henderson --- include/accel/tcg/cpu-ops.h | 24 +++++++++++++++++++++++- accel/tcg/cpu-exec.c | 21 +++++++++++++++++---- 2 files changed, 40 insertions(+), 5 deletions(-) diff --git a/include/accel/tcg/cpu-ops.h b/include/accel/tcg/cpu-ops.h index 3ff6e6810e0..1ee5d3d8bdb 100644 --- a/include/accel/tcg/cpu-ops.h +++ b/include/accel/tcg/cpu-ops.h @@ -169,6 +169,27 @@ struct TCGCPUOps { */ vaddr (*untagged_addr)(CPUState *cs, vaddr addr); #else + /** + * @poll_during_halt: Poll target-specific events while the CPU is hal= ted. + * @cpu: vCPU context + * + * Called when the CPU is halted to handle target-specific asynchronous + * event processing before instruction execution begins. + * The caller does not hold the BQL. + */ + void (*poll_during_halt)(CPUState *cpu); + /** + * @leaving_halt: Perform target-specific cleanup before resuming + * execution. + * @cpu: vCPU context + * + * Called after a halted CPU has detected pending work and is about to + * resume execution from the halted state. This callback performs any + * necessary target-specific state transitions or synchronization befo= re + * instruction execution resumes. The caller does not hold the BQL. + * Either this callback or @cpu_exec_halt must be provided (but not bo= th). + */ + void (*leaving_halt)(CPUState *cpu); /** @do_interrupt: Callback for interrupt handling. */ void (*do_interrupt)(CPUState *cpu); /** @cpu_exec_interrupt: Callback for processing interrupts in cpu_exe= c */ @@ -185,7 +206,8 @@ struct TCGCPUOps { * if it should remain in the halted state. (This should generally * be the same value that cpu_has_work() would return.) * - * This method must be provided. If the target does not need to + * Either @leaving_halt or this method must be provided, but not both. + * If the target does not need to * do anything special for halt, the same function used for its * SysemuCPUOps::has_work method can be used here, as they have the * same function signature. diff --git a/accel/tcg/cpu-exec.c b/accel/tcg/cpu-exec.c index 76182803592..edb719b0d10 100644 --- a/accel/tcg/cpu-exec.c +++ b/accel/tcg/cpu-exec.c @@ -48,6 +48,7 @@ #include "internal-common.h" #if !defined(CONFIG_USER_ONLY) #include "accel/tcg/iommu.h" +#include "hw/core/sysemu-cpu-ops.h" #endif =20 /* -icount align implementation. */ @@ -657,10 +658,22 @@ static inline void tb_add_jump(TranslationBlock *tb, = int n, static bool cpu_poll_while_halted(CPUState *cpu) { const TCGCPUOps *tcg_ops =3D cpu->cc->tcg_ops; - bool leave_halt =3D tcg_ops->cpu_exec_halt(cpu); =20 - if (!leave_halt) { - return false; + if (tcg_ops->leaving_halt) { + assert(!tcg_ops->cpu_exec_halt); + if (tcg_ops->poll_during_halt) { + tcg_ops->poll_during_halt(cpu); + } + if (!cpu_has_work(cpu)) { + return false; + } + tcg_ops->leaving_halt(cpu); + } else { + assert(!tcg_ops->poll_during_halt); + assert(cpu->cc->sysemu_ops->has_work =3D=3D tcg_ops->cpu_exec_halt= ); + if (!tcg_ops->cpu_exec_halt(cpu)) { + return false; + } } =20 cpu->halted =3D 0; /* allow execution */ @@ -1059,7 +1072,7 @@ bool tcg_exec_realizefn(CPUState *cpu, Error **errp) /* Check mandatory TCGCPUOps handlers */ const TCGCPUOps *tcg_ops =3D cpu->cc->tcg_ops; #ifndef CONFIG_USER_ONLY - assert(tcg_ops->cpu_exec_halt); + assert(tcg_ops->cpu_exec_halt || tcg_ops->leaving_halt); assert(tcg_ops->cpu_exec_interrupt); assert(tcg_ops->cpu_exec_reset); assert(tcg_ops->pointer_wrap); --=20 2.53.0 From nobody Sat Sep 26 20:01:26 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=1790096139; cv=none; d=zohomail.com; s=zohoarc; b=nsmwwYkXLv0rpDsgXCu1sPUG73zO2/wHe7/f3uhNqGYYzaon6U+LRqG3YQ+aX+lvEabCrxt6BpKIH75GOcHLqnAPqXhZIMd6rZrIB4cZgMHWTDQ1Wj3K0ANrFsuo6L00qUtE4WjoumbKgiUAu9BJpz4XLmZJ1sAsqsXux9ayks4= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1790096139; 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:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=Kn2lfIEpf8rwL5b2StWxveggcsoepXeRi8I92ntqRYw=; b=cdzZQ8y1dUNgHvwbqV07rP6P5oaHlNJkreqDaLF+DwjlrxbQssyQP+XBVQGdicYSMCcY1TN4m0jEiit01TuCHC3CvVldl9Shuimc/UsWjVTQ8eorxvjaTTjNUlpcnF6lL+4CD68faGshd2UzdEtHL7PXcZHG4sgnrzBti8Li5oE= 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 1790096139534944.4222078668996; Tue, 22 Sep 2026 09:55:39 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1x93js-0006U7-De; Tue, 22 Sep 2026 12:53:04 -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 1x93iE-0004gB-Ov for qemu-devel@nongnu.org; Tue, 22 Sep 2026 12:51:26 -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 1x93iC-0002aL-Ng for qemu-devel@nongnu.org; Tue, 22 Sep 2026 12:51:22 -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 68MEjVev1058317 for ; Tue, 22 Sep 2026 16:51:09 GMT Received: from mail-vs1-f69.google.com (mail-vs1-f69.google.com [209.85.217.69]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4guha5ugy4-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Tue, 22 Sep 2026 16:51:09 +0000 (GMT) Received: by mail-vs1-f69.google.com with SMTP id ada2fe7eead31-78faf713ab2so7728137.0 for ; Tue, 22 Sep 2026 09:51:09 -0700 (PDT) Received: from localhost.localdomain (pmd666.hd.free.fr. [88.187.86.199]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-49fde1c159esm3813515e9.4.2026.09.22.09.51.06 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Tue, 22 Sep 2026 09:51:07 -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= Kn2lfIEpf8rwL5b2StWxveggcsoepXeRi8I92ntqRYw=; b=ntQO7OpN5obckipM SwrW3NUbCKG3DtEsJvI8P5y/TNew6szA7yXeCEGWnfqdwyYQVepBRpc3SG1N3V0D 7juoMfaSqOXMJCENGvqM1sl7eW3DO66Xb1trldVFCHQ90gkBZWA2JudEZ5X3o/bE YUNiraDnVCA/xGrLErUvUuuPH8ebvBO8WVr6bUX8vnmIC/6et+T66NxRHJmDDtgd Cy8tzoWpaRdc5dac9cdN/nK5eq4l0wpCv0VExGTjrhVmjoWhahC+DWxFN7VZ8AD9 esAfCYyy40RIdfqT+Ixel8TYOlvnvZs7Y6XErD6TH39mZ7KUHiaNBRbuD1Jvr7oW i+rP6Q== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1790095869; x=1790700669; 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=Kn2lfIEpf8rwL5b2StWxveggcsoepXeRi8I92ntqRYw=; b=O7WuKDT8/yUes3+AtYKZhIrvf5J3DG/+W0AMM4kGvaO84ZIvx5WbL7yCjeM/nPbVg5 pY0s15UACsxnKbBlmEIWpSZ4JDQn6pfjUQ8mC7JjmjJMUQvS+NV2+aHEQI816jKcZ3gm ZFddv29ZnmVv9JCDX7OUDecCJniZshBu6pU9BhPifdA8YgAZXUrod4YA+tfk6dWjIgSs YpFdqgMsg2o42eZAj5XtUnSKu3y5VOVvnOSyVTIS52d3NRA3hQF4mkTeP4f3XWQdzNyl +3Na2XiYtHzYNocEsJUNmlUn3uFNLuMcYBixcxJVtwh1kGWq0rAPFlRvQXY1He/hQ0wo doVw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20260707; t=1790095869; x=1790700669; 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=Kn2lfIEpf8rwL5b2StWxveggcsoepXeRi8I92ntqRYw=; b=FVKAp+jkudleAUjFlIS6rH/F7Tc2HDRdbL5O+uZet9oeGEsPeJIZVihrpDEWMBPAdg qD+jS2y6ecNjvAOD5uPC0CNyS5DGDST6WZy0n23q03IA8/LrhYuwGQuGERspelH0+cVH 9lVMlEtM17rUp1jHx+krUH/jkiIfWEcNBuHPjPFVZM0RMxz4LFk6ipLwOy4z2yrZITsz gFHkD9st9RuG07v5HnlW5BHS8tPg6Rr8OFu/M6o7CPbTHY2qsjP1646Yjg01Fr/M6Eqk /5D3T3m419PCJFfqeKgE/I0NmvCLHG1z/0fe8ywQda4Rni+XSRQ/RNxeWyuYpeJSTaES mdyw== X-Gm-Message-State: AFuF++mRx+U6/44he4TW+QnyJfH4dflIv8PKPlzBMqTMUdT0ZPK5FRgM dOAejez+/RQ1TSZpnKqETJ8rm2TnU1bSqtgQmfXzxdCeDDjU7K+uKfCH1ibM09IEVm0Z7WgbLWB PKNQfaWq9AWe4AlW/hXkioWoRzfaYjqlihx4Y90a1Z+xS4NaR1bE7pCQ3Me8k6MZRSQ== X-Gm-Gg: AYBFou2j55FZiGKRWUVFRh9Ltnm5vSzgy9bwh/Q5uGaWeGz+El5h9tZeg5ki9cVrLTV 9ikHcfMzQkgLKOecO0XY8SXP8DbLyA13s/Z1sxpmkCSz+fXzSY+D3CHv286DWaHm7x7t43vA2CV MCsW0xZjKUt5jabXY3PbGOy2kAS7vdndIVGpsR+iRWQs95YZi0+gTnxuvAxneD6OFvm7oQEMY0d MIucoRxmzCNTmvBUBZwiVXU+7jHCungJeKLnF5HwzZGhUIV6GNINNOOr1Kny64Gb/U8MdtJrcj8 XELqq57oi/8uJtVpmNHbUn7LYw1U8Elpq0O4fr5QViijoxF+bmLek4G5AFDkB5Gr8JPXt1hIRHW eKvKFuaLLAzrRJdyfzWrmpqoN9FMrEeuy7BcXTClj X-Received: by 2002:a05:6102:8482:20b0:7a7:a382:6bd7 with SMTP id ada2fe7eead31-7a7a3828422mr5081722137.27.1790095868720; Tue, 22 Sep 2026 09:51:08 -0700 (PDT) X-Received: by 2002:a05:6102:8482:20b0:7a7:a382:6bd7 with SMTP id ada2fe7eead31-7a7a3828422mr5081642137.27.1790095867901; Tue, 22 Sep 2026 09:51:07 -0700 (PDT) From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Cc: qemu-riscv@nongnu.org, Peter Maydell , qemu-ppc@nongnu.org, Paolo Bonzini , qemu-s390x@nongnu.org, Richard Henderson , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , qemu-arm@nongnu.org Subject: [PATCH v2 12/17] target/arm: Split leaving-halt handling from arm_cpu_exec_halt() Date: Tue, 22 Sep 2026 18:49:30 +0200 Message-ID: <20260922164936.15189-13-philmd@oss.qualcomm.com> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260922164936.15189-1-philmd@oss.qualcomm.com> References: <20260922164936.15189-1-philmd@oss.qualcomm.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-Proofpoint-GUID: uXWJh2KPjNBnqN3IfCIpzIdl_OIBN7hU X-Proofpoint-Spam-Info: AW1haW4tMjYwOTIyMDI0NiBTYWx0ZWRfX2hcM6BjCIT+4 qYwHYDjGdEGpGBTbmI72JldTDLQzlraTBoQrM7xpqj/fpx0Fpipha0hKCssxurQx+szUk2tou2t XfGhvsi40qEsCdp077gseHmUqo/zxqU= X-Authority-Analysis: v=2.4 cv=U+4Hnuru c=1 sm=1 tr=0 ts=6ab2b1fd cx=c_pps a=5HAIKLe1ejAbszaTRHs9Ug==: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=KKAkSRfTAAAA:8 a=snbnvTbt-5-dSQZ-83gA:9 a=3ZKOabzyN94A:10 a=QEXdDO2ut3YA:10 a=gYDTvv6II1OnSo0itH1n:22 a=cvBusfyB2V15izCimMoJ:22 X-Proofpoint-ORIG-GUID: uXWJh2KPjNBnqN3IfCIpzIdl_OIBN7hU X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwOTIyMDI0NiBTYWx0ZWRfX35X4T3rQD3CX gW/q3TBK9dGCOgb4yZI0wHjKM2WcBTUkNTFVvy1bBW8sVG4xXVFnxSfkPd+hEDn+LraljqNTq4W isL03pkbCdYrWwCJumBaOHhUEcbzs8CuKKHK8y9lFGNJQO9qmlaT4D/UszuMBXxKaWHcWx1Pac8 E5Wgd/Mrz93ie68vVFtC9bV+eNBfLUYpNTliwPFpv0eP8+WjXnmXJd72351R4yXFk9Exl3sAQj9 fF84qgb9eCEHpdOoMWMuXam370RCymVpAwXCvRV39zifj7/T1ibm/a0TagtAM+XIWWC+p3pjP8J tkmrabClD646q2ugA9pHDEH/ElTOypAKTGTwDuFdFHvNg8SixQukf4ZJ3R8nVsiATXwDEH8iCxM z89/FP8l/t8KIuzmVy2YbInJFPU+lqv93XkQPqVwSOXxsPwogZJGCrruhZ8MtlEBVjv+zpB2PFW xPzowZVK2bKRpMRpQMg== 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-22_02,2026-09-21_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 clxscore=1015 impostorscore=0 adultscore=0 phishscore=0 lowpriorityscore=0 priorityscore=1501 suspectscore=0 bulkscore=0 spamscore=0 malwarescore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2609040000 definitions=main-2609220246 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: 1790096141509158500 Move WFxT timer cleanup and halt-reason reset into arm_cpu_leaving_halt(). Keep arm_cpu_exec_halt() focused on deciding whether the CPU can leave the halted state. Signed-off-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: Richard Henderson --- target/arm/cpu.c | 20 +++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) diff --git a/target/arm/cpu.c b/target/arm/cpu.c index ccc6630026c..4863e7cd450 100644 --- a/target/arm/cpu.c +++ b/target/arm/cpu.c @@ -872,18 +872,24 @@ static bool arm_cpu_internal_is_big_endian(CPUState *= cs) } =20 #ifdef CONFIG_TCG +static void arm_cpu_leaving_halt(CPUState *cs) +{ + ARMCPU *cpu =3D ARM_CPU(cs); + + /* We're about to come out of WFI/WFE: disable the WFxT timer */ + if (cpu->wfxt_timer) { + timer_del(cpu->wfxt_timer); + } + /* clear the halt reason */ + cpu->env.halt_reason =3D NOT_HALTED; +} + bool arm_cpu_exec_halt(CPUState *cs) { bool leave_halt =3D cpu_has_work(cs); =20 if (leave_halt) { - /* We're about to come out of WFI/WFE: disable the WFxT timer */ - ARMCPU *cpu =3D ARM_CPU(cs); - if (cpu->wfxt_timer) { - timer_del(cpu->wfxt_timer); - } - /* clear the halt reason */ - cpu->env.halt_reason =3D NOT_HALTED; + arm_cpu_leaving_halt(cs); } return leave_halt; } --=20 2.53.0 From nobody Sat Sep 26 20:01:26 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=1790096150; cv=none; d=zohomail.com; s=zohoarc; b=HiiaagPVreRlSp53/Cn2wxtqTHOSd4HdLyDq4u5S33mswWBCIp0Zbo/1OuQBMkRZXzSU1P7VJeyij8YC3KtUrCW9hOm6Zx5p37OCI5vE7JdxzT0d83nqSboO51Ic2/iiQaN6cP7mEgXYYA3HLNmIlW2qfn7giQ3vvW2KURfGrE8= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1790096150; 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:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=hm+viw0kO/6+GIq5N6+3g95/cZ18/ZvzfYFL5HOoiV8=; b=W9FsJrW+9+xinke1STVpVautyQQj0xZdpehlyVpX2rnJU+x1iQlg4kbUcmeGDya3Lcqn4NiIrmMwBHqmwZx9ZRk3yMH/0adbDactuE4hFjnAuTk7ykg1JP6uZOhpmDGg+MugB1QciZdWSPMH+lCIT3LHkMdOhbEwBTSHm478HVQ= 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 1790096150898830.9956411028538; Tue, 22 Sep 2026 09:55:50 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1x93kD-0007Eo-1Y; Tue, 22 Sep 2026 12:53:25 -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 1x93iM-0004lt-08 for qemu-devel@nongnu.org; Tue, 22 Sep 2026 12:51:32 -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 1x93iK-0002b0-1l for qemu-devel@nongnu.org; Tue, 22 Sep 2026 12:51:29 -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 68MEjLUN318147 for ; Tue, 22 Sep 2026 16:51:17 GMT Received: from mail-vs1-f70.google.com (mail-vs1-f70.google.com [209.85.217.70]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4gupbqj7kw-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Tue, 22 Sep 2026 16:51:16 +0000 (GMT) Received: by mail-vs1-f70.google.com with SMTP id ada2fe7eead31-78a5a291af3so7056137.0 for ; Tue, 22 Sep 2026 09:51:16 -0700 (PDT) Received: from localhost.localdomain (pmd666.hd.free.fr. [88.187.86.199]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-49fdab0c240sm44523165e9.4.2026.09.22.09.51.13 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Tue, 22 Sep 2026 09:51:15 -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= hm+viw0kO/6+GIq5N6+3g95/cZ18/ZvzfYFL5HOoiV8=; b=pmjp73RLHs4N46YD DABVL8jXgZlWJkJBaDQoIx10MiDgMy9GaWUnOJxKruDqQTmpdVSNkSFe7FwFpYlV kbUNBNgY2qetV6WAondB2lhsRP27GuhUocQxKXBNcu6xsl/BLYI4gMsEJXxm2f4q MBPcaVzUxkMzCYmd3Rm2hHh0k25oxiiOD99O3dJW+g5+tLRO1SPrv8OJuhe47xKP K6TPJHS1rwrgrA7VkwZ/rJepO+EgBfJE3z8EVOl6WaYCeWHdHQNMFtvfZn2eLI1u JEBcW2PT7uReihR9cSC8lxYCZuhzlNT8O3gylnUMY/K7zDTdMrA4kTdbLBRPVQji fn/t/A== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1790095876; x=1790700676; 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=hm+viw0kO/6+GIq5N6+3g95/cZ18/ZvzfYFL5HOoiV8=; b=B9GmB5gLzjWN4E1Vdy2BG6Od+9kLRHnfQyeTFsTY9tX250bcTo7r2UNwFjFKiOZjNZ dG5Uv352xGFhytinq6k2w8zQodwGxM8lMewLyRN0fiZzrWkaXUcR5npMgMq4UeR8RvOX mTeaGL+PAdQt9OOo/elokw2JXN/HweLSBIjec9ZZV8ZVrtvj/JmZKX0wxSdp59u5x5wg 3m1+ZBTGAfRY+Wsqp32P8o25cuH3W3pxsai3xJcAryPZaLx5wTwH2soiwzpKLPGSTYVQ 1XOfcepQkilUiP0d/JsgLoRyJtcyGuBiqTp/nfpT/+OF4vBmxgJP+Jl+K8+24JMt6hbO qn8g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20260707; t=1790095876; x=1790700676; 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=hm+viw0kO/6+GIq5N6+3g95/cZ18/ZvzfYFL5HOoiV8=; b=Lsio7eLAk4hsrc2C7UvD/P7rfx+dU4To9VmSg7s9nYTnfJxTEWTHOIjFtCmUu+WvQG T4JTtlAuzTmVhvhJPmk3T5cSugCudyXGYodn7TElxgiby8TrUihXy+GNmXYC2XSufux6 MNa5n4u+2pP6GjmQFQpMzg05CcjHp8INHPp3KQxxsk0WQiY7oX+0MI0x1sp19wHHDvD8 sWsKsKkYQEU0NpLQSsd4dpH6CkAjhRbFBqXP6afzfe7URIaVr2yCl5s6YfIaH+QJE1h6 MAIb+dra63vlXmvX+1EbMczKt5qIWXUCLhYtU+zgSChhtLJwGC467AS66JLfNdBK5mMW Yc6A== X-Gm-Message-State: AFuF++mDeC3bhsdstjLSiwgUqbl7r+xqYTU40bak1nxF3ARwq4aou/y9 R2d1HdxKNkO9GaBMYA3tVjHS6CaEsiFbW1tZ1u/e4/yxsD86kyh0X8ZP+DiJE+eASzSEkliHQbD mOilJ+8pgBG2sY49Gz19zCA6NGrXzb8HDoegQMAkiAJJQ1pLIYJbTuJWAxqxGhO8NTg== X-Gm-Gg: AYBFou26WmPYqEye6+S0WYV/z3V7HGR+2KdoVaAUgHw1j1THfFB7hBtcySH8bSSgCnU K6rUF9ebO80AHfCyVxHq+tkhVmKzyEuCraOLWE3zJ8NNlkL7B4feTXjUM/PZJAW+is6sxHEH4vj fJzzqLCjgU3gW54lMHFywCvTOpN1/dQLER4iF+6di1Oun0XtIOhj8o2VKU3+p6fHqp8gxRPnX5h t5fDRCrcv7oLvEcPf2rP1JRV2zgqG68g1PD89QWbwv2qrN+Ei0PQf6VkJv3nvwkkgR4Av6uUs60 wI7Jjgrs2SIq8fGhZ+FjV66oOW2LvUhZZ49UrcbgzreKdhfRvUjPOvlcNg407DyBl3GVwP/OT09 ZjFkdC7B/NJwbfsFWOTn1qeq5OSQ2bcHfd1wVd22J X-Received: by 2002:a05:6102:160b:b0:7a1:f7d2:e81e with SMTP id ada2fe7eead31-7a55d28bea2mr9336713137.23.1790095876382; Tue, 22 Sep 2026 09:51:16 -0700 (PDT) X-Received: by 2002:a05:6102:160b:b0:7a1:f7d2:e81e with SMTP id ada2fe7eead31-7a55d28bea2mr9336670137.23.1790095875959; Tue, 22 Sep 2026 09:51:15 -0700 (PDT) From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Cc: qemu-riscv@nongnu.org, Peter Maydell , qemu-ppc@nongnu.org, Paolo Bonzini , qemu-s390x@nongnu.org, Richard Henderson , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , qemu-arm@nongnu.org Subject: [PATCH v2 13/17] target/arm: Convert cpu_exec_halt() to leaving_halt() Date: Tue, 22 Sep 2026 18:49:31 +0200 Message-ID: <20260922164936.15189-14-philmd@oss.qualcomm.com> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260922164936.15189-1-philmd@oss.qualcomm.com> References: <20260922164936.15189-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: AW1haW4tMjYwOTIyMDI0NiBTYWx0ZWRfX1o9k/1U2cYIp z0DiF6Gl5ZRDDlpH25bRoukIJEExwW+tlj5/Mde993sWwzdDSx27H3F4N4U679z3EwZ1Wpyszmo LMuX2dPmB9z7Jkna4/ok/m86FBz0NkEqoM+SD+Xi1wLMqYGQ6t3ttyg0SyG9IPD/62BWAia90Xs q9HR8tbaoEOZx3+3hGwR6EHnGgvSdKvEJgvU8+qMoSpf1egRpiOFF7bkWp8IPvA5FGx1Xz44dJ0 yk4myoqQ8AGZMERY9VlHQv3yjE26sPZTdfaqxIQV7eKeR8TPWLSmUtUcJiS+KlgrXlGyIU3li0b 2ILp8Iz/JJ3Y7Sl4FK8ZzEen+M1rALERU3T9XyCucstFgdDENkECE+0U8ZV6frbHqvn9Q+Svf/h g+K/C2/7bhoq0j6MOogcIOsCmtwHYpM4i8GsEcHheW8f23vwhb7LCW5vqGxdnAwf2k+7gs2zQLh N8xj9lfKe5UkY5X92kA== X-Authority-Analysis: v=2.4 cv=FdaiV5+6 c=1 sm=1 tr=0 ts=6ab2b205 cx=c_pps a=N1BjEkVkxJi3uNfLdpvX3g==: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=KKAkSRfTAAAA:8 a=AtaPWBxvZOLBLR1XvpsA:9 a=3ZKOabzyN94A:10 a=QEXdDO2ut3YA:10 a=crWF4MFLhNY0qMRaF8an:22 a=cvBusfyB2V15izCimMoJ:22 X-Proofpoint-ORIG-GUID: dSTZmp-zh3Ff6RnS9d2HYSLyXMlzxAdw X-Proofpoint-GUID: dSTZmp-zh3Ff6RnS9d2HYSLyXMlzxAdw X-Proofpoint-Spam-Info: AW1haW4tMjYwOTIyMDI0NiBTYWx0ZWRfX5d9LIPYWqr8r gikJvisgkT5o/rQtepq5VOCd0PRuvaZprhZdZe7kz6ky2CxlI9sFIddXGrn2M5JHPNiAsd+DF+/ efaRyvt8E52mRCEE2pUQhoc29gk9M/w= 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-22_02,2026-09-21_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 suspectscore=0 adultscore=0 bulkscore=0 lowpriorityscore=0 phishscore=0 malwarescore=0 spamscore=0 priorityscore=1501 clxscore=1015 impostorscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2609040000 definitions=main-2609220246 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: 1790096151629158500 arm_cpu_exec_halt() now merely checks cpu_has_work() and conditionally call arm_cpu_leaving_halt(), which is now the generic flow in cpu_has_work_after_processing_async_events(). Register the leaving_halt handler to use the generic target-agnostic flow and remove the arm_cpu_exec_halt() wrapper. Signed-off-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: Richard Henderson --- target/arm/internals.h | 3 --- target/arm/cpu.c | 12 +----------- target/arm/tcg/cpu-v7m.c | 1 - 3 files changed, 1 insertion(+), 15 deletions(-) diff --git a/target/arm/internals.h b/target/arm/internals.h index 1efda543270..cfe932d0e5d 100644 --- a/target/arm/internals.h +++ b/target/arm/internals.h @@ -431,9 +431,6 @@ void arm_restore_state_to_opc(CPUState *cs, #ifdef CONFIG_TCG TCGTBCPUState arm_get_tb_cpu_state(CPUState *cs); void arm_cpu_synchronize_from_tb(CPUState *cs, const TranslationBlock *tb); - -/* Our implementation of TCGCPUOps::cpu_exec_halt */ -bool arm_cpu_exec_halt(CPUState *cs); int arm_cpu_mmu_index(CPUState *cs, bool ifetch); #endif /* CONFIG_TCG */ =20 diff --git a/target/arm/cpu.c b/target/arm/cpu.c index 4863e7cd450..9c5b76d0c03 100644 --- a/target/arm/cpu.c +++ b/target/arm/cpu.c @@ -883,16 +883,6 @@ static void arm_cpu_leaving_halt(CPUState *cs) /* clear the halt reason */ cpu->env.halt_reason =3D NOT_HALTED; } - -bool arm_cpu_exec_halt(CPUState *cs) -{ - bool leave_halt =3D cpu_has_work(cs); - - if (leave_halt) { - arm_cpu_leaving_halt(cs); - } - return leave_halt; -} #endif =20 /* @@ -2617,7 +2607,7 @@ static const TCGCPUOps arm_tcg_ops =3D { .tlb_fill_align =3D arm_cpu_tlb_fill_align, .pointer_wrap =3D aprofile_pointer_wrap, .cpu_exec_interrupt =3D arm_cpu_exec_interrupt, - .cpu_exec_halt =3D arm_cpu_exec_halt, + .leaving_halt =3D arm_cpu_leaving_halt, .cpu_exec_reset =3D cpu_reset, .do_interrupt =3D arm_cpu_do_interrupt, .do_transaction_failed =3D arm_cpu_do_transaction_failed, diff --git a/target/arm/tcg/cpu-v7m.c b/target/arm/tcg/cpu-v7m.c index 48b31d5eac8..1093c6cbf63 100644 --- a/target/arm/tcg/cpu-v7m.c +++ b/target/arm/tcg/cpu-v7m.c @@ -302,7 +302,6 @@ static const TCGCPUOps arm_v7m_tcg_ops =3D { .tlb_fill_align =3D arm_cpu_tlb_fill_align, .pointer_wrap =3D cpu_pointer_wrap_uint32, .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_transaction_failed =3D arm_cpu_do_transaction_failed, --=20 2.53.0 From nobody Sat Sep 26 20:01:26 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=1790096134; cv=none; d=zohomail.com; s=zohoarc; b=W+q0oQOEttDmLaIARukWK6Tv7rgoIJ6i2hA/HkxvGwwsNM8yw4wenlGvuWjfpOcmhEzfJKP6bsStw2+yM54B/YGeWRfFwi108ViHeOPPt17IKQlrGiycXWu+c7bVc4JKumL2OJdp7aF01zGcpUzIBsIP4OPvy665k4c9cLRtIC8= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1790096134; 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:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=/5gPZ0r9el1io2TJV/MmocNJREFtJ5CHkCI5Btb3anw=; b=GNzg4y1lob77IewTlsuB47vo6KG+uf5GPHJ9oumFwz5bPlhlqkRfCFh9JUgwG/txUFoVX9xIJBqbYjgn+/vBhMbzMwwLeTfF/umwoP/HeDtTuG4T8MzNpbrlvlhpwtump78Ye2Ip2IUo2oIdWg0i2N0L9nQf+rHZBoZ0yR/9mUw= 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 1790096134910806.5591050328966; Tue, 22 Sep 2026 09:55:34 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1x93kj-0000Ei-0o; Tue, 22 Sep 2026 12:53:58 -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 1x93iS-0004r2-JV for qemu-devel@nongnu.org; Tue, 22 Sep 2026 12:51: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 1x93iR-0002cA-2w for qemu-devel@nongnu.org; Tue, 22 Sep 2026 12:51:36 -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 68MEjrNX3953066 for ; Tue, 22 Sep 2026 16:51: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 4gufsqbp9t-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Tue, 22 Sep 2026 16:51:24 +0000 (GMT) Received: by mail-ua1-f69.google.com with SMTP id a1e0cc1a2514c-980c3b71002so13127241.3 for ; Tue, 22 Sep 2026 09:51:24 -0700 (PDT) Received: from localhost.localdomain (pmd666.hd.free.fr. [88.187.86.199]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-49fde1aa057sm3671895e9.13.2026.09.22.09.51.21 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Tue, 22 Sep 2026 09:51:22 -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= /5gPZ0r9el1io2TJV/MmocNJREFtJ5CHkCI5Btb3anw=; b=Okl6fnSzLg3w3KXP KepJgd4JfV7xql5QpTPjxhV1kNHOsAzIwk/GY+XX7RGjB8JWUJvgu1lrgu/qJKM/ 8zpvzfS4Ax2+Jgo8tmFDayfzoAInVFVURvz0B3msbdGNN8gMfkchB4Ce1UZXPDYw emb6dzhMOpFHN6ea5d4XtRbDIjii9xByoac4hVUpMQjFaqVNUibW23ywrsdahsds fLcYTXyBmAoXSfZKtjMMKDok/jpVG4sYS7mccH4PiCV088Xa99YsnoudC5Hy5baS e8D4rjnnixH1a2fSn5wjNOz2Fl6jb0VnTaIsTfkqviryDV/eeR+bptrYzRY5zp+l MxLgWg== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1790095883; x=1790700683; 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=/5gPZ0r9el1io2TJV/MmocNJREFtJ5CHkCI5Btb3anw=; b=G/yvY4vtNMLDl9M2MDVGkuwZl9jhSbqYu5G47T+12OIepANcCxGY2mvcrS6xBRYgbW nSwrDxm/ekFaNHUQVlBmzMjgdNopM3Y2zbj84F6AEVnp6IEwBdEX2NWfaZVla8YZ5Gcx +jmNW35jcWjs9nF+99Npt73OGSAo+sCi3oPYzdqeQcZtVeO/3xbBVS767x7pwZPoGJ6U 18HEgiVlbo/kGjdhk+eD9iUNROyJPg4aBU9lAkN57Q6TgqykXzM9c/yWhoENmCKrHHqZ NVrJUXuJ1dpwRDqSrBZutyGkQEvj9e+g4SgxHU4f0BXjFPNBqS/pcqoZ1G2QPHPsx8kd HvvA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20260707; t=1790095883; x=1790700683; 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=/5gPZ0r9el1io2TJV/MmocNJREFtJ5CHkCI5Btb3anw=; b=F8XjuHsyzUOoV2Rp9n8RBgbzH2L0/bGlK/DLRJDY9wEbg1nU6W2Sk6YRvz5unapNsB QzdG/IfFfy4lqnbaeSHVxRNe2CcCErtCDcQQKT2/RvkIz/77+/Up29MbiqSZQEQ6rxTU +8HdaYGz/ViZCS2v9SdY8TTL6yO6u7zAgJ7a1S/Q6DZcw3S3QpyLwEzXV5ROHIRk6bIL FxIfIsluhVOcKGAjZsBH0IuC2GmcwK8hA2m8pTzsZLGkFobwE6j/zRwd+fYgqnmXXNal MyI9EjaW6NJbYCn8aaO6gzqGmd/RPub5GQvxV1BXEePOERCrVDnXcxCJ49aHQG48zEG0 vmIw== X-Gm-Message-State: AFuF++kDk9OrmREKz9RNJ8RWUVDx8VsGV1cfTh/eanCrhtAa6SBc3tcp Nv9Czc+Ac92VxGHqi+ilUczhyooLR5NYWbfrRxNSS3AYMmPIRjSVBZIpDjccemS9rYoqKp3QEgg J7DQJMYIQeX4pAyxEfQJYgyJOX/IqvJihq3xf95y4WNaVhcI3xoHgepEnfwunoDpg0Q== X-Gm-Gg: AYBFou2LOovyKeg0jimfJRAKkxRGghw6nKiFN+8N5BBYQ/8FkqvjEcxMR4Nf8H3sv41 MmZi+VYzAyR4OWG78xTDqzJM5lCgimXaiuwrc0woEBHlaqttD4X03Q+KFQxfU7Pns38agSbWGlW pL2h2mGOZ7tth40+0DpmRu3P87DIOx7bi1M7qYtmRrKU6vYQJWBh7B0Dr2wsELJDVxQ57VcpREx qAS2L9o6D079RnUNTPwTff/kpnclilduJ+o5pVujq052hY7h4EfZLYir8sodDqQ09pthD6DF1Pt QLwvR17+m9N38VU0zsyqIsuaFftpRfpRnlMl3cvCK7rgG5Iabu81WW5guMUBdlVIIN11rU2P30Z +ihrQaMU6xJ9rSfM7zSUXBP/TvxEQl+0l4/A1wYBU X-Received: by 2002:a05:6102:e0e:b0:7a6:ef60:dac with SMTP id ada2fe7eead31-7a6ef6011abmr7772050137.34.1790095883440; Tue, 22 Sep 2026 09:51:23 -0700 (PDT) X-Received: by 2002:a05:6102:e0e:b0:7a6:ef60:dac with SMTP id ada2fe7eead31-7a6ef6011abmr7772001137.34.1790095883035; Tue, 22 Sep 2026 09:51:23 -0700 (PDT) From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Cc: qemu-riscv@nongnu.org, Peter Maydell , qemu-ppc@nongnu.org, Paolo Bonzini , qemu-s390x@nongnu.org, Richard Henderson , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Subject: [PATCH v2 14/17] target/i386: Split APIC polling from x86_cpu_exec_halt() Date: Tue, 22 Sep 2026 18:49:32 +0200 Message-ID: <20260922164936.15189-15-philmd@oss.qualcomm.com> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260922164936.15189-1-philmd@oss.qualcomm.com> References: <20260922164936.15189-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: 3BFiFqFFmoPjdUKRE9gkbCV-q3rgfAz9 X-Proofpoint-GUID: 3BFiFqFFmoPjdUKRE9gkbCV-q3rgfAz9 X-Proofpoint-Spam-Info: AW1haW4tMjYwOTIyMDI0NiBTYWx0ZWRfX1IGnnb1LUp1B 5rBBJM/tc6k/OsCgV8bsohrTdoNUW+KxUhIwSxzbBU8dneZIV2ntKxeYonZ5LaKngPsGfVzVEu8 YSJTog4COGngiG1d2iwNS6r7o0LR0Lw= X-Authority-Analysis: v=2.4 cv=NKBAaE6g c=1 sm=1 tr=0 ts=6ab2b20c 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=yx91gb_oNiZeI1HMLzn7:22 a=EUspDBNiAAAA:8 a=KKAkSRfTAAAA:8 a=h7OMh5kjI76PbTVxvEwA:9 a=3ZKOabzyN94A:10 a=QEXdDO2ut3YA:10 a=TOPH6uDL9cOC6tEoww4z:22 a=cvBusfyB2V15izCimMoJ:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwOTIyMDI0NiBTYWx0ZWRfX64ZAYMqH7Vbs PreZKst4Q9t8MWH3QZV1YPuKqjfn0Ckqqi//XFRkMLmVwlKvGLicTvD7ff8Zw6lSe6UW0W4CQll d4reqxxLk0TGvkSM+IqS8atksgsItPDT+FHaTXPG6l/z817545FPbfwYEfweTlwh0z9zx/rqgll JcS4N8zQGmtadXe17A0+bq4Wi3e9DdqRhRW47aiRyzY36fNoFAdGeyrTwhITucOgEga1KZpXPgr kr7OI8V7b//NiQ4P8mKIrAkT6S5xcFb/vMaN9QOkWBJJozZUIv0NqOTeBfybKz4GfGKhFoouFrk pnOOOdkTr96SLLuN0pgAqF6ZAdMjVrV5tcpEyfHSBwWbkK0NSDE6Sd9GG0RxbwHlwnz4QI9emWu Dusf6zZXZ0gKH7buP7ouOF/UEkyjo2/EOr2c2WtYeil8STihXV127mquyY3pvQPva/jd5JqqV7Y ne/W0H4oCo5NbGbxsqQ== 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-22_02,2026-09-21_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 priorityscore=1501 bulkscore=0 suspectscore=0 adultscore=0 malwarescore=0 clxscore=1015 phishscore=0 spamscore=0 impostorscore=0 lowpriorityscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2609040000 definitions=main-2609220246 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: 1790096135550158500 Move APIC polling into x86_cpu_poll_during_halt() while keeping the remaining halt handling in x86_cpu_exec_halt(). Signed-off-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: Richard Henderson --- target/i386/tcg/helper-tcg.h | 1 + target/i386/tcg/system/seg_helper.c | 11 +++++++++-- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/target/i386/tcg/helper-tcg.h b/target/i386/tcg/helper-tcg.h index f4b2ff740d5..58e8ca0bc1b 100644 --- a/target/i386/tcg/helper-tcg.h +++ b/target/i386/tcg/helper-tcg.h @@ -37,6 +37,7 @@ */ void x86_cpu_do_interrupt(CPUState *cpu); #ifndef CONFIG_USER_ONLY +void x86_cpu_poll_during_halt(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); diff --git a/target/i386/tcg/system/seg_helper.c b/target/i386/tcg/system/s= eg_helper.c index 8c7856be81e..9ce608a0bb7 100644 --- a/target/i386/tcg/system/seg_helper.c +++ b/target/i386/tcg/system/seg_helper.c @@ -128,10 +128,9 @@ void x86_cpu_do_interrupt(CPUState *cs) } } =20 -bool x86_cpu_exec_halt(CPUState *cpu) +void x86_cpu_poll_during_halt(CPUState *cpu) { X86CPU *x86_cpu =3D X86_CPU(cpu); - CPUX86State *env =3D &x86_cpu->env; =20 if (cpu_test_interrupt(cpu, CPU_INTERRUPT_POLL)) { bql_lock(); @@ -139,6 +138,14 @@ bool x86_cpu_exec_halt(CPUState *cpu) cpu_reset_interrupt(cpu, CPU_INTERRUPT_POLL); bql_unlock(); } +} + +bool x86_cpu_exec_halt(CPUState *cpu) +{ + X86CPU *x86_cpu =3D X86_CPU(cpu); + CPUX86State *env =3D &x86_cpu->env; + + x86_cpu_poll_during_halt(cpu); =20 if (!cpu_has_work(cpu)) { return false; --=20 2.53.0 From nobody Sat Sep 26 20:01:26 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=1790096156; cv=none; d=zohomail.com; s=zohoarc; b=QxQrjaPmUIct0fQJ5OBlRLKlSrnsUlYquyH6YjLmrXtVJguXdSQjXlMu/AJ5RTFSU51UOptIWPhqolCJ/tqJy7X1pxj/jtl0tiiDRAi9QUEPYn9YU3WrWcbS1gz7jnCiq1VO2HDOwUcjofeJfgSJlsdqixhBzrDCFw6ietq/PzE= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1790096156; 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:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=NMMUYlRFOEu4Y+0NjhX8Ge/q9RoTfSWrF7SafoChtWc=; b=QUmzq1E6OrGMU+9OGwpp2TWRne/RqhIY7oxoemK1BFlG+e1kaoaHYNEkm2x4Gx8AnRFDa/8j9U0C7lQt1kMRzo/ev51Kk6D/nv44TBfL8uluAJi+OYU/PkhnjqM16jNwZcxLSrTDxz0p1wyG1wk+7inwWGY98gb7i3GOncpeldU= 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 179009615642611.254213070392098; Tue, 22 Sep 2026 09:55:56 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1x93lF-0000bT-HU; Tue, 22 Sep 2026 12:54:31 -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 1x93ia-0004xL-5H for qemu-devel@nongnu.org; Tue, 22 Sep 2026 12:51:47 -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 1x93iY-0002cv-LP for qemu-devel@nongnu.org; Tue, 22 Sep 2026 12:51:43 -0400 Received: from pps.filterd (m0279869.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 68MEjdSs898320 for ; Tue, 22 Sep 2026 16:51:31 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 4gueybkw01-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Tue, 22 Sep 2026 16:51:31 +0000 (GMT) Received: by mail-vs1-f72.google.com with SMTP id ada2fe7eead31-7a532e31dadso2450137.1 for ; Tue, 22 Sep 2026 09:51:31 -0700 (PDT) Received: from localhost.localdomain (pmd666.hd.free.fr. [88.187.86.199]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-49fde17dab9sm5197455e9.2.2026.09.22.09.51.29 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Tue, 22 Sep 2026 09:51:29 -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= NMMUYlRFOEu4Y+0NjhX8Ge/q9RoTfSWrF7SafoChtWc=; b=a9sDnEEWrb/dnNAd Snn8Ix/BsRS1Fn5Mq6hUVkHaQZ8kkozC9WFbv/hEJ1aiA8wndlfwN2CvaYDF0Sjm i8gEpmzUI99SeHccSOdZ+NUJzUGRUtC+569up8XbLQNET1nadDL8qtQ/l8N/BsDR Fi/vn6999YoD/EKcpjL/GY+6mumthjgZPm0rH1H1QMl6JPyHXWgvmItww5v9EhY+ /2IOBKvKUimP/MOlOqNZUsfGKm/+88/107Ld4pOz4vgiPkcbtPgs825EAhGipeAy K3L4HbXW/62mmUiTAEzCftxcnB79DTbe0TViWaN6PLDdzp4CqyxqoNcOUHV/UGj1 ChIq8Q== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1790095891; x=1790700691; 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=NMMUYlRFOEu4Y+0NjhX8Ge/q9RoTfSWrF7SafoChtWc=; b=Znx+ShXCwf4t91rd/q2QJw68c4I8nc+6HP5PtIi5RdnPwZriz8WFsQYDqpDPehsxDA b6B4z5z3dbFO9bfEh2l4on1r8ypkYPam+Q6Q5rgntVFcdzWZ+/SG/jPMB1l0IUR+iXKR uvnQNDbhzeQMRSl982CUFdKOL34GZghIReOCsg2215VkorUJoarY6elwMs+7iej9UGds /bqv9o/aTh2bLtM+bVdlq8XJvbUwlG+WGdO9+hJR7JylQrWCgBLowGMCx5eZ6EgE4rAJ AC9TCfYpj/eulypvCOmSJLh43TbKhBvIFqS9OoksJ6QyRwjLKW65siubFkjg3tFh+I5A l3cQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20260707; t=1790095891; x=1790700691; 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=NMMUYlRFOEu4Y+0NjhX8Ge/q9RoTfSWrF7SafoChtWc=; b=Mu0dHW8Y/Tg9x62X17OxzL5e1RxBC6bKAigHGcAQEo/Ep7ruj8QY4HOgFGCww31o7n kgQ1WJdI1tqktSZY+WDQeXhqg1tWXCVeuhefT9kIdwUphFPNqo26rHZKH4mZyReY1ZSV 1Al+M5WDje55FzaWzzlmhVx/fymzs6JG9fyW90h2B1XL0MrYwlP+0OGED0RcpaG7lrkC /CzcJGqiwH1LSpKZfquHqSFvyqZDfDoIOnXaHaPZwb0kLLvJS39UyysikSam4CoKzN0l qEpNi71yC/kZA/nBy1tPSzYHUxm4YztiU2GSERSZGRmOoyGZkLaNAhzX9kokfLRIrUIh lGiA== X-Gm-Message-State: AFuF++la9riipQSGTCjjeIgI+tegPN47kfkxLcCKiJuxlWm5+NbMZJyH zawlcP0L7JYUI7W7vHXTWkaf3tdkRvqnEoEbGMN4vHSlGtroheg/Y7VdGu66t82+/wK/V8vnPDQ BlbYFGrummMg6KYta+lyj6rcusfDPQSp0BI9xfGOeFuIajdCernFiJjAuBpR9sRxxlg== X-Gm-Gg: AYBFou2LTH1CANTAHxijFrsPVOrlQ2whRQnJ5K2xTScsWqoEGjTdPv0xkYSjS1hh8qM mdmp6Nwy6td4RYWF2s10/heijld5Ai7VFApnuvjEC03x0qXjswaVvBojul3nZZvFJify8XQkdT5 MyKEEhBaCrLiQOibKJuuS04YMBIPlq4KZVYZnUX83ERPn4xNT7V0oTmlUgcOuedzEEfntwQiUHo bBGmdMos2pYZMcBPG26g5DWMxfaCETB99Dw8KsedYdbHjDlDgnjvMcTSfHWCNNIYH1B2eHyviQO ETCvu52vhESZzOYxLo2n+9DjvC+nJf2zxFInEWOOjPhcY913raOyEpZuXILxn8s3/8dhoWvP8Nv gMIPVsji49/RcPYQTtOoNvhR1s32Qksj8pQBRH4K/ X-Received: by 2002:a05:6102:6a83:b0:7a1:f7e2:aae3 with SMTP id ada2fe7eead31-7a55ca7b59bmr9262528137.21.1790095890841; Tue, 22 Sep 2026 09:51:30 -0700 (PDT) X-Received: by 2002:a05:6102:6a83:b0:7a1:f7e2:aae3 with SMTP id ada2fe7eead31-7a55ca7b59bmr9262501137.21.1790095890377; Tue, 22 Sep 2026 09:51:30 -0700 (PDT) From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Cc: qemu-riscv@nongnu.org, Peter Maydell , qemu-ppc@nongnu.org, Paolo Bonzini , qemu-s390x@nongnu.org, Richard Henderson , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Subject: [PATCH v2 15/17] target/i386: Split leaving-halt handling from x86_cpu_exec_halt() Date: Tue, 22 Sep 2026 18:49:33 +0200 Message-ID: <20260922164936.15189-16-philmd@oss.qualcomm.com> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260922164936.15189-1-philmd@oss.qualcomm.com> References: <20260922164936.15189-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=bP6Ds/+Z c=1 sm=1 tr=0 ts=6ab2b213 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=_glEPmIy2e8OvE2BGh3C:22 a=EUspDBNiAAAA:8 a=KKAkSRfTAAAA:8 a=GiXQl85om2WzCxkx9rAA:9 a=3ZKOabzyN94A:10 a=QEXdDO2ut3YA:10 a=-aSRE8QhW-JAV6biHavz:22 a=cvBusfyB2V15izCimMoJ:22 X-Proofpoint-ORIG-GUID: g3UXi4l9BbB0c8D7BLxdwFOsra1MecpS X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwOTIyMDI0NiBTYWx0ZWRfX/dQHLBTQ+nJP 98BPvLFXAXH+XXe++hX/lJVi/5W69JhsEVm4lpLdrsrGQ9D7vAnt8m5ue7DVgleAOngj3yk6PQl UApy/zhprSrjeVmKIs9Ja9DJS8xIPgh5T13bDA8aH323BNG43HLn2HDi4S/vxIQl2i8m786jP4X 797fcrY1Fiw4tPTKoYsstXU9gFZR5yqzbWRojemPeOrPNHUEZnc8uZHuLBWkiVGukQ9IerP4QgL cQ07+a40a/PzAIYugPqPYgINegtJbl8uG3YTXvRvDrTZGPLc4RPfbcQKW5seGPB5ZBjooxcBDnB fgtsPWYNVYHct2WZOdoTrQBqhSQgdRUFLNNYzT2JfWBdlI2InpT/E/JlRb0AucmrpXbf0sl01j5 VLcxi5qwKTjL8QuXKqWWHkTfRUHvf+sxWedm63bR9B6os2LbnW275PFpKVp2jLSTfMfBn2rOtwy BV4FGYEIMmZsT3eaFyw== X-Proofpoint-Spam-Info: AW1haW4tMjYwOTIyMDI0NiBTYWx0ZWRfX0uytNJY5BXc2 1iYqMOK7+ZElifpYmT5QYYmU5T0DLhqcxBncLcK1FZG8rsji67GPvIdYdRywKJWLn0FEvLPhgtN AAWm67+PElL+Y2PGOZlscaoi9eJS+Hg= X-Proofpoint-GUID: g3UXi4l9BbB0c8D7BLxdwFOsra1MecpS 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-22_02,2026-09-21_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 clxscore=1015 malwarescore=0 priorityscore=1501 spamscore=0 bulkscore=0 suspectscore=0 adultscore=0 phishscore=0 lowpriorityscore=0 impostorscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2609040000 definitions=main-2609220246 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: 1790096157618158500 Move debug exception handling performed when leaving HLT into x86_cpu_leaving_halt(). Keep x86_cpu_exec_halt() responsible for checking whether the CPU can resume. Document that #DB IRQ delivery through do_interrupt_all() runs in the vCPU thread and does not require BQL protection. Signed-off-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: Richard Henderson --- target/i386/tcg/helper-tcg.h | 1 + target/i386/tcg/system/seg_helper.c | 25 +++++++++++++++++-------- 2 files changed, 18 insertions(+), 8 deletions(-) diff --git a/target/i386/tcg/helper-tcg.h b/target/i386/tcg/helper-tcg.h index 58e8ca0bc1b..96accb30a80 100644 --- a/target/i386/tcg/helper-tcg.h +++ b/target/i386/tcg/helper-tcg.h @@ -39,6 +39,7 @@ void x86_cpu_do_interrupt(CPUState *cpu); #ifndef CONFIG_USER_ONLY void x86_cpu_poll_during_halt(CPUState *cpu); bool x86_cpu_exec_halt(CPUState *cpu); +void x86_cpu_leaving_halt(CPUState *cpu); bool x86_need_replay_interrupt(int interrupt_request); bool x86_cpu_exec_interrupt(CPUState *cpu, int int_req); #endif diff --git a/target/i386/tcg/system/seg_helper.c b/target/i386/tcg/system/s= eg_helper.c index 9ce608a0bb7..566b3d4d80c 100644 --- a/target/i386/tcg/system/seg_helper.c +++ b/target/i386/tcg/system/seg_helper.c @@ -140,22 +140,31 @@ void x86_cpu_poll_during_halt(CPUState *cpu) } } =20 -bool x86_cpu_exec_halt(CPUState *cpu) +void x86_cpu_leaving_halt(CPUState *cpu) { X86CPU *x86_cpu =3D X86_CPU(cpu); - CPUX86State *env =3D &x86_cpu->env; - - x86_cpu_poll_during_halt(cpu); - - if (!cpu_has_work(cpu)) { - return false; - } + CPUX86State *env =3D cpu_env(cpu); =20 /* Complete HLT instruction. */ if (env->eflags & TF_MASK) { env->dr[6] |=3D DR6_BS; + /* + * do_interrupt_all() is the normal TCG exception-delivery path + * and runs in the same vCPU thread context, so #DB delivery does + * not require BQL protection here. + */ do_interrupt_all(x86_cpu, EXCP01_DB, 0, 0, env->eip, 0); } +} + +bool x86_cpu_exec_halt(CPUState *cpu) +{ + if (!cpu_has_work(cpu)) { + return false; + } + + x86_cpu_leaving_halt(cpu); + return true; } =20 --=20 2.53.0 From nobody Sat Sep 26 20:01:26 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=1790096142; cv=none; d=zohomail.com; s=zohoarc; b=RWWTk8h0ZvTPmFBXzyGL+RwDiVJOd7XDAt1LO1MNuM82DvsuRcgDiLWBvw8r2PZOjSG/fxZV4Mpg8BMoF20qjalicm4DUBqHvZJcblI1+2zDAvQRlDejTpjz59vZgR4qetVP2j9A1HsEQRA0B0C6xsI0X8jo/2btG+UQh1xwul8= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1790096142; 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:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=VscxCLnI2dGnGBzBwxcHvgdrFWZJrGl9KKZv7JgH7Xc=; b=JOENJGXx55N5JcEWC/XP4Cj+/M+AJG5jZAWOG6Ftb0KL4o2gXj3pP3PiVEv4OT5Ez61ScA6Im0Td5SwVZKIGhK5v2VhiMgf6qpacMqdDFdHJKq+0OmxZzOjWBwSSK6yqFitM4DsjeaMNGJ4ftjIzUgtxjjPiJ/+LDsOEsUo6w7g= 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 1790096142341304.9560619902211; Tue, 22 Sep 2026 09:55:42 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1x93m5-0001UC-Qu; Tue, 22 Sep 2026 12:55:21 -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 1x93ij-00053g-EN for qemu-devel@nongnu.org; Tue, 22 Sep 2026 12:51:55 -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 1x93if-0002ef-R0 for qemu-devel@nongnu.org; Tue, 22 Sep 2026 12:51:52 -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 68MEjVf51058317 for ; Tue, 22 Sep 2026 16:51:39 GMT Received: from mail-vk1-f197.google.com (mail-vk1-f197.google.com [209.85.221.197]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4guha5uh15-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Tue, 22 Sep 2026 16:51:38 +0000 (GMT) Received: by mail-vk1-f197.google.com with SMTP id 71dfb90a1353d-5c9a93f5f3aso57002e0c.3 for ; Tue, 22 Sep 2026 09:51:38 -0700 (PDT) Received: from localhost.localdomain (pmd666.hd.free.fr. [88.187.86.199]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-49fdab0c240sm44540925e9.4.2026.09.22.09.51.36 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Tue, 22 Sep 2026 09:51:37 -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= VscxCLnI2dGnGBzBwxcHvgdrFWZJrGl9KKZv7JgH7Xc=; b=ChKu6M/nilbqAG88 +QkAVSbvSgdk2eZaMlAxiP6wj7pmcnXt0SxBm9CJoplqN4uckdAOHlm4kIJinIrB 5dl5hSICeQzRObkUaMSFvVNEfK5AtoGGMNkgnsZSnFTMn44nn+g+uyfyMuqVnH3h DavUOlvggdcNMtfPuZJT5yvFC19bED6WlhFARUDkqzPJe3dKqRTOXy2fpvpUmfo6 /um6z+QpIlyL3o9zcqiGODYP5dUuFETbyYWs2OvbhTraTORm8cXIWGK7q3t1TRMI UwVf0H9Rd50kt1NXT902uqDAqhHyaChx4jwQYz+yLrl2r/rLMDlZUVyeh6GoI1T8 uWOm8A== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1790095898; x=1790700698; 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=VscxCLnI2dGnGBzBwxcHvgdrFWZJrGl9KKZv7JgH7Xc=; b=F0qIQWHwDDwZe3tEssYYcEuZ7apShkN5Wp36yzICzyEPNqLivE82ixPIzLY6JpsXR8 zjaV7cFMP3brrkx8rzgeta/xtiQzvYeLAmyE35XdijNeHeDu9XL1EBrAgBtEdFh6IPc6 UfdMrqZ93iQdBLeJCtnb12WgX/djrPg9Y4s6OOtxRrkvAcxOm7oiQfmajzcrI6cbunnd WBfBZjxcAbfLyihLKyf3rPStwWYt+XQOJcYBcLxqRAvty6YPrzKVWFZMpT1s4erd61No phMZFellbcHT4/AJ9zXJmSFKdBa3lD3KnJFg3BHeVaRVMGxLeWLeXFMFTgrYO+3tQz3z FlzQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20260707; t=1790095898; x=1790700698; 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=VscxCLnI2dGnGBzBwxcHvgdrFWZJrGl9KKZv7JgH7Xc=; b=lgJSuWSmHDsDYsc2oMtdgnRvEXbY1UrEZxmY6O/70EZzM/3VPsXak7e8E0PUI1Xzsa qHp95n+tbAU4pzc/BAqBgjFXvHZjEScm2NzVxM4OsoXDoAA0wS8cLxM5AmE3gxFTUAX7 U71kXJBJE875XQ9v70LJlqUDjZXRLPlHHcpD/Z0h27vUPkV9xvkVkHMgAIEp9Eg69BVp oi6Nz3lOCSRPxxzBypZUkzWsqvEX5bc5SVJkWRMYyToR7ZVD2CyHLRtXinhJJ2nhIl8a rKZudRcCLSh1axH55nH6EMf2/KvDy5T09BGxXURDmezDcZCe1SQnOAEPlDC3xIBljKnq D//w== X-Gm-Message-State: AFuF++mbf68ztGpQVBwukquHJIBtx4wN87sheS8BBtSRtxAQuqOrRRsG 4kdr+hqkej488HfNY2sr4zZj5mBOJ5fV/7bfzrcjJeGp2zir3+ZSw/E6jmPo7r0wWt6FAux7UPQ UF+VC/yLJBVLE5/VS9VyhgNxFU1hMUSif10iqqkNHU5r+suWrVz8/d9H+CaLmS/FUzA== X-Gm-Gg: AYBFou2JAZK6SUOMe7PXFZzWWIom+AwyfSmYiQshYxmoreMdfkO4uidGCmkvQ9nVKAM /wdL43+yIEv1xZkvk+ljWajF/U+y78Qqm/INdkkP9+kJuKgQU6ONsM9A+SO0KuONwxjKZaNCYNF ata/cSsKvy2oWDydsXyAAI56W9ZCuAUIBGTOFIs8WBFuM6AzZIB6WfJXYACpRKjTrRm5GtVvwly 4EtkP6fs5HSMHLXgiZD5mM0ndPS3jWpbuQC4GcnSkambzgvS5jOiVpig4itvfU7xhrIXtw7KICb Tzr6hiORGE1WXKrAikl4M888kysS3In+rw/Ne0NldlR0KeG2JaP//UosHFjgnaqHpqwYm5ROuhh m7T3VtNmfWU+xhi12+TJVCgB2I1RTd2iQWrOnovWG X-Received: by 2002:a05:6102:8007:b0:7a1:f7d2:e817 with SMTP id ada2fe7eead31-7a55ba4d3eemr10035510137.16.1790095898334; Tue, 22 Sep 2026 09:51:38 -0700 (PDT) X-Received: by 2002:a05:6102:8007:b0:7a1:f7d2:e817 with SMTP id ada2fe7eead31-7a55ba4d3eemr10035444137.16.1790095897665; Tue, 22 Sep 2026 09:51:37 -0700 (PDT) From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Cc: qemu-riscv@nongnu.org, Peter Maydell , qemu-ppc@nongnu.org, Paolo Bonzini , qemu-s390x@nongnu.org, Richard Henderson , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Subject: [PATCH v2 16/17] target/i386: Use generic halt transition handlers Date: Tue, 22 Sep 2026 18:49:34 +0200 Message-ID: <20260922164936.15189-17-philmd@oss.qualcomm.com> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260922164936.15189-1-philmd@oss.qualcomm.com> References: <20260922164936.15189-1-philmd@oss.qualcomm.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-Proofpoint-GUID: otHy111Hko3tjK0Tziu3oRKXcZDIXU79 X-Proofpoint-Spam-Info: AW1haW4tMjYwOTIyMDI0NiBTYWx0ZWRfX02m3YDW/mvwt tovuUUPu/W0WQVR5lJZihI+UodGcNy4tP1xCQygvO50Bc8z08oVQE/ba4Z0UE3RAniIMb82RW2Y CoSTTmd7DAu6BXFDf+gcPBgOmRUEUQA= X-Authority-Analysis: v=2.4 cv=U+4Hnuru c=1 sm=1 tr=0 ts=6ab2b21a cx=c_pps a=JIY1xp/sjQ9K5JH4t62bdg==: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=KKAkSRfTAAAA:8 a=xWu8-Agft_6X_INOG6MA:9 a=3ZKOabzyN94A:10 a=QEXdDO2ut3YA:10 a=tNoRWFLymzeba-QzToBc:22 a=cvBusfyB2V15izCimMoJ:22 X-Proofpoint-ORIG-GUID: otHy111Hko3tjK0Tziu3oRKXcZDIXU79 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwOTIyMDI0NiBTYWx0ZWRfXwTCp3TyoXONs z/vdYwJv9iRZDIQqum6lse0wcW8L9YhStl3EwQ4PLEVVLsWYCOP0280hscdNLxmNTDWCjCsHpXY /f54OQhkn00LGAIzbqGMB8qBvO308TbsdT029j7ASOrAXXSrqYwA1pKOyXJ/cvmH5xRxjp1htO0 d+9Xppflv+DO61x7BoSTh0lGyuBDNeWeCiWp/hz+c7ChLNPFT9WAig21uDrpyhzz1YyyHWETyK8 PnEdlL+POLL5A4n6ezo26VjHZAX2ihV/vqw2fAsoBJPB5xt4a+0+DiMbAWb4PXRA+3sTu8hGiad BB9ioz0DL8FWZTkHxRnHUfzBbGFOxW/WUROSvZEGuGmDRJn82YxMd4utAIV43A+uyyUwbip7LFG XfK2Ol2+KKzEWqXGfaYwRwPMdpLJO2z7DXDC6pQ4olupcwXzV7UruscETKHkq7Hxts/4xurO40P Uovj3wf3mnQc7koRIaw== 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-22_02,2026-09-21_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 clxscore=1015 impostorscore=0 adultscore=0 phishscore=0 lowpriorityscore=0 priorityscore=1501 suspectscore=0 bulkscore=0 spamscore=0 malwarescore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2609040000 definitions=main-2609220246 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: 1790096143570158500 Register x86_cpu_poll_during_halt() and x86_cpu_leaving_halt() with the generic TCG halt flow. Remove the target-specific x86_cpu_exec_halt() wrapper. Signed-off-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: Richard Henderson --- target/i386/tcg/helper-tcg.h | 1 - target/i386/tcg/system/seg_helper.c | 11 ----------- target/i386/tcg/tcg-cpu.c | 3 ++- 3 files changed, 2 insertions(+), 13 deletions(-) diff --git a/target/i386/tcg/helper-tcg.h b/target/i386/tcg/helper-tcg.h index 96accb30a80..4d543556a9f 100644 --- a/target/i386/tcg/helper-tcg.h +++ b/target/i386/tcg/helper-tcg.h @@ -38,7 +38,6 @@ void x86_cpu_do_interrupt(CPUState *cpu); #ifndef CONFIG_USER_ONLY void x86_cpu_poll_during_halt(CPUState *cpu); -bool x86_cpu_exec_halt(CPUState *cpu); void x86_cpu_leaving_halt(CPUState *cpu); bool x86_need_replay_interrupt(int interrupt_request); bool x86_cpu_exec_interrupt(CPUState *cpu, int int_req); diff --git a/target/i386/tcg/system/seg_helper.c b/target/i386/tcg/system/s= eg_helper.c index 566b3d4d80c..e24d01000ad 100644 --- a/target/i386/tcg/system/seg_helper.c +++ b/target/i386/tcg/system/seg_helper.c @@ -157,17 +157,6 @@ void x86_cpu_leaving_halt(CPUState *cpu) } } =20 -bool x86_cpu_exec_halt(CPUState *cpu) -{ - if (!cpu_has_work(cpu)) { - return false; - } - - x86_cpu_leaving_halt(cpu); - - return true; -} - bool x86_need_replay_interrupt(int interrupt_request) { /* diff --git a/target/i386/tcg/tcg-cpu.c b/target/i386/tcg/tcg-cpu.c index 6f5dc06b3b9..2fde412394f 100644 --- a/target/i386/tcg/tcg-cpu.c +++ b/target/i386/tcg/tcg-cpu.c @@ -180,7 +180,8 @@ const TCGCPUOps x86_tcg_ops =3D { .tlb_fill =3D x86_cpu_tlb_fill, .pointer_wrap =3D x86_pointer_wrap, .do_interrupt =3D x86_cpu_do_interrupt, - .cpu_exec_halt =3D x86_cpu_exec_halt, + .poll_during_halt =3D x86_cpu_poll_during_halt, + .leaving_halt =3D x86_cpu_leaving_halt, .cpu_exec_interrupt =3D x86_cpu_exec_interrupt, .cpu_exec_reset =3D x86_cpu_exec_reset, .do_unaligned_access =3D x86_cpu_do_unaligned_access, --=20 2.53.0 From nobody Sat Sep 26 20:01:26 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=1790096148; cv=none; d=zohomail.com; s=zohoarc; b=DyQLNQkBfBM9XaQj6Bh5+0a/okh6P7Hrz6KcWfdXFdsZ6V3Ls7GKcirYOIDtRj3+pv7IUEIJeT1NfoCwSfukxU88Jcda+6l5LCBgZf5s9wBv5jS0DCUUAFfxObvkEPOggf2ReWoKAlNzgZ5HugWJjGB4TftkKcu55t05sQxZoAs= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1790096148; 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:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=8VImw4GdPL6MylHqz90FZubmL+XHOTV/a2p7qxzf7x8=; b=CQoj0dRCJGgchu+qhTGBOb1iR6AgtOxoyeuXk+Sg9cKtG86MxM6/aDF4K/RZu+SLBcc0KhH5DOkNgIYZl3jMAkCg+9u0ct7CG6Ir6CPLP4wpZ3tj9KaLnN+PVZkCs0gLPUHEHcyoQnINme4I3CFlqNZ7NiFQh6oaa0yVpVveKgA= 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 1790096148746131.15330545553672; Tue, 22 Sep 2026 09:55:48 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1x93le-0000x3-2j; Tue, 22 Sep 2026 12:54:55 -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 1x93ir-00059k-FY for qemu-devel@nongnu.org; Tue, 22 Sep 2026 12:52:05 -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 1x93io-0002gY-Nx for qemu-devel@nongnu.org; Tue, 22 Sep 2026 12:52:00 -0400 Received: from pps.filterd (m0279873.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 68MEjGna449451 for ; Tue, 22 Sep 2026 16:51: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 4gunjytfra-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Tue, 22 Sep 2026 16:51:47 +0000 (GMT) Received: by mail-vs1-f71.google.com with SMTP id ada2fe7eead31-7961a79fcd8so1551472137.3 for ; Tue, 22 Sep 2026 09:51:47 -0700 (PDT) Received: from localhost.localdomain (pmd666.hd.free.fr. [88.187.86.199]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-49fdaafa9cfsm67673215e9.4.2026.09.22.09.51.43 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Tue, 22 Sep 2026 09:51:45 -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= 8VImw4GdPL6MylHqz90FZubmL+XHOTV/a2p7qxzf7x8=; b=Q6KTM4loLBytgswS OX2rfrycoiNNUwbP1MBHEcCculUF5LLNrmnuZLuW3GcK4KnDej5pDNEZZAoCSmDW zaxEsiU6XLEfhA7jc9LTdI05kidtopqenAd998ix+r/wudZAZb3pRazd+X9pm+q0 A44NyNT7/kUvBZQTVLKi7VcsPLkKS1D7usbhvat9SA9Og2bm8kmgk3vt81naSIsA Wi0N0O0Q0QqhfHq7o5u5pDmZNphrt0xqlUYiEFeQaPb+b4X1/rXVfTG6r1sl/VNc 50b0uHHRhUuRKtr2MGnea9CIvnxox24RF20xyL1CbYrZCqu0G7xaS5YRQ3usam4h 9HQCeg== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1790095907; x=1790700707; 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=8VImw4GdPL6MylHqz90FZubmL+XHOTV/a2p7qxzf7x8=; b=M9lsfQyEhZxVous9D8IvRamfKOINolHCuH+5EQrt3Fijjdz6QR+RGiDLVy/dY8WdMB mBCSrXILWmEwvKZoqfIz9SRLlVV01SsMdG1Pokt0MAF893jufEJriqPvwk9fHVAZBFQx e+Ex3PBXhzuVXxrapDZ73kIEiSmFBqE1t+TytbVL55uB2PYMI+uww+NQc9D+/JiA0Pcq +Fo5zSjTSusedcQOHNkLSSTOM9obpbKiohpMvSj6tgg3RTy1Xs+msIc3FlcKYrrn0oOD gbgA7zcnDcLook4oRHvADf1du5Qvkm6PmbJL7Encj0kFhdBp3uWilj6/tkH4vXR+UWtz jkwg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20260707; t=1790095907; x=1790700707; 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=8VImw4GdPL6MylHqz90FZubmL+XHOTV/a2p7qxzf7x8=; b=owPyI6r3QXyPQnJpSiFu/3rfIQ0lZpvTUwnKYxgU7o1+vzRdzOzbnLvQxFsx1+SdlZ h7Q06tKwJhElrlWAz+3daHc2Z0u5KbnmyTum+PHsLsstjOYno4qP8rf8WPH1heucCxHw Ng4NlZozthEol9hefCJXrzM3b/GRQ2wVF8qjDuuPko0FVEJobbEVu0rWGiHA/Bbr8fSp jKIvRE/33cThoWZM8dYVezaFF9K2q6dUItAfpJsgbJSrrGSt2EFDZ+QRrTauGhM4pp4V yuuMVBde8ezH711n37inmh9kGBPlzghRZL6fvV4d5QPJgta8U2lkrWR8kJ9XwFENX6b5 q0zA== X-Gm-Message-State: AFuF++laW0v8LjoBdMwGwRC1T5v0LbNMn1C5MKqUyTA7knxqY/svmTlV feOYZYYOTo5TRNgdCTQIC8aiqapu/S8dne766Ld8vGZdlw90zd9stwGHkvyp/GGFHgKNZA1YtSU ZpxfPiIX3PkJCt/GAqcvqlSGsO7IytuXjdBB26jLGiga1x/SmeomatBK1sgIb7fpKrQ== X-Gm-Gg: AYBFou3N+BtLeE8mq4vQ037bc8vH+tijU1k2ZySb0fyb8Agci1s5a+RYTljEGX1h/xc 3vOYJWGi8/lUdP5EGmJW4i1ARQd5sXgVsUTwdnkJhOkXPZ1+i9oVHubb/jE5IqQwPtelFAuMBcC 9fTVH1BR8HvieQYfplLa5789jRMB+nK9NBDd4w9EEt5aJsm/2WOgrkf5ZHtnepIhey9vxw4HhMl HuNQXeJJHq3WWFLvndZ0+jze8w0MdTMfWfqPMnWLQYrlwPQxlU7wmi7amusdW63g1det6QPbAga 0kbPeCmo+Mbn51wCzFm3oP74Ml8YCBLLux7JklQT0Rxgy8jlVYLQrSw92vw7GiN3q1laZW1Xngg iQwrmDRrWuMiY3ADwAaENa6fd83euG1a0E6ZfFSZc X-Received: by 2002:a05:6102:4b18:b0:7ab:f00e:8d59 with SMTP id ada2fe7eead31-7abf00e8f9fmr1064964137.17.1790095906795; Tue, 22 Sep 2026 09:51:46 -0700 (PDT) X-Received: by 2002:a05:6102:4b18:b0:7ab:f00e:8d59 with SMTP id ada2fe7eead31-7abf00e8f9fmr1064925137.17.1790095906298; Tue, 22 Sep 2026 09:51:46 -0700 (PDT) From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Cc: qemu-riscv@nongnu.org, Peter Maydell , qemu-ppc@nongnu.org, Paolo Bonzini , qemu-s390x@nongnu.org, Richard Henderson , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , Michael Rolnik , Brian Cain , Pierrick Bouvier , Helge Deller , Song Gao <17746591750@163.com>, Bibo Mao , Xianglai Li , Laurent Vivier , "Edgar E. Iglesias" , 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 , Mark Cave-Ayland , Artyom Tarasenko , Max Filippov Subject: [PATCH v2 17/17] accel/tcg: Remove the redundant cpu_exec_halt() hook Date: Tue, 22 Sep 2026 18:49:35 +0200 Message-ID: <20260922164936.15189-18-philmd@oss.qualcomm.com> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260922164936.15189-1-philmd@oss.qualcomm.com> References: <20260922164936.15189-1-philmd@oss.qualcomm.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-Proofpoint-GUID: e4D0v7iorvpghEPHjCpEaFgRA6KyjDUP X-Authority-Analysis: v=2.4 cv=KqHYSmWN c=1 sm=1 tr=0 ts=6ab2b223 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=rJkE3RaqiGZ5pbrm-msn:22 a=EUspDBNiAAAA:8 a=KKAkSRfTAAAA:8 a=Fma_We6Em7EAR7gKL-MA:9 a=3ZKOabzyN94A:10 a=QEXdDO2ut3YA:10 a=ODZdjJIeia2B_SHc_B0f:22 a=cvBusfyB2V15izCimMoJ:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwOTIyMDI0NiBTYWx0ZWRfX7q6IamyVEi4A JZZX8RbphL/tiy6tqcsSXQcIdINzJ+w8+h2YH4gB2JVCtgxpkGOvfHmrQWPsjP2xIlkyBC/j0KK Q/uL7yFSrDNpDo5rYG8m3ArnZcbbbizypQv9CD5z6MC6m3tk879LUJdHybc+BXFe3UtW3cIPdab pUeorkNCAQgGC1yHd4zTjwU9dJiuxJRzZwV5s+SmSjL64aqIbetIvpwXbQj5z/6N28re/8gP5tm kymDippO9e3wW+lTMaIF8AtkIZjjT7VVwY5/Wq+IP0vyW4HInYeQ3gfoSHzgaYCcLL5yQ4C3Hq8 oYMHOjgAmmlMMMso6GnF6Pj6PW4WrWzdgikVUeX3hYedAVCA2+klngGEEZxs/skddnBSG6RcKu5 O9hQWqlDqS/7XjtCdM9mnnz4+OFSZb4ayw7I0NE/Bvk4C6bJBoXEnTBrcWswHjodr3D5RrnL2+u RA79T1TEAmIVKFeAB6w== X-Proofpoint-ORIG-GUID: e4D0v7iorvpghEPHjCpEaFgRA6KyjDUP X-Proofpoint-Spam-Info: AW1haW4tMjYwOTIyMDI0NiBTYWx0ZWRfX3uZr22o2phLK pkADiPXdJ4E6SNy7I+BzWuqtY8Ro6Nh66p2Ww1gXIztozelQ81GicGJjXwAya5tKiCWXy4y6v0U 326FF3AABnjLi6evLKwVHUpymibpbkw= 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-22_02,2026-09-21_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 impostorscore=0 spamscore=0 bulkscore=0 priorityscore=1501 phishscore=0 malwarescore=0 suspectscore=0 clxscore=1015 adultscore=0 lowpriorityscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2609040000 definitions=main-2609220246 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: 1790096149952158500 All remaining users of cpu_exec_halt simply alias cpu_has_work(). Call cpu_has_work() directly from the generic halt flow and remove the redundant hook registrations and interface definition. Make affected cpu_has_work() helpers private where possible. Signed-off-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: Richard Henderson --- include/accel/tcg/cpu-ops.h | 18 ------------------ target/loongarch/internals.h | 1 - target/riscv/internals.h | 5 ----- target/s390x/s390x-internal.h | 1 - accel/tcg/cpu-exec.c | 23 ++++++++--------------- target/alpha/cpu.c | 1 - target/avr/cpu.c | 1 - target/hexagon/cpu.c | 1 - target/hppa/cpu.c | 1 - target/loongarch/cpu.c | 2 +- target/loongarch/tcg/tcg_cpu.c | 1 - target/m68k/cpu.c | 1 - target/microblaze/cpu.c | 1 - target/mips/cpu.c | 1 - target/or1k/cpu.c | 1 - target/ppc/cpu_init.c | 1 - target/riscv/cpu.c | 2 +- target/riscv/tcg/tcg-cpu.c | 1 - target/rx/cpu.c | 1 - target/s390x/cpu-system.c | 2 +- target/s390x/cpu.c | 1 - target/sh4/cpu.c | 1 - target/sparc/cpu.c | 1 - target/tricore/cpu.c | 1 - target/xtensa/cpu.c | 1 - 25 files changed, 11 insertions(+), 60 deletions(-) diff --git a/include/accel/tcg/cpu-ops.h b/include/accel/tcg/cpu-ops.h index 1ee5d3d8bdb..4195a29e1e4 100644 --- a/include/accel/tcg/cpu-ops.h +++ b/include/accel/tcg/cpu-ops.h @@ -187,7 +187,6 @@ struct TCGCPUOps { * resume execution from the halted state. This callback performs any * necessary target-specific state transitions or synchronization befo= re * instruction execution resumes. The caller does not hold the BQL. - * Either this callback or @cpu_exec_halt must be provided (but not bo= th). */ void (*leaving_halt)(CPUState *cpu); /** @do_interrupt: Callback for interrupt handling. */ @@ -196,23 +195,6 @@ struct TCGCPUOps { bool (*cpu_exec_interrupt)(CPUState *cpu, int interrupt_request); /** @cpu_exec_reset: Callback for reset in cpu_exec. */ void (*cpu_exec_reset)(CPUState *cpu); - /** - * @cpu_exec_halt: Callback for handling halt in cpu_exec. - * - * The target CPU should do any special processing here that it needs - * to do when the CPU is in the halted state. - * - * Return true to indicate that the CPU should now leave halt, false - * if it should remain in the halted state. (This should generally - * be the same value that cpu_has_work() would return.) - * - * Either @leaving_halt or this method must be provided, but not both. - * If the target does not need to - * do anything special for halt, the same function used for its - * SysemuCPUOps::has_work method can be used here, as they have the - * same function signature. - */ - bool (*cpu_exec_halt)(CPUState *cpu); /** * @tlb_fill_align: Handle a softmmu tlb miss * @cpu: cpu context diff --git a/target/loongarch/internals.h b/target/loongarch/internals.h index f9a0680fe0f..2e31442453e 100644 --- a/target/loongarch/internals.h +++ b/target/loongarch/internals.h @@ -38,7 +38,6 @@ void cpu_loongarch_timer_cb(void *opaque); uint64_t cpu_loongarch_get_timer_counter(CPUTimerState *timer); uint64_t cpu_loongarch_get_timer_ticks(CPUTimerState *timer); void cpu_loongarch_set_timer_config(CPUTimerState *timer, uint64_t value); -bool loongarch_cpu_has_work(CPUState *cs); bool cpu_loongarch_hw_interrupts_pending(CPULoongArchState *env); #endif /* !CONFIG_USER_ONLY */ =20 diff --git a/target/riscv/internals.h b/target/riscv/internals.h index 5d84e4de960..fb2d8b3e17a 100644 --- a/target/riscv/internals.h +++ b/target/riscv/internals.h @@ -201,11 +201,6 @@ static inline target_ulong get_xepc_mask(CPURISCVState= *env) } } =20 -#ifndef CONFIG_USER_ONLY -/* Our implementation of SysemuCPUOps::has_work */ -bool riscv_cpu_has_work(CPUState *cs); -#endif - /* Zjpm addr masking routine */ static inline target_ulong adjust_addr_body(CPURISCVState *env, target_ulong addr, diff --git a/target/s390x/s390x-internal.h b/target/s390x/s390x-internal.h index da60b2b1fd4..df1297b5c67 100644 --- a/target/s390x/s390x-internal.h +++ b/target/s390x/s390x-internal.h @@ -248,7 +248,6 @@ bool s390_cpu_system_realize(DeviceState *dev, Error **= errp); void s390_cpu_finalize(Object *obj); void s390_cpu_system_class_init(CPUClass *cc); void s390_cpu_machine_reset_cb(void *opaque); -bool s390_cpu_has_work(CPUState *cs); #endif /* CONFIG_USER_ONLY */ =20 =20 diff --git a/accel/tcg/cpu-exec.c b/accel/tcg/cpu-exec.c index edb719b0d10..30a9a8aed42 100644 --- a/accel/tcg/cpu-exec.c +++ b/accel/tcg/cpu-exec.c @@ -48,7 +48,6 @@ #include "internal-common.h" #if !defined(CONFIG_USER_ONLY) #include "accel/tcg/iommu.h" -#include "hw/core/sysemu-cpu-ops.h" #endif =20 /* -icount align implementation. */ @@ -659,21 +658,16 @@ static bool cpu_poll_while_halted(CPUState *cpu) { const TCGCPUOps *tcg_ops =3D cpu->cc->tcg_ops; =20 + if (tcg_ops->poll_during_halt) { + tcg_ops->poll_during_halt(cpu); + } + + if (!cpu_has_work(cpu)) { + return false; + } + if (tcg_ops->leaving_halt) { - assert(!tcg_ops->cpu_exec_halt); - if (tcg_ops->poll_during_halt) { - tcg_ops->poll_during_halt(cpu); - } - if (!cpu_has_work(cpu)) { - return false; - } tcg_ops->leaving_halt(cpu); - } else { - assert(!tcg_ops->poll_during_halt); - assert(cpu->cc->sysemu_ops->has_work =3D=3D tcg_ops->cpu_exec_halt= ); - if (!tcg_ops->cpu_exec_halt(cpu)) { - return false; - } } =20 cpu->halted =3D 0; /* allow execution */ @@ -1072,7 +1066,6 @@ bool tcg_exec_realizefn(CPUState *cpu, Error **errp) /* Check mandatory TCGCPUOps handlers */ const TCGCPUOps *tcg_ops =3D cpu->cc->tcg_ops; #ifndef CONFIG_USER_ONLY - assert(tcg_ops->cpu_exec_halt || tcg_ops->leaving_halt); assert(tcg_ops->cpu_exec_interrupt); assert(tcg_ops->cpu_exec_reset); assert(tcg_ops->pointer_wrap); diff --git a/target/alpha/cpu.c b/target/alpha/cpu.c index 12e86021663..7d1d036e1d3 100644 --- a/target/alpha/cpu.c +++ b/target/alpha/cpu.c @@ -265,7 +265,6 @@ static const TCGCPUOps alpha_tcg_ops =3D { .tlb_fill =3D alpha_cpu_tlb_fill, .pointer_wrap =3D cpu_pointer_wrap_notreached, .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_transaction_failed =3D alpha_cpu_do_transaction_failed, diff --git a/target/avr/cpu.c b/target/avr/cpu.c index f8409f32ab9..a01e6fa4751 100644 --- a/target/avr/cpu.c +++ b/target/avr/cpu.c @@ -246,7 +246,6 @@ static const TCGCPUOps avr_tcg_ops =3D { .restore_state_to_opc =3D avr_restore_state_to_opc, .mmu_index =3D avr_cpu_mmu_index, .cpu_exec_interrupt =3D avr_cpu_exec_interrupt, - .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, diff --git a/target/hexagon/cpu.c b/target/hexagon/cpu.c index fad526ccfb5..e7defcca8a7 100644 --- a/target/hexagon/cpu.c +++ b/target/hexagon/cpu.c @@ -783,7 +783,6 @@ static const TCGCPUOps hexagon_tcg_ops =3D { .cpu_exec_reset =3D cpu_reset, .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, #endif /* !CONFIG_USER_ONLY */ }; diff --git a/target/hppa/cpu.c b/target/hppa/cpu.c index 07b49e51326..7b1309a7c38 100644 --- a/target/hppa/cpu.c +++ b/target/hppa/cpu.c @@ -270,7 +270,6 @@ static const TCGCPUOps hppa_tcg_ops =3D { .tlb_fill_align =3D hppa_cpu_tlb_fill_align, .pointer_wrap =3D cpu_pointer_wrap_notreached, .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_unaligned_access =3D hppa_cpu_do_unaligned_access, diff --git a/target/loongarch/cpu.c b/target/loongarch/cpu.c index f22f64efb80..6b765797393 100644 --- a/target/loongarch/cpu.c +++ b/target/loongarch/cpu.c @@ -123,7 +123,7 @@ bool cpu_loongarch_hw_interrupts_pending(CPULoongArchSt= ate *env) #endif =20 #ifndef CONFIG_USER_ONLY -bool loongarch_cpu_has_work(CPUState *cs) +static bool loongarch_cpu_has_work(CPUState *cs) { bool has_work =3D false; =20 diff --git a/target/loongarch/tcg/tcg_cpu.c b/target/loongarch/tcg/tcg_cpu.c index 4b1d44a1644..7ea2a1eb933 100644 --- a/target/loongarch/tcg/tcg_cpu.c +++ b/target/loongarch/tcg/tcg_cpu.c @@ -327,7 +327,6 @@ const TCGCPUOps loongarch_tcg_ops =3D { .tlb_fill =3D loongarch_cpu_tlb_fill, .pointer_wrap =3D loongarch_pointer_wrap, .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_transaction_failed =3D loongarch_cpu_do_transaction_failed, diff --git a/target/m68k/cpu.c b/target/m68k/cpu.c index 9b52ad5fc23..c7771cbf643 100644 --- a/target/m68k/cpu.c +++ b/target/m68k/cpu.c @@ -710,7 +710,6 @@ static const TCGCPUOps m68k_tcg_ops =3D { .tlb_fill =3D m68k_cpu_tlb_fill, .pointer_wrap =3D cpu_pointer_wrap_uint32, .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_transaction_failed =3D m68k_cpu_transaction_failed, diff --git a/target/microblaze/cpu.c b/target/microblaze/cpu.c index 389a5124b12..6013a8def8e 100644 --- a/target/microblaze/cpu.c +++ b/target/microblaze/cpu.c @@ -448,7 +448,6 @@ static const TCGCPUOps mb_tcg_ops =3D { .tlb_fill =3D mb_cpu_tlb_fill, .pointer_wrap =3D cpu_pointer_wrap_uint32, .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_transaction_failed =3D mb_cpu_transaction_failed, diff --git a/target/mips/cpu.c b/target/mips/cpu.c index 0fead20d651..c069aa1c0b7 100644 --- a/target/mips/cpu.c +++ b/target/mips/cpu.c @@ -716,7 +716,6 @@ static const TCGCPUOps mips_tcg_ops =3D { .tlb_fill =3D mips_cpu_tlb_fill, .pointer_wrap =3D mips_pointer_wrap, .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_transaction_failed =3D mips_cpu_do_transaction_failed, diff --git a/target/or1k/cpu.c b/target/or1k/cpu.c index 66c00c0930c..42d9351b6d7 100644 --- a/target/or1k/cpu.c +++ b/target/or1k/cpu.c @@ -266,7 +266,6 @@ static const TCGCPUOps openrisc_tcg_ops =3D { .tlb_fill =3D openrisc_cpu_tlb_fill, .pointer_wrap =3D cpu_pointer_wrap_uint32, .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, #endif /* !CONFIG_USER_ONLY */ diff --git a/target/ppc/cpu_init.c b/target/ppc/cpu_init.c index 6c626843c93..ef59c56f416 100644 --- a/target/ppc/cpu_init.c +++ b/target/ppc/cpu_init.c @@ -7496,7 +7496,6 @@ static const TCGCPUOps ppc_tcg_ops =3D { .tlb_fill =3D ppc_cpu_tlb_fill, .pointer_wrap =3D ppc_pointer_wrap, .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, .cpu_exec_enter =3D ppc_cpu_exec_enter, diff --git a/target/riscv/cpu.c b/target/riscv/cpu.c index da4c1a090b9..c6b44e8f9c6 100644 --- a/target/riscv/cpu.c +++ b/target/riscv/cpu.c @@ -953,7 +953,7 @@ int riscv_cpu_vsirq_pending(CPURISCVState *env) (irqs | irqs_f_vs), env->hviprio); } =20 -bool riscv_cpu_has_work(CPUState *cs) +static bool riscv_cpu_has_work(CPUState *cs) { RISCVCPU *cpu =3D RISCV_CPU(cs); CPURISCVState *env =3D &cpu->env; diff --git a/target/riscv/tcg/tcg-cpu.c b/target/riscv/tcg/tcg-cpu.c index b68160af830..260ac6d89e7 100644 --- a/target/riscv/tcg/tcg-cpu.c +++ b/target/riscv/tcg/tcg-cpu.c @@ -286,7 +286,6 @@ const TCGCPUOps riscv_tcg_ops =3D { .tlb_fill =3D riscv_cpu_tlb_fill, .pointer_wrap =3D riscv_pointer_wrap, .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_transaction_failed =3D riscv_cpu_do_transaction_failed, diff --git a/target/rx/cpu.c b/target/rx/cpu.c index 9b8473d71cf..69946928995 100644 --- a/target/rx/cpu.c +++ b/target/rx/cpu.c @@ -227,7 +227,6 @@ static const TCGCPUOps rx_tcg_ops =3D { .pointer_wrap =3D cpu_pointer_wrap_uint32, =20 .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, }; diff --git a/target/s390x/cpu-system.c b/target/s390x/cpu-system.c index d38de4fea2b..82c89080a17 100644 --- a/target/s390x/cpu-system.c +++ b/target/s390x/cpu-system.c @@ -39,7 +39,7 @@ #include "system/tcg.h" #include "hw/core/sysemu-cpu-ops.h" =20 -bool s390_cpu_has_work(CPUState *cs) +static bool s390_cpu_has_work(CPUState *cs) { S390CPU *cpu =3D S390_CPU(cs); =20 diff --git a/target/s390x/cpu.c b/target/s390x/cpu.c index 85afc5dec9a..e7f81fabff6 100644 --- a/target/s390x/cpu.c +++ b/target/s390x/cpu.c @@ -384,7 +384,6 @@ static const TCGCPUOps s390_tcg_ops =3D { .tlb_fill =3D s390_cpu_tlb_fill, .pointer_wrap =3D s390_pointer_wrap, .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, .debug_excp_handler =3D s390x_cpu_debug_excp_handler, diff --git a/target/sh4/cpu.c b/target/sh4/cpu.c index 3bbdee301d5..55c73a1da35 100644 --- a/target/sh4/cpu.c +++ b/target/sh4/cpu.c @@ -312,7 +312,6 @@ static const TCGCPUOps superh_tcg_ops =3D { .tlb_fill =3D superh_cpu_tlb_fill, .pointer_wrap =3D cpu_pointer_wrap_notreached, .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_unaligned_access =3D superh_cpu_do_unaligned_access, diff --git a/target/sparc/cpu.c b/target/sparc/cpu.c index ae9bdca9df8..1529f9570da 100644 --- a/target/sparc/cpu.c +++ b/target/sparc/cpu.c @@ -1074,7 +1074,6 @@ static const TCGCPUOps sparc_tcg_ops =3D { .tlb_fill =3D sparc_cpu_tlb_fill, .pointer_wrap =3D sparc_pointer_wrap, .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_transaction_failed =3D sparc_cpu_do_transaction_failed, diff --git a/target/tricore/cpu.c b/target/tricore/cpu.c index 84a05e3d363..82b56c3cd56 100644 --- a/target/tricore/cpu.c +++ b/target/tricore/cpu.c @@ -223,7 +223,6 @@ static const TCGCPUOps tricore_tcg_ops =3D { .tlb_fill =3D tricore_cpu_tlb_fill, .pointer_wrap =3D cpu_pointer_wrap_uint32, .cpu_exec_interrupt =3D tricore_cpu_exec_interrupt, - .cpu_exec_halt =3D tricore_cpu_has_work, .cpu_exec_reset =3D cpu_reset, }; =20 diff --git a/target/xtensa/cpu.c b/target/xtensa/cpu.c index 7c25b9ab707..99c8bd4b5fb 100644 --- a/target/xtensa/cpu.c +++ b/target/xtensa/cpu.c @@ -325,7 +325,6 @@ static const TCGCPUOps xtensa_tcg_ops =3D { .tlb_fill =3D xtensa_cpu_tlb_fill, .pointer_wrap =3D cpu_pointer_wrap_uint32, .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_transaction_failed =3D xtensa_cpu_do_transaction_failed, --=20 2.53.0