From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mout.kundenserver.de ([212.227.126.130]:59726 "EHLO mout.kundenserver.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1756215AbcA2OxR (ORCPT ); Fri, 29 Jan 2016 09:53:17 -0500 From: Arnd Bergmann To: linux-arm-kernel@lists.infradead.org Cc: Ard Biesheuvel , Will Deacon , Bjorn Helgaas , linux-pci@vger.kernel.org, Mark Brown Subject: Re: [PATCH] PCI: generic: map config window in one go Date: Fri, 29 Jan 2016 15:52:44 +0100 Message-ID: <4090946.AhejVJy7MO@wuerfel> In-Reply-To: References: <1454077035-23872-1-git-send-email-ard.biesheuvel@linaro.org> <20160129142831.GF4541@arm.com> MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Sender: linux-pci-owner@vger.kernel.org List-ID: On Friday 29 January 2016 15:32:01 Ard Biesheuvel wrote: > On 29 January 2016 at 15:28, Will Deacon 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 > >> --- > > > > 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