The instance_id field is uint32_t in the migration code, however the script currently handles it as a signed integer:
$ ./scripts/analyze-migration.py -f mig Traceback (most recent call last): File "./scripts/analyze-migration.py", line 605, in <module> dump.read(dump_memory = args.memory) File "./scripts/analyze-migration.py", line 539, in read classdesc = self.section_classes[section_key] KeyError: ('spapr_iommu', -2147483648) Signed-off-by: Fabiano Rosas <faro...@linux.ibm.com> --- scripts/analyze-migration.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/scripts/analyze-migration.py b/scripts/analyze-migration.py index b82a1b0c58..713f645eea 100755 --- a/scripts/analyze-migration.py +++ b/scripts/analyze-migration.py @@ -40,8 +40,8 @@ def __init__(self, filename): def read64(self): return int.from_bytes(self.file.read(8), byteorder='big', signed=True) - def read32(self): - return int.from_bytes(self.file.read(4), byteorder='big', signed=True) + def read32(self, signed=True): + return int.from_bytes(self.file.read(4), byteorder='big', signed=signed) def read16(self): return int.from_bytes(self.file.read(2), byteorder='big', signed=True) @@ -533,7 +533,7 @@ def read(self, desc_only = False, dump_memory = False, write_memory = False): elif section_type == self.QEMU_VM_SECTION_START or section_type == self.QEMU_VM_SECTION_FULL: section_id = file.read32() name = file.readstr() - instance_id = file.read32() + instance_id = file.read32(signed=False) version_id = file.read32() section_key = (name, instance_id) classdesc = self.section_classes[section_key] -- 2.34.1