mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
* 2.6.14-rc5 GPF in radeon_cp_init_ring_buffer()
@ 2005-10-25 16:28 Badari Pulavarty
  2005-10-25 21:25 ` Ivan Kokshaysky
  0 siblings, 1 reply; 3+ messages in thread
From: Badari Pulavarty @ 2005-10-25 16:28 UTC (permalink / raw)
  To: lkml

Hi,

On my EM64T machine, X gets killed every time due to
following GFP. Happens on mainline & -mm kernels.
Hasn't annoyed me enough to take a look on why ?

Known issue ?

Thanks,
Badari


general protection fault: 0000 [1] SMP
CPU 0
Modules linked in: radeon parport_pc lp parport autofs4 sunrpc dm_mirror
dm_mod ipv6 uhci_hcd ehci_hcd hw_random i2c_i801 i2c_core floppy
Pid: 3668, comm: X Not tainted 2.6.14-rc5 #6
RIP: 0010:[<ffffffff880f98a7>]
<ffffffff880f98a7>{:radeon:radeon_cp_init_ring_buffer+311}
RSP: 0018:ffff81011c9edd68  EFLAGS: 00010203
RAX: ffff81011bf7c000 RBX: ffff81011d566c00 RCX: ffffc20000104e00
RDX: 0000000000000000 RSI: ffff81011cd6b580 RDI: 000ffffc20000104
RBP: ffff81011cd09000 R08: 0000000006524000 R09: 0000000000000000
R10: 0000000000000000 R11: 0000000000000000 R12: ffff81011d566c00
R13: ffff81011c9eddb8 R14: ffffffff880fa000 R15: 0000000040786440
FS:  00002aaaaaacb920(0000) GS:ffffffff805b0800(0000)
knlGS:0000000000000000
CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
CR2: 00000000006fea48 CR3: 000000011c998000 CR4: 00000000000006e0
Process X (pid: 3668, threadinfo ffff81011c9ec000, task
ffff81011cc651c0)
Stack: ffff81011cd09000 0000000000000001 ffff81011cd09000
ffffffff880fad58
       0000000000009f60 ffffffff8016027f 0000000000704d40
000000000000002c
       ffff81011c827018 ffff81011c9ede08
Call Trace:<ffffffff880fad58>{:radeon:radeon_cp_init+3416}
<ffffffff8016027f>{generic_file_aio_write+143}
       <ffffffff880fa000>{:radeon:radeon_cp_init+0}
<ffffffff802736f5>{drm_ioctl+405}
       <ffffffff80197f34>{do_ioctl+116} <ffffffff80198212>{vfs_ioctl
+690}
       <ffffffff80183908>{vfs_write+344} <ffffffff801982aa>{sys_ioctl
+106}
       <ffffffff8010dc26>{system_call+126}

Code: 48 8b 14 f8 48 8b 83 30 01 00 00 48 8b 40 18 89 90 0c 07 00
RIP <ffffffff880f98a7>{:radeon:radeon_cp_init_ring_buffer+311} RSP
<ffff81011c9edd68>
 <3>[drm:drm_release] *ERROR* Device busy: 1 0
mtrr: type mismatch for f0000000,1000000 old: write-back new: write-
combining
mtrr: type mismatch for f0000000,8000000 old: write-back new: write-
combining
iounmap: bad address ffffc20000373000
mtrr: type mismatch for f0000000,8000000 old: write-back new: write-
combining
general protection fault: 0000 [2] SMP
CPU 1
Modules linked in: radeon parport_pc lp parport autofs4 sunrpc dm_mirror
dm_mod ipv6 uhci_hcd ehci_hcd hw_random i2c_i801 i2c_core floppy
Pid: 3958, comm: X Not tainted 2.6.14-rc5 #6
RIP: 0010:[<ffffffff880f98a7>]
<ffffffff880f98a7>{:radeon:radeon_cp_init_ring_buffer+311}
RSP: 0018:ffff81012610fd68  EFLAGS: 00010203
RAX: ffff81011bf7c000 RBX: ffff81011d566c00 RCX: ffffc20000104e00
RDX: 0000000000000000 RSI: ffff81011cd6b480 RDI: 000ffffc20000104
RBP: ffff81011cd09000 R08: 0000000006d2c000 R09: 0000000000000000
R10: 0000000000000000 R11: 0000000000000000 R12: ffff81011d566c00
R13: ffff81012610fdb8 R14: ffffffff880fa000 R15: 0000000040786440
FS:  00002aaaaaacb920(0000) GS:ffffffff805b0880(0000)
knlGS:0000000000000000
CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
CR2: 0000000000471153 CR3: 0000000125fbd000 CR4: 00000000000006e0
Process X (pid: 3958, threadinfo ffff81012610e000, task
ffff810037d558c0)
Stack: ffff81011cd09000 0000000000000001 ffff81011cd09000
ffffffff880fad58
       0000000000009e6b ffffffff8016027f 0000000000704d40
000000000000002c
       0000000000000292 ffff81012610fe08
Call Trace:<ffffffff880fad58>{:radeon:radeon_cp_init+3416}
<ffffffff8016027f>{generic_file_aio_write+143}
       <ffffffff880fa000>{:radeon:radeon_cp_init+0}
<ffffffff802736f5>{drm_ioctl+405}
       <ffffffff80197f34>{do_ioctl+116} <ffffffff80198212>{vfs_ioctl
+690}
       <ffffffff80183908>{vfs_write+344} <ffffffff801982aa>{sys_ioctl
+106}
       <ffffffff8010dc26>{system_call+126}

Code: 48 8b 14 f8 48 8b 83 30 01 00 00 48 8b 40 18 89 90 0c 07 00
RIP <ffffffff880f98a7>{:radeon:radeon_cp_init_ring_buffer+311} RSP
<ffff81012610fd68>
 <3>[drm:drm_release] *ERROR* Device busy: 1 0
mtrr: type mismatch for f0000000,1000000 old: write-back new: write-
combining
mtrr: type mismatch for f0000000,8000000 old: write-back new: write-
combining
iounmap: bad address ffffc20000373000
mtrr: type mismatch for f0000000,8000000 old: write-back new: write-
combining
general protection fault: 0000 [3] SMP
CPU 0
Modules linked in: radeon parport_pc lp parport autofs4 sunrpc dm_mirror
dm_mod ipv6 uhci_hcd ehci_hcd hw_random i2c_i801 i2c_core floppy
Pid: 4108, comm: X Not tainted 2.6.14-rc5 #6
RIP: 0010:[<ffffffff880f98a7>]
<ffffffff880f98a7>{:radeon:radeon_cp_init_ring_buffer+311}
RSP: 0018:ffff810123e11d68  EFLAGS: 00010203
RAX: ffff81011bf7c000 RBX: ffff81011d566c00 RCX: ffffc20000104e00
RDX: 0000000000000000 RSI: ffff81011cd6b3c0 RDI: 000ffffc20000104
RBP: ffff81011cd09000 R08: 0000000007534000 R09: 0000000000000000
R10: 0000000000000000 R11: 0000000000000000 R12: ffff81011d566c00
R13: ffff810123e11db8 R14: ffffffff880fa000 R15: 0000000040786440
FS:  00002aaaaaacb920(0000) GS:ffffffff805b0800(0000)
knlGS:0000000000000000
CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
CR2: 0000000000471153 CR3: 0000000126dbc000 CR4: 00000000000006e0
Process X (pid: 4108, threadinfo ffff810123e10000, task
ffff81011ca45880)
Stack: ffff81011cd09000 0000000000000001 ffff81011cd09000
ffffffff880fad58
       0000000000009e6b ffffffff8016027f 0000000000704d40
000000000000002c
       0000000000000292 ffff810123e11e08
Call Trace:<ffffffff880fad58>{:radeon:radeon_cp_init+3416}
<ffffffff8016027f>{generic_file_aio_write+143}
       <ffffffff880fa000>{:radeon:radeon_cp_init+0}
<ffffffff802736f5>{drm_ioctl+405}
       <ffffffff80197f34>{do_ioctl+116} <ffffffff80198212>{vfs_ioctl
+690}
       <ffffffff80183908>{vfs_write+344} <ffffffff801982aa>{sys_ioctl
+106}
       <ffffffff8010dc26>{system_call+126}

Code: 48 8b 14 f8 48 8b 83 30 01 00 00 48 8b 40 18 89 90 0c 07 00
RIP <ffffffff880f98a7>{:radeon:radeon_cp_init_ring_buffer+311} RSP
<ffff810123e11d68>
 <3>[drm:drm_release] *ERROR* Device busy: 1 0



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

* Re: 2.6.14-rc5 GPF in radeon_cp_init_ring_buffer()
  2005-10-25 16:28 2.6.14-rc5 GPF in radeon_cp_init_ring_buffer() Badari Pulavarty
@ 2005-10-25 21:25 ` Ivan Kokshaysky
  2005-10-25 21:35   ` Dave Airlie
  0 siblings, 1 reply; 3+ messages in thread
From: Ivan Kokshaysky @ 2005-10-25 21:25 UTC (permalink / raw)
  To: Badari Pulavarty; +Cc: lkml

On Tue, Oct 25, 2005 at 09:28:02AM -0700, Badari Pulavarty wrote:
> On my EM64T machine, X gets killed every time due to
> following GFP. Happens on mainline & -mm kernels.
> Hasn't annoyed me enough to take a look on why ?

I've seen similar failure on alpha.

Obviously, someone forgot to convert sg->handle stuff for
PCI gart case.

Ivan.

--- 2.6.14-rc5/drivers/char/drm/radeon_cp.c	Fri Sep 23 23:39:48 2005
+++ linux/drivers/char/drm/radeon_cp.c	Sat Sep 24 02:59:22 2005
@@ -1136,7 +1136,7 @@ static void radeon_cp_init_ring_buffer( 
        } else
 #endif
 		ring_start = (dev_priv->cp_ring->offset
-			      - dev->sg->handle
+			      - (unsigned long)dev->sg->virtual
 			      + dev_priv->gart_vm_start);
 
 	RADEON_WRITE( RADEON_CP_RB_BASE, ring_start );
@@ -1164,7 +1164,8 @@ static void radeon_cp_init_ring_buffer( 
 		drm_sg_mem_t *entry = dev->sg;
 		unsigned long tmp_ofs, page_ofs;
 
-		tmp_ofs = dev_priv->ring_rptr->offset - dev->sg->handle;
+		tmp_ofs = dev_priv->ring_rptr->offset - 
+				(unsigned long)dev->sg->virtual;
 		page_ofs = tmp_ofs >> PAGE_SHIFT;
 
 		RADEON_WRITE( RADEON_CP_RB_RPTR_ADDR,
@@ -1491,8 +1492,8 @@ static int radeon_do_init_cp( drm_device
 	else
 #endif
 		dev_priv->gart_buffers_offset = (dev->agp_buffer_map->offset
-						- dev->sg->handle
-						+ dev_priv->gart_vm_start);
+					- (unsigned long)dev->sg->virtual
+					+ dev_priv->gart_vm_start);
 
 	DRM_DEBUG( "dev_priv->gart_size %d\n",
 		   dev_priv->gart_size );

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

* Re: 2.6.14-rc5 GPF in radeon_cp_init_ring_buffer()
  2005-10-25 21:25 ` Ivan Kokshaysky
