From mboxrd@z Thu Jan 1 00:00:00 1970 From: Yinghai Lu Subject: Re: Linux 2.6.39-rc3 Date: Wed, 13 Apr 2011 13:48:48 -0700 Message-ID: <4DA60C30.4060606@kernel.org> References: <20110412090207.GE19819@8bytes.org> <20110412184433.GF19819@8bytes.org> <20110413064609.GA18777@elte.hu> <20110413172147.GI19819@8bytes.org> <4DA5F62F.3030504@kernel.org> <20110413193459.GL19819@8bytes.org> Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Return-path: In-Reply-To: <20110413193459.GL19819@8bytes.org> Sender: linux-kernel-owner@vger.kernel.org To: Joerg Roedel Cc: Ingo Molnar , Alex Deucher , Linus Torvalds , Linux Kernel Mailing List , dri-devel@lists.freedesktop.org, "H. Peter Anvin" , Thomas Gleixner , Tejun Heo List-Id: dri-devel@lists.freedesktop.org On 04/13/2011 12:34 PM, Joerg Roedel wrote: > On Wed, Apr 13, 2011 at 12:14:55PM -0700, Yinghai Lu wrote: >> thanks for the bisecting... >> >> so those two patches uncover some problems. >> >> [ 0.000000] Checking aperture... >> [ 0.000000] No AGP bridge found >> [ 0.000000] Node 0: aperture @ a0000000 size 32 MB >> [ 0.000000] Aperture pointing to e820 RAM. Ignoring. >> [ 0.000000] Your BIOS doesn't leave a aperture memory hole >> [ 0.000000] Please enable the IOMMU option in the BIOS setup >> [ 0.000000] This costs you 64 MB of RAM >> [ 0.000000] memblock_x86_reserve_range: [0xa0000000-0xa3ffffff] aperture64 >> [ 0.000000] Mapping aperture over 65536 KB of RAM @ a0000000 >> >> so kernel try to reallocate apperture. because BIOS allocated is pointed to RAM or size is too small. > > It is actually beyond 4GB on that machine, this value read here is from > the previous kernel-boot. The BIOS does not reset these values on a > reboot. > >> but your radeon does use [0xa0000000, 0xbfffffff) > > Yes, I suspected that too (and spent a few hours reading radeon code), > but then I talked the Alex Deucher and he explained that these addresses > which the driver prints for GTT and VRAM are in the GPU address space > and do not refer to system ram. So this shouldn't be the problem. can you try following change ? it will push gart to 0x80000000 diff --git a/arch/x86/kernel/aperture_64.c b/arch/x86/kernel/aperture_64.c index 86d1ad4..3b6a9d5 100644 --- a/arch/x86/kernel/aperture_64.c +++ b/arch/x86/kernel/aperture_64.c @@ -83,7 +83,7 @@ static u32 __init allocate_aperture(void) * so don't use 512M below as gart iommu, leave the space for kernel * code for safe */ - addr = memblock_find_in_range(0, 1ULL<<32, aper_size, 512ULL<<20); + addr = memblock_find_in_range(0, 1ULL<<32, aper_size, 512ULL<<21); if (addr == MEMBLOCK_ERROR || addr + aper_size > 0xffffffff) { printk(KERN_ERR "Cannot allocate aperture memory hole (%lx,%uK)\n",