Fusion Proc Filesystem

From DirectFB

Jump to: navigation, search


Fusion provides statistical information in the so called Linux /proc file system. You could find this under /proc/fusion. Each world has its own directory, starting with the first (0) world, for example, if you are interested in the second world, this info is under /proc/fusion/0/

The stats file provides total statistics, each other proc file has row information about specific objects used in the fusion system.

Contents

stat File

This proc file provides general statistics about the operations inside the fusion module. The following information is displayed:

lease/purchase and cede

These stats has to do with Fusion properties.

Each time an ioct call FUSION_PROPERTY_LEASE or FUSION_PROPERTY_PURCHASE is issued, the lease/purchase counter will be incremented.

When the ioctl call FUSION_PROPERTY_CEDE is called, then the cede counter is always incremented.

attach and release

These stats are related to Fusion reactor calls.

Each time an ioctl call FUSION_REACTOR_ATTACH is called, then the attach counter is incremented.

Each time an ioctl call FUSION_REACTOR_DETACH is called, then the detach counter is incremented.

ref up and ref down

These stats are related to the Fusion reference counter calls.

Each time an ioctl call FUSON_REF_UP is called, the ref up counter is incremented.

Each time an ioctl call FUSION_REF_DOWN is called, then the ref down counter is incremented.

prevail/swoop and dismiss

These stats are related to the Fusion skirmish calls.

Each time an ioctl call FUSION_SKIRMISH_PREVAIL or FUSION_SKIRMISH_SWOOP is called, then the prevail/swoop counter is incremented.

Each time an ioctl call FUSION_SKIRMISH_DISMISS is called, then the dismiss counter is incremented.

calls File

The calls file provides statistics about the Fusion calls, each call object has its own row.

pid is the owner pid, id is the call id, count is the number of calls ever made, and the last field is if the calls is idle or executing.

 dok@shizo[~] cat /proc/fusion/0/calls     
 ( 4964) 0x00000003 (2036 calls) idle
 ( 4964) 0x00000004 (80 calls) idle
 ( 4964) 0x00000000 (1 calls) idle
 ( 4964) 0x00000001 (1 calls) idle
 ( 4964) 0x0000000a (0 calls) idle
 ( 4964) 0x00000009 (0 calls) idle
 ( 4964) 0x00000008 (0 calls) idle
 ( 4964) 0x00000007 (0 calls) idle
 ( 4964) 0x00000006 (0 calls) idle
 ( 4964) 0x00000005 (0 calls) idle
 ( 4964) 0x00000002 (0 calls) idle
   pid | call id | no. calls | state

fusionees File

The fusionees file provides statistics about the various Fusionees in the system, each row is a specific fusionee.

(num) is the fusionee parent id, the next hex number is the fusionee id. x messages waiting is the current fusionee message count, x received is how many messages the fusionee has so far received, and x sent is the total amount of messages the fusionee has sent.


 dok@shizo[~] cat /proc/fusion/0/fusionees 
 ( 4964) 0x00000001 (   0 messages waiting,    2379 received,    6265 sent)
 ( 5366) 0x00000006 (   0 messages waiting,    3200 received,       4 sent)
 ( 5725) 0x00000008 (   0 messages waiting,    1939 received,       4 sent)
 ( 4985) 0x00000004 (   0 messages waiting,      10 received,       0 sent)
 ( 4982) 0x00000003 (   0 messages waiting,       0 received,       0 sent)
 ( 4979) 0x00000002 (   0 messages waiting,       0 received,       0 sent)
   pid | fusion id | low level message statistics (includes reactor or call messages etc.)

skirmish File

The skirmish file provides statistics about the various skirmish objects in the system.

