From nobody Wed Dec 17 05:40:09 2025 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; spf=pass (zoho.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1557505364; cv=none; d=zoho.com; s=zohoarc; b=fU8mUHylyp1RaeB56HSsywKJr5jKM2tVKgjsL06iLERAPIjR6hWP2vb5od6ET1tIGrq1Ykw+sB4UkGN8b0kQKmNhNwo0cQMUJp93UlDrYOt/AEognNkeuek5KMBi++BGjYf0i/O0oY2+xEfMc3G3/SKJPrF86mjWoqVr9dOlJ9I= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zoho.com; s=zohoarc; t=1557505364; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To:ARC-Authentication-Results; bh=Fa3zUl4qGOmz7fly/TjLY0GfEEqoWouXtKD0NY11eNA=; b=O+CYTrE7CQ1k0TyVF/4mR2zAbdFpeMHbCwlnl80zxJk1qNMSLtkWmcISYcgtVRuoJJ7izNkbGCl1QRJtPDvSBzpAZzxIa27WIgzz5wU+JGDdn1a9o7e2mbJ5jb9Tm5SK6qX9I5oOogSwZI9jEpf/oicavmPX2KB+AyP2qgn7odI= ARC-Authentication-Results: i=1; mx.zoho.com; spf=pass (zoho.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1557505364237856.2709417971831; Fri, 10 May 2019 09:22:44 -0700 (PDT) Received: from localhost ([127.0.0.1]:46213 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1hP8I9-0000Tf-7D for importer@patchew.org; Fri, 10 May 2019 12:22:37 -0400 Received: from eggs.gnu.org ([209.51.188.92]:40055) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1hP8CQ-0004Cn-4n for qemu-devel@nongnu.org; Fri, 10 May 2019 12:16:42 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1hP8CP-0008LN-Bs for qemu-devel@nongnu.org; Fri, 10 May 2019 12:16:42 -0400 Received: from mx1.redhat.com ([209.132.183.28]:35824) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1hP8CN-0008IX-AA; Fri, 10 May 2019 12:16:39 -0400 Received: from smtp.corp.redhat.com (int-mx08.intmail.prod.int.phx2.redhat.com [10.5.11.23]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 9A88889AC2; Fri, 10 May 2019 16:16:38 +0000 (UTC) Received: from linux.fritz.box.com (ovpn-116-183.ams2.redhat.com [10.36.116.183]) by smtp.corp.redhat.com (Postfix) with ESMTP id B6E9117791; Fri, 10 May 2019 16:16:37 +0000 (UTC) From: Kevin Wolf To: qemu-block@nongnu.org Date: Fri, 10 May 2019 18:16:04 +0200 Message-Id: <20190510161614.23236-6-kwolf@redhat.com> In-Reply-To: <20190510161614.23236-1-kwolf@redhat.com> References: <20190510161614.23236-1-kwolf@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.84 on 10.5.11.23 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.26]); Fri, 10 May 2019 16:16:38 +0000 (UTC) Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 209.132.183.28 Subject: [Qemu-devel] [PULL 05/15] blockjob: Fix coroutine thread after AioContext change X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: kwolf@redhat.com, qemu-devel@nongnu.org Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" Content-Type: text/plain; charset="utf-8" Commit 463e0be10 ('blockjob: add AioContext attached callback') tried to make block jobs robust against AioContext changes of their main node, but it never made sure that the job coroutine actually runs in the new thread. Instead of waking up the job coroutine in whatever thread it ran before, let's always pass the AioContext where it should be running now. Signed-off-by: Kevin Wolf --- job.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/job.c b/job.c index da8e4b7bf2..2167d53717 100644 --- a/job.c +++ b/job.c @@ -432,7 +432,7 @@ void job_enter_cond(Job *job, bool(*fn)(Job *job)) timer_del(&job->sleep_timer); job->busy =3D true; job_unlock(); - aio_co_wake(job->co); + aio_co_enter(job->aio_context, job->co); } =20 void job_enter(Job *job) --=20 2.20.1