>From 44854609c3134ec174593a890dfb1a9340b714f7 Mon Sep 17 00:00:00 2001 From: Laszlo Ersek Date: Thu, 7 Nov 2013 21:19:07 +0100 Subject: [PATCH 1/2] debug messages for memory_region_add_subregion_common() Signed-off-by: Laszlo Ersek --- memory.c | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/memory.c b/memory.c index 28f6449..5e60a6c 100644 --- a/memory.c +++ b/memory.c @@ -1427,6 +1427,10 @@ static void memory_region_add_subregion_common(MemoryRegion *mr, memory_region_ref(subregion); subregion->parent = mr; subregion->addr = offset; + + fprintf(stderr, "adding subregion '%s' to region '%s' at offset %llx\n", + subregion->name, mr->name, (unsigned long long)offset); + QTAILQ_FOREACH(other, &mr->subregions, subregions_link) { if (subregion->may_overlap || other->may_overlap) { continue; @@ -1437,8 +1441,8 @@ static void memory_region_add_subregion_common(MemoryRegion *mr, int128_make64(other->addr))) { continue; } -#if 0 - printf("warning: subregion collision %llx/%llx (%s) " +#if 1 + fprintf(stderr, "warning: subregion collision %llx/%llx (%s) " "vs %llx/%llx (%s)\n", (unsigned long long)offset, (unsigned long long)int128_get64(subregion->size), @@ -1448,12 +1452,21 @@ static void memory_region_add_subregion_common(MemoryRegion *mr, other->name); #endif } + QTAILQ_FOREACH(other, &mr->subregions, subregions_link) { if (subregion->priority >= other->priority) { + fprintf(stderr, "subregion '%s' (prio: %d) wins over sibling " + "subregion '%s' (prio: %d)\n", subregion->name, + subregion->priority, other->name, other->priority); QTAILQ_INSERT_BEFORE(other, subregion, subregions_link); goto done; } + fprintf(stderr, "subregion '%s' (prio: %d) loses to sibling " + "subregion '%s' (prio: %d)\n", subregion->name, + subregion->priority, other->name, other->priority); } + fprintf(stderr, "subregion '%s' (prio: %d) inserted at tail\n", + subregion->name, subregion->priority); QTAILQ_INSERT_TAIL(&mr->subregions, subregion, subregions_link); done: memory_region_update_pending |= mr->enabled && subregion->enabled; -- 1.8.3.1