Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1758217AbYFJVtG (ORCPT ); Tue, 10 Jun 2008 17:49:06 -0400 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S1754977AbYFJVsu (ORCPT ); Tue, 10 Jun 2008 17:48:50 -0400 Received: from relay03.mail-hub.dodo.com.au ([123.2.6.238]:58257 "EHLO relay03.mail-hub.dodo.com.au" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1759551AbYFJVst (ORCPT ); Tue, 10 Jun 2008 17:48:49 -0400 From: Grant Coady To: Andrew Morton Cc: Grant Coady , linux-kernel@vger.kernel.org, kernel-testers@vger.kernel.org, linux-mm@kvack.org, Keith Packard Subject: Re: 2.6.26-rc5-mm2 lockup up on Intel G33+ICH9R+Core2Duo, -mm1 okay Date: Wed, 11 Jun 2008 07:48:17 +1000 Organization: http://bugsplatter.mine.nu/ Reply-To: Grant Coady Message-ID: References: <20080609223145.5c9a2878.akpm@linux-foundation.org> <73ls44tntnv8ro57chp1on2crsqkoilmkj@4ax.com> <20080610111832.736519d2.akpm@linux-foundation.org> In-Reply-To: <20080610111832.736519d2.akpm@linux-foundation.org> X-Mailer: Forte Agent 2.0/32.652 MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 5741 Lines: 176 On Tue, 10 Jun 2008 11:18:32 -0700, Andrew Morton wrote: >On Tue, 10 Jun 2008 20:20:09 +1000 Grant Coady wrote: > >> On Mon, 9 Jun 2008 22:31:45 -0700, Andrew Morton wrote: >> >> > >> >ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.26-rc5/2.6.26-rc5-mm2/ >> > >> >- This is a bugfixed version of 2.6.26-rc5-mm1 - mainly to repair a >> > vmscan.c bug which would have prevented testing of the other vmscan.c >> > bugs^Wchanges. >> >> No it's not :) >> >> -mm1 worked fine here but -mm2 locks up just after saying: >> agpgart: Detected 7164K stolen memory. >> >> Nothing in logs (session not recorded - hit reset to restart). >> >> config and dmseg for -mm1 at (same .config for mm2): >> >> http://bugsplatter.mine.nu/test/boxen/pooh/config-2.6.26-rc5-mm1a.gz >> http://bugsplatter.mine.nu/test/boxen/pooh/dmesg-2.6.26-rc5-mm1a.gz >> >> Grant. > >hm, intel-agp gtt stuff. > >Can you please see whether reverting Keith's stuff fixes it? Yes, it does :) config + dmesg at: http://bugsplatter.mine.nu/test/boxen/pooh/ (*-mm2b.gz) Grant. > > drivers/char/agp/agp.h | 3 --- > drivers/char/agp/backend.c | 2 -- > drivers/char/agp/generic.c | 28 ---------------------------- > drivers/char/agp/intel-agp.c | 5 ----- > include/linux/agp_backend.h | 5 ----- > 5 files changed, 43 deletions(-) > >diff -puN drivers/char/agp/agp.h~revert-intel-agp-rewrite-gtt-on-resume drivers/char/agp/agp.h >--- a/drivers/char/agp/agp.h~revert-intel-agp-rewrite-gtt-on-resume >+++ a/drivers/char/agp/agp.h >@@ -148,9 +148,6 @@ struct agp_bridge_data { > char minor_version; > struct list_head list; > u32 apbase_config; >- /* list of agp_memory mapped to the aperture */ >- struct list_head mapped_list; >- spinlock_t mapped_lock; > }; > > #define KB(x) ((x) * 1024) >diff -puN drivers/char/agp/backend.c~revert-intel-agp-rewrite-gtt-on-resume drivers/char/agp/backend.c >--- a/drivers/char/agp/backend.c~revert-intel-agp-rewrite-gtt-on-resume >+++ a/drivers/char/agp/backend.c >@@ -183,8 +183,6 @@ static int agp_backend_initialize(struct > rc = -EINVAL; > goto err_out; > } >- INIT_LIST_HEAD(&bridge->mapped_list); >- spin_lock_init(&bridge->mapped_lock); > > return 0; > >diff -puN drivers/char/agp/generic.c~revert-intel-agp-rewrite-gtt-on-resume drivers/char/agp/generic.c >--- a/drivers/char/agp/generic.c~revert-intel-agp-rewrite-gtt-on-resume >+++ a/drivers/char/agp/generic.c >@@ -426,10 +426,6 @@ int agp_bind_memory(struct agp_memory *c > > curr->is_bound = TRUE; > curr->pg_start = pg_start; >- spin_lock(&agp_bridge->mapped_lock); >- list_add(&curr->mapped_list, &agp_bridge->mapped_list); >- spin_unlock(&agp_bridge->mapped_lock); >- > return 0; > } > EXPORT_SYMBOL(agp_bind_memory); >@@ -462,34 +458,10 @@ int agp_unbind_memory(struct agp_memory > > curr->is_bound = FALSE; > curr->pg_start = 0; >- spin_lock(&curr->bridge->mapped_lock); >- list_del(&curr->mapped_list); >- spin_unlock(&curr->bridge->mapped_lock); > return 0; > } > EXPORT_SYMBOL(agp_unbind_memory); > >-/** >- * agp_rebind_emmory - Rewrite the entire GATT, useful on resume >- */ >-int agp_rebind_memory(void) >-{ >- struct agp_memory *curr; >- int ret_val = 0; >- >- spin_lock(&agp_bridge->mapped_lock); >- list_for_each_entry(curr, &agp_bridge->mapped_list, mapped_list) { >- ret_val = curr->bridge->driver->insert_memory(curr, >- curr->pg_start, >- curr->type); >- if (ret_val != 0) >- break; >- } >- spin_unlock(&agp_bridge->mapped_lock); >- return ret_val; >-} >-EXPORT_SYMBOL(agp_rebind_memory); >- > /* End - Routines for handling swapping of agp_memory into the GATT */ > > >diff -puN drivers/char/agp/intel-agp.c~revert-intel-agp-rewrite-gtt-on-resume drivers/char/agp/intel-agp.c >--- a/drivers/char/agp/intel-agp.c~revert-intel-agp-rewrite-gtt-on-resume >+++ a/drivers/char/agp/intel-agp.c >@@ -2176,7 +2176,6 @@ static void __devexit agp_intel_remove(s > static int agp_intel_resume(struct pci_dev *pdev) > { > struct agp_bridge_data *bridge = pci_get_drvdata(pdev); >- int ret_val; > > pci_restore_state(pdev); > >@@ -2204,10 +2203,6 @@ static int agp_intel_resume(struct pci_d > else if (bridge->driver == &intel_i965_driver) > intel_i915_configure(); > >- ret_val = agp_rebind_memory(); >- if (ret_val != 0) >- return ret_val; >- > return 0; > } > #endif >diff -puN include/linux/agp_backend.h~revert-intel-agp-rewrite-gtt-on-resume include/linux/agp_backend.h >--- a/include/linux/agp_backend.h~revert-intel-agp-rewrite-gtt-on-resume >+++ a/include/linux/agp_backend.h >@@ -30,8 +30,6 @@ > #ifndef _AGP_BACKEND_H > #define _AGP_BACKEND_H 1 > >-#include >- > #ifndef TRUE > #define TRUE 1 > #endif >@@ -88,8 +86,6 @@ struct agp_memory { > u8 is_bound; > u8 is_flushed; > u8 vmalloc_flag; >- /* list of agp_memory mapped to the aperture */ >- struct list_head mapped_list; > }; > > #define AGP_NORMAL_MEMORY 0 >@@ -108,7 +104,6 @@ extern struct agp_memory *agp_allocate_m > extern int agp_copy_info(struct agp_bridge_data *, struct agp_kern_info *); > extern int agp_bind_memory(struct agp_memory *, off_t); > extern int agp_unbind_memory(struct agp_memory *); >-extern int agp_rebind_memory(void); > extern void agp_enable(struct agp_bridge_data *, u32); > extern struct agp_bridge_data *agp_backend_acquire(struct pci_dev *); > extern void agp_backend_release(struct agp_bridge_data *); >_ -- 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/