[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH v2] block/vdi: Add locking for parallel requests
From: |
Paolo Bonzini |
Subject: |
Re: [Qemu-devel] [PATCH v2] block/vdi: Add locking for parallel requests |
Date: |
Fri, 27 Feb 2015 18:35:04 +0100 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Thunderbird/31.4.0 |
On 27/02/2015 18:25, Stefan Weil wrote:
> block/vdi.c was never written for multi-threaded access, see my comment
> in the header of block/vdi.c:
It is not using threads, only coroutines. Preemption points of
coroutines are well defined, and I think that the bug could be present
even in the initial AIO-based version.
> * The code is not thread safe (missing locks for changes in header and
> * block table, no problem with current QEMU).
>
> This was true in the past, but obviously later multi-threaded access was
> introduced for QEMU. Locking was added for qcow2 and other drivers in
> 2012 and 2013, but never for vdi.
qcow2 already had locking (based on AsyncContexts) before the conversion
to coroutines. Other drivers implicitly had locking because they were
synchronous; locking was added because the conversion to coroutines made
them asynchronous.
vdi never got its locking because it was already asynchronous.
Paolo
- Re: [Qemu-devel] [PATCH v2] block/vdi: Add locking for parallel requests, (continued)
- Re: [Qemu-devel] [PATCH v2] block/vdi: Add locking for parallel requests, Max Reitz, 2015/02/27
- Re: [Qemu-devel] [PATCH v2] block/vdi: Add locking for parallel requests, Stefan Weil, 2015/02/27
- Re: [Qemu-devel] [PATCH v2] block/vdi: Add locking for parallel requests, Stefan Weil, 2015/02/27
- Re: [Qemu-devel] [PATCH v2] block/vdi: Add locking for parallel requests, Max Reitz, 2015/02/27
- Re: [Qemu-devel] [PATCH v2] block/vdi: Add locking for parallel requests, Stefan Weil, 2015/02/27
- Re: [Qemu-devel] [PATCH v2] block/vdi: Add locking for parallel requests, Max Reitz, 2015/02/27
- Re: [Qemu-devel] [PATCH v2] block/vdi: Add locking for parallel requests, Max Reitz, 2015/02/27
- Re: [Qemu-devel] [PATCH v2] block/vdi: Add locking for parallel requests, Stefan Weil, 2015/02/27
- Re: [Qemu-devel] [PATCH v2] block/vdi: Add locking for parallel requests, Max Reitz, 2015/02/27
- Re: [Qemu-devel] [PATCH v2] block/vdi: Add locking for parallel requests, Stefan Weil, 2015/02/27
- Re: [Qemu-devel] [PATCH v2] block/vdi: Add locking for parallel requests,
Paolo Bonzini <=
Re: [Qemu-devel] [PATCH v2] block/vdi: Add locking for parallel requests, Paolo Bonzini, 2015/02/27