qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH v2 2/3] i386/a-b-bootblock: zero the first byte of each page


From: Juan Quintela
Subject: Re: [PATCH v2 2/3] i386/a-b-bootblock: zero the first byte of each page on start
Date: Wed, 04 Oct 2023 10:53:34 +0200
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/28.3 (gnu/linux)

Daniil Tatianin <d-tatianin@yandex-team.ru> wrote:
> The migration qtest all the way up to this point used to work by sheer
> luck relying on the contents of all pages from 1MiB to 100MiB to contain
> the same one value in the first byte initially.
>
> This easily breaks if we reduce the amount of RAM for the test instances
> from 150MiB to e.g 110MiB since that makes SeaBIOS dirty some of the
> pages starting at about 0x5dd2000 (~93 MiB) as it reuses those for the
> HighMemory allocator since commit dc88f9b72df ("malloc: use large
> ZoneHigh when there is enough memory").
>
> This would result in the following errors:
>     12/60 qemu:qtest+qtest-x86_64 / qtest-x86_64/migration-test               
>   ERROR           2.74s   killed by signal 6 SIGABRT
>     stderr:
>     Memory content inconsistency at 5dd2000 first_byte = cc last_byte = cb 
> current = 9e hit_edge = 1
>     Memory content inconsistency at 5dd3000 first_byte = cc last_byte = cb 
> current = 89 hit_edge = 1
>     Memory content inconsistency at 5dd4000 first_byte = cc last_byte = cb 
> current = 23 hit_edge = 1
>     Memory content inconsistency at 5dd5000 first_byte = cc last_byte = cb 
> current = 31 hit_edge = 1
>     Memory content inconsistency at 5dd6000 first_byte = cc last_byte = cb 
> current = 70 hit_edge = 1
>     Memory content inconsistency at 5dd7000 first_byte = cc last_byte = cb 
> current = ff hit_edge = 1
>     Memory content inconsistency at 5dd8000 first_byte = cc last_byte = cb 
> current = 54 hit_edge = 1
>     Memory content inconsistency at 5dd9000 first_byte = cc last_byte = cb 
> current = 64 hit_edge = 1
>     Memory content inconsistency at 5dda000 first_byte = cc last_byte = cb 
> current = 1d hit_edge = 1
>     Memory content inconsistency at 5ddb000 first_byte = cc last_byte = cb 
> current = 1a hit_edge = 1
>     and in another 26 pages**
>     ERROR:../tests/qtest/migration-test.c:300:check_guests_ram: assertion 
> failed: (bad == 0)
>
> Fix this by always zeroing the first byte of each page in the range so
> that we get consistent results no matter the initial contents.
>
> Fixes: ea0c6d62391 ("test: Postcopy")
> Signed-off-by: Daniil Tatianin <d-tatianin@yandex-team.ru>
> Reviewed-by: Peter Xu <peterx@redhat.com>
> ---

Reviewed-by: Juan Quintela <quintela@redhat.com>

queued.




reply via email to

[Prev in Thread] Current Thread [Next in Thread]