@ 2005-10-25 21:35   ` Dave Airlie
  0 siblings, 0 replies; 3+ messages in thread
From: Dave Airlie @ 2005-10-25 21:35 UTC (permalink / raw)
  To: Ivan Kokshaysky; +Cc: Badari Pulavarty, lkml

On 10/26/05, Ivan Kokshaysky <ink@jurassic.park.msu.ru> wrote:
> On Tue, Oct 25, 2005 at 09:28:02AM -0700, Badari Pulavarty wrote:
> > On my EM64T machine, X gets killed every time due to
> > following GFP. Happens on mainline & -mm kernels.
> > Hasn't annoyed me enough to take a look on why ?
>
> I've seen similar failure on alpha.
>
> Obviously, someone forgot to convert sg->handle stuff for
> PCI gart case.

No someone forgot that that patch needed to go in.. it's already
sitting in my -mm queue, after PCI Express support...

I forgot it would've broken normal PCI GART support..

I'll push it to Linus in a while.

Dave.
>
> Ivan.
>
> --- 2.6.14-rc5/drivers/char/drm/radeon_cp.c     Fri Sep 23 23:39:48 2005
> +++ linux/drivers/char/drm/radeon_cp.c  Sat Sep 24 02:59:22 2005
> @@ -1136,7 +1136,7 @@ static void radeon_cp_init_ring_buffer(
>         } else
>  #endif
>                 ring_start = (dev_priv->cp_ring->offset
> -                             - dev->sg->handle
> +                             - (unsigned long)dev->sg->virtual
>                               + dev_priv->gart_vm_start);
>
>         RADEON_WRITE( RADEON_CP_RB_BASE, ring_start );
> @@ -1164,7 +1164,8 @@ static void radeon_cp_init_ring_buffer(
>                 drm_sg_mem_t *entry = dev->sg;
>                 unsigned long tmp_ofs, page_ofs;
>
> -               tmp_ofs = dev_priv->ring_rptr->offset - dev->sg->handle;
> +               tmp_ofs = dev_priv->ring_rptr->offset -
> +                               (unsigned long)dev->sg->virtual;
>                 page_ofs = tmp_ofs >> PAGE_SHIFT;
>
>                 RADEON_WRITE( RADEON_CP_RB_RPTR_ADDR,
> @@ -1491,8 +1492,8 @@ static int radeon_do_init_cp( drm_device
>         else
>  #endif
>                 dev_priv->gart_buffers_offset = (dev->agp_buffer_map->offset
> -                                               - dev->sg->handle
> -                                               + dev_priv->gart_vm_start);
> +                                       - (unsigned long)dev->sg->virtual
> +                                       + dev_priv->gart_vm_start);
>
>         DRM_DEBUG( "dev_priv->gart_size %d\n",
>                    dev_priv->gart_size );
> -
> 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/
>

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

end of thread, other threads:[~2005-10-25 21:35 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2005-10-25 16:28 2.6.14-rc5 GPF in radeon_cp_init_ring_buffer() Badari Pulavarty
2005-10-25 21:25 ` Ivan Kokshaysky
2005-10-25 21:35   ` Dave Airlie

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

Powered by JetHome