Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S933028AbbELRYU (ORCPT ); Tue, 12 May 2015 13:24:20 -0400 Received: from foss.arm.com ([217.140.101.70]:33453 "EHLO foss.arm.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S932776AbbELRYT (ORCPT ); Tue, 12 May 2015 13:24:19 -0400 Date: Tue, 12 May 2015 18:24:16 +0100 From: Will Deacon To: Robert Richter Cc: Robert Richter , Marc Zyngier , Catalin Marinas , Tirumalesh Chalamarla , Radha Mohan Chintakuntla , "linux-kernel@vger.kernel.org" , "linux-arm-kernel@lists.infradead.org" Subject: Re: [PATCH 4/4] arm64: gicv3: its: Increase FORCE_MAX_ZONEORDER for Cavium ThunderX Message-ID: <20150512172416.GF2062@arm.com> References: <1430686172-18222-1-git-send-email-rric@kernel.org> <1430686172-18222-5-git-send-email-rric@kernel.org> <20150505105329.GC1550@arm.com> <20150511091438.GW4251@rric.localhost> <20150512123056.GA2062@arm.com> <20150512162049.GP10428@rric.localhost> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20150512162049.GP10428@rric.localhost> User-Agent: Mutt/1.5.23 (2014-03-12) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 2730 Lines: 65 On Tue, May 12, 2015 at 05:20:49PM +0100, Robert Richter wrote: > On 12.05.15 13:30:57, Will Deacon wrote: > > On Mon, May 11, 2015 at 10:14:38AM +0100, Robert Richter wrote: > > > On 05.05.15 11:53:29, Will Deacon wrote: > > > > On Sun, May 03, 2015 at 09:49:32PM +0100, Robert Richter wrote: > > > > > From: Radha Mohan Chintakuntla > > > > > > > > > > In case of ARCH_THUNDER, there is a need to allocate the GICv3 ITS table > > > > > which is bigger than the allowed max order. So we are forcing it only in > > > > > case of 4KB page size. > > > > > > > > Does this problem disappear if the ITS driver uses dma_alloc_coherent > > > > instead? That would also allow us to remove the __flush_dcache_area abuse > > > > from the driver. > > > > > > __get_free_pages() is also used internally in dma_alloc_coherent(). > > > > > > There is another case if the device brings dma mem with it. I am not > > > sure if it would be possible to assign some phys memory via devicetree > > > to the interrupt controller and then assign that range for its table > > > allocation. > > > > > > Another option would be to allocate a hugepage. This would require > > > setting up hugepages during boottime. I need to figure out whether > > > that could work. > > For allocation of 16MB cont. phys mem of a defconfig kernel (4KB > default pagesize) I see this different approaches: 16MB sounds like an awful lot. Is this because you have tonnes of MSIs or a sparse DeviceID space or both? > * set FORCE_MAX_ZONEORDER to 13 as default, > > * set FORCE_MAX_ZONEORDER to 13 if ARM_GIC_V3 is set, > > * set FORCE_MAX_ZONEORDER to 13 if ARCH_THUNDER is set (this patch), I'm not hugely fond of these suggestions, as there's still no guarantee that such a huge allocation is going to succeed and we end up bumping MAX_ORDER for all platforms in defconfig if we enable THUNDER there. > * use hugepages if enabled (defconfig has the following options > enable: CGROUP_HUGETLB, TRANSPARENT_HUGEPAGE, HUGETLBFS, this might > work with current default kernel without changing defconfig > options), I don't think hugepages help with DMA. > * use devicetree to reserve mem for gicv3 (need to check ACPI). Using a carveout like this might be the best bet. I assume the memory used by the ITS can never be reclaimed by the syste (and therefore there's no issue with wastage)? > Do you see any direction? Dunno, does CMA also require the MAX_ORDER bump? Will -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/