qemu-devel
[Top][All Lists]
Advanced

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

Re: [Qemu-devel] KVM Forum 2012 Block BoF minutes


From: Marcelo Tosatti
Subject: Re: [Qemu-devel] KVM Forum 2012 Block BoF minutes
Date: Sun, 18 Nov 2012 03:04:05 -0200
User-agent: Mutt/1.5.21 (2010-09-15)

On Thu, Nov 15, 2012 at 02:31:53PM +0100, Markus Armbruster wrote:
> Attendees:
> 
> Kevin Wolf <address@hidden>
> Stefan Hajnoczi <address@hidden>
> Jeff Cody <address@hidden>
> Markus Armbruster <address@hidden>
> 
> and a few people dropping in and out.
> 
> Minutes are basically a TODO list.  Could be a bit terse in places; if
> anything's unclear, please ask.
> 
> 
> Block layer data structure cleanup:
> 
> - Split block backend off BlockDriverState
> 
> - Turn block backend into a proper ADT (besides other good things, this
>   makes it possible to replace its implementation by a test harness for
>   unit testing of its customers)
> 
> - Get rid of BlockDriverState opaque (driver private state), inherit the
>   common part into driver state
> 
> Convert open to QemuOpts (or perhaps QDict?)
> 
> Avoid double open for probing (update: patches posted)
> 
> Block jobs:
> 
> - Rate limiting is broken in general (it works for the single
>   BlockDriverState case)
> 
> - Block jobs should be jobs: generally available instead of tied to a
>   (single) BlockDriverState; get rid of the block job pointer in
>   BlockDriverState
> 
> - Migration should probably be a job
> 
> Block migration needs to die after its replacement is ready
> 
> BlockDriverState member in_use and DriveInfo member refcount are a mess:
> 
> - in_use is used to avoid running certain things concurrently, but the
>   rules are unclear, except they're clearly incomplete; possible rules
>   could be about need for consistent views of image contents

    block: enable in_use flag

    Set block device in use during block migration, disallow drive_del and
    bdrv_truncate for in use devices.

1) drive_del is not allowed because memory object used by block
streaming/migration can disappear.
2) bdrv_truncate changes device size, which the block migration code was
unable to handle at the time.

These are the rules (accordingly to the changeset). IIRC new rules have
been added (new uses for bdrv_in_use).

"Consistent views of image contents" is not defined.

Question: why are the rules "clearly incomplete" ?

> - refcount is only used together with in_use, and appears to be for
>   avoiding premature deletion

Refcount is used to stop block auto deletion when device is unplugged
by the guest. If you can reach BlockDriverState and use its in_use
flag, then you can kill refcount.




reply via email to

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