From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:45374) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1aODS1-0003UL-Dm for qemu-devel@nongnu.org; Tue, 26 Jan 2016 18:55:10 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1aODS0-0001cZ-4T for qemu-devel@nongnu.org; Tue, 26 Jan 2016 18:55:09 -0500 From: John Snow Date: Tue, 26 Jan 2016 18:54:54 -0500 Message-Id: <1453852499-25800-1-git-send-email-jsnow@redhat.com> Subject: [Qemu-devel] [PATCH v2 0/5] block: reduce reliance on bs->job pointer List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-block@nongnu.org Cc: kwolf@redhat.com, jcody@redhat.com, John Snow , armbru@redhat.com, qemu-devel@nongnu.org This is a small collection of patches to reduce our use of the bs->job pointer where possible. There are still more usages in the code, but this cuts down on a few. The goal is to eventually eliminate all of them and allow multiple block jobs to run concurrently, but design on what that will look like is on-going. In the meantime, eliminate a few obviously needless references to bs->job by allowing more systems to carry pointers to jobs directly instead of trying to fish the pointer out of the BDS all the time. === v2: === Key: [----] : patches are identical [####] : number of functional differences between upstream/downstream patch [down] : patch is downstream-only The flags [FC] indicate (F)unctional and (C)ontextual differences, respectively 001/5:[----] [--] 'block: Allow mirror_start to return job references' 002/5:[----] [--] 'block: Allow stream_start to return job references' 003/5:[----] [--] 'block: allow backup_start to return job references' 004/5:[down] 'block/backup: Pack Notifier within BackupBlockJob' 005/5:[0006] [FC] 'blockjob: add Job parameter to BlockCompletionFunc' 4: Rewritten to pack the notifier within the job, instead of the job within a subclassed notifier. [Paolo] 5: Remove junk assert and extraneous local BDS variable. [Kevin] ________________________________________________________________________________ For convenience, this branch is available at: https://github.com/jnsnow/qemu.git branch block-multijob2 https://github.com/jnsnow/qemu/tree/block-multijob2 This version is tagged block-multijob2-v2: https://github.com/jnsnow/qemu/releases/tag/block-multijob2-v2 John Snow (5): block: Allow mirror_start to return job references block: Allow stream_start to return job references block: allow backup_start to return job references block/backup: Pack Notifier within BackupBlockJob blockjob: add Job parameter to BlockCompletionFunc block/backup.c | 58 +++++++------ block/commit.c | 2 +- block/mirror.c | 74 ++++++++-------- block/stream.c | 10 ++- blockdev.c | 210 +++++++++++++++++++++++++--------------------- blockjob.c | 13 ++- include/block/block.h | 2 + include/block/block_int.h | 27 +++--- include/block/blockjob.h | 6 +- qemu-img.c | 16 ++-- tests/test-blockjob-txn.c | 4 +- 11 files changed, 237 insertions(+), 185 deletions(-) -- 2.4.3