[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Qemu-devel] Re: [PATCH 0/3] Remove ->bdrv_pread() internal block layer

From: Anthony Liguori
Subject: [Qemu-devel] Re: [PATCH 0/3] Remove ->bdrv_pread() internal block layer API (v2)
Date: Thu, 12 Mar 2009 14:57:29 -0500
User-agent: Thunderbird (X11/20090105)

Avi Kivity wrote:
The internal block layer API has a wart in the form of the
->bdrv_pread() and ->bdrv_pwrite() methods.  These duplicate
bdrv_read() and bdrv_write(), and are unnatural for a block
device in that they are not sector oriented.

One of the reasons for their existence is the scsi-generic host support.
That is also a wart, as scsi-generic is really a packet (command/response)
rather than a block (random access to sectors) API.  There is also the
wierd negative sector count == byte count thing.

This patchset addresses these warts by adding a new API for scsi-generic
and dropping ->bdrv_pread() and bdrv_pwrite().  While the improvement
falls short of spectacular, it does make further hacking on the block
layer easier as there are fewer callbacks to worry about.

Applied all.  Thanks.


Anthony Liguori


Changes since v1:
- rebased against trunk
- performance testing: tested 'rm -rf *; tar xjf ../linux-2.6.22.tar.bz2'
  with a vm snapshot.  While there are significant variances among runs
  (15-25sec), likely due to different ext3 allocation decisions and different
  host caching decisions, there seems to be no regression due to this patchset.

Avi Kivity (3):
  Add specialized block driver scsi generic API
  Add internal scsi generic block API
  Drop internal bdrv_pread()/bdrv_pwrite() APIs

 block-raw-posix.c |   50 ++++++++++++++++++++++++--
 block-raw-win32.c |   20 ++++++----
 block.c           |  101 +++++++++++++++--------------------------------------
 block.h           |    8 ++++
 block_int.h       |   14 +++++--
 hw/scsi-generic.c |   39 +++++++++++---------
 6 files changed, 126 insertions(+), 106 deletions(-)

reply via email to

[Prev in Thread] Current Thread [Next in Thread]