* Stefan Priebe (s.pri...@profihost.ag) wrote:
> 
> Am 13.02.2014 21:06, schrieb Dr. David Alan Gilbert:
> >* Stefan Priebe (s.pri...@profihost.ag) wrote:
> >>Am 10.02.2014 17:07, schrieb Dr. David Alan Gilbert:
> >>>* Stefan Priebe (s.pri...@profihost.ag) wrote:
> >>>>i could fix it by explicitly disable xbzrle - it seems its
> >>>>automatically on if i do not set the migration caps to false.
> >>>>
> >>>>So it seems to be a xbzrle bug.
> >>>
> >>>Stefan can you give me some more info on your hardware and
> >>>migration setup;   that stressapptest (which is a really nice
> >>>find!) really batters the memory and it means the migration
> >>>isn't converging for me, so I'm curious what your setup is.
> >>
> >>That one is devlopment by google and known to me since a few years.
> >>Google has detected that memtest and co are not good enough to
> >>stress test memory.
> >
> >Hi Stefan,
> >   I've just posted a patch to qemu-devel that fixes two bugs that
> >we found; I've only tried a small stressapptest run and it seems
> >to survive with them (where it didn't before);  you might like to try
> >it if you're up for rebuilding qemu.
> >
> >It's the one entitled ' [PATCH] Fix two XBZRLE corruption issues'
> >
> >I'll try and get a larger run done myself, but I'd be interested to
> >hear if it fixes it for you (or anyone else who hit the problem).
> 
> Yes works fine - now no crash but it's sower than without XBZRLE ;-)
> 
> Without XBZRLE: i needed migrate_downtime 4 around 60s
> With XBZRLE: i needed migrate_downtime 16 and 240s

Hmm; how did that compare with the previous (broken) with XBZRLE
time?   (i.e. was XBZRLE always slower for you?)

If you're driving this from the hmp/command interface then
the result of the
      info migrate

command at the end of each of those runs would be interesting.

Another thing you could try is changing the xbzrle_cache_zero_page
in arch_init.c that I added so it reads as:

static void xbzrle_cache_zero_page(ram_addr_t current_addr)
{
    if (ram_bulk_stage || !migrate_use_xbzrle()) {
        return;
    }

    if (!cache_is_cached(XBZRLE.cache, current_addr)) {
        return;
    }

    /* We don't care if this fails to allocate a new cache page
     * as long as it updated an old one */
    cache_insert(XBZRLE.cache, current_addr, ZERO_TARGET_PAGE);
}

Dave
--
Dr. David Alan Gilbert / dgilb...@redhat.com / Manchester, UK

Reply via email to