Hi Edison,

I cannot tell you if this is a bug or not without some logging.
Normally, when doing a call, the fusion kernel module transferred
certain locks to the callee, so it is not necessarily a bug when two
processes do "lock" in the same thread. As long as everything is cleaned
up afterwards..

Note that 'Window restack - refusing!' is just an implementation
example, just change the return code from DFB_ACCESSDENIED to DFB_OK in
window_restack().

Greets
Niels

Edison_lin-林俊翰 wrote:
> Hi,
> While I traced down, I noticed a situation. As usual, I ran testman,
> and then df_window, with more debug messages; I found that df_window
> requests a sawman lock X before calling sawman_call() for window
> reconfig, and after testman receives this event, it then calls
> reconfig handler within which sawman lock X is requested again. The
> requesting seems to fail because it hangs in skirmish prevail. Is this
> a bug ?
>
> Appreciate,
> Edison Lin
>
> ----- Original Message ----- From: "Richard Lee" <rd...@tivo.com>
> To: "Niels Roest" <ni...@directfb.org>
> Cc: "Edison_Lin-林俊翰" <edison_...@gemtek.com.tw>;
> <directfb-users@directfb.org>
> Sent: Saturday, August 15, 2009 12:08 AM
> Subject: Re: [directfb-users] A question about SaWMan
>
>
>> Not sure if this is at all related to the deadlock I believe I found in
>> sawman/directfb that I posted to the directfb-dev mailing list, but it
>> sounds familiar. I provided copious information that demonstrates the
>> source of the deadlock, which occurs when one process is actively
>> drawing when another attempts to start up and add a window in a new
>> layer.
>>
>> Richard
>>
>> Niels Roest wrote:
>>> Hi Edison.
>>>
>>> No idea, so I will give you some hints.
>>>
>>> I noticed that when you first start e.g. df_window, and only then
>>> testman, some redraws are missed, but this is a minor issue and does
>>> not
>>> cause locking up of the system. This is on a recent X11 system. Your
>>> versions look ok to me.
>>>
>>> If you cannot use gdb to see where the application is stuck, I would
>>> advise to build directfb with debug and trace options: --enable-debug
>>> and --enable-trace. If you then stop an application with control-C, it
>>> will dump a stracktrace of all the threads running.
>>>
>>> Also, you can check /proc/fusion/0 for the files there, to see if there
>>> is a lock still pending at the moment. look at the file called
>>> skirmish,
>>> here you can see which process ID is taking the lock, and - if there
>>> are
>>> any - which IDs are trying to take it, and therefore waiting. If you
>>> have a deadlock then obviously on skirmish X app A waits for app B, and
>>> on skirmish Y app B waits for app A.
>>>
>>> Greets
>>> Niels
>>>
>>>
>>> Edison_lin-林俊翰 wrote:
>>>> Hi,
>>>> Please allow me to make a complement. I think maybe it's due to the
>>>> deadlock of competing fusion skirmish locks. I found two un-dismiss
>>>> locks in the df_window side, and one un-dismiss lock in the testman
>>>> side. I guess it may be the case that df_window got a lock first, and
>>>> then testman tried to get the lock but failed, and at this moment
>>>> df_window tried to get the lock again, which results in a deadlock
>>>> situation...I'm not sure about the answer, but I'll keep tracing. Any
>>>> suggestion is welcome.
>>>>
>>>> Appreciate,
>>>> Edison Lin
>>>>
>>>> ----- Original Message ----- From: "Edison_lin-林俊翰"
>>>> <edison_...@gemtek.com.tw>
>>>> To: <directfb-users@directfb.org>
>>>> Cc: "Niels Roest" <ni...@directfb.org>
>>>> Sent: Friday, August 14, 2009 12:09 PM
>>>> Subject: Re: A question about SaWMan
>>>>
>>>>
>>>>> Hi,
>>>>> Thanks for your replying. I did enable the multi-application core
>>>>> option, and install the linux fusion module as well. The following is
>>>>> the log from testman after I started testman first and then
>>>>> df_window, for your reference. I use SaWMan 1.4.0, Directfb-1.2.0,
>>>>> Directfb-example-1.2.0, and linux-fusion-8.0.0.
>>>>>
>>>>> I add some debug message in the code. The testman did sense the
>>>>> running directfb application and try to add one's windows to its
>>>>> control, but locked. Is it related to the versions I use ?
>>>>>
>>>>> <==================================log==================================================>
>>>>>
>>>>>
>>>>> ./testman
>>>>> (*) SaWMan/TestMan: Initializing...
>>>>>
>>>>> ~~~~~~~~~~~~~~~~~~~~~~~~~~| DirectFB 1.2.0
>>>>> |~~~~~~~~~~~~~~~~~~~~~~~~~~
>>>>> (c) 2001-2008 The world wide DirectFB Open Source Community
>>>>> (c) 2000-2004 Convergence (integrated media) GmbH
>>>>> ----------------------------------------------------------------
>>>>>
>>>>> (*) DirectFB/Core: Multi Application Core. (2009-08-10 16:11)
>>>>> (*) 316,dfb_core_create
>>>>> (*) Fusion/SHM: Using MADV_REMOVE (2.6.23.1 >= 2.6.19.2)
>>>>> (*) 97,fusion_skirmish_prevail
>>>>> (*) 97,fusion_skirmish_prevail
>>>>> (*) Direct/Thread: Started 'Fusion Dispatch' (25555) [MESSAGING
>>>>> OTHER/OTHER 0/0] <10485760>...
>>>>> (*) 322,dfb_core_create
>>>>> (*) 335,dfb_core_create
>>>>> (*) 337,dfb_core_create
>>>>> (*) 97,fusion_skirmish_prevail
>>>>> (ignore)
>>>>> (*) 97,fusion_skirmish_prevail
>>>>> (*) 124,fusion_arena_enter
>>>>> (*) 97,fusion_skirmish_prevail
>>>>> (ignore)
>>>>> (*) 97,fusion_skirmish_prevail
>>>>> (*) Direct/Thread: Started 'VT Switcher' (-1) [CRITICAL OTHER/OTHER
>>>>> 0/0] <10485760>...
>>>>> (*) 97,fusion_skirmish_prevail
>>>>> (ignore)
>>>>> (*) 97,fusion_skirmish_prevail
>>>>> (*) Direct/Thread: Started 'Keyboard Input' (-1) [INPUT OTHER/OTHER
>>>>> 0/0] <10485760>...
>>>>> (*) 97,fusion_skirmish_prevail
>>>>> (*) 97,fusion_skirmish_prevail
>>>>> (*) DirectFB/Input: Keyboard 0.9 (directfb.org)
>>>>> (*) 97,fusion_skirmish_prevail
>>>>> (*) 97,fusion_skirmish_prevail
>>>>> (*) Direct/Thread: Started 'Linux Input' (-1) [INPUT OTHER/OTHER 0/0]
>>>>> <10485760>...
>>>>> (*) 97,fusion_skirmish_prevail
>>>>> (*) 97,fusion_skirmish_prevail
>>>>> (*) DirectFB/Input: Macintosh mouse button emulatio (1) 0.1
>>>>> (directfb.org)
>>>>> (*) 97,fusion_skirmish_prevail
>>>>> (*) Direct/Thread: Started 'Linux Input' (-1) [INPUT OTHER/OTHER 0/0]
>>>>> <10485760>...
>>>>> (*) 97,fusion_skirmish_prevail
>>>>> (*) 97,fusion_skirmish_prevail
>>>>> (*) DirectFB/Input: AT Translated Set 2 keyboard (2) 0.1
>>>>> (directfb.org)
>>>>> (*) 97,fusion_skirmish_prevail
>>>>> (*) 97,fusion_skirmish_prevail
>>>>> (*) Direct/Thread: Started 'Linux Input' (-1) [INPUT OTHER/OTHER 0/0]
>>>>> <10485760>...
>>>>> (*) 97,fusion_skirmish_prevail
>>>>> (*) 97,fusion_skirmish_prevail
>>>>> (*) DirectFB/Input: ImPS/2 Generic Wheel Mouse (3) 0.1 (directfb.org)
>>>>> (*) 97,fusion_skirmish_prevail
>>>>> (*) Direct/Thread: Started 'Linux Input' (-1) [INPUT OTHER/OTHER 0/0]
>>>>> <10485760>...
>>>>> (*) 97,fusion_skirmish_prevail
>>>>> (*) 97,fusion_skirmish_prevail
>>>>> (*) DirectFB/Input: Power Button (FF) (4) 0.1 (directfb.org)
>>>>> (*) 97,fusion_skirmish_prevail
>>>>> (*) Direct/Thread: Started 'PS/2 Input' (-1) [INPUT OTHER/OTHER 0/0]
>>>>> <10485760>...
>>>>> (*) 97,fusion_skirmish_prevail
>>>>> (*) 97,fusion_skirmish_prevail
>>>>> (*) DirectFB/Input: IMPS/2 Mouse 1.0 (directfb.org)
>>>>> (*) 97,fusion_skirmish_prevail
>>>>> (*) 97,fusion_skirmish_prevail
>>>>> (*) 97,fusion_skirmish_prevail
>>>>> (*) 97,fusion_skirmish_prevail
>>>>> (*) DirectFB/Genefx: MMX detected and enabled
>>>>> (*) DirectFB/Graphics: MMX Software Rasterizer 0.6 (directfb.org)
>>>>> (*) 97,fusion_skirmish_prevail
>>>>> (ignore)
>>>>> (*) 97,fusion_skirmish_prevail
>>>>> (*) DirectFB/Core/WM: SaWMan 0.2 (directfb.org)
>>>>> (*) 97,fusion_skirmish_prevail
>>>>> (*) 97,fusion_skirmish_prevail
>>>>> (*) 171,dfb_wm_core_initialize
>>>>> (*) 97,fusion_skirmish_prevail
>>>>> (*) 97,fusion_skirmish_prevail
>>>>> (*) 97,fusion_skirmish_prevail
>>>>> (*) 97,fusion_skirmish_prevail
>>>>> (*) 97,fusion_skirmish_prevail
>>>>> (*) 168,register_process
>>>>> (*) 171,register_process
>>>>> (*) 174,register_process
>>>>> (*) 181,dfb_wm_core_initialize
>>>>> (*) 97,fusion_skirmish_prevail
>>>>> (*) 97,fusion_skirmish_prevail
>>>>> (*) 97,fusion_skirmish_prevail
>>>>> (*) 97,fusion_skirmish_prevail
>>>>> (*) 97,fusion_skirmish_prevail
>>>>> (*) 97,fusion_skirmish_prevail
>>>>> (*) 345,dfb_core_create
>>>>> (*) 97,fusion_skirmish_prevail
>>>>> (*) 362,dfb_core_create
>>>>> (*) 97,fusion_skirmish_prevail
>>>>> (*) 97,fusion_skirmish_prevail
>>>>> (*) 97,fusion_skirmish_prevail
>>>>> (*) 97,fusion_skirmish_prevail
>>>>> (*) 97,fusion_skirmish_prevail
>>>>> (*) 97,fusion_skirmish_prevail
>>>>> (*) 97,fusion_skirmish_prevail
>>>>> (*) 97,fusion_skirmish_prevail
>>>>> (*) 97,fusion_skirmish_prevail
>>>>> (*) SaWMan: Initializing stack 0x20138400 for tier 0x255c3000, 0x0,
>>>>> layer 0, context 0x20017000 [3]...
>>>>> (*) 97,fusion_skirmish_prevail
>>>>> (ignore)
>>>>> (*) 97,fusion_skirmish_prevail
>>>>> (*) SaWMan/Init: Layer 0: 800x600, RGB16, options: 0
>>>>> (*) SaWMan/Init: Border 0: 800x600, RGB16, options: 8
>>>>> (*) 97,fusion_skirmish_prevail
>>>>> (*) 97,fusion_skirmish_prevail
>>>>> (*) SaWMan/TestMan: Process added (25534) [1]!
>>>>> (*) SaWMan/TestMan: Process added (25567) [2]!
>>>>> (*) SaWMan/TestMan: Window preconfig (20,120-300x200)!
>>>>> (*) SaWMan/TestMan: Window added (20,120-300x200)!
>>>>> (*) 745,window_reconfig
>>>>> (*) 377,LayoutWindowAdd
>>>>> (*) 307,MosaicAddWindow
>>>>> (*) 404,ISaWManManager_Lock
>>>>> (*) 97,fusion_skirmish_prevail
>>>>>
>>>>> <==================================log
>>>>> end==================================================>
>>>>>
>>>>>
>>>>> Appreciate,
>>>>> Edison Lin
>>>>>
>>>>> ----- Original Message ----- From: "Niels Roest" <ni...@directfb.org>
>>>>> To: "Edison_Lin-林俊翰" <edison_...@gemtek.com.tw>
>>>>> Cc: <directfb-...@directfb.org>
>>>>> Sent: Thursday, August 13, 2009 5:30 PM
>>>>> Subject: Re: A question about SaWMan
>>>>>
>>>>>
>>>>>> Hi Edison.
>>>>>>
>>>>>> first off, you are posting to the CVS/change control list; Can you
>>>>>> please use the "users" list for any following questions?
>>>>>>
>>>>>> you are right, testman must be run first, and then df_window and
>>>>>> other
>>>>>> applications should be started. This is exactly how I am using it
>>>>>> also.
>>>>>> Did you ./configure with --enable-multi, and are you insmod'ding the
>>>>>> fusion kernel module? Otherwise it is not possible to run
>>>>>> DirectFB with
>>>>>> multiple applications at the same time (of which testman is already
>>>>>> one).
>>>>>>
>>>>>> If this is not the case, it would be interesting to know where
>>>>>> the lock
>>>>>> happens.
>>>>>>
>>>>>> hth
>>>>>> Niels
>>>>>>
>>>>>> Edison_lin-林俊翰 wrote:
>>>>>>> Hi,
>>>>>>> If I ran df_window and other directfb applications before testman,
>>>>>>> everything went fine; I got a screen of tiled windows. But why
>>>>>>> can't I
>>>>>>> run these applications after testman ? It seems to trap into a
>>>>>>> sawman
>>>>>>> lock for the application to run, and after I removed the
>>>>>>> lock/unlock
>>>>>>> part, then the applications can be run. I think it's more
>>>>>>> reasonable
>>>>>>> for a window manager application to be run first, and any directfb
>>>>>>> application added later can be managed through it.
>>>>>>> Appreciate,
>>>>>>> Edison Lin
>>>>>>> ------------------------------------------------------------------------
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> _______________________________________________
>>>>>>> directfb-cvs mailing list
>>>>>>> directfb-...@directfb.org
>>>>>>> http://mail.directfb.org/cgi-bin/mailman/listinfo/directfb-cvs
>>>>>>>
>>>>>>
>>>>>> -- 
>>>>>>
>>>>>> .------------------------------------------.
>>>>>> | DirectFB - Hardware accelerated graphics |
>>>>>> | http://www.directfb.org/ |
>>>>>> "------------------------------------------"
>>>>>>
>>>>>>
>>>> _______________________________________________
>>>> directfb-users mailing list
>>>> directfb-users@directfb.org
>>>> http://mail.directfb.org/cgi-bin/mailman/listinfo/directfb-users
>>>
>>>
>>
>
> _______________________________________________
> directfb-users mailing list
> directfb-users@directfb.org
> http://mail.directfb.org/cgi-bin/mailman/listinfo/directfb-users


-- 

.------------------------------------------.
| DirectFB - Hardware accelerated graphics |
| http://www.directfb.org/                 |
"------------------------------------------" 

_______________________________________________
directfb-users mailing list
directfb-users@directfb.org
http://mail.directfb.org/cgi-bin/mailman/listinfo/directfb-users

Reply via email to