[PATCH] PCI: generic: map config window in one go
Arnd Bergmann
arnd at arndb.de
Fri Jan 29 06:52:44 PST 2016
On Friday 29 January 2016 15:32:01 Ard Biesheuvel wrote:
> On 29 January 2016 at 15:28, Will Deacon <will.deacon at arm.com> wrote:
> > Hi Ard,
> >
> > On Fri, Jan 29, 2016 at 03:17:15PM +0100, Ard Biesheuvel wrote:
> >> Instead of iterating over the PCI config window and performing individual
> >> ioremap() calls on all the adjacent slices, perform a single ioremap() to
> >> map the entire region, and divvy it up later. This not only prevents
> >> leaving some of it mapped if we fail half way through, it also ensures that
> >> archs that support huge-vmap can use section mappings to perform the
> >> mapping.
> >>
> >> On my Seattle A0 box, this transforms 128 separate 1 MB mappings that are
> >> mapped down to 4 KB pages into a single 128 MB mapping using 2 MB sections,
> >> saving 512 KB worth of page tables.
> >>
> >> Signed-off-by: Ard Biesheuvel <ard.biesheuvel at linaro.org>
> >> ---
> >
> > The code was written this way in response to feedback during driver review
> > that we couldn't necessarily grab that much contiguous vmalloc space on
> > 32-bit ARM. Unless that's changed, we probably want to to predicate this
> > change on having a 64-bit arch.
> >
>
> Ah right. How about testing for the ARCH_HAVE_HUGE_VMAP Kconfig symbol
> explicitly?
>
Testing for 64BIT should be sufficient.
Arnd
More information about the linux-arm-kernel
mailing list