[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-block] [Qemu-devel] Meeting notes on -blockdev, dynamic backen
From: |
Fam Zheng |
Subject: |
Re: [Qemu-block] [Qemu-devel] Meeting notes on -blockdev, dynamic backend reconfiguration |
Date: |
Wed, 7 Dec 2016 10:55:34 +0800 |
User-agent: |
Mutt/1.7.1 (2016-10-04) |
On Mon, 12/05 13:03, Markus Armbruster wrote:
> == Basic dynamic reconfiguration operation ==
>
> The basic operation is "replace child".
>
> Beware of race conditions. Consider:
>
> BB
> |
> mirror-filter
> |
> BDS
>
> Add a throttle filter under BB while the mirror job is running. First
> step, create the filter:
>
> BB throttle-filter
> | /
> mirror-filter
> |
> BDS
>
> Second step, replace child of BB by the new filter:
>
> BB
> |
> throttle-filter
> |
> mirror-filter
> |
> BDS
>
> But: if mirror-filter goes away between the two steps, the replace
> brings it right back!
>
> To guard against such races, we need to specify both ends of the edge
> being replaced, i.e. parent, child name, actual child. Then the replace
> step fails if the mirror-filter has gone away. We can either fail the
> whole operation, or start over.
>
> Alternatively, transactions, but that feels much more complex.
>
Isn't it easy to make creating throttle-filter and replacing child happen in the
same critical section of BQL, without any coroutine yield? If so I think there
is no race to worry about, mirror-filter should go away only after a QMP
command.
Fam
- [Qemu-block] Meeting notes on -blockdev, dynamic backend reconfiguration, Markus Armbruster, 2016/12/05
- Re: [Qemu-block] Meeting notes on -blockdev, dynamic backend reconfiguration, Stefan Hajnoczi, 2016/12/06
- Re: [Qemu-block] [Qemu-devel] Meeting notes on -blockdev, dynamic backend reconfiguration,
Fam Zheng <=
- Re: [Qemu-block] [Qemu-devel] Meeting notes on -blockdev, dynamic backend reconfiguration, Kevin Wolf, 2016/12/07
- Re: [Qemu-block] [Qemu-devel] Meeting notes on -blockdev, dynamic backend reconfiguration, Fam Zheng, 2016/12/07
- Re: [Qemu-block] [Qemu-devel] Meeting notes on -blockdev, dynamic backend reconfiguration, Markus Armbruster, 2016/12/08
- Re: [Qemu-block] [Qemu-devel] Meeting notes on -blockdev, dynamic backend reconfiguration, Fam Zheng, 2016/12/08
- Re: [Qemu-block] [Qemu-devel] Meeting notes on -blockdev, dynamic backend reconfiguration, Markus Armbruster, 2016/12/12
- Re: [Qemu-block] [Qemu-devel] Meeting notes on -blockdev, dynamic backend reconfiguration, Fam Zheng, 2016/12/12
- Re: [Qemu-block] [Qemu-devel] Meeting notes on -blockdev, dynamic backend reconfiguration, Markus Armbruster, 2016/12/12
- Re: [Qemu-block] [Qemu-devel] Meeting notes on -blockdev, dynamic backend reconfiguration, Fam Zheng, 2016/12/13