public inbox for linux-pm@vger.kernel.org
 help / color / mirror / Atom feed
* Re: OOPS: 2.6.24-rc5-mm1 -- EIP is at r_show+0x2a/0x70 -- (triggered by "cat /proc/iomem" AFTER suspend-to-disk/resume)
       [not found]   ` <4769FF37.5060308@gmail.com>
@ 2007-12-20 13:38     ` Miles Lane
       [not found]     ` <476A703B.50804@gmail.com>
  1 sibling, 0 replies; 8+ messages in thread
From: Miles Lane @ 2007-12-20 13:38 UTC (permalink / raw)
  To: Andrew Morton, LKML, Christoph Lameter, Pavel Machek, linux-pm

On further investigation, "cat /proc/iomem" does not trigger the stack 
trace until after a suspend-to-disk/resume cycle has occurred.

I am removing Ingo and Russell from the TO list (as they are apparently 
the wrong people) and adding the suspend folks, as suspend is implicated.
My .config file can be found here:  
http://marc.info/?l=linux-kernel&m=119812903001296&w=2

Miles Lane wrote:
> .config attached in order to not trip spam filters.
>
> Miles Lane wrote:
>> [  252.868386] BUG: unable to handle kernel NULL pointer dereference 
>> at virtual address 00000018
>> [  252.868393] printing ip: c012d527 *pde = 00000000
>> [  252.868399] Oops: 0000 [#1] SMP
>> [  252.868403] last sysfs file: 
>> /sys/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda/sda3/stat 
>>
>> [  252.868407] Modules linked in: aes_i586 aes_generic i915 drm 
>> rfcomm l2cap bluetooth acpi_cpufreq cpufreq_stats 
>> cpufreq_conservative sbs sbshc dm_crypt sbp2 parport_pc lp parport 
>> arc4 ecb crypto_blkcipher cryptomgr crypto_algapi snd_hda_intel 
>> snd_pcm_oss snd_mixer_oss pcmcia snd_pcm iTCO_wdt iTCO_vendor_support 
>> snd_seq_dummy watchdog_core watchdog_dev snd_seq_oss snd_seq_midi 
>> tifm_7xx1 snd_rawmidi iwl3945 snd_seq_midi_event rng_core tifm_core 
>> mac80211 snd_seq snd_timer snd_seq_device cfg80211 sky2 battery 
>> yenta_socket rsrc_nonstatic pcmcia_core ac snd soundcore 
>> snd_page_alloc button shpchp pci_hotplug sr_mod cdrom pata_acpi piix 
>> ide_core firewire_ohci firewire_core crc_itu_t thermal processor fan
>> [  252.868469]
>> [  252.868472] Pid: 7088, comm: head Not tainted (2.6.24-rc5-mm1 #9)
>> [  252.868476] EIP: 0060:[<c012d527>] EFLAGS: 00010297 CPU: 0
>> [  252.868481] EIP is at r_show+0x2a/0x70
>> [  252.868483] EAX: 00000000 EBX: 00000001 ECX: c07e3224 EDX: c04bb034
>> [  252.868486] ESI: 00000008 EDI: ed1f52c0 EBP: f5320f10 ESP: f5320f04
>> [  252.868489]  DS: 007b ES: 007b FS: 00d8 GS: 0033 SS: 0068
>> [  252.868493] Process head (pid: 7088, ti=f5320000 task=f532e000 
>> task.ti=f5320000)
>> [  252.868495] Stack: c03a6cac ed1f52c0 c07e3224 f5320f50 c0199a7e 
>> 00002000 bf930807 e1007800
>> [  252.868504]        ed1f52e0 00000000 00000000 000001d3 0000000e 
>> 00000000 0000000d 00000000
>> [  252.868512]        fffffffb f7d39370 c01998e4 f5320f74 c01af4f5 
>> f5320f9c 00002000 bf930807
>> [  252.868521] Call Trace:
>> [  252.868523]  [<c0107d55>] show_trace_log_lvl+0x12/0x25
>> [  252.868529]  [<c0107df2>] show_stack_log_lvl+0x8a/0x95
>> [  252.868534]  [<c0107e89>] show_registers+0x8c/0x154
>> [  252.868538]  [<c010805f>] die+0x10e/0x1d2
>> [  252.868542]  [<c039c8c9>] do_page_fault+0x52b/0x600
>> [  252.868547]  [<c039af9a>] error_code+0x72/0x78
>> [  252.868552]  [<c0199a7e>] seq_read+0x19a/0x26c
>> [  252.868557]  [<c01af4f5>] proc_reg_read+0x60/0x74
>> [  252.868562]  [<c018390d>] vfs_read+0xa2/0x11e
>> [  252.868567]  [<c0183d02>] sys_read+0x3b/0x60
>> [  252.868571]  [<c0106bae>] sysenter_past_esp+0x6b/0xc1
>> [  252.868575]  =======================
>> [  252.868577] Code: c3 55 89 d1 89 e5 57 89 c7 56 53 8b 50 64 83 7a 
>> 0c 00 77 0e 81 7a 08 ff ff 00 00 be 04 00 00 00 76 05 be 08 00 00 00 
>> 89 c8 31 db <8b> 40 18 39 d0 74 06 43 83 fb 05 75 f3 8b 41 10 ba 2f 
>> 1b 45 c0
>> [  252.868623] EIP: [<c012d527>] r_show+0x2a/0x70 SS:ESP 0068:f5320f04

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

* Re: OOPS: 2.6.24-rc5-mm1 -- EIP is at r_show+0x2a/0x70 -- (triggered by "cat /proc/iomem" AFTER suspend-to-disk/resume)
       [not found]     ` <476A703B.50804@gmail.com>
