FAQ Search Today's Posts Mark Forums Read
» Video Reviews

» Linux Archive

Linux-archive is a website aiming to archive linux email lists and to make them easily accessible for linux users/developers.


» Sponsor

» Partners

» Sponsor


 
 
LinkBack Thread Tools
 
Old 01-16-2008, 10:17 PM
"Bastian, Waldo"
 
Default Backtrace

DRM_IOCTL_LOCK ends up with drm_lock() in drm_lock.c part of drm.ko

Cheers,
Waldo

Intel Corporation - Platform Software Engineering, UMG - Hillsboro,
Oregon

-----Original Message-----
From: ubuntu-mobile-bounces@lists.ubuntu.com
[mailto:ubuntu-mobile-bounces@lists.ubuntu.com] On Behalf Of Bryce
Harrington
Sent: Wednesday, January 16, 2008 2:55 PM
To: Gunawardana, Inuka
Cc: ubuntu-mobile@lists.ubuntu.com
Subject: Backtrace

Finally got a readable backtrace:

#0 0xb7fd440e in __kernel_vsyscall ()
#1 0xb7e25bc9 in ioctl () from /lib/libc.so.6
#2 0xb7bc4a1d in drmGetLock (fd=10, context=2, flags=3213662516) at
xf86drm.c:1259
#3 0xb7bb951b in psbDRILock (pScrn=0x820bcd0, flags=0) at psb_dri.c:724
#4 0xb7baf983 in psbScreenInit (scrnIndex=0, pScreen=0x821b2d8, argc=6,
argv=0xbf8c9b74) at psb_driver.c:1342
#5 0x08073ddb in AddScreen (pfnInit=0xb7baf7f0 <psbScreenInit>, argc=6,
argv=0xbf8c9b74) at ../../dix/main.c:769
#6 0x080a6e39 in InitOutput (pScreenInfo=0x81fa640, argc=6,
argv=0xbf8c9b74) at ../../../../hw/xfree86/common/xf86Init.c:850
#7 0x08074590 in main (argc=6, argv=0xbf8c9b74, envp=Cannot access
memory at address 0x40086432
) at ../../dix/main.c:369

This also confirms my explorations from the other side, that the issue
is within psbDRILock.

drmGetLock is defined in libdrm, as this:

int drmGetLock(int fd, drm_context_t context, drmLockFlags flags)
{
drm_lock_t lock;

lock.context = context;
lock.flags = 0;
if (flags & DRM_LOCK_READY) lock.flags |= _DRM_LOCK_READY;
if (flags & DRM_LOCK_QUIESCENT) lock.flags |= _DRM_LOCK_QUIESCENT;
if (flags & DRM_LOCK_FLUSH) lock.flags |= _DRM_LOCK_FLUSH;
if (flags & DRM_LOCK_FLUSH_ALL) lock.flags |= _DRM_LOCK_FLUSH_ALL;
if (flags & DRM_HALT_ALL_QUEUES) lock.flags |= _DRM_HALT_ALL_QUEUES;
if (flags & DRM_HALT_CUR_QUEUES) lock.flags |= _DRM_HALT_CUR_QUEUES;

while (ioctl(fd, DRM_IOCTL_LOCK, &lock))
;
return 0;
}

Bryce


--
Ubuntu-mobile mailing list
Ubuntu-mobile@lists.ubuntu.com
Modify settings or unsubscribe at:
https://lists.ubuntu.com/mailman/listinfo/ubuntu-mobile

--
Ubuntu-mobile mailing list
Ubuntu-mobile@lists.ubuntu.com
Modify settings or unsubscribe at: https://lists.ubuntu.com/mailman/listinfo/ubuntu-mobile
 
Old 01-16-2008, 10:21 PM
"Amit Kucheria"
 
Default Backtrace

I am currently reading through that part of the code to make sure that
some Kconfig options are not responsible for this behaviour. If you
can think of any, it would be a help.

Regards,
Amit