The "last ref" on the left specifies the time that passed since the last access, e.g. lock or unlock.

 dok@shizo[~] cat /proc/fusion/0/skirmishs 
   0  ms  ( 4964) 0x00000013  Surface Manager           
   0  ms  ( 4964) 0x0000001a  Layer Context             
   0  ms  ( 4964) 0x0000001b  Layer Region              
   1  ms  ( 4964) 0x00000011  AT Translated Set 2 key   
   1  ms  ( 4964) 0x0000001e  Layer Context             
   4.5 s  ( 4964) 0x0000000f  Razer Razer Copperhead    
   4.9 s  ( 4964) 0x00000003  Fusion Main Pool          
   4.9 s  ( 4964) 0x00000005  DirectFB Main Pool        
   4.9 s  ( 4964) 0x0000000a  Surface Pool              
   4.9 s  ( 4964) 0x00000006  DirectFB Surface Pool     
   4.9 s  ( 4964) 0x00000002  Fusion Reactor Globals    
   5.3 s  ( 4964) 0x0000000b  Window Pool               
 219.4 s  ( 4964) 0x00000000  Fusion SHM                
 219.4 s  ( 4964) 0x00000004  Arena 'DirectFB/Core'     
 228.0 s  ( 4964) 0x0000000c  Clipboard Core            
 243.3 s  ( 4964) 0x00000016  Display Layer 0           
 243.3 s  ( 4964) 0x00000001  Fusion Arenas             
   1.0 h  ( 4964) 0x0000001f  Layer Region              
   1.0 h  ( 4964) 0x0000000e  IMPS/2 Mouse              
   1.0 h  ( 4964) 0x00000010  Razer Razer Copperhead    
   1.0 h  ( 4964) 0x00000012  Keyboard                  
   1.0 h  ( 4964) 0x00000017  Display Layer 1           
   1.0 h  ( 4964) 0x00000007  Layer Context Pool        
   1.0 h  ( 4964) 0x00000008  Layer Region Pool         
   1.0 h  ( 4964) 0x00000019  Display Layer 3           
   1.0 h  ( 4964) 0x00000018  Display Layer 2           
   1.0 h  ( 4964) 0x00000015  Screen 1                  
   1.0 h  ( 4964) 0x00000014  Screen 0                  
   1.0 h  ( 4964) 0x0000000d  Colorhash Core            
   1.0 h  ( 4964) 0x00000009  Palette Pool              
 last ref | pid | skirmish id | name


If locks are held, they are shown on the right with the lock count and both the fusion and process id of the locker.

 dok@shizo[~] cat /proc/fusion/0/skirmishs 
   0  ms  ( 4964) 0x00000013  Surface Manager            - 1x [0x00000001] (4964)
   0  ms  ( 4964) 0x0000001b  Layer Region               - 1x [0x00000001] (4964)
   0  ms  ( 4964) 0x0000001a  Layer Context              - 1x [0x00000001] (4964)
   1  ms  ( 4964) 0x00000011  AT Translated Set 2 key   
   1  ms  ( 4964) 0x0000001e  Layer Context             
 [...]
                                                        | count | fusion id | pid

reactors File

The reactors file provides statistics about the various reactor objects in the system.

The "last ref" on the left specifies the time that passed since the last access, e.g. dispatch.


 dok@shizo[~] cat /proc/fusion/0/reactors  
   2  ms  ( 4964) 0x00000003  AT Translated Set 2 key    6379x dispatch, 1 nodes
   2  ms  ( 4964) 0x00000851  Window Pool                4677x dispatch, 1 nodes
   3.5 s  ( 4964) 0x00000001  Razer Razer Copperhead    151056x dispatch, 1 nodes
   3.5 s  ( 4964) 0x00000010  Surface Pool               6325x dispatch, 0 nodes
   3.5 s  ( 4964) 0x0000000f  Surface Pool               6325x dispatch, 0 nodes
   3.5 s  ( 4964) 0x000009e9  Surface Pool                  1x dispatch, 1 nodes
   3.6 s  ( 4964) 0x00000703  Window Pool               26860x dispatch, 1 nodes
   4.3 s  ( 5725) 0x000005a6  Window Pool                2099x dispatch, 1 nodes
   5.6 s  ( 5366) 0x00000586  Window Pool                3292x dispatch, 1 nodes
 776.6 s  ( 4964) 0x00000852  Surface Pool                172x dispatch, 1 nodes
 807.8 s  ( 4985) 0x00000021  Window Pool                  13x dispatch, 1 nodes
 853.0 s  ( 4964) 0x0000003a  Window Pool                3442x dispatch, 1 nodes
 853.6 s  ( 4964) 0x0000042f  Window Pool               14300x dispatch, 1 nodes
 940.2 s  ( 4964) 0x0000042d  Window Pool                6694x dispatch, 1 nodes
 940.2 s  ( 4964) 0x00000704  Surface Pool                  1x dispatch, 1 nodes
   0.3 h  ( 5729) 0x000005b5  Surface Pool                  0x dispatch, 0 nodes
   0.4 h  ( 5725) 0x000005a4  Surface Pool                  1x dispatch, 1 nodes
   0.4 h  ( 5725) 0x000005a7  Surface Pool                  1x dispatch, 1 nodes
 [...]
 last ref | pid | reactor id | name                | total dispatch count | no. attached processes

properties File

The properties file lists information about the various property objects.

The "last ref" on the left specifies the time that passed since the last access, e.g. lease or cede.

 dok@shizo[~] cat /proc/fusion/0/properties 
   0  ms  ( 4964) 0x00000000                            
 last ref | pid | property id


If a property is leased or purchased, it's shown on the right.

 dok@shizo[~] cat /proc/fusion/0/properties 
   0  ms  ( 4964) 0x00000000                            leased by 0x00000001 (4964) 1x
                                                                 | fusion id | pid | count
Personal tools