I attached gdb info here, see if it help.
and I try to search function "fusion_skirmish_lock()" from source package, but
did not find it. could you tell me where is it? I'd like to learn how it is
working.
# /mnt/gdb/gdb /bin/myapp
GNU gdb Red Hat Linux (6.5-8.fc6rh)
Copyright (C) 2006 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you are
welcome to change it and/or distribute copies of it under certain conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB. Type "show warranty" for details.
This GDB was configured as "i386-redhat-linux-gnu"...
(no debugging symbols found)
Using host libthread_db library "/lib/libthread_db.so.1".
(gdb) attach 12409
Attaching to program: /bin/myapp, process 12409
Reading symbols from /lib/libdirectfb-1.0.so.0...(no debugging symbols
found)...done.
Loaded symbols for /lib/libdirectfb-1.0.so.0
Reading symbols from /lib/libz.so.1...(no debugging symbols found)...done.
Loaded symbols for /lib/libz.so.1
Reading symbols from /lib/libfusion-1.0.so.0...
(no debugging symbols found)...done.
Loaded symbols for /lib/libfusion-1.0.so.0
Reading symbols from /lib/libdirect-1.0.so.0...(no debugging symbols
found)...done.
Loaded symbols for /lib/libdirect-1.0.so.0
Reading symbols from /lib/libpthread.so.0...
(no debugging symbols found)...done.
Loaded symbols for /lib/libpthread.so.0
Reading symbols from /lib/libdl.so.2...(no debugging symbols found)...done.
Loaded symbols for /lib/libdl.so.2
Reading symbols from /lib/libc.so.6...(no debugging symbols found)...done.
Loaded symbols for /lib/libc.so.6
Reading symbols from /lib/libgcc_s.so.1...
(no debugging symbols found)...done.
Loaded symbols for /lib/libgcc_s.so.1
Reading symbols from /lib/ld-linux.so.2...(no debugging symbols found)...done.
Loaded symbols for /lib/ld-linux.so.2
Reading symbols from /lib/directfb-1.0-0/systems/libdirectfb_fbdev.so...
(no debugging symbols found)...done.
Loaded symbols for /lib/directfb-1.0-0/systems/libdirectfb_fbdev.so
(no debugging symbols found)
0xb7f13402 in __kernel_vsyscall ()
(gdb) where
#0 0xb7f13402 in __kernel_vsyscall ()
#1 0xb7df1a49 in ioctl () from /lib/libc.so.6
#2 0xb7ea05a6 in fusion_skirmish_prevail () from /lib/libfusion-1.0.so.0
#3 0xb7e9df46 in fusion_arena_enter () from /lib/libfusion-1.0.so.0
#4 0xb7ef17ac in dfb_core_create () from /lib/libdirectfb-1.0.so.0
#5 0xb7ebe1b3 in DirectFBCreate () from /lib/libdirectfb-1.0.so.0
#6 0x08048667 in ?? ()
#7 0xbfbad168 in ?? ()
#8 0x080487ae in _IO_stdin_used ()
#9 0xbfbad188 in ?? ()
...
#18 0xbfbad1e8 in ?? ()
#19 0xb7d517c8 in __libc_start_main () from /lib/libc.so.6
#20 0xb7d517c8 in __libc_start_main () from /lib/libc.so.6
#21 0x08048551 in ?? ()
> Date: Thu, 6 Dec 2007 11:48:50 +0100> From: [EMAIL PROTECTED]> To: [EMAIL
> PROTECTED]> CC: directfb-dev@directfb.org> Subject: Re: [directfb-dev]
> linux-fusion lock problem> > Denis Oliver Kropp wrote:> > Victor Liu wrote:>
> >> Hi,> >> > >> while I am using DirectFB with fusion, some time the
> application was locked. we debugged into, find lock is in fusion. I looked
> the code, found a place seems missed unlock (see red line or comment). if any
> one knows linux-fusion, please make sure. both 3.x or 7.x have same code.> >>
> > >> Thanks,> >> Victor Liu> >> > >> int> >> fusion_skirmish_prevail
> (FusionDev *dev, int id, int fusion_id)> >> {> >> int ret;> >> FusionSkirmish
> *skirmish;> >> #ifdef FUSION_DEBUG_SKIRMISH_DEADLOCK> >> FusionSkirmish *s;>
> >> int i;> >> bool outer = true;> >> #endif> >>
> dev->stat.skirmish_prevail_swoop++;> >> ret = fusion_skirmish_lock(
> &dev->skirmish, id, true, &skirmish );> >> if (ret)> >> return ret;> >> > >>
> ......> >> > >> up( &dev->skirmish.lock );> >> while (skirmish->lock_pid) {>
> >> ret = fusion_skirmish_wait( skirmish, NULL );> >> if (ret)> >> {> >>
> fusion_skirmish_unlock( skirmish ); // original code does not have this line>
> > > > IIRC, a non-zero return value (error) means the lock is not
> reacquired.> > Only if the call was successful, the code needs to unlock it.>
> > > > But I'm checking the code now (fusion_entry_wait).> > The code looks
> fine. Where exactly is it blocking in your case?> > -- > Best regards,> Denis
> Oliver Kropp> > .------------------------------------------.> | DirectFB -
> Hardware accelerated graphics |> | http://www.directfb.org/ |>
> "------------------------------------------"
_________________________________________________________________
Your smile counts. The more smiles you share, the more we donate. Join in.
www.windowslive.com/smile?ocid=TXT_TAGLM_Wave2_oprsmilewlhmtagline
_______________________________________________
directfb-dev mailing list
directfb-dev@directfb.org
http://mail.directfb.org/cgi-bin/mailman/listinfo/directfb-dev