On 24/03/2016 16:39, Li, Liang Z wrote:
> > Only if you write the arch specific thing for all arches.
>
> I plan to keep a function stub for each arch to implement. And I
> have done that for X86.
Again: the ram_addr_t matching is internal to QEMU and can vary from
release to release. Do not do this.
> > I think the reason for the speedup that you observe is that you only need to
> > translate ram_addr_t to GPA once per ramblock, which is much faster than
> > translating GPA to ram_addr_t for each page.
>
> Yes, exactly!
You don't need to translate it once per page. When QEMU copies the
bitmap from guest memory to its own internal data structures, it can do
so one block at a time with a function like
void bitmap_copy_bits(unsigned long *dst, unsigned int dst_start,
unsigned long *src, unsigned int src_start
unsigned int nbits);
Paolo