Hi Stefano, On 10/08/15 13:57, Stefano Stabellini wrote: > On Mon, 10 Aug 2015, David Vrabel wrote: >> On 10/08/15 13:03, Stefano Stabellini wrote: >>> On Fri, 7 Aug 2015, Julien Grall wrote: >>>> - rc = HYPERVISOR_memory_op(XENMEM_add_to_physmap_range, &xatp); >>>> - return rc < 0 ? rc : err; >>>> + for (i = 0; i < nr_gfn; i++) { >>>> + if ((i % XEN_PFN_PER_PAGE) == 0) { >>>> + page = pages[i / XEN_PFN_PER_PAGE]; >>> >>> If this function is going to be called very frequently you might want to >>> consider using a shift instead. >>> >>> page = pages[i >> 4]; >>> >>> With an appropriate macro of course. >> >> This change isn't necessary. Compilers already turn divides into >> suitable shifts. > > The ARM compiler I used last time I tested this did not, but that was 1 > or 2 years ago. In any case to be clear this change is not required.
I gave a try on the compiler used by Debian Jessy (gcc 4.9.2). It turns divides into suitable shifts. Anyway, if it may happen that older ARM compiler doesn't do this change, I sure we would have to modify many other places in order to make the code efficient. Regards, -- Julien Grall -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/