From: Juan Quintela <quintela@redhat.com>
To: "Dr. David Alan Gilbert" <dgilbert@redhat.com>
Cc: KONRAD Frederic <frederic.konrad@adacore.com>,
Peter Maydell <peter.maydell@linaro.org>,
QEMU Developers <qemu-devel@nongnu.org>,
"Edgar E. Iglesias" <edgar.iglesias@gmail.com>,
Paolo Bonzini <pbonzini@redhat.com>,
Richard Henderson <rth@twiddle.net>
Subject: Re: [Qemu-devel] [PULL v1 0/7] MMIO Exec pull request
Date: Thu, 27 Jul 2017 21:07:39 +0200 [thread overview]
Message-ID: <87wp6t7l6s.fsf@secure.laptop> (raw)
In-Reply-To: <20170721091337.GA2133@work-vm> (David Alan Gilbert's message of "Fri, 21 Jul 2017 10:13:39 +0100")
"Dr. David Alan Gilbert" <dgilbert@redhat.com> wrote:
> * KONRAD Frederic (frederic.konrad@adacore.com) wrote:
>>
>>
>>
>> Let's imagine somebody (eg: u-boot guest) wants to execute code
>> from the LQSPI area.
>>
>> memory_region_request_mmio_ptr is called (the guest is not
>> running yet) it will create a mmio-interface which create the
>> ram memory region with a pointer provided by the device.
>> Then the guest can execute code from that and this somehow is
>> breaking migration because this ram memory region is migrated.
>>
>> Now something is writing to the device.. The cache is no longer
>> valid, we have to drop this mmio-interface. This is done in an
>> async_safe work so cpu are stopped at this moment. So I think we
>> are safe for that.
>
> I don't fully understand the way memory_region_do_invalidate_mmio_ptr
> works; I see it dropping the memory region; if that's also dropping
> the RAMBlock then it will upset migration. Even if the CPU is stopped
> I dont think that stops the migration thread walking through the list of
> RAMBlocks.
I made sure that we don't allow Memory hot[un]plug during migration.
Basically we were already assuming that RAMBlocks are static during
migration, to relax that, we need to change other things, and it is too
late to investigate that.
> Even then, the problem is migration keeps a 'dirty_pages' count which is
> calculated at the start of migration and updated as we dirty and send
> pages; if we add/remove a RAMBlock then that dirty_pages count is wrong
> and we either never finish migration (since dirty_pages never reaches
> zero) or finish early with some unsent data.
Yeap, that is trouble.
> And then there's the 'received' bitmap currently being added for
> postcopy which tracks each page that's been received (that's not in yet
> though).
Later, Juan.
next prev parent reply other threads:[~2017-07-27 19:07 UTC|newest]
Thread overview: 39+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-06-14 17:45 [Qemu-devel] [PULL v1 0/7] MMIO Exec pull request Edgar E. Iglesias
2017-06-14 17:45 ` [Qemu-devel] [PULL v1 1/7] cputlb: cleanup get_page_addr_code to use VICTIM_TLB_HIT Edgar E. Iglesias
2017-06-14 17:45 ` [Qemu-devel] [PULL v1 2/7] cputlb: move get_page_addr_code Edgar E. Iglesias
2017-06-14 17:45 ` [Qemu-devel] [PULL v1 3/7] cputlb: fix the way get_page_addr_code fills the tlb Edgar E. Iglesias
2017-06-14 17:45 ` [Qemu-devel] [PULL v1 4/7] qdev: add MemoryRegion property Edgar E. Iglesias
2017-06-14 17:45 ` [Qemu-devel] [PULL v1 5/7] introduce mmio_interface Edgar E. Iglesias
2017-06-14 17:45 ` [Qemu-devel] [PULL v1 6/7] exec: allow to get a pointer for some mmio memory region Edgar E. Iglesias
2017-06-14 17:45 ` [Qemu-devel] [PULL v1 7/7] xilinx_spips: allow mmio execution Edgar E. Iglesias
2017-06-14 18:36 ` [Qemu-devel] [PULL v1 0/7] MMIO Exec pull request no-reply
2017-06-23 10:54 ` Peter Maydell
2017-06-23 12:34 ` KONRAD Frederic
2017-06-27 15:21 ` Edgar E. Iglesias
2017-07-17 16:33 ` Peter Maydell
2017-07-17 17:27 ` Edgar E. Iglesias
2017-07-17 18:58 ` Dr. David Alan Gilbert
2017-07-17 19:57 ` Peter Maydell
2017-07-18 14:53 ` Dr. David Alan Gilbert
2017-07-20 9:42 ` Peter Maydell
2017-07-20 9:53 ` KONRAD Frederic
2017-07-20 10:02 ` Dr. David Alan Gilbert
2017-07-21 8:09 ` KONRAD Frederic
2017-07-21 9:13 ` Dr. David Alan Gilbert
2017-07-21 9:29 ` Peter Maydell
2017-07-21 9:38 ` KONRAD Frederic
2017-07-21 10:31 ` Dr. David Alan Gilbert
2017-07-27 19:13 ` Juan Quintela
2017-07-27 19:07 ` Juan Quintela [this message]
2017-07-21 9:27 ` Dr. David Alan Gilbert
2017-07-21 9:34 ` KONRAD Frederic
2017-07-28 9:18 ` Peter Maydell
2017-07-28 10:13 ` Peter Maydell
2017-07-31 7:34 ` KONRAD Frederic
2017-07-18 7:34 ` KONRAD Frederic
2017-07-19 12:29 ` Dr. David Alan Gilbert
2017-07-19 16:22 ` KONRAD Frederic
2017-07-19 16:25 ` Peter Maydell
2017-07-20 7:55 ` KONRAD Frederic
2017-07-19 16:46 ` Dr. David Alan Gilbert
2017-07-20 7:54 ` KONRAD Frederic
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=87wp6t7l6s.fsf@secure.laptop \
--to=quintela@redhat.com \
--cc=dgilbert@redhat.com \
--cc=edgar.iglesias@gmail.com \
--cc=frederic.konrad@adacore.com \
--cc=pbonzini@redhat.com \
--cc=peter.maydell@linaro.org \
--cc=qemu-devel@nongnu.org \
--cc=rth@twiddle.net \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.