Pavel Fedin <p.fe...@samsung.com> wrote:
>  Hello!
>
>> Applied, thanks.
>
>  Thank you.
>
>> I wonder who it has never been needed before.  BTW, what is ITS?
>
>  ITS is Interrupt Translation Service. It is used by ARM64
> architecture. In a short, it is a special hardware which performs
> table-based lookup of MSI IDs and their destination CPUs, and routes
> them. There can be lots of CPUs and lots of interrupts, so
> these tables are large and are held in a system RAM.
>  qemu implementation of this thing needs to be able to flush its
> internal cached state into memory for live migration. This has to
> be done during final stage, right after CPUs have been stopped,
> because right after this point migration code will recheck RAM
> status and send out modified data for the last time.
>  The implementation itself has to wait, because the necessary KVM API
> is also not ready yet, but i prefer to upstream as much of the
> infrastructure as possible, because: a) we want to reduce amount of
> out-of-tree patches for our project; b) these things affect qemu
> core code, and upstreaming them makes sure that we do it right, and
> our out-of-tree code will not diverge from the upstream too
> much.

Power people have a similar problem with its hashed page tables, they
integrated their own save_live implementation because they are too big
for the last stage.  You can look there for inspiration.

How big are we talking here?

Thanks, Juan.

>
> Kind regards,
> Pavel Fedin
> Expert Engineer
> Samsung Electronics Research center Russia

Reply via email to