On Jan 17, 2008 1:17 AM, Bastian, Waldo <waldo.bastian@intel.com> wrote:
> DRM_IOCTL_LOCK ends up with drm_lock() in drm_lock.c part of drm.ko
>
> Cheers,
> Waldo
>
> Intel Corporation - Platform Software Engineering, UMG - Hillsboro,
> Oregon
>
>
> -----Original Message-----
> From: ubuntu-mobile-bounces@lists.ubuntu.com
> [mailto:ubuntu-mobile-bounces@lists.ubuntu.com] On Behalf Of Bryce
> Harrington
> Sent: Wednesday, January 16, 2008 2:55 PM
> To: Gunawardana, Inuka
> Cc: ubuntu-mobile@lists.ubuntu.com
> Subject: Backtrace
>
> Finally got a readable backtrace:
>
> #0 0xb7fd440e in __kernel_vsyscall ()
> #1 0xb7e25bc9 in ioctl () from /lib/libc.so.6
> #2 0xb7bc4a1d in drmGetLock (fd=10, context=2, flags=3213662516) at
> xf86drm.c:1259
> #3 0xb7bb951b in psbDRILock (pScrn=0x820bcd0, flags=0) at psb_dri.c:724
> #4 0xb7baf983 in psbScreenInit (scrnIndex=0, pScreen=0x821b2d8, argc=6,
> argv=0xbf8c9b74) at psb_driver.c:1342
> #5 0x08073ddb in AddScreen (pfnInit=0xb7baf7f0 <psbScreenInit>, argc=6,
> argv=0xbf8c9b74) at ../../dix/main.c:769
> #6 0x080a6e39 in InitOutput (pScreenInfo=0x81fa640, argc=6,
> argv=0xbf8c9b74) at ../../../../hw/xfree86/common/xf86Init.c:850
> #7 0x08074590 in main (argc=6, argv=0xbf8c9b74, envp=Cannot access
> memory at address 0x40086432
> ) at ../../dix/main.c:369
>
> This also confirms my explorations from the other side, that the issue
> is within psbDRILock.
>
> drmGetLock is defined in libdrm, as this:
>
> int drmGetLock(int fd, drm_context_t context, drmLockFlags flags)
> {
> drm_lock_t lock;
>
> lock.context = context;
> lock.flags = 0;
> if (flags & DRM_LOCK_READY) lock.flags |= _DRM_LOCK_READY;
> if (flags & DRM_LOCK_QUIESCENT) lock.flags |= _DRM_LOCK_QUIESCENT;
> if (flags & DRM_LOCK_FLUSH) lock.flags |= _DRM_LOCK_FLUSH;
> if (flags & DRM_LOCK_FLUSH_ALL) lock.flags |= _DRM_LOCK_FLUSH_ALL;
> if (flags & DRM_HALT_ALL_QUEUES) lock.flags |= _DRM_HALT_ALL_QUEUES;
> if (flags & DRM_HALT_CUR_QUEUES) lock.flags |= _DRM_HALT_CUR_QUEUES;
>
> while (ioctl(fd, DRM_IOCTL_LOCK, &lock))
> ;
> return 0;
> }
>
> Bryce
>
>
> --
> Ubuntu-mobile mailing list
> Ubuntu-mobile@lists.ubuntu.com
> Modify settings or unsubscribe at:
> https://lists.ubuntu.com/mailman/listinfo/ubuntu-mobile
>
> --
> Ubuntu-mobile mailing list
> Ubuntu-mobile@lists.ubuntu.com
> Modify settings or unsubscribe at: https://lists.ubuntu.com/mailman/listinfo/ubuntu-mobile
>

--
Ubuntu-mobile mailing list
Ubuntu-mobile@lists.ubuntu.com
Modify settings or unsubscribe at: https://lists.ubuntu.com/mailman/listinfo/ubuntu-mobile
 
Old 01-17-2008, 03:04 PM
"Amit Kucheria"
 
Default Backtrace

Hi,

# echo 1 > /sys/module/drm/parameters/debug

gives us more insight of what is happening inside the kernel...

