qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PATCH qemu v2 03/13] memory: Open code FlatView render


From: Paolo Bonzini
Subject: Re: [Qemu-devel] [PATCH qemu v2 03/13] memory: Open code FlatView rendering
Date: Fri, 15 Sep 2017 10:59:27 +0200
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.2.1

On 15/09/2017 10:40, Alexey Kardashevskiy wrote:
> +    /*
> +     * FIXME: this is cut-n-paste from address_space_update_topology_pass,
> +     * simplify it
> +     */
> +    iold = inew = 0;
> +    while (iold < old_view->nr || inew < new_view->nr) {
> +        if (iold < old_view->nr) {
> +            frold = &old_view->ranges[iold];
> +        } else {
> +            frold = NULL;
> +        }
> +        if (inew < new_view->nr) {
> +            frnew = &new_view->ranges[inew];
> +        } else {
> +            frnew = NULL;
> +        }
> +
> +        if (frold
> +            && (!frnew
> +                || int128_lt(frold->addr.start, frnew->addr.start)
> +                || (int128_eq(frold->addr.start, frnew->addr.start)
> +                    && !flatrange_equal(frold, frnew)))) {
> +            ++iold;
> +        } else if (frold && frnew && flatrange_equal(frold, frnew)) {
> +            /* In both and unchanged (except logging may have changed) */
> +            MemoryRegionSection mrs = section_from_flat_range(frnew, as);
> +
> +            mem_add(as, &mrs);
> +
> +            ++iold;
> +            ++inew;
> +        } else {
> +            /* In new */
> +            MemoryRegionSection mrs = section_from_flat_range(frnew, as);
> +
> +            mem_add(as, &mrs);
> +
> +            ++inew;
> +        }
> +    }

This indeed is just

    for (i = 0; i < new_view->nr; i++) {
        MemoryRegionSection mrs =
           section_from_flat_range(&new_view->ranges[i], as);
        mem_add(as, &mrs);
    }

:)

Paolo



reply via email to

[Prev in Thread] Current Thread [Next in Thread]