[PATCH] scripts/analyze-migration: Rename RAM_SAVE_FLAG_COMPRESS to RAM_SAVE_FLAG_ZERO

Pawel Zmarzly posted 1 patch 2 months, 2 weeks ago
Patches applied successfully (tree, apply log)
git fetch https://github.com/patchew-project/qemu tags/patchew/20251125173007.245607-1-pzmarzly0@gmail.com
Maintainers: John Snow <jsnow@redhat.com>, Cleber Rosa <crosa@redhat.com>
scripts/analyze-migration.py | 14 +++++---------
1 file changed, 5 insertions(+), 9 deletions(-)
[PATCH] scripts/analyze-migration: Rename RAM_SAVE_FLAG_COMPRESS to RAM_SAVE_FLAG_ZERO
Posted by Pawel Zmarzly 2 months, 2 weeks ago
It has been renamed on the C side a few years ago. In modern QEMU versions,
fill_byte must be zero. Updating the Python script to make grepping and
understanding the code easier.

Signed-off-by: Pawel Zmarzly <pzmarzly0@gmail.com>
---
 scripts/analyze-migration.py | 14 +++++---------
 1 file changed, 5 insertions(+), 9 deletions(-)

diff --git a/scripts/analyze-migration.py b/scripts/analyze-migration.py
index 67631ac43e..6364fe4f72 100755
--- a/scripts/analyze-migration.py
+++ b/scripts/analyze-migration.py
@@ -107,7 +107,7 @@ def close(self):
         self.file.close()
 
 class RamSection(object):
-    RAM_SAVE_FLAG_COMPRESS = 0x02
+    RAM_SAVE_FLAG_ZERO     = 0x02
     RAM_SAVE_FLAG_MEM_SIZE = 0x04
     RAM_SAVE_FLAG_PAGE     = 0x08
     RAM_SAVE_FLAG_EOS      = 0x10
@@ -172,19 +172,15 @@ def read(self):
                         mr_addr = self.file.read64()
                 flags &= ~self.RAM_SAVE_FLAG_MEM_SIZE
 
-            if flags & self.RAM_SAVE_FLAG_COMPRESS:
+            if flags & self.RAM_SAVE_FLAG_ZERO:
                 if flags & self.RAM_SAVE_FLAG_CONTINUE:
                     flags &= ~self.RAM_SAVE_FLAG_CONTINUE
                 else:
                     self.name = self.file.readstr()
-                fill_char = self.file.read8()
-                # The page in question is filled with fill_char now
-                if self.write_memory and fill_char != 0:
-                    self.files[self.name].seek(addr, os.SEEK_SET)
-                    self.files[self.name].write(chr(fill_char) * self.TARGET_PAGE_SIZE)
+                _fill_char = self.file.read8()
                 if self.dump_memory:
-                    self.memory['%s (0x%016x)' % (self.name, addr)] = 'Filled with 0x%02x' % fill_char
-                flags &= ~self.RAM_SAVE_FLAG_COMPRESS
+                    self.memory['%s (0x%016x)' % (self.name, addr)] = 'Filled with 0x00'
+                flags &= ~self.RAM_SAVE_FLAG_ZERO
             elif flags & self.RAM_SAVE_FLAG_PAGE:
                 if flags & self.RAM_SAVE_FLAG_CONTINUE:
                     flags &= ~self.RAM_SAVE_FLAG_CONTINUE
-- 
2.52.0
Re: [PATCH] scripts/analyze-migration: Rename RAM_SAVE_FLAG_COMPRESS to RAM_SAVE_FLAG_ZERO
Posted by Peter Xu 2 months, 1 week ago
On Tue, Nov 25, 2025 at 05:30:07PM +0000, Pawel Zmarzly wrote:
> It has been renamed on the C side a few years ago. In modern QEMU versions,
> fill_byte must be zero. Updating the Python script to make grepping and
> understanding the code easier.
> 
> Signed-off-by: Pawel Zmarzly <pzmarzly0@gmail.com>
> ---
>  scripts/analyze-migration.py | 14 +++++---------
>  1 file changed, 5 insertions(+), 9 deletions(-)
> 
> diff --git a/scripts/analyze-migration.py b/scripts/analyze-migration.py
> index 67631ac43e..6364fe4f72 100755
> --- a/scripts/analyze-migration.py
> +++ b/scripts/analyze-migration.py
> @@ -107,7 +107,7 @@ def close(self):
>          self.file.close()
>  
>  class RamSection(object):
> -    RAM_SAVE_FLAG_COMPRESS = 0x02
> +    RAM_SAVE_FLAG_ZERO     = 0x02
>      RAM_SAVE_FLAG_MEM_SIZE = 0x04
>      RAM_SAVE_FLAG_PAGE     = 0x08
>      RAM_SAVE_FLAG_EOS      = 0x10
> @@ -172,19 +172,15 @@ def read(self):
>                          mr_addr = self.file.read64()
>                  flags &= ~self.RAM_SAVE_FLAG_MEM_SIZE
>  
> -            if flags & self.RAM_SAVE_FLAG_COMPRESS:
> +            if flags & self.RAM_SAVE_FLAG_ZERO:
>                  if flags & self.RAM_SAVE_FLAG_CONTINUE:
>                      flags &= ~self.RAM_SAVE_FLAG_CONTINUE
>                  else:
>                      self.name = self.file.readstr()
> -                fill_char = self.file.read8()
> -                # The page in question is filled with fill_char now
> -                if self.write_memory and fill_char != 0:
> -                    self.files[self.name].seek(addr, os.SEEK_SET)
> -                    self.files[self.name].write(chr(fill_char) * self.TARGET_PAGE_SIZE)
> +                _fill_char = self.file.read8()

We can sanity check this is zero.  But it's fine; no big deal.

Queued, thanks.

>                  if self.dump_memory:
> -                    self.memory['%s (0x%016x)' % (self.name, addr)] = 'Filled with 0x%02x' % fill_char
> -                flags &= ~self.RAM_SAVE_FLAG_COMPRESS
> +                    self.memory['%s (0x%016x)' % (self.name, addr)] = 'Filled with 0x00'
> +                flags &= ~self.RAM_SAVE_FLAG_ZERO
>              elif flags & self.RAM_SAVE_FLAG_PAGE:
>                  if flags & self.RAM_SAVE_FLAG_CONTINUE:
>                      flags &= ~self.RAM_SAVE_FLAG_CONTINUE
> -- 
> 2.52.0
> 

-- 
Peter Xu