[drm:drm_stub_open]
[drm:drm_open_helper] pid = 4753, minor = 0
[drm:drm_addmap_core] offset = 0x00000000, size = 0x00002000, type = 2
[drm:drm_addmap_core] 8192 13 f8a37000
[drm:drm_setup]
[drm:drm_unlocked_ioctl] pid=4753, cmd=0xc0246400, nr=0x00, dev 0xe200, auth=1
[drm:drm_unlocked_ioctl] pid=4753, cmd=0xc0246400, nr=0x00, dev 0xe200, auth=1
[drm:drm_release] open_count = 1
[drm:drm_release] pid = 4753, device = 0xe200, open_count = 1
[drm:drm_fasync] fd = -1, device = 0xe200
[drm:drm_lastclose]
[drm:drm_lastclose] driver lastclose completed
[drm:drm_lastclose] lastclose completed
[drm:drm_stub_open]
[drm:drm_open_helper] pid = 4753, minor = 0
[drm:drm_addmap_core] offset = 0x00000000, size = 0x00002000, type = 2
[drm:drm_addmap_core] 8192 13 f8a37000
[drm:drm_setup]
[drm:drm_unlocked_ioctl] pid=4753, cmd=0xc0246400, nr=0x00, dev 0xe200, auth=1
[drm:drm_unlocked_ioctl] pid=4753, cmd=0xc0246400, nr=0x00, dev 0xe200, auth=1
[drm:drm_release] open_count = 1
[drm:drm_release] pid = 4753, device = 0xe200, open_count = 1
[drm:drm_fasync] fd = -1, device = 0xe200
[drm:drm_lastclose]
[drm:drm_lastclose] driver lastclose completed
[drm:drm_lastclose] lastclose completed
[drm:drm_stub_open]
[drm:drm_open_helper] pid = 4753, minor = 0
[drm:drm_addmap_core] offset = 0x00000000, size = 0x00002000, type = 2
[drm:drm_addmap_core] 8192 13 f8a37000
[drm:drm_setup]
[drm:drm_unlocked_ioctl] pid=4753, cmd=0xc0106407, nr=0x07, dev 0xe200, auth=1
[drm:drm_unlocked_ioctl] pid=4753, cmd=0xc0086401, nr=0x01, dev 0xe200, auth=1
[drm:drm_unlocked_ioctl] pid=4753, cmd=0xc0086401, nr=0x01, dev 0xe200, auth=1
[drm:drm_unlocked_ioctl] pid=4753, cmd=0xc0106407, nr=0x07, dev 0xe200, auth=1
[drm:drm_unlocked_ioctl] pid=4753, cmd=0xc0186415, nr=0x15, dev 0xe200, auth=1
[drm:drm_addmap_core] offset = 0x00000000, size = 0x00002000, type = 2
[drm:drm_mmap_locked] start = 0xb7b39000, end = 0xb7b3b000, page
offset = 0xf8a37
[drm:drm_vm_open_locked] 0xb7b39000,0x00002000
[drm:drm_do_vm_shm_nopage] shm_nopage 0xb7b39000
[drm:drm_do_vm_shm_nopage] shm_nopage 0xb7b3a000
[drm:drm_unlocked_ioctl] pid=4753, cmd=0xc0186415, nr=0x15, dev 0xe200, auth=1
[drm:drm_addmap_core] offset = 0x3fc00000, size = 0x00001000, type = 0
[drm:drm_unlocked_ioctl] pid=4753, cmd=0xc0086426, nr=0x26, dev 0xe200, auth=1
[drm:drm_unlocked_ioctl] pid=4753, cmd=0xc0086426, nr=0x26, dev 0xe200, auth=1
[drm:drm_unlocked_ioctl] pid=4753, cmd=0xc0086420, nr=0x20, dev 0xe200, auth=1
[drm:drm_addctx] 1
[drm:drm_unlocked_ioctl] pid=4753, cmd=0x40086422, nr=0x22, dev 0xe200, auth=1
[drm:drm_unlocked_ioctl] pid=4753, cmd=0x4008642a, nr=0x2a, dev 0xe200, auth=1
[drm:drm_lock] 1 (pid 4753) requests lock (0x00000000), flags = 0x00000000
[drm:drm_lock] 1 has lock

This first context (whatever it is) has a successful lock here.

[drm:drm_fasync] fd = 10, device = 0xe200
[drm:drm_unlocked_ioctl] pid=4753, cmd=0xc0246400, nr=0x00, dev 0xe200, auth=1
[drm:drm_unlocked_ioctl] pid=4753, cmd=0xc0246400, nr=0x00, dev 0xe200, auth=1
[drm:drm_unlocked_ioctl] pid=4753, cmd=0x800c64d6, nr=0xd6, dev 0xe200, auth=1
[drm:drm_unlocked_ioctl] pid=4753, cmd=0xc0086420, nr=0x20, dev 0xe200, auth=1
[drm:drm_addctx] 2
[drm:drm_unlocked_ioctl] pid=4753, cmd=0xc0106403, nr=0x03, dev 0xe200, auth=1
[drm:drm_irq_by_busid] 0:2:0 => IRQ 17
[drm:drm_unlocked_ioctl] pid=4753, cmd=0x40086414, nr=0x14, dev 0xe200, auth=1
[drm:drm_irq_install] drm_irq_install: irq=17
[psb:0x01sb_irq_postinstall] Setting up MSVDX IRQs.....
[drm:drm_unlocked_ioctl] pid=4753, cmd=0x4008642a, nr=0x2a, dev 0xe200, auth=1
[drm:drm_lock] 2 (pid 4753) requests lock (0x80000001), flags = 0x00000000
[drm:drm_lock] 2 interrupted

This second lock failed here. This is where we Ctrl-C'ed the X server
running under gdb. Now to figure out what this second lock is....

[drm:drm_unlocked_ioctl] ret = -512
[drm:drm_vm_shm_close] 0xb7b39000,0x00002000
[drm:drm_release] open_count = 1
[drm:drm_release] pid = 4753, device = 0xe200, open_count = 1
[drm:drm_release] File f7762a80 released, freeing lock for context 1
[drm:drm_fasync] fd = -1, device = 0xe200
[drm:drm_lastclose]
[drm:drm_lastclose] driver lastclose completed
[drm:drm_irq_uninstall] drm_irq_uninstall: irq=17
[drm:drm_lastclose] lastclose completed

