Fusion Proc Filesystem
From DirectFB
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

