From nobody Mon Feb 9 23:02:44 2026 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of _spf.google.com designates 209.85.221.52 as permitted sender) client-ip=209.85.221.52; envelope-from=philippe.mathieu.daude@gmail.com; helo=mail-wr1-f52.google.com; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of _spf.google.com designates 209.85.221.52 as permitted sender) smtp.mailfrom=philippe.mathieu.daude@gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1632174313; cv=none; d=zohomail.com; s=zohoarc; b=gFg+43p6B5BdNKYLqme2cAwY6NHnH1vmdFEAWJq1fiNnvCuG6P4Jk/lxxlOFm/ioNFr8xBli5ZN7B+z0vR+OMiouE7+SETiSGq2cD1TYBohqz+Ycq1wf94SgJfJhJNBC0S6cMooJbsIIHvGb7hfazMBADad+MN7pIQtCaNBM1KA= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1632174313; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:MIME-Version:Message-ID:References:Sender:Subject:To; bh=8EcdesvsJoOlVD4oVUrlLoUx+HKq+WK1ZDA+Budxbds=; b=CIYd8Ie8XgKfoNlbbyetebaLS9semwnsLprEGCtpM7V3Ciw9fbZrgqe2WPhJMj1hp1jvJ9IlKqDKLJv1AVEcvnElnum1tWvREE5YrV4FQFJ8I4CkstAXo9U4eFEwSIEYKovQBsdp6iDc1jfp1IbUdg69Ol8VkjVulIh36oUDgZQ= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of _spf.google.com designates 209.85.221.52 as permitted sender) smtp.mailfrom=philippe.mathieu.daude@gmail.com Received: from mail-wr1-f52.google.com (mail-wr1-f52.google.com [209.85.221.52]) by mx.zohomail.com with SMTPS id 1632174313900165.38372942796536; Mon, 20 Sep 2021 14:45:13 -0700 (PDT) Received: by mail-wr1-f52.google.com with SMTP id i23so33593139wrb.2 for ; Mon, 20 Sep 2021 14:45:13 -0700 (PDT) Return-Path: Return-Path: Received: from x1w.. (118.red-83-35-24.dynamicip.rima-tde.net. [83.35.24.118]) by smtp.gmail.com with ESMTPSA id b207sm759238wmb.29.2021.09.20.14.45.11 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 20 Sep 2021 14:45:11 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=8EcdesvsJoOlVD4oVUrlLoUx+HKq+WK1ZDA+Budxbds=; b=Se/2z/geo5FI46kWLvoUFaBaTiYbHfGC3XDIQIWMW5byBRWA6HAsiEd+X8A++IYic0 PUMvwzGa5vS6iRHULvULPQaoissydXnBxTA3W2wVLWW4xWGIw5OF8WJQyPVZKR5v/ZFh ct0kFGjN2EwIGzqxag7mFcP3fwuynpPfUouxRbQpa3x17RvpPw9YdzWfOtyQK4ztwBa0 JPWFEsu0rVu+DAf2XcANd5/L2vFfYtyE0mRnG8OlN8UtMg+1RujReg9lAO06n8GqMKce E/UhmwFXkOBQRwk+nz+iqOnQRbOlFQTMlN6QHOD/YYWDdphQ8qliBr7uFxoBQa2/5pYF zssw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references:mime-version:content-transfer-encoding; bh=8EcdesvsJoOlVD4oVUrlLoUx+HKq+WK1ZDA+Budxbds=; b=N1p7vl/YrL3ES66QzWoljMXvhTtXkjZBoRfXz6VK4xBn8cxiNs4pFubcLal1j3U2II gMNmEWBKA3nl1FMvyJTi7r+K8PJwZ4PBC8tgxXT0C1nUDtgUsrRDZzTZNrN/4NVBn0DA K/tAAa3vP3jWvnFz6Z9eCVR/G5XZLX7Vkc3G5CewSSZprH37a/PCfHWJz5NLsnIcrAvw c9m9F5WYsoRSkR0FEZesBXrYEsMe1KI1xBrZeybMZ4ml4I080Xvh8h/ZhlN8BDZdzA2L M/SjHoVa62T5fWZCfcWJvWhXvvfeZI5HZxpZQoiQQx6hRQI0xt3n33Yht5lqc5fX08AO F3Wg== X-Gm-Message-State: AOAM5309Pp+Dg/+EeQoPZNootXTqUU/NGn5UDU7ZW92opIXz5VlN4YZW 0ni4qQtGqkH7zNdKVfD6rk4= X-Google-Smtp-Source: ABdhPJzlOI9er9FjK4o4c2iPxj09AR/ZVzEbvFwr0m6nKF+czseY1PAcsl51p7XLmzJaUNvYo32eUA== X-Received: by 2002:a1c:2b04:: with SMTP id r4mr1107445wmr.168.1632174312177; Mon, 20 Sep 2021 14:45:12 -0700 (PDT) Sender: =?UTF-8?Q?Philippe_Mathieu=2DDaud=C3=A9?= From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Cc: Richard Henderson , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Subject: [PATCH v5 05/31] sysemu: Introduce AccelOpsClass::has_work() Date: Mon, 20 Sep 2021 23:44:21 +0200 Message-Id: <20210920214447.2998623-6-f4bug@amsat.org> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20210920214447.2998623-1-f4bug@amsat.org> References: <20210920214447.2998623-1-f4bug@amsat.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-ZohoMail-DKIM: pass (identity @gmail.com) X-ZM-MESSAGEID: 1632174314410100001 Introduce an accelerator-specific has_work() handler. Eventually call it from cpu_has_work(). Signed-off-by: Philippe Mathieu-Daud=C3=A9 --- include/sysemu/accel-ops.h | 5 +++++ softmmu/cpus.c | 9 +++++++-- 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/include/sysemu/accel-ops.h b/include/sysemu/accel-ops.h index 032f6979d76..de83f095f20 100644 --- a/include/sysemu/accel-ops.h +++ b/include/sysemu/accel-ops.h @@ -31,6 +31,11 @@ struct AccelOpsClass { void (*create_vcpu_thread)(CPUState *cpu); /* MANDATORY NON-NULL */ void (*kick_vcpu_thread)(CPUState *cpu); =20 + /** + * @has_work: Callback for checking if there is work to do. + */ + bool (*has_work)(CPUState *cpu); + void (*synchronize_post_reset)(CPUState *cpu); void (*synchronize_post_init)(CPUState *cpu); void (*synchronize_state)(CPUState *cpu); diff --git a/softmmu/cpus.c b/softmmu/cpus.c index 7e2cb2c571b..e59046ce39c 100644 --- a/softmmu/cpus.c +++ b/softmmu/cpus.c @@ -255,8 +255,13 @@ bool cpu_has_work(CPUState *cpu) { CPUClass *cc =3D CPU_GET_CLASS(cpu); =20 - g_assert(cc->has_work); - return cc->has_work(cpu); + if (cc->has_work) { + return cc->has_work(cpu); + } + if (cpus_accel->has_work) { + return cpus_accel->has_work(cpu); + } + g_assert_not_reached(); } =20 static int do_vm_stop(RunState state, bool send_stop) --=20 2.31.1