[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH 17/41] block-migration: document usage of state acro
From: |
Paolo Bonzini |
Subject: |
[Qemu-devel] [PATCH 17/41] block-migration: document usage of state across threads |
Date: |
Fri, 15 Feb 2013 18:46:49 +0100 |
Signed-off-by: Paolo Bonzini <address@hidden>
---
block-migration.c | 23 ++++++++++++++++++-----
1 files changed, 18 insertions(+), 5 deletions(-)
diff --git a/block-migration.c b/block-migration.c
index fe3c040..21842b2 100644
--- a/block-migration.c
+++ b/block-migration.c
@@ -43,18 +43,24 @@
#endif
typedef struct BlkMigDevState {
+ /* Written during setup phase. Can be read without a lock. */
BlockDriverState *bs;
- int bulk_completed;
int shared_base;
- int64_t cur_sector;
- int64_t cur_dirty;
- int64_t completed_sectors;
int64_t total_sectors;
QSIMPLEQ_ENTRY(BlkMigDevState) entry;
+
+ /* Only used by migration thread. Does not need a lock. */
+ int bulk_completed;
+ int64_t cur_sector;
+ int64_t cur_dirty;
+
+ /* Protected by iothread lock. */
unsigned long *aio_bitmap;
+ int64_t completed_sectors;
} BlkMigDevState;
typedef struct BlkMigBlock {
+ /* Only used by migration thread. */
uint8_t *buf;
BlkMigDevState *bmds;
int64_t sector;
@@ -62,19 +68,26 @@ typedef struct BlkMigBlock {
struct iovec iov;
QEMUIOVector qiov;
BlockDriverAIOCB *aiocb;
+
+ /* Protected by iothread lock. */
int ret;
QSIMPLEQ_ENTRY(BlkMigBlock) entry;
} BlkMigBlock;
typedef struct BlkMigState {
+ /* Written during setup phase. Can be read without a lock. */
int blk_enable;
int shared_base;
QSIMPLEQ_HEAD(bmds_list, BlkMigDevState) bmds_list;
+ int64_t total_sector_sum;
+
+ /* Protected by iothread lock. */
QSIMPLEQ_HEAD(blk_list, BlkMigBlock) blk_list;
int submitted;
int read_done;
+
+ /* Only used by migration thread. Does not need a lock. */
int transferred;
- int64_t total_sector_sum;
int prev_progress;
int bulk_completed;
} BlkMigState;
--
1.7.1
- Re: [Qemu-devel] [PATCH 36/41] migration: use qemu_ftell to compute bandwidth, (continued)
- [Qemu-devel] [PATCH 38/41] migration: move rate limiting to QEMUFile, Paolo Bonzini, 2013/02/15
- [Qemu-devel] [PATCH 41/41] migration: inline migrate_fd_close, Paolo Bonzini, 2013/02/15
- [Qemu-devel] [PATCH 40/41] migration: eliminate s->migration_file, Paolo Bonzini, 2013/02/15
- [Qemu-devel] [PATCH 17/41] block-migration: document usage of state across threads,
Paolo Bonzini <=
- [Qemu-devel] [PATCH 13/41] migration: prepare to access s->state outside critical sections, Paolo Bonzini, 2013/02/15
- [Qemu-devel] [PATCH 16/41] block-migration: small preparatory changes for locking, Paolo Bonzini, 2013/02/15