[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH 00/23] Split BlockBackend off BDS with an axe
From: |
Markus Armbruster |
Subject: |
[Qemu-devel] [PATCH 00/23] Split BlockBackend off BDS with an axe |
Date: |
Wed, 10 Sep 2014 10:13:29 +0200 |
My last attempt got bogged down because I tried to do a reasonably
complete job, and the complexity proved more than I could handle with
the limited amount of uninterrupted time available. This time, I'm
cutting BlockBackend off with an axe, leaving most of the work for
later.
Done in this series already:
* Introduce a BlockBackend type, and lift up BlockDriverState's
device_name, device_list, dev, dev_ops, dev_opaque. Much more
remains to be lifted.
* Make BlockBackend own the DriveInfo.
* Wean hw/ off BlockDriverState, with two small exceptions.
* Fix blockdev-add not to create a bogus IDE drive (0,0).
* Take a few baby steps towards use of BlockBackend in monitor command
code where appropriate.
Coming soon, hopefully:
* QMP command blockdev-del
* blockdev-add accepts node-name without id at top level
* Lift up more stuff
* More monitor command code BlockBackend use
Depends on my [PATCH 0/4] Block-related miscellaneous cleanups.
I know the diffstat looks intimidating. I tried very hard to split
the patches so that the bigger ones do just one simple thing, and
mostly mechanically.
Markus Armbruster (23):
block: Split bdrv_new_named() off bdrv_new()
block: New BlockBackend
block: Connect BlockBackend to BlockDriverState
block: Connect BlockBackend and DriveInfo
block: Make BlockBackend own its BlockDriverState
block: Eliminate bdrv_states, use block_next() instead
block: Eliminate bdrv_iterate(), use bdrv_next()
block: Eliminate BlockDriverState member device_name[]
block: Merge BlockBackend and BlockDriverState name spaces
block: Eliminate DriveInfo member bdrv, use blk_by_legacy_dinfo()
block: Rename BlockDriverAIOCB* to BlockAIOCB*
virtio-blk: Drop redundant VirtIOBlock member conf
virtio-blk: Rename VirtIOBlkConf variables to conf
hw: Convert from BlockDriverState to BlockBackend, mostly
ide: Complete conversion from BlockDriverState to BlockBackend
pc87312: Drop unused members of PC87312State
blockdev: Drop superfluous DriveInfo member id
blockdev: Fix blockdev-add not to create IDE drive (0,0)
blockdev: Drop DriveInfo member enable_auto_del
block/qapi: Convert qmp_query_block() to BlockBackend
blockdev: Convert qmp_eject(), qmp_change_blockdev() to BlockBackend
block: Lift device model API into BlockBackend
block: Make device model's references to BlockBackend strong
block-migration.c | 44 +--
block.c | 389 +++++++-------------
block/Makefile.objs | 2 +-
block/archipelago.c | 30 +-
block/backup.c | 2 +-
block/blkdebug.c | 22 +-
block/blkverify.c | 20 +-
block/block-backend.c | 588 +++++++++++++++++++++++++++++++
block/commit.c | 2 +-
block/cow.c | 2 +-
block/curl.c | 8 +-
block/iscsi.c | 10 +-
block/linux-aio.c | 8 +-
block/mirror.c | 9 +-
block/qapi.c | 27 +-
block/qcow.c | 4 +-
block/qcow2.c | 4 +-
block/qed-gencb.c | 4 +-
block/qed-table.c | 10 +-
block/qed.c | 48 +--
block/qed.h | 12 +-
block/quorum.c | 42 +--
block/raw-aio.h | 8 +-
block/raw-posix.c | 32 +-
block/raw-win32.c | 16 +-
block/raw_bsd.c | 8 +-
block/rbd.c | 58 +--
block/sheepdog.c | 4 +-
block/stream.c | 2 +-
block/vdi.c | 2 +-
block/vhdx.c | 2 +-
block/vmdk.c | 4 +-
block/vpc.c | 2 +-
block/vvfat.c | 4 +-
block/win32-aio.c | 8 +-
blockdev.c | 204 +++++------
blockjob.c | 7 +-
dma-helpers.c | 69 ++--
hw/arm/collie.c | 10 +-
hw/arm/gumstix.c | 6 +-
hw/arm/highbank.c | 2 +-
hw/arm/mainstone.c | 8 +-
hw/arm/musicpal.c | 13 +-
hw/arm/nseries.c | 7 +-
hw/arm/omap1.c | 4 +-
hw/arm/omap2.c | 4 +-
hw/arm/omap_sx1.c | 10 +-
hw/arm/pxa2xx.c | 7 +-
hw/arm/realview.c | 2 +-
hw/arm/spitz.c | 6 +-
hw/arm/tosa.c | 3 +-
hw/arm/versatilepb.c | 5 +-
hw/arm/vexpress.c | 5 +-
hw/arm/xilinx_zynq.c | 5 +-
hw/arm/z2.c | 8 +-
hw/block/block.c | 23 +-
hw/block/dataplane/virtio-blk.c | 35 +-
hw/block/dataplane/virtio-blk.h | 2 +-
hw/block/fdc.c | 74 ++--
hw/block/hd-geometry.c | 24 +-
hw/block/m25p80.c | 31 +-
hw/block/nand.c | 50 +--
hw/block/nvme.c | 17 +-
hw/block/nvme.h | 2 +-
hw/block/onenand.c | 67 ++--
hw/block/pflash_cfi01.c | 24 +-
hw/block/pflash_cfi02.c | 24 +-
hw/block/virtio-blk.c | 149 ++++----
hw/block/xen_disk.c | 86 +++--
hw/core/qdev-properties-system.c | 26 +-
hw/core/qdev-properties.c | 2 +-
hw/cris/axis_dev88.c | 4 +-
hw/display/tc6393xb.c | 4 +-
hw/i386/pc.c | 2 +-
hw/i386/pc_piix.c | 2 +-
hw/i386/pc_sysfw.c | 10 +-
hw/i386/xen/xen_platform.c | 5 +-
hw/ide/ahci.c | 33 +-
hw/ide/ahci.h | 2 +-
hw/ide/atapi.c | 33 +-
hw/ide/cmd646.c | 2 +-
hw/ide/core.c | 206 ++++++-----
hw/ide/ich.c | 2 +-
hw/ide/internal.h | 16 +-
hw/ide/isa.c | 2 +-
hw/ide/macio.c | 54 +--
hw/ide/microdrive.c | 4 +-
hw/ide/mmio.c | 2 +-
hw/ide/pci.c | 6 +-
hw/ide/pci.h | 2 +-
hw/ide/piix.c | 9 +-
hw/ide/qdev.c | 13 +-
hw/ide/via.c | 2 +-
hw/isa/pc87312.c | 7 +-
hw/lm32/lm32_boards.c | 14 +-
hw/lm32/milkymist.c | 8 +-
hw/microblaze/petalogix_ml605_mmu.c | 6 +-
hw/microblaze/petalogix_s3adsp1800_mmu.c | 6 +-
hw/mips/mips_fulong2e.c | 2 +-
hw/mips/mips_jazz.c | 2 +-
hw/mips/mips_malta.c | 8 +-
hw/mips/mips_r4k.c | 6 +-
hw/nvram/spapr_nvram.c | 17 +-
hw/pci/pci-hotplug-old.c | 10 +-
hw/ppc/mac.h | 2 +-
hw/ppc/mac_newworld.c | 2 +-
hw/ppc/mac_oldworld.c | 2 +-
hw/ppc/ppc405_boards.c | 27 +-
hw/ppc/prep.c | 2 +-
hw/ppc/spapr.c | 4 +-
hw/ppc/virtex_ml507.c | 6 +-
hw/s390x/s390-virtio-bus.c | 2 +-
hw/s390x/s390-virtio.c | 2 +-
hw/s390x/virtio-ccw.c | 2 +-
hw/scsi/megasas.c | 15 +-
hw/scsi/scsi-bus.c | 11 +-
hw/scsi/scsi-disk.c | 194 +++++-----
hw/scsi/scsi-generic.c | 41 ++-
hw/sd/milkymist-memcard.c | 7 +-
hw/sd/omap_mmc.c | 8 +-
hw/sd/pl181.c | 3 +-
hw/sd/pxa2xx_mmci.c | 4 +-
hw/sd/sd.c | 60 ++--
hw/sd/sdhci.c | 3 +-
hw/sd/ssi-sd.c | 3 +-
hw/sh4/r2d.c | 6 +-
hw/sparc/sun4m.c | 2 +-
hw/sparc64/sun4u.c | 2 +-
hw/tpm/tpm_tis.c | 2 +-
hw/tricore/tricore_testboard.c | 2 +-
hw/usb/dev-storage.c | 19 +-
hw/virtio/virtio-pci.c | 2 +-
hw/xen/xen_devconfig.c | 1 +
hw/xenpv/xen_machine_pv.c | 2 +-
hw/xtensa/xtfpga.c | 5 +-
include/block/aio.h | 12 +-
include/block/block.h | 87 ++---
include/block/block_int.h | 46 +--
include/block/blockjob.h | 4 +-
include/block/qapi.h | 3 -
include/block/thread-pool.h | 4 +-
include/hw/arm/omap.h | 4 +-
include/hw/arm/pxa.h | 2 +-
include/hw/block/block.h | 6 +-
include/hw/block/flash.h | 6 +-
include/hw/isa/pc87312.h | 3 -
include/hw/qdev-properties.h | 8 +-
include/hw/scsi/scsi.h | 6 +-
include/hw/sd.h | 2 +-
include/hw/virtio/virtio-blk.h | 9 +-
include/monitor/monitor.h | 4 +-
include/qemu/typedefs.h | 2 +
include/sysemu/block-backend.h | 144 ++++++++
include/sysemu/blockdev.h | 12 +-
include/sysemu/dma.h | 26 +-
monitor.c | 39 +-
qemu-img.c | 150 ++++----
qemu-io.c | 15 +-
qemu-nbd.c | 4 +-
tests/test-thread-pool.c | 2 +-
thread-pool.c | 8 +-
trace-events | 8 +-
162 files changed, 2317 insertions(+), 1701 deletions(-)
create mode 100644 block/block-backend.c
create mode 100644 include/sysemu/block-backend.h
--
1.9.3
- [Qemu-devel] [PATCH 00/23] Split BlockBackend off BDS with an axe,
Markus Armbruster <=
- [Qemu-devel] [PATCH 03/23] block: Connect BlockBackend to BlockDriverState, Markus Armbruster, 2014/09/10
- [Qemu-devel] [PATCH 09/23] block: Merge BlockBackend and BlockDriverState name spaces, Markus Armbruster, 2014/09/10
- [Qemu-devel] [PATCH 06/23] block: Eliminate bdrv_states, use block_next() instead, Markus Armbruster, 2014/09/10
- [Qemu-devel] [PATCH 07/23] block: Eliminate bdrv_iterate(), use bdrv_next(), Markus Armbruster, 2014/09/10