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

Reply via email to