[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH 12/13] migration: Test new fd infrastructure
From: |
Juan Quintela |
Subject: |
[Qemu-devel] [PATCH 12/13] migration: Test new fd infrastructure |
Date: |
Wed, 20 Apr 2016 16:44:40 +0200 |
We just send the address through the alternate channels and test that it
is ok.
Signed-off-by: Juan Quintela <address@hidden>
---
migration/ram.c | 28 ++++++++++++++++++++++++++--
1 file changed, 26 insertions(+), 2 deletions(-)
diff --git a/migration/ram.c b/migration/ram.c
index 5507b1f..b1b69cb 100644
--- a/migration/ram.c
+++ b/migration/ram.c
@@ -421,17 +421,27 @@ QemuCond multifd_send_cond;
static void *multifd_send_thread(void *opaque)
{
MultiFDSendParams *params = opaque;
+ uint8_t *address;
qemu_mutex_lock(¶ms->mutex);
while (!params->quit){
if (params->address) {
+ address = params->address;
params->address = 0;
qemu_mutex_unlock(¶ms->mutex);
+
+ if (write(params->s, &address, sizeof(uint8_t *))
+ != sizeof(uint8_t*)) {
+ /* Shuoudn't ever happen */
+ exit(-1);
+ }
qemu_mutex_lock(&multifd_send_mutex);
params->done = true;
qemu_cond_signal(&multifd_send_cond);
qemu_mutex_unlock(&multifd_send_mutex);
qemu_mutex_lock(¶ms->mutex);
+ } else {
+ qemu_cond_wait(¶ms->cond, ¶ms->mutex);
}
}
qemu_mutex_unlock(¶ms->mutex);
@@ -440,8 +450,6 @@ static void *multifd_send_thread(void *opaque)
}
static void terminate_multifd_send_threads(void)
- } else {
- qemu_cond_wait(¶ms->cond, ¶ms->mutex);
{
int i, thread_count;
@@ -550,12 +558,28 @@ QemuCond multifd_recv_cond;
static void *multifd_recv_thread(void *opaque)
{
MultiFDRecvParams *params = opaque;
+ uint8_t *address;
+ uint8_t *recv_address;
qemu_mutex_lock(¶ms->mutex);
while (!params->quit){
if (params->address) {
+ address = params->address;
params->address = 0;
qemu_mutex_unlock(¶ms->mutex);
+
+ if (read(params->s, &recv_address, sizeof(uint8_t*))
+ != sizeof(uint8_t *)) {
+ /* shouldn't ever happen */
+ exit(-1);
+ }
+
+ if (address != recv_address) {
+ printf("We received %p what we were expecting %p\n",
+ recv_address, address);
+ exit(-1);
+ }
+
qemu_mutex_lock(&multifd_recv_mutex);
params->done = true;
qemu_cond_signal(&multifd_recv_cond);
--
2.5.5
- [Qemu-devel] [PATCH 03/13] migration: [HACK] Don't create decompression threads if not enabled, (continued)
- [Qemu-devel] [PATCH 03/13] migration: [HACK] Don't create decompression threads if not enabled, Juan Quintela, 2016/04/20
- [Qemu-devel] [PATCH 02/13] migration: Pass TCP args in an struct, Juan Quintela, 2016/04/20
- [Qemu-devel] [PATCH 09/13] migration: Create thread infrastructure for multifd send side, Juan Quintela, 2016/04/20
- [Qemu-devel] [PATCH 06/13] migration: create multifd migration threads, Juan Quintela, 2016/04/20
- [Qemu-devel] [PATCH 07/13] migration: Start of multiple fd work, Juan Quintela, 2016/04/20
- [Qemu-devel] [PATCH 04/13] migration: Add multifd capability, Juan Quintela, 2016/04/20
- [Qemu-devel] [PATCH 05/13] migration: Create x-multifd-threads parameter, Juan Quintela, 2016/04/20
- [Qemu-devel] [PATCH 08/13] migration: create ram_multifd_page, Juan Quintela, 2016/04/20
- [Qemu-devel] [PATCH 10/13] migration: Send the fd number which we are going to use for this page, Juan Quintela, 2016/04/20
- [Qemu-devel] [PATCH 12/13] migration: Test new fd infrastructure,
Juan Quintela <=
- [Qemu-devel] [PATCH 13/13] migration: [HACK]Transfer pages over new channels, Juan Quintela, 2016/04/20
- [Qemu-devel] [PATCH 11/13] migration: Create thread infrastructure for multifd recv side, Juan Quintela, 2016/04/20
- Re: [Qemu-devel] [RFC 00/13] Multiple fd migration support, Michael S. Tsirkin, 2016/04/20
- Re: [Qemu-devel] [RFC 00/13] Multiple fd migration support, Dr. David Alan Gilbert, 2016/04/22