Regards,
Amit

On Jan 17, 2008 1:21 AM, Amit Kucheria <amit@ubuntu.com> wrote:
> I am currently reading through that part of the code to make sure that
> some Kconfig options are not responsible for this behaviour. If you
> can think of any, it would be a help.
>
> Regards,
> Amit
>
>
> On Jan 17, 2008 1:17 AM, Bastian, Waldo <waldo.bastian@intel.com> wrote:
> > DRM_IOCTL_LOCK ends up with drm_lock() in drm_lock.c part of drm.ko
> >
> > Cheers,
> > Waldo
> >
> > Intel Corporation - Platform Software Engineering, UMG - Hillsboro,
> > Oregon
> >
> >
> > -----Original Message-----
> > From: ubuntu-mobile-bounces@lists.ubuntu.com
> > [mailto:ubuntu-mobile-bounces@lists.ubuntu.com] On Behalf Of Bryce
> > Harrington
> > Sent: Wednesday, January 16, 2008 2:55 PM
> > To: Gunawardana, Inuka
> > Cc: ubuntu-mobile@lists.ubuntu.com
> > Subject: Backtrace
> >
> > Finally got a readable backtrace:
> >
> > #0 0xb7fd440e in __kernel_vsyscall ()
> > #1 0xb7e25bc9 in ioctl () from /lib/libc.so.6
> > #2 0xb7bc4a1d in drmGetLock (fd=10, context=2, flags=3213662516) at
> > xf86drm.c:1259
> > #3 0xb7bb951b in psbDRILock (pScrn=0x820bcd0, flags=0) at psb_dri.c:724
> > #4 0xb7baf983 in psbScreenInit (scrnIndex=0, pScreen=0x821b2d8, argc=6,
> > argv=0xbf8c9b74) at psb_driver.c:1342
> > #5 0x08073ddb in AddScreen (pfnInit=0xb7baf7f0 <psbScreenInit>, argc=6,
> > argv=0xbf8c9b74) at ../../dix/main.c:769
> > #6 0x080a6e39 in InitOutput (pScreenInfo=0x81fa640, argc=6,
> > argv=0xbf8c9b74) at ../../../../hw/xfree86/common/xf86Init.c:850
> > #7 0x08074590 in main (argc=6, argv=0xbf8c9b74, envp=Cannot access
> > memory at address 0x40086432
> > ) at ../../dix/main.c:369
> >
> > This also confirms my explorations from the other side, that the issue
> > is within psbDRILock.
> >
> > drmGetLock is defined in libdrm, as this:
> >
> > int drmGetLock(int fd, drm_context_t context, drmLockFlags flags)
> > {
> > drm_lock_t lock;
> >
> > lock.context = context;
> > lock.flags = 0;
> > if (flags & DRM_LOCK_READY) lock.flags |= _DRM_LOCK_READY;
> > if (flags & DRM_LOCK_QUIESCENT) lock.flags |= _DRM_LOCK_QUIESCENT;
> > if (flags & DRM_LOCK_FLUSH) lock.flags |= _DRM_LOCK_FLUSH;
> > if (flags & DRM_LOCK_FLUSH_ALL) lock.flags |= _DRM_LOCK_FLUSH_ALL;
> > if (flags & DRM_HALT_ALL_QUEUES) lock.flags |= _DRM_HALT_ALL_QUEUES;
> > if (flags & DRM_HALT_CUR_QUEUES) lock.flags |= _DRM_HALT_CUR_QUEUES;
> >
> > while (ioctl(fd, DRM_IOCTL_LOCK, &lock))
> > ;
> > return 0;
> > }
> >
> > Bryce
> >
> >
> > --
> > Ubuntu-mobile mailing list
> > Ubuntu-mobile@lists.ubuntu.com
> > Modify settings or unsubscribe at:
> > https://lists.ubuntu.com/mailman/listinfo/ubuntu-mobile
> >
> > --
> > Ubuntu-mobile mailing list
> > Ubuntu-mobile@lists.ubuntu.com
> > Modify settings or unsubscribe at: https://lists.ubuntu.com/mailman/listinfo/ubuntu-mobile
> >
>

--
Ubuntu-mobile mailing list
Ubuntu-mobile@lists.ubuntu.com
Modify settings or unsubscribe at: https://lists.ubuntu.com/mailman/listinfo/ubuntu-mobile
 

Thread Tools




All times are GMT. The time now is 06:37 PM.

VBulletin, Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.
Content Relevant URLs by vBSEO ©2007, Crawlability, Inc.
Copyright 2007 - 2008, www.linux-archive.org