@ 2007-12-20 17:32       ` Andrew Morton
       [not found]       ` <20071220093206.22f319b0.akpm@linux-foundation.org>
  1 sibling, 0 replies; 8+ messages in thread
From: Andrew Morton @ 2007-12-20 17:32 UTC (permalink / raw)
  To: Miles Lane; +Cc: Pavel Machek, linux-pm, LKML, Christoph Lameter

On Thu, 20 Dec 2007 08:38:03 -0500 Miles Lane <miles.lane@gmail.com> wrote:

> On further investigation, "cat /proc/iomem" does not trigger the stack 
> trace until after a suspend-to-disk/resume cycle has occurred.

I still can't reproduce this.

Could you please try this?

- cat /proc/iomem
- suspend/resume
- do

while read i
do
echo $i
sleep 1
done < /proc/iomem

then, with luck, we'll be able to work out which /proc/iomem record
immediately precedes the corrupted one.

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

* Re: OOPS: 2.6.24-rc5-mm1 -- EIP is at r_show+0x2a/0x70 -- (triggered by "cat /proc/iomem" AFTER suspend-to-disk/resume)
       [not found]       ` <20071220093206.22f319b0.akpm@linux-foundation.org>
@ 2007-12-21  5:58         ` Miles Lane
  2007-12-21  6:18           ` Miles Lane
                             ` (2 more replies)
  0 siblings, 3 replies; 8+ messages in thread
From: Miles Lane @ 2007-12-21  5:58 UTC (permalink / raw)
  To: Andrew Morton; +Cc: Pavel Machek, linux-pm, LKML, Christoph Lameter


