From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:44326) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1YfnH1-0001Ia-2A for qemu-devel@nongnu.org; Wed, 08 Apr 2015 06:31:55 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1YfnGx-0002kj-Sm for qemu-devel@nongnu.org; Wed, 08 Apr 2015 06:31:55 -0400 Date: Wed, 8 Apr 2015 11:31:07 +0100 From: Stefan Hajnoczi Message-ID: <20150408103107.GG28835@stefanha-thinkpad.redhat.com> References: <1428069921-2957-1-git-send-email-famz@redhat.com> <1428069921-2957-2-git-send-email-famz@redhat.com> MIME-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="7lMq7vMTJT4tNk0a" Content-Disposition: inline In-Reply-To: <1428069921-2957-2-git-send-email-famz@redhat.com> Subject: Re: [Qemu-devel] [PATCH v2 1/4] blockjob: Allow nested pause List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Fam Zheng Cc: Kevin Wolf , berto@igalia.com, qemu-block@nongnu.org, Jeff Cody , qemu-devel@nongnu.org, pbonzini@redhat.com --7lMq7vMTJT4tNk0a Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: quoted-printable On Fri, Apr 03, 2015 at 10:05:18PM +0800, Fam Zheng wrote: > This patch changes block_job_pause to increase the pause counter and > block_job_resume to decrease it. >=20 > The counter will allow calling block_job_pause/block_job_resume > unconditionally on a job when we need to suspend the IO temporarily. >=20 > From now on, each block_job_resume must be paired with a block_job_pause > to keep the counter balanced. >=20 > The user pause from QMP or HMP will only trigger block_job_pause once > until it's resumed, this is achieved by adding a user_paused flag in > BlockJob. >=20 > One occurrence of block_job_resume in mirror_complete is replaced with > block_job_enter which does what is necessary. >=20 > In block_job_cancel, the cancel flag is good enough to instruct > coroutines to quit loop, so use block_job_enter to replace the unpaired > block_job_resume. >=20 > Upon block job IO error, user is notified about the entering to the > pause state, so this pause belongs to user pause, set the flag > accordingly and expect a matching QMP resume. >=20 > Signed-off-by: Fam Zheng > --- > block/mirror.c | 2 +- > blockdev.c | 8 +++++--- > blockjob.c | 23 +++++++++++++++++------ > include/block/blockjob.h | 20 ++++++++++++++++---- > 4 files changed, 39 insertions(+), 14 deletions(-) Reviewed-by: Stefan Hajnoczi --7lMq7vMTJT4tNk0a Content-Type: application/pgp-signature -----BEGIN PGP SIGNATURE----- Version: GnuPG v1 iQEcBAEBAgAGBQJVJQNrAAoJEJykq7OBq3PIE8AH/2v2xyvqYvLimbRLLTN6iwyz uZLQriwChJlS7YMX5PNhpmCrbXOph10mUIgHF3s+PqqyRhTEZqM0/xVNcGxtpLGw o4y+R5r+NSxbpdqZwVssITeGJfb3FALskMmBo4fB9vmVvZMxBnSxcLJqUoSL8DaJ SbENwftkTJhqUIcYoJzp1v3fAVHoZFBWEZA+Z3Ka3g9MY9uqdOquYmiTU8m4yHm6 s3BK4c0wH4hMix5c6rWbq6EgDaN46BaPYDsrmlvYgXlALXdYzYZIDS2nAAA1wHTP S2WCj2MSEhFfb3hzvNPcPyomveLAokw7iq0flY376C8wcv5umZtBSbrzN1Ziprg= =RAtF -----END PGP SIGNATURE----- --7lMq7vMTJT4tNk0a--