mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
* Re: 2.4.3-pre6: agpart.o causes arch/i386/mm/ioremap.c hang
@ 2001-03-23  9:52 Adam J. Richter
  2001-03-23 12:44 ` [patch] " Andrew Morton
  0 siblings, 1 reply; 3+ messages in thread
From: Adam J. Richter @ 2001-03-23  9:52 UTC (permalink / raw)
  To: linux-kernel

I wrote:

>	Under linux-2.4.3-pre6 compiled for SMP, loading agpgart.o
>hangs the system in remap_area_pages (arch/i386/mm/ioremap.c) at
>the call to spin_lock(&init_mm.page_table_lock), which is not in 2.4.2.
[...]
>	agp_backend_initialize
>	agp_generic_create_gatt_table
>	io_remap_nocache
>	__ioremap
>	remap_area_pages
[...]


>	I'm rebuilding the kernel now with a modified spin_lock()
>routine that should tell me who acquired the lock previously [...]

	 In case anyone is interested, the conflicting lock of
init_mm.page_table_lock was acquired in line 1318 of mm/memory.c,
in pte_alloc.

	One way that this might be happening is that it looks like
no page_table_lock is every acquired by vmalloc, which results in
the following call graph:

	vmalloc
	__vmalloc
	vmalloc_area_pages
	alloc_area_pmd
	pte_alloc ...which assumes (here incorrectly) that
		mm->page_table_lock is held, and sometimes releases
		and reacquires mm->page_table_lock.

	I will attempt to analyze this further tomorrow if nobody
beats me to it.

Adam J. Richter     __     ______________   4880 Stevens Creek Blvd, Suite 104
adam@yggdrasil.com     \ /                  San Jose, California 95129-1034
+1 408 261-6630         | g g d r a s i l   United States of America
fax +1 408 261-6631      "Free Software For The Rest Of Us."

^ permalink raw reply	[flat|nested] 3+ messages in thread
* 2.4.3-pre6: agpart.o causes arch/i386/mm/ioremap.c hang
@ 2001-03-23  9:10 Adam J. Richter
  0 siblings, 0 replies; 3+ messages in thread
From: Adam J. Richter @ 2001-03-23  9:10 UTC (permalink / raw)
  To: linux-kernel

	Under linux-2.4.3-pre6 compiled for SMP, loading agpgart.o
hangs the system in remap_area_pages (arch/i386/mm/ioremap.c) at
the call to spin_lock(&init_mm.page_table_lock), which is not in 2.4.2.

	When I load agpgart.o, I get the following messages:

Linux agpgart interface v0.99 (c) Jeff Hartmann
agpgart: Maximum main memory to use for agp memory: 690M
agpgart: Detected Via Apollo Pro chipset

	After that, the console keys (RightAlt ScrollLock, Alt-F2, etc.)
but there is not other response to my keystrokes and the system is no
longer pingable.  The call graphic is basically:

	agp_backend_initialize
	agp_generic_create_gatt_table
	io_remap_nocache
	__ioremap
	remap_area_pages

	I've made a cursory search through the kernel sources for what
else might be holding this lock, but I have not yet found anything.

	I'm rebuilding the kernel now with a modified spin_lock()
routine that should tell me who acquired the lock previously; however,
I really do not understand this part of the kernel enough to know
what the changes were intended to do in the first place.  So, knowing
where else the lock was acquired will not necessarily be enough for
me to be able to generate a patch.  Anyhow, I imagine that this
lock is being held by some code that can block.  We'll see.

Adam J. Richter     __     ______________   4880 Stevens Creek Blvd, Suite 104
adam@yggdrasil.com     \ /                  San Jose, California 95129-1034
+1 408 261-6630         | g g d r a s i l   United States of America
fax +1 408 261-6631      "Free Software For The Rest Of Us."

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2001-03-23 12:44 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2001-03-23  9:52 2.4.3-pre6: agpart.o causes arch/i386/mm/ioremap.c hang Adam J. Richter
2001-03-23 12:44 ` [patch] " Andrew Morton
  -- strict thread matches above, loose matches on Subject: below --
2001-03-23  9:10 Adam J. Richter

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®