[-- Attachment #1.1: Type: text/plain, Size: 1249 bytes --]

On Dec 20, 2007 12:32 PM, Andrew Morton <akpm@linux-foundation.org> wrote:

> On Thu, 20 Dec 2007 08:38:03 -0500 Miles Lane <miles.lane@gmail.com>
> wrote:
>
> > On further investigation, "cat /proc/iomem" does not trigger the stack
> > trace until after a suspend-to-disk/resume cycle has occurred.
>
> I still can't reproduce this.
>
> Could you please try this?
>
> - cat /proc/iomem
> - suspend/resume
> - do
>
> while read i
> do
> echo $i
> sleep 1
> done < /proc/iomem
>
> then, with luck, we'll be able to work out which /proc/iomem record
> immediately precedes the corrupted one.
>

miles@syntropy:~$ cat > test.sh
while read i
do
echo $i
sleep 1
done < /proc/iomem
^C
miles@syntropy:~$ sh test.sh
00000000-0009f7ff : System RAM
0009f800-0009ffff : reserved
000a0000-000bffff : Video RAM area
000c0000-000c7fff : Video ROM
000f0000-000fffff : System ROM
00100000-7f68ffff : System RAM
00100000-0039e4b7 : Kernel code
0039e4b8-004f0983 : Kernel data
00553000-007ecdfb : Kernel bss
7f690000-7f698fff : ACPI Tables
7f699000-7f6fffff : ACPI Non-volatile Storage
7f700000-7fffffff : reserved
88000000-8bffffff : PCI CardBus #05
8c000000-8fffffff : PCI CardBus #05
Segmentation fault

How do I determine what comes next?

Thanks,
         Miles

[-- Attachment #1.2: Type: text/html, Size: 1751 bytes --]

[-- Attachment #2: Type: text/plain, Size: 0 bytes --]



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

* Re: OOPS: 2.6.24-rc5-mm1 -- EIP is at r_show+0x2a/0x70 -- (triggered by "cat /proc/iomem" AFTER suspend-to-disk/resume)
  2007-12-21  5:58         ` Miles Lane
@ 2007-12-21  6:18           ` Miles Lane
  2007-12-21  6:29           ` Andrew Morton
       [not found]           ` <20071220222913.92a2c19f.akpm@linux-foundation.org>
  2 siblings, 0 replies; 8+ messages in thread
From: Miles Lane @ 2007-12-21  6:18 UTC (permalink / raw)
  To: Andrew Morton; +Cc: Pavel Machek, linux-pm, LKML, Christoph Lameter

Resending...  Curse GMail's HTML messages!

On Dec 21, 2007 12:58 AM, Miles Lane <miles.lane@gmail.com> wrote:
>
> On Dec 20, 2007 12:32 PM, Andrew Morton <akpm@linux-foundation.org> wrote:
>
> > On Thu, 20 Dec 2007 08:38:03 -0500 Miles Lane <miles.lane@gmail.com> wrote:
> >
> > > On further investigation, "cat /proc/iomem" does not trigger the stack
> > > trace until after a suspend-to-disk/resume cycle has occurred.
> >
> > I still can't reproduce this.
> >
> > Could you please try this?
> >
> > - cat /proc/iomem
> > - suspend/resume
> > - do
> >
> > while read i
> > do
> > echo $i
> > sleep 1
> > done < /proc/iomem
> >
> > then, with luck, we'll be able to work out which /proc/iomem record
> > immediately precedes the corrupted one.
> >
>
> miles@syntropy:~$ cat > test.sh
>
> while read i
> do
> echo $i
> sleep 1
> done < /proc/iomem
> ^C
> miles@syntropy:~$ sh test.sh
> 00000000-0009f7ff : System RAM
> 0009f800-0009ffff : reserved
> 000a0000-000bffff : Video RAM area
> 000c0000-000c7fff : Video ROM
> 000f0000-000fffff : System ROM
> 00100000-7f68ffff : System RAM
> 00100000-0039e4b7 : Kernel code
> 0039e4b8-004f0983 : Kernel data
> 00553000-007ecdfb : Kernel bss
> 7f690000-7f698fff : ACPI Tables
> 7f699000-7f6fffff : ACPI Non-volatile Storage
> 7f700000-7fffffff : reserved
> 88000000-8bffffff : PCI CardBus #05
> 8c000000-8fffffff : PCI CardBus #05
> Segmentation fault
>
> How do I determine what comes next?
>
> Thanks,
>          Miles
>

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

* Re: OOPS: 2.6.24-rc5-mm1 -- EIP is at r_show+0x2a/0x70 -- (triggered by "cat /proc/iomem" AFTER suspend-to-disk/resume)
  2007-12-21  5:58         ` Miles Lane
  2007-12-21  6:18           ` Miles Lane
@ 2007-12-21  6:29           ` Andrew Morton
       [not found]           ` <20071220222913.92a2c19f.akpm@linux-foundation.org>
  2 siblings, 0 replies; 8+ messages in thread
From: Andrew Morton @ 2007-12-21  6:29 UTC (permalink / raw)
  To: Miles Lane; +Cc: Pavel Machek, linux-pm, LKML, Christoph Lameter

On Fri, 21 Dec 2007 00:58:19 -0500 "Miles Lane" <miles.lane@gmail.com> wrote:

> On Dec 20, 2007 12:32 PM, Andrew Morton <akpm@linux-foundation.org> wrote:
> 
> > On Thu, 20 Dec 2007 08:38:03 -0500 Miles Lane <miles.lane@gmail.com>
> > wrote:
> >
> > > On further investigation, "cat /proc/iomem" does not trigger the stack
> > > trace until after a suspend-to-disk/resume cycle has occurred.
> >
> > I still can't reproduce this.
> >
> > Could you please try this?
> >
> > - cat /proc/iomem
> > - suspend/resume
> > - do
> >
> > while read i
> > do
> > echo $i
> > sleep 1
> > done < /proc/iomem
> >
> > then, with luck, we'll be able to work out which /proc/iomem record
> > immediately precedes the corrupted one.
> >
> 
> miles@syntropy:~$ cat > test.sh
> while read i
> do
> echo $i
> sleep 1
> done < /proc/iomem
> ^C
> miles@syntropy:~$ sh test.sh
> 00000000-0009f7ff : System RAM
> 0009f800-0009ffff : reserved
> 000a0000-000bffff : Video RAM area
> 000c0000-000c7fff : Video ROM
> 000f0000-000fffff : System ROM
> 00100000-7f68ffff : System RAM
> 00100000-0039e4b7 : Kernel code
> 0039e4b8-004f0983 : Kernel data
> 00553000-007ecdfb : Kernel bss
> 7f690000-7f698fff : ACPI Tables
> 7f699000-7f6fffff : ACPI Non-volatile Storage
> 7f700000-7fffffff : reserved
> 88000000-8bffffff : PCI CardBus #05
> 8c000000-8fffffff : PCI CardBus #05
> Segmentation fault
> 
> How do I determine what comes next?
> 

By comparing it with the /proc/iomem from prior to suspending the machine.

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

* Re: OOPS: 2.6.24-rc5-mm1 -- EIP is at r_show+0x2a/0x70 -- (triggered by "cat /proc/iomem" AFTER suspend-to-disk/resume)
       [not found]           ` <20071220222913.92a2c19f.akpm@linux-foundation.org>
@ 2007-12-21 16:06             ` Miles Lane
       [not found]             ` <a44ae5cd0712210806i7f020a71k8c552953f7aeef4d@mail.gmail.com>
  1 sibling, 0 replies; 8+ messages in thread
From: Miles Lane @ 2007-12-21 16:06 UTC (permalink / raw)
  To: Andrew Morton; +Cc: Pavel Machek, linux-pm, LKML, Christoph Lameter

On Dec 21, 2007 1:29 AM, Andrew Morton <akpm@linux-foundation.org> wrote:
>
> On Fri, 21 Dec 2007 00:58:19 -0500 "Miles Lane" <miles.lane@gmail.com> wrote:
>
> > On Dec 20, 2007 12:32 PM, Andrew Morton <akpm@linux-foundation.org> wrote:
> >
> > > On Thu, 20 Dec 2007 08:38:03 -0500 Miles Lane <miles.lane@gmail.com>
> > > wrote:
> > >
> > > > On further investigation, "cat /proc/iomem" does not trigger the stack
> > > > trace until after a suspend-to-disk/resume cycle has occurred.
> > >
> > > I still can't reproduce this.
> > >
> > > Could you please try this?
> > >
> > > - cat /proc/iomem
> > > - suspend/resume
> > > - do
> > >
> > > while read i
> > > do
> > > echo $i
> > > sleep 1
> > > done < /proc/iomem
> > >
> > > then, with luck, we'll be able to work out which /proc/iomem record
> > > immediately precedes the corrupted one.
> > >
> >
> > miles@syntropy:~$ cat > test.sh
> > while read i
> > do
> > echo $i
> > sleep 1
> > done < /proc/iomem
> > ^C
> > miles@syntropy:~$ sh test.sh
> > 00000000-0009f7ff : System RAM
> > 0009f800-0009ffff : reserved
> > 000a0000-000bffff : Video RAM area
> > 000c0000-000c7fff : Video ROM
> > 000f0000-000fffff : System ROM
> > 00100000-7f68ffff : System RAM
> > 00100000-0039e4b7 : Kernel code
> > 0039e4b8-004f0983 : Kernel data
> > 00553000-007ecdfb : Kernel bss
> > 7f690000-7f698fff : ACPI Tables
> > 7f699000-7f6fffff : ACPI Non-volatile Storage
> > 7f700000-7fffffff : reserved
> > 88000000-8bffffff : PCI CardBus #05
> > 8c000000-8fffffff : PCI CardBus #05
> > Segmentation fault
> >
> > How do I determine what comes next?
> >
>
> By comparing it with the /proc/iomem from prior to suspending the machine.
>

The offending information seems to be "90000000-90000fff : Intel Flush Page"

root@syntropy:~# cat /proc/iomem
00000000-0009f7ff : System RAM
0009f800-0009ffff : reserved
000a0000-000bffff : Video RAM area
000c0000-000c7fff : Video ROM
000f0000-000fffff : System ROM
00100000-7f68ffff : System RAM
00100000-0039e4b7 : Kernel code
0039e4b8-004f0983 : Kernel data
00553000-007ecdfb : Kernel bss
7f690000-7f698fff : ACPI Tables
7f699000-7f6fffff : ACPI Non-volatile Storage
7f700000-7fffffff : reserved
88000000-8bffffff : PCI CardBus #05
8c000000-8fffffff : PCI CardBus #05
90000000-90000fff : Intel Flush Page
c0000000-cfffffff : 0000:00:02.0
d0000000-d1ffffff : PCI Bus #02
d2000000-d3ffffff : PCI Bus #03
d4000000-d5ffffff : PCI Bus #02
d4000000-d4003fff : 0000:02:00.0
d4000000-d4003fff : sky2
d6000000-d7ffffff : PCI Bus #03
d6000000-d6000fff : 0000:03:00.0
d6000000-d6000fff : iwl3945
d8000000-d80fffff : PCI Bus #04
d8000000-d8003fff : 0000:04:09.1
d8004000-d8004fff : 0000:04:09.2
d8004000-d8004fff : tifm_7xx1
d8005000-d80057ff : 0000:04:09.1
d8005000-d80057ff : ohci1394
d8006000-d8006fff : 0000:04:09.0
d8006000-d8006fff : yenta_socket
d8100000-d817ffff : 0000:00:02.0
d8180000-d81fffff : 0000:00:02.1
d8200000-d823ffff : 0000:00:02.0
d8240000-d8243fff : 0000:00:1b.0
d8240000-d8243fff : ICH HD audio
d8444000-d84443ff : 0000:00:1d.7
d8444000-d84443ff : ehci_hcd
d8444400-d84447ff : 0000:00:1f.2
d8444400-d84447ff : ahci
e0000000-efffffff : PCI MMCONFIG 0
e0000000-efffffff : reserved
fec00000-fec0ffff : reserved
fed00000-fed003ff : HPET 0
fed00000-fed003ff : reserved
fed14000-fed19fff : reserved
fed1c000-fed8ffff : reserved
fee00000-fee00fff : reserved
ff000000-ffffffff : reserved

~# lspci
00:00.0 Host bridge: Intel Corporation Mobile 945GM/PM/GMS, 943/940GML
and 945GT Express Memory Controller Hub (rev 03)
00:02.0 VGA compatible controller: Intel Corporation Mobile 945GM/GMS,
943/940GML Express Integrated Graphics Controller (rev 03)
00:02.1 Display controller: Intel Corporation Mobile 945GM/GMS/GME,
943/940GML Express Integrated Graphics Controller (rev 03)
00:1b.0 Audio device: Intel Corporation 82801G (ICH7 Family) High
Definition Audio Controller (rev 02)
00:1c.0 PCI bridge: Intel Corporation 82801G (ICH7 Family) PCI Express
Port 1 (rev 02)
00:1c.1 PCI bridge: Intel Corporation 82801G (ICH7 Family) PCI Express
Port 2 (rev 02)
00:1d.0 USB Controller: Intel Corporation 82801G (ICH7 Family) USB
UHCI Controller #1 (rev 02)
00:1d.1 USB Controller: Intel Corporation 82801G (ICH7 Family) USB
UHCI Controller #2 (rev 02)
00:1d.2 USB Controller: Intel Corporation 82801G (ICH7 Family) USB
UHCI Controller #3 (rev 02)
00:1d.3 USB Controller: Intel Corporation 82801G (ICH7 Family) USB
UHCI Controller #4 (rev 02)
00:1d.7 USB Controller: Intel Corporation 82801G (ICH7 Family) USB2
EHCI Controller (rev 02)
00:1e.0 PCI bridge: Intel Corporation 82801 Mobile PCI Bridge (rev e2)
00:1f.0 ISA bridge: Intel Corporation 82801GBM (ICH7-M) LPC Interface
Bridge (rev 02)
00:1f.1 IDE interface: Intel Corporation 82801G (ICH7 Family) IDE
Controller (rev 02)
00:1f.2 SATA controller: Intel Corporation 82801GBM/GHM (ICH7 Family)
SATA AHCI Controller (rev 02)
00:1f.3 SMBus: Intel Corporation 82801G (ICH7 Family) SMBus Controller (rev 02)
02:00.0 Ethernet controller: Marvell Technology Group Ltd. 88E8038
PCI-E Fast Ethernet Controller (rev 14)
03:00.0 Network controller: Intel Corporation PRO/Wireless 3945ABG
Network Connection (rev 02)
04:09.0 CardBus bridge: Texas Instruments PCIxx12 Cardbus Controller
04:09.1 FireWire (IEEE 1394): Texas Instruments PCIxx12 OHCI Compliant
IEEE 1394 Host Controller
04:09.2 Mass storage controller: Texas Instruments 5-in-1 Multimedia
Card Reader (SD/MMC/MS/MS PRO/xD)

I hope this helps,
          Miles

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

* Re: OOPS: 2.6.24-rc5-mm1 -- EIP is at r_show+0x2a/0x70 -- (triggered by "cat /proc/iomem" AFTER suspend-to-disk/resume)
       [not found]             ` <a44ae5cd0712210806i7f020a71k8c552953f7aeef4d@mail.gmail.com>
@ 2007-12-21 20:00               ` Andrew Morton
       [not found]               ` <20071221120000.b319b735.akpm@linux-foundation.org>
  1 sibling, 0 replies; 8+ messages in thread
From: Andrew Morton @ 2007-12-21 20:00 UTC (permalink / raw)
  To: Miles Lane; +Cc: Dave Airlie, Pavel Machek, linux-pm, LKML, Christoph Lameter

On Fri, 21 Dec 2007 11:06:49 -0500 "Miles Lane" <miles.lane@gmail.com> wrote:

> > >
> > > How do I determine what comes next?
> > >
> >
> > By comparing it with the /proc/iomem from prior to suspending the machine.
> >
> 
> The offending information seems to be "90000000-90000fff : Intel Flush Page"

ah-hah.  git-agpgart.patch

> I hope this helps,

It does, thanks.

Dave, a `cat /proc/iomem' crashes after a suspend/resume cycle when it
reaches the intel_private.ifp_resource record.


intel_i915_configure() is called on each resume and it calls
intel_i9xx_setup_flush() which zeroes out the already-registered `struct
resource', causing core kernel to oops over a deref of
parent/sibling/child.

Probably this:

--- a/drivers/char/agp/intel-agp.c~a
+++ a/drivers/char/agp/intel-agp.c
@@ -883,8 +883,6 @@ static void intel_i965_g33_setup_chipset
 static void intel_i9xx_setup_flush(void)
 {
 	/* setup a resource for this object */
-	memset(&intel_private.ifp_resource, 0, sizeof(intel_private.ifp_resource));
-
 	intel_private.ifp_resource.name = "Intel Flush Page";
 	intel_private.ifp_resource.flags = IORESOURCE_MEM;
 
_


will be enough to prevent the crash, but I suspect a bit more than that
will be needed.

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

* Re: OOPS: 2.6.24-rc5-mm1 -- EIP is at r_show+0x2a/0x70 -- (triggered by "cat /proc/iomem" AFTER suspend-to-disk/resume)
       [not found]               ` <20071221120000.b319b735.akpm@linux-foundation.org>
@ 2007-12-21 21:18                 ` Miles Lane
  0 siblings, 0 replies; 8+ messages in thread
From: Miles Lane @ 2007-12-21 21:18 UTC (permalink / raw)
  To: Andrew Morton
  Cc: Dave Airlie, Pavel Machek, linux-pm, LKML, Christoph Lameter

On Dec 21, 2007 3:00 PM, Andrew Morton <akpm@linux-foundation.org> wrote:
> On Fri, 21 Dec 2007 11:06:49 -0500 "Miles Lane" <miles.lane@gmail.com> wrote:
>
> > > >
> > > > How do I determine what comes next?
> > > >
> > >
> > > By comparing it with the /proc/iomem from prior to suspending the machine.
> > >
> >
> > The offending information seems to be "90000000-90000fff : Intel Flush Page"
>
> ah-hah.  git-agpgart.patch
>
> > I hope this helps,
>
> It does, thanks.
>
> Dave, a `cat /proc/iomem' crashes after a suspend/resume cycle when it
> reaches the intel_private.ifp_resource record.
>
>
> intel_i915_configure() is called on each resume and it calls
> intel_i9xx_setup_flush() which zeroes out the already-registered `struct
> resource', causing core kernel to oops over a deref of
> parent/sibling/child.
>
> Probably this:
>
> --- a/drivers/char/agp/intel-agp.c~a
> +++ a/drivers/char/agp/intel-agp.c
> @@ -883,8 +883,6 @@ static void intel_i965_g33_setup_chipset
>  static void intel_i9xx_setup_flush(void)
>  {
>         /* setup a resource for this object */
> -       memset(&intel_private.ifp_resource, 0, sizeof(intel_private.ifp_resource));
> -
>         intel_private.ifp_resource.name = "Intel Flush Page";
>         intel_private.ifp_resource.flags = IORESOURCE_MEM;
>
> _
>
>
> will be enough to prevent the crash, but I suspect a bit more than that
> will be needed.
>

I tested with the patch applied, and the stackdump did not occur.
However, I notice that the values listed for Intel Page Flush is
changed from the pre-suspend values:

Before the suspend:
90000000-90000fff : Intel Flush Page

After the resume:
00000000-90001000 : Intel Flush Page

# patch -p1 < akpm.patch
patching file drivers/char/agp/intel-agp.c
Hunk #1 succeeded at 891 (offset 8 lines).

$ cat /proc/iomem
00000000-0009f7ff : System RAM
0009f800-0009ffff : reserved
000a0000-000bffff : Video RAM area
000c0000-000c7fff : Video ROM
000f0000-000fffff : System ROM
00100000-7f68ffff : System RAM
  00100000-0039e4a7 : Kernel code
0039e4a8-004f0983 : Kernel data
00553000-007ecdfb : Kernel bss
7f690000-7f698fff : ACPI Tables
7f699000-7f6fffff : ACPI Non-volatile Storage
7f700000-7fffffff : reserved
88000000-8bffffff : PCI CardBus #05
8c000000-8fffffff : PCI CardBus #05
00000000-90001000 : Intel Flush Page
c0000000-cfffffff : 0000:00:02.0
d0000000-d1ffffff : PCI Bus #02
d2000000-d3ffffff : PCI Bus #03
d4000000-d5ffffff : PCI Bus #02
d4000000-d4003fff : 0000:02:00.0
d4000000-d4003fff : sky2
d6000000-d7ffffff : PCI Bus #03
d6000000-d6000fff : 0000:03:00.0
d6000000-d6000fff : iwl3945
d8000000-d80fffff : PCI Bus #04
d8000000-d8003fff : 0000:04:09.1
d8004000-d8004fff : 0000:04:09.2
d8004000-d8004fff : tifm_7xx1
d8005000-d80057ff : 0000:04:09.1
d8005000-d80057ff : ohci1394
d8006000-d8006fff : 0000:04:09.0
d8006000-d8006fff : yenta_socket
d8100000-d817ffff : 0000:00:02.0
d8180000-d81fffff : 0000:00:02.1
d8200000-d823ffff : 0000:00:02.0
d8240000-d8243fff : 0000:00:1b.0
d8240000-d8243fff : ICH HD audio
d8444000-d84443ff : 0000:00:1d.7
d8444000-d84443ff : ehci_hcd
d8444400-d84447ff : 0000:00:1f.2
d8444400-d84447ff : ahci
e0000000-efffffff : PCI MMCONFIG 0
e0000000-efffffff : reserved
fec00000-fec0ffff : reserved
fed00000-fed003ff : HPET 0
fed00000-fed003ff : reserved
fed14000-fed19fff : reserved
fed1c000-fed8ffff : reserved
fee00000-fee00fff : reserved
ff000000-ffffffff : reserved

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

end of thread, other threads:[~2007-12-21 21:18 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
     [not found] <a44ae5cd0712192040k7480682eoa29f33d70a91c618@mail.gmail.com>
     [not found] ` <4769F409.6030300@gmail.com>
     [not found]   ` <4769FF37.5060308@gmail.com>
2007-12-20 13:38     ` OOPS: 2.6.24-rc5-mm1 -- EIP is at r_show+0x2a/0x70 -- (triggered by "cat /proc/iomem" AFTER suspend-to-disk/resume) Miles Lane
     [not found]     ` <476A703B.50804@gmail.com>
2007-12-20 17:32       ` Andrew Morton
     [not found]       ` <20071220093206.22f319b0.akpm@linux-foundation.org>
2007-12-21  5:58         ` Miles Lane
2007-12-21  6:18           ` Miles Lane
2007-12-21  6:29           ` Andrew Morton
     [not found]           ` <20071220222913.92a2c19f.akpm@linux-foundation.org>
2007-12-21 16:06             ` Miles Lane
     [not found]             ` <a44ae5cd0712210806i7f020a71k8c552953f7aeef4d@mail.gmail.com>
2007-12-21 20:00               ` Andrew Morton
     [not found]               ` <20071221120000.b319b735.akpm@linux-foundation.org>
2007-12-21 21:18                 ` Miles Lane

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