Since commit 3a38429748 ("Add a "no HPT" encoding to HTAB migration stream")
the HTAB migration stream contains a header set to "-1", meaning there
is no HPT. Teach analyze-migration.py to ignore the section in this case.
Without this fix, the script fails with a dump from a POWER9 guest:
Traceback (most recent call last):
File "./qemu/scripts/analyze-migration.py", line 602, in <module>
dump.read(dump_memory = args.memory)
File "./qemu/scripts/analyze-migration.py", line 539, in read
section.read()
File "./qemu/scripts/analyze-migration.py", line 250, in read
self.file.readvar(n_valid * self.HASH_PTE_SIZE_64)
File "./qemu/scripts/analyze-migration.py", line 64, in readvar
raise Exception("Unexpected end of %s at 0x%x" % (self.filename, self.file.tell()))
Exception: Unexpected end of migrate.dump at 0x1d4763ba
Fixes: 3a38429748 ("Add a "no HPT" encoding to HTAB migration stream")
Signed-off-by: Laurent Vivier <lvivier@redhat.com>
---
scripts/analyze-migration.py | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/scripts/analyze-migration.py b/scripts/analyze-migration.py
index 14553876a2..88ff4adb30 100755
--- a/scripts/analyze-migration.py
+++ b/scripts/analyze-migration.py
@@ -234,6 +234,10 @@ class HTABSection(object):
header = self.file.read32()
+ if (header == -1):
+ # "no HPT" encoding
+ return
+
if (header > 0):
# First section, just the hash shift
return
--
2.14.3
* Laurent Vivier (lvivier@redhat.com) wrote:
> Since commit 3a38429748 ("Add a "no HPT" encoding to HTAB migration stream")
> the HTAB migration stream contains a header set to "-1", meaning there
> is no HPT. Teach analyze-migration.py to ignore the section in this case.
>
> Without this fix, the script fails with a dump from a POWER9 guest:
>
> Traceback (most recent call last):
> File "./qemu/scripts/analyze-migration.py", line 602, in <module>
> dump.read(dump_memory = args.memory)
> File "./qemu/scripts/analyze-migration.py", line 539, in read
> section.read()
> File "./qemu/scripts/analyze-migration.py", line 250, in read
> self.file.readvar(n_valid * self.HASH_PTE_SIZE_64)
> File "./qemu/scripts/analyze-migration.py", line 64, in readvar
> raise Exception("Unexpected end of %s at 0x%x" % (self.filename, self.file.tell()))
> Exception: Unexpected end of migrate.dump at 0x1d4763ba
>
> Fixes: 3a38429748 ("Add a "no HPT" encoding to HTAB migration stream")
> Signed-off-by: Laurent Vivier <lvivier@redhat.com>
Reviewed-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
> ---
> scripts/analyze-migration.py | 4 ++++
> 1 file changed, 4 insertions(+)
>
> diff --git a/scripts/analyze-migration.py b/scripts/analyze-migration.py
> index 14553876a2..88ff4adb30 100755
> --- a/scripts/analyze-migration.py
> +++ b/scripts/analyze-migration.py
> @@ -234,6 +234,10 @@ class HTABSection(object):
>
> header = self.file.read32()
>
> + if (header == -1):
> + # "no HPT" encoding
> + return
> +
> if (header > 0):
> # First section, just the hash shift
> return
> --
> 2.14.3
>
--
Dr. David Alan Gilbert / dgilbert@redhat.com / Manchester, UK
On Tue, Dec 05, 2017 at 12:44:40PM +0000, Dr. David Alan Gilbert wrote:
> * Laurent Vivier (lvivier@redhat.com) wrote:
> > Since commit 3a38429748 ("Add a "no HPT" encoding to HTAB migration stream")
> > the HTAB migration stream contains a header set to "-1", meaning there
> > is no HPT. Teach analyze-migration.py to ignore the section in this case.
> >
> > Without this fix, the script fails with a dump from a POWER9 guest:
> >
> > Traceback (most recent call last):
> > File "./qemu/scripts/analyze-migration.py", line 602, in <module>
> > dump.read(dump_memory = args.memory)
> > File "./qemu/scripts/analyze-migration.py", line 539, in read
> > section.read()
> > File "./qemu/scripts/analyze-migration.py", line 250, in read
> > self.file.readvar(n_valid * self.HASH_PTE_SIZE_64)
> > File "./qemu/scripts/analyze-migration.py", line 64, in readvar
> > raise Exception("Unexpected end of %s at 0x%x" % (self.filename, self.file.tell()))
> > Exception: Unexpected end of migrate.dump at 0x1d4763ba
> >
> > Fixes: 3a38429748 ("Add a "no HPT" encoding to HTAB migration stream")
> > Signed-off-by: Laurent Vivier <lvivier@redhat.com>
>
> Reviewed-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
Should I queue this (for 2.12), or do you want to take it via the
migration tree?
>
> > ---
> > scripts/analyze-migration.py | 4 ++++
> > 1 file changed, 4 insertions(+)
> >
> > diff --git a/scripts/analyze-migration.py b/scripts/analyze-migration.py
> > index 14553876a2..88ff4adb30 100755
> > --- a/scripts/analyze-migration.py
> > +++ b/scripts/analyze-migration.py
> > @@ -234,6 +234,10 @@ class HTABSection(object):
> >
> > header = self.file.read32()
> >
> > + if (header == -1):
> > + # "no HPT" encoding
> > + return
> > +
> > if (header > 0):
> > # First section, just the hash shift
> > return
--
David Gibson | I'll have my music baroque, and my code
david AT gibson.dropbear.id.au | minimalist, thank you. NOT _the_ _other_
| _way_ _around_!
http://www.ozlabs.org/~dgibson
* David Gibson (david@gibson.dropbear.id.au) wrote:
> On Tue, Dec 05, 2017 at 12:44:40PM +0000, Dr. David Alan Gilbert wrote:
> > * Laurent Vivier (lvivier@redhat.com) wrote:
> > > Since commit 3a38429748 ("Add a "no HPT" encoding to HTAB migration stream")
> > > the HTAB migration stream contains a header set to "-1", meaning there
> > > is no HPT. Teach analyze-migration.py to ignore the section in this case.
> > >
> > > Without this fix, the script fails with a dump from a POWER9 guest:
> > >
> > > Traceback (most recent call last):
> > > File "./qemu/scripts/analyze-migration.py", line 602, in <module>
> > > dump.read(dump_memory = args.memory)
> > > File "./qemu/scripts/analyze-migration.py", line 539, in read
> > > section.read()
> > > File "./qemu/scripts/analyze-migration.py", line 250, in read
> > > self.file.readvar(n_valid * self.HASH_PTE_SIZE_64)
> > > File "./qemu/scripts/analyze-migration.py", line 64, in readvar
> > > raise Exception("Unexpected end of %s at 0x%x" % (self.filename, self.file.tell()))
> > > Exception: Unexpected end of migrate.dump at 0x1d4763ba
> > >
> > > Fixes: 3a38429748 ("Add a "no HPT" encoding to HTAB migration stream")
> > > Signed-off-by: Laurent Vivier <lvivier@redhat.com>
> >
> > Reviewed-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
>
> Should I queue this (for 2.12), or do you want to take it via the
> migration tree?
We can take it via migration.
Dave
> >
> > > ---
> > > scripts/analyze-migration.py | 4 ++++
> > > 1 file changed, 4 insertions(+)
> > >
> > > diff --git a/scripts/analyze-migration.py b/scripts/analyze-migration.py
> > > index 14553876a2..88ff4adb30 100755
> > > --- a/scripts/analyze-migration.py
> > > +++ b/scripts/analyze-migration.py
> > > @@ -234,6 +234,10 @@ class HTABSection(object):
> > >
> > > header = self.file.read32()
> > >
> > > + if (header == -1):
> > > + # "no HPT" encoding
> > > + return
> > > +
> > > if (header > 0):
> > > # First section, just the hash shift
> > > return
>
> --
> David Gibson | I'll have my music baroque, and my code
> david AT gibson.dropbear.id.au | minimalist, thank you. NOT _the_ _other_
> | _way_ _around_!
> http://www.ozlabs.org/~dgibson
--
Dr. David Alan Gilbert / dgilbert@redhat.com / Manchester, UK
On Tue, 5 Dec 2017 13:27:40 +0100
Laurent Vivier <lvivier@redhat.com> wrote:
> Since commit 3a38429748 ("Add a "no HPT" encoding to HTAB migration stream")
> the HTAB migration stream contains a header set to "-1", meaning there
> is no HPT. Teach analyze-migration.py to ignore the section in this case.
>
> Without this fix, the script fails with a dump from a POWER9 guest:
>
> Traceback (most recent call last):
> File "./qemu/scripts/analyze-migration.py", line 602, in <module>
> dump.read(dump_memory = args.memory)
> File "./qemu/scripts/analyze-migration.py", line 539, in read
> section.read()
> File "./qemu/scripts/analyze-migration.py", line 250, in read
> self.file.readvar(n_valid * self.HASH_PTE_SIZE_64)
> File "./qemu/scripts/analyze-migration.py", line 64, in readvar
> raise Exception("Unexpected end of %s at 0x%x" % (self.filename, self.file.tell()))
> Exception: Unexpected end of migrate.dump at 0x1d4763ba
>
> Fixes: 3a38429748 ("Add a "no HPT" encoding to HTAB migration stream")
> Signed-off-by: Laurent Vivier <lvivier@redhat.com>
> ---
Reviewed-by: Greg Kurz <groug@kaod.org>
> scripts/analyze-migration.py | 4 ++++
> 1 file changed, 4 insertions(+)
>
> diff --git a/scripts/analyze-migration.py b/scripts/analyze-migration.py
> index 14553876a2..88ff4adb30 100755
> --- a/scripts/analyze-migration.py
> +++ b/scripts/analyze-migration.py
> @@ -234,6 +234,10 @@ class HTABSection(object):
>
> header = self.file.read32()
>
> + if (header == -1):
> + # "no HPT" encoding
> + return
> +
> if (header > 0):
> # First section, just the hash shift
> return
© 2016 - 2026 Red Hat, Inc.