[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-block] [PATCH 00/54] New op blocker system, part 1
From: |
Kevin Wolf |
Subject: |
Re: [Qemu-block] [PATCH 00/54] New op blocker system, part 1 |
Date: |
Fri, 24 Feb 2017 15:25:05 +0100 |
User-agent: |
Mutt/1.5.21 (2010-09-15) |
Am 21.02.2017 um 15:57 hat Kevin Wolf geschrieben:
> This series is the first part of implementing the new op blocker system
> whose design was agreed on quite a while ago, but proved a bit tricky to
> implement in places. There is more work to do to fully replace the old op
> blocker system, but realistically we don't have that much time until the 2.9
> freeze. So let's merge this series to complement the traditional op blockers
> and plan with a second part for the 2.10 timeframe.
>
> The basic idea is that every user of a block node (including things outside
> the
> block layer that go through a BlockBackend, and also other block nodes that
> hold references to it) has to declare which low-level operations/permissions
> it
> needs and which operation it allows other users to perform on the same node.
> Depending on these declarations, conflicts are avoided by returning an error
> for attempts to attach a conflicting user to the same node.
>
> After this series, all users request permissions, and hopefully all of the
> permissions they need. For writes and resize, getting the permission first is
> actually enforced with assertions. Asserting it for consistent reads is in
> theory doable, but would mean introducing a request flag that tell us that
> inconsistent reads are okay - and that in all block drivers to recursively
> propagate this flag through the backing chain. It might not be worth it.
>
> As stated above, the series doesn't remove the old op blockers yet, though in
> theory the new op blockers should block everything that needs to be blocked.
> In practice, the read/write/resize blockers should be okay, but
> BLK_PERM_GRAPH_MOD isn't to be taken too seriously at the moment. It isn't
> really applied consistently and doesn't do much useful yet. Making proper use
> of it is left for the part 2 series.
In order to keep the pull request next week at least a bit smaller, I
applied the already reviewed patches 1-11 to the block branch (i.e.
the preparations before the actual op blocker patches start).
Kevin
- Re: [Qemu-block] [PATCH 49/54] tests: Remove FIXME comments, (continued)
- [Qemu-block] [PATCH 50/54] block: Pass BdrvChild to bdrv_aligned_preadv/pwritev, Kevin Wolf, 2017/02/21
- [Qemu-block] [PATCH 52/54] block: Assertions for resize permission, Kevin Wolf, 2017/02/21
- [Qemu-block] [PATCH 54/54] block: Add Error parameter to bdrv_append(), Kevin Wolf, 2017/02/21
- [Qemu-block] [PATCH 53/54] block: Add Error parameter to bdrv_set_backing_hd(), Kevin Wolf, 2017/02/21
- Re: [Qemu-block] [Qemu-devel] [PATCH 00/54] New op blocker system, part 1, no-reply, 2017/02/21
- Re: [Qemu-block] [PATCH 00/54] New op blocker system, part 1,
Kevin Wolf <=