mailing list of musl libc
 help / color / mirror / code / Atom feed
* Question re: dynamic linking in musl
@ 2015-05-27 10:08 Alex Dowad
  2015-05-27 10:40 ` Alexander Monakov
  0 siblings, 1 reply; 11+ messages in thread
From: Alex Dowad @ 2015-05-27 10:08 UTC (permalink / raw)
  To: musl

Hi,

I'm just dealing with a problem whereby rrdtool is spending >90% of its runtime in
musl's dynamic linker (this is on Alpine Linux). This is making it too slow to do
what we need it to do.

After perusing some hotspots in dynlink.c (as measured by callgrind), there is
something which looks like a big opportunity for optimization. I hope I'm not wrong.
I probably am. I don't understand the code very well.

do_relocs is called 3 times for each binary which needs relocation (including the main
program and all its dependencies). Once for all the relocations in .rel.dyn, one
for those in .rel.plt, and one for... something else. Haven't looked it up, not
important right now.

do_relocs iterates through all those relocations, and calls find_sym for each one
to look up where the desired function, or variable, etc. can be found.

find_sym iterates through *each* binary which has been loaded, including *all*
the recursive dependencies, and does a hash lookup in each one to see if the
desired symbol can be found.

(Well, that's not quite right; for certain types of relocations, it skips the
head of the list of binaries.)

NOW: Is there any reason why dso->deps could not be used to search for symbols *only*
in the dependencies of the binary which is currently being relocated?

For example, rrdtool has dependencies on librrd, libxml, pango, libpng, libintl,
libgobject, libharfbuzz, libfontconfig, libfreetype, libX11, libexpat, etc. etc. etc.
When unresolved symbols in libX11 are being looked up, musl will start looking in
librrd, right at the top of the list. But there's no way it will find any of
libX11's relocations in librrd. The dependencies of libX11 are right down close
to the *bottom* of the list.

To add insult to injury, that wasteful lookup process will be repeated for each and
every of the more than 1000 relocations in libX11.

Hoping someone smarter than me can explain things... Thanks, AD


^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: Question re: dynamic linking in musl
  2015-05-27 10:08 Question re: dynamic linking in musl Alex Dowad
@ 2015-05-27 10:40 ` Alexander Monakov
  2015-05-27 11:18   ` Alex Dowad
  0 siblings, 1 reply; 11+ messages in thread
From: Alexander Monakov @ 2015-05-27 10:40 UTC (permalink / raw)
  To: musl

On Wed, 27 May 2015, Alex Dowad wrote:
> I'm just dealing with a problem whereby rrdtool is spending >90% of its runtime in
> musl's dynamic linker (this is on Alpine Linux). This is making it too slow to do
> what we need it to do.

That implies that rrdtool spawns an executable with many dynamic dependencies
over and over again, with each individual invocation doing extremely little
work.  That sounds wasteful.  Do you know why it does that?

Can you confirm that the behavior is similarly bad on glibc with LD_BIND_NOW=1
set in the environment?  The main difference between musl and glibc is that
glibc perform "lazy binding" while musl fully resolves all symbol dependenies
at load time.

Can you also provide exact figures?  For example your callgrind logs?  Or just
'time' statistics for executables that spend much time in the dynamic linker.

> NOW: Is there any reason why dso->deps could not be used to search for symbols *only*
> in the dependencies of the binary which is currently being relocated?

That is not how ELF symbol lookup works.  Simply put, the symbol should be
taken from whatever first module in the whole lookup chain provides it; e.g.
if the executable exports a function that is also exported in libX11, the
executable's definition prevails.
 

Recently I was working on some dynamic linker speedups for musl.  On my
testcase, Clang/LLVM with ~100-200 dynamic libraries and ~20000 symbols that
need to be resolved in the dynamic linker, I obtained a speedup from 240 ms to
110 ms, while glibc needs 50 ms with lazy binding and 140 without.  So while
musl's dynamic linker speed can be improved, still rrdtool is doing something
odd in the first place if it's performance is bound like that.  I'd like to
understand that.  If it's unavoidable, perhaps static linking is appropriate.

(I didn't send my dynlink speedup patches yet;  I intend to do that sometime
soon)

Alexander


^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: Question re: dynamic linking in musl
  2015-05-27 10:40 ` Alexander Monakov
@ 2015-05-27 11:18   ` Alex Dowad
  2015-05-27 13:01     ` Alexander Monakov
  2015-05-27 13:06     ` Szabolcs Nagy
  0 siblings, 2 replies; 11+ messages in thread
From: Alex Dowad @ 2015-05-27 11:18 UTC (permalink / raw)
  To: musl

[-- Attachment #1: Type: text/plain, Size: 2891 bytes --]



On 27/05/15 12:40, Alexander Monakov wrote:
> On Wed, 27 May 2015, Alex Dowad wrote:
>> I'm just dealing with a problem whereby rrdtool is spending >90% of its runtime in
>> musl's dynamic linker (this is on Alpine Linux). This is making it too slow to do
>> what we need it to do.
> That implies that rrdtool spawns an executable with many dynamic dependencies
> over and over again, with each individual invocation doing extremely little
> work.  That sounds wasteful.  Do you know why it does that?
rrdtool is a monolithic binary which can do various different jobs, 
depending on the 1st CL arg. It can be invoked as "rrdtool create", 
"rrdtool update", "rrdtool graph", and so on. Yes, some of those 
commands do very little work.

Because the same binary does a variety of different things, a lot of 
those dynamic dependencies are not needed on most runs. So yes, it is 
wasteful. Why did the author design it that way? I don't know. It works 
quite well for the intended purpose, aside from this point of using a 
lot of dynamic libraries.
>
> Can you also provide exact figures?  For example your callgrind logs?  Or just
> 'time' statistics for executables that spend much time in the dynamic linker.
Callgrind data attached.
>
>> NOW: Is there any reason why dso->deps could not be used to search for symbols *only*
>> in the dependencies of the binary which is currently being relocated?
> That is not how ELF symbol lookup works.  Simply put, the symbol should be
> taken from whatever first module in the whole lookup chain provides it; e.g.
> if the executable exports a function that is also exported in libX11, the
> executable's definition prevails.
OK, I get it. So dynamic linking has O(n^2) runtime, with "n" being the 
number of dynamic libraries you link against!
>   
>
> Recently I was working on some dynamic linker speedups for musl.  On my
> testcase, Clang/LLVM with ~100-200 dynamic libraries and ~20000 symbols that
> need to be resolved in the dynamic linker, I obtained a speedup from 240 ms to
> 110 ms, while glibc needs 50 ms with lazy binding and 140 without.  So while
> musl's dynamic linker speed can be improved, still rrdtool is doing something
> odd in the first place if it's performance is bound like that.  I'd like to
> understand that.  If it's unavoidable, perhaps static linking is appropriate.
>
> (I didn't send my dynlink speedup patches yet;  I intend to do that sometime
> soon)
That speedup will be very welcome, especially for clang! clang builds 
are noticeably slower than gcc. Looking forward to it.

Yes, static linking sounds like a good idea for rrdtool; unfortunately 
their build scripts are oriented towards dynamic linking. The other pain 
is that statically linked versions of all the recursive dependencies are 
not available from package repos, so you have to build the whole 
dependency tree from scratch.

Thanks, AD

[-- Attachment #2: callgrind.out.8354 --]
[-- Type: text/plain, Size: 87490 bytes --]

version: 1
creator: callgrind-3.10.1
pid: 8354
cmd:  rrdtool update test.rrd N:0:1:U
part: 1


desc: I1 cache: 
desc: D1 cache: 
desc: LL cache: 

desc: Timerange: Basic block 0 - 2937079
desc: Trigger: Program termination

positions: line
events: Ir
summary: 13149006


ob=(18) /usr/lib/libgmodule-2.0.so.0.4200.0
fl=(66) ???
fn=(846) 0x00000e0e
0 10

fn=(862) 0x00001c56
0 5
cfn=(846)
calls=1 0 
0 2
0 9

fn=(844) 0x00000db1
0 6
cfn=(846)
calls=1 0 
0 2
0 18
cfn=(846)
calls=1 0 
0 2
0 9

fn=(4158) 0x00000d22
0 5
cfn=(846)
calls=1 0 
0 2
0 8
cob=(1) /lib/ld-musl-i386.so.1
cfi=(47) /home/buildozer/aports/main/musl/src/musl-1.1.5/src/exit/atexit.c
cfn=(3802) __cxa_finalize
calls=1 34 
0 1
0 1
0 10
cfn=(4172) 0x00000ca0
calls=1 0 
0 16
0 8

fn=(4172)
0 4
cfn=(846)
calls=1 0 
0 2
0 10

ob=(21) /usr/lib/libcairo.so.2.11400.0
fl=(69) ???
fn=(4074) 0x0000d232
0 5
cfn=(930) 0x0000d31e
calls=1 0 
0 2
0 8
cob=(1)
cfi=(47)
cfn=(3802)
calls=1 34 
0 1
0 1
0 10
cfn=(4088) 0x0000d1b0
calls=1 0 
0 16
0 8

fn=(946) 0x000ca93f
0 5
cfn=(930)
calls=1 0 
0 2
0 9

fn=(928) 0x0000d2c1
0 6
cfn=(930)
calls=1 0 
0 2
0 18
cfn=(930)
calls=1 0 
0 2
0 9

fn=(4088)
0 4
cfn=(930)
calls=1 0 
0 2
0 10

fn=(930)
0 10

ob=(6) /usr/lib/libXext.so.6.4.0
fl=(53) ???
fn=(308) 0x0000ce42
0 5
cfn=(292) 0x0000283e
calls=1 0 
0 2
0 9

fn=(4494) 0x00002752
0 5
cfn=(292)
calls=1 0 
0 2
0 8
cob=(1)
cfi=(47)
cfn=(3802)
calls=1 34 
0 1
0 1
0 10
cfn=(4508) 0x000026d0
calls=1 0 
0 16
0 8

fn=(290) 0x000027e1
0 6
cfn=(292)
calls=1 0 
0 2
0 18
cfn=(292)
calls=1 0 
0 2
0 9

fn=(4508)
0 4
cfn=(292)
calls=1 0 
0 2
0 10

fn=(292)
0 10

ob=(25) /usr/lib/libpango-1.0.so.0.3600.8
fl=(90) ???
fn=(2946) 0x0000a0f5
0 10

fn=(3976) 0x00009f87
0 4
cfn=(2946)
calls=1 0 
0 2
0 10

fn=(2962) 0x00029894
0 5
cfn=(2946)
calls=1 0 
0 2
0 9

fn=(2944) 0x0000a098
0 6
cfn=(2946)
calls=1 0 
0 2
0 18
cfn=(2946)
calls=1 0 
0 2
0 9

fn=(3962) 0x0000a009
0 5
cfn=(2946)
calls=1 0 
0 2
0 8
cob=(1)
cfi=(47)
cfn=(3802)
calls=1 34 
0 1
0 1
0 10
cfn=(3976)
calls=1 0 
0 16
0 8

ob=(31) /usr/bin/rrdtool
fl=(96) ???
fn=(3808) 0x0000153b
0 4
cfn=(3114) 0x000016a9
calls=1 0 
0 2
0 10

fn=(3154) main
0 6
cfn=(3114)
calls=1 0 
0 2
0 14
cob=(1)
cfi=(97) /home/buildozer/aports/main/musl/src/musl-1.1.5/src/locale/setlocale.c
cfn=(3158) setlocale
calls=1 11 
0 20113
0 1
0 7
cob=(1)
cfi=(113) /home/buildozer/aports/main/musl/src/musl-1.1.5/src/exit/exit.c
cfn=(3782) exit
calls=1 21 
0 14109
0 1
0 7
cfn=(3168) 0x00001ae4
calls=1 0 
0 18091
0 1

fn=(3792) 0x000015bd
0 5
cfn=(3114)
calls=1 0 
0 2
0 8
cob=(1)
cfi=(47)
cfn=(3802)
calls=1 34 
0 1
0 1
0 10
cfn=(3808)
calls=1 0 
0 16
0 8

fn=(3114)
0 14

fn=(3142) 0x000014fc
0 8
cfn=(3144) 0x0000150c
calls=1 0 
0 52378

fn=(3146) 0x00001519
0 2
cfn=(3148) 0x00001525
calls=1 0 
0 52373

fn=(3168)
0 5
cfn=(3114)
calls=1 0 
0 2
0 20
cob=(1)
cfi=(7) /home/buildozer/aports/main/musl/src/musl-1.1.5/src/string/strcmp.c
cfn=(34) strcmp
calls=1 5 
0 9
0 1
0 6
cob=(1)
cfi=(7)
cfn=(34)
calls=1 5 
0 9
0 1
0 6
cob=(1)
cfi=(7)
cfn=(34)
calls=1 5 
0 9
0 1
0 6
cob=(1)
cfi=(7)
cfn=(34)
calls=1 5 
0 9
0 1
0 6
cob=(1)
cfi=(7)
cfn=(34)
calls=1 5 
0 9
0 1
0 8
cob=(1)
cfi=(7)
cfn=(34)
calls=1 5 
0 9
0 1
0 6
cob=(1)
cfi=(7)
cfn=(34)
calls=1 5 
0 9
0 1
0 6
cob=(1)
cfi=(7)
cfn=(34)
calls=1 5 
0 9
0 1
0 6
cob=(1)
cfi=(7)
cfn=(34)
calls=1 5 
0 63
0 1
0 6
cob=(1)
cfi=(7)
cfn=(34)
calls=1 5 
0 9
0 1
0 6
cob=(1)
cfi=(7)
cfn=(34)
calls=1 5 
0 9
0 1
0 6
cob=(1)
cfi=(7)
cfn=(34)
calls=1 5 
0 9
0 1
0 6
cob=(1)
cfi=(7)
cfn=(34)
calls=1 5 
0 9
0 1
0 6
cob=(1)
cfi=(7)
cfn=(34)
calls=1 5 
0 9
0 1
0 6
cob=(1)
cfi=(7)
cfn=(34)
calls=1 5 
0 9
0 1
0 6
cob=(1)
cfi=(7)
cfn=(34)
calls=1 5 
0 9
0 1
0 6
cob=(1)
cfi=(7)
cfn=(34)
calls=1 5 
0 9
0 1

ob=(28) /usr/lib/libxml2.so.2.9.2
fl=(93) ???
fn=(3878) 0x0001c9cf
0 5
cfn=(3030) 0x0001cabb
calls=1 0 
0 2
0 8
cob=(1)
cfi=(47)
cfn=(3802)
calls=1 34 
0 1
0 1
0 10
cfn=(3892) 0x0001c94d
calls=1 0 
0 16
0 8

fn=(3030)
0 10

fn=(3046) 0x000ec2d9
0 5
cfn=(3030)
calls=1 0 
0 2
0 9

fn=(3892)
0 4
cfn=(3030)
calls=1 0 
0 2

ob=(31)
fl=(96)
fn=(3168)
0 6
cob=(1)
cfi=(7)
cfn=(34)
calls=1 5 
0 9
0 1
0 6
cob=(1)
cfi=(7)
cfn=(34)
calls=1 5 
0 9
0 1
0 6
cob=(1)
cfi=(7)
cfn=(34)
calls=1 5 
0 67
0 1
0 7
cob=(29) /usr/lib/librrd.so.4.2.1
cfi=(94) ???
cfn=(3260) rrd_update
calls=1 0 
0 17577
0 1
0 2
cob=(29)
cfi=(94)
cfn=(3584) rrd_test_error
calls=1 0 
0 36
0 1
0 12

fn=(3130) 0x00002c89
0 5
cfn=(3114)
calls=1 0 
0 2
0 9

fn=(3148)
0 5
cob=(1)
cfi=(44) /home/buildozer/aports/main/musl/src/musl-1.1.5/src/env/__libc_start_main.c
cfn=(3152) (below main)
calls=1 64 
0 52367
0 1

fn=(3112) 0x0000164c
0 6
cfn=(3114)
calls=1 0 
0 2
0 18
cfn=(3114)
calls=1 0 
0 2
0 9

fn=(3144)
0 3
cfn=(3146)
calls=1 0 
0 52375

ob=(9) /usr/lib/libxcb.so.1.1.0
fl=(56) ???
fn=(376) 0x00007c5e
0 10

fn=(4410) 0x00007b72
0 5
cfn=(376)
calls=1 0 
0 2
0 8
cob=(1)
cfi=(47)
cfn=(3802)
calls=1 34 
0 1
0 1
0 10
cfn=(4424) 0x00007af0
calls=1 0 
0 16
0 8

fn=(392) 0x0001b32c
0 5
cfn=(376)
calls=1 0 
0 2
0 9

fn=(374) 0x00007c01
0 6
cfn=(376)
calls=1 0 
0 2
0 18
cfn=(376)
calls=1 0 
0 2
0 9

fn=(4424)
0 4
cfn=(376)
calls=1 0 
0 2
0 10

ob=(14) /usr/lib/libfreetype.so.6.11.3
fl=(62) ???
fn=(734) 0x0000c118
0 10

fn=(4284) 0x0000bfaa
0 4
cfn=(734)
calls=1 0 
0 2
0 10

fn=(750) 0x0006d5fc
0 5
cfn=(734)
calls=1 0 
0 2
0 9

fn=(732) 0x0000c0bb
0 6
cfn=(734)
calls=1 0 
0 2
0 18
cfn=(734)
calls=1 0 
0 2
0 9

fn=(4270) 0x0000c02c
0 5
cfn=(734)
calls=1 0 
0 2
0 8
cob=(1)
cfi=(47)
cfn=(3802)
calls=1 34 
0 1
0 1
0 10
cfn=(4284)
calls=1 0 
0 16
0 8

ob=(28)
fl=(93)
fn=(3892)
0 10

fn=(3028) 0x0001ca5e
0 6
cfn=(3030)
calls=1 0 
0 2
0 18
cfn=(3030)
calls=1 0 
0 2
0 9

ob=(1)
fl=(112) /home/buildozer/aports/main/musl/src/musl-1.1.5/src/mman/munmap.c
fn=(3744) munmap
11 6
cfi=(3) ???
cfn=(4) 0x00011f38
calls=1 -11 
* 2
* 4
+2 2
cfi=(22) /home/buildozer/aports/main/musl/src/musl-1.1.5/src/thread/vmlock.c
cfn=(92) __vm_lock
calls=1 -7 
* 28
+1 1
cfi=(22)
cfn=(94) __vm_unlock
calls=1 +1 
* 21
fi=(18) /home/buildozer/aports/main/musl/src/musl-1.1.5/./arch/i386/syscall_arch.h
+9 4
cfi=(9) /home/buildozer/aports/main/musl/src/musl-1.1.5/src/internal/i386/syscall.s
cfn=(40) 0x0001cbd7
calls=1 -11 
* 20
fe=(112)
-8 2
+2 5
-2 1
cfi=(10) /home/buildozer/aports/main/musl/src/musl-1.1.5/src/internal/syscall_ret.c
cfn=(50) __syscall_ret
calls=1 -10 
* 15

fl=(8) /home/buildozer/aports/main/musl/src/musl-1.1.5/src/mman/mprotect.c
fn=(38) mprotect
6 60
+3 30
fi=(18)
+21 30
fe=(8)
-22 30
+1 30
-1 30
+1 30
fi=(18)
+21 30
fe=(8)
-20 30
fi=(18)
+20 30
cfi=(9)
cfn=(40)
calls=30 -18 
* 600
fe=(8)
-20 30
+1 30
-1 30
cfi=(10)
cfn=(50)
calls=30 -5 
* 450

fl=(31) /home/buildozer/aports/main/musl/src/musl-1.1.5/src/stdio/vsnprintf.c
fn=(130) vsnprintf
18 480
cfi=(3)
cfn=(4)
calls=80 -18 
* 160
* 240
+3 160
-3 160
+3 2960
+2 160
-2 160
+2 80
+10 400
+4 320
-2 160
+1 80
+1 80
-3 80
+2 160
+1 80
cfi=(32) /home/buildozer/aports/main/musl/src/musl-1.1.5/src/stdio/vfprintf.c
cfn=(132) vfprintf
calls=80 654 
* 127054
+3 720
+2 480

fl=(88) /home/buildozer/aports/main/musl/src/musl-1.1.5/src/string/strcat.c
fn=(1922) strcat
4 228
cfi=(3)
cfn=(4)
calls=38 -4 
* 76
* 38
+1 114
cfi=(24) /home/buildozer/aports/main/musl/src/musl-1.1.5/src/string/strlen.c
cfn=(98) strlen
calls=38 +6 
* 494
* 228
cfi=(28) /home/buildozer/aports/main/musl/src/musl-1.1.5/src/string/strcpy.c
cfn=(122) strcpy
calls=38 +1 
* 1728
+1 38
+1 228

fl=(32)
fn=(140) pop_arg
130 636
cfi=(3)
cfn=(4)
calls=159 0 
* 318
* 159
+2 159
-2 159
+2 159
+1 1113
+1 795
+23 636

fn=(136) out
161 1114
-1 2785
cfi=(3)
cfn=(4)
calls=557 0 
* 1114
* 557
+1 2228
cfi=(33) /home/buildozer/aports/main/musl/src/musl-1.1.5/src/stdio/fwrite.c
cfn=(138) __fwritex
calls=557 5 
* 32237
* 557
+1 1671

fn=(144) pad
165 5088
cfi=(3)
cfn=(4)
calls=636 0 
* 1272
* 636
+2 636
-2 1272
+2 1272
+6 3816

fn=(134) printf_core
446 960
cfi=(3)
cfn=(4)
calls=160 0 
* 320
* 640
+79 160
-79 160
+7 320
-5 160
+77 160
-62 1197
+1 798
+3 798
-3 798
+5 1197
+3 1985
+1 957
+1 319
+1 319
-1 319
+1 1514
cfn=(136)
calls=239 161 
* 17458
* 478
-2 954
+3 638
-30 717
+32 1195
+6 239
-1 239
+1 478
+4 1912
+4 956
-4 320
-48 1195
+63 478
+3 239
+12 239
-12 798
+1 640
+4 320
+1 1040
+1 320
+8 239
+2 1434
+2 1434
+1 717
+1 478
+3 478
+3 478
+1 478
+1 160
-1 636
cfn=(140)
calls=159 130 
* 4134
* 318
+9 159
+3 159
-3 318
+3 159
+3 318
+2 954
+50 636
+1 795
cfi=(34) /home/buildozer/aports/main/musl/src/musl-1.1.5/src/string/memchr.c
cfn=(142) memchr
calls=159 12 
* 11908
+1 717
+1 237
+1 79
-63 79
-1 79
+65 79
-1 80
-63 80
-1 80
+65 80
+24 795
+1 795
+2 1272
cfn=(144)
calls=159 165 
* 3657
+1 795
cfn=(136)
calls=159 161 
* 11448
+1 1590
cfn=(144)
calls=159 165 
* 3339
+1 1272
cfn=(144)
calls=159 165 
* 3657
+1 795
cfn=(136)
calls=159 161 
* 13357
+1 1431
cfn=(144)
calls=159 165 
* 3339
* 318
+5 240
+8 960

fn=(132)
654 480
+2 160
+8 80
-10 80
+2 960
+7 160
+1 640
cfn=(134)
calls=80 446 
* 10000
* 240
+5 240
+1 240
+1 80
-1 80
+1 240
-13 80
+14 160
+6 800
cfn=(134)
calls=80 446 
* 110974
+1 160
-1 80
+1 80
+7 240
+1 80
+1 80
-1 80
+1 80
+2 80
+1 400

fl=(11) /home/buildozer/aports/main/musl/src/musl-1.1.5/src/malloc/malloc.c
fn=(56) free
477 2408
cfi=(3)
cfn=(4)
calls=301 0 
* 602
* 301
+7 301
-6 301
+6 301
+2 813
+10 542
+1 271
+3 271
-4 271
+1 271
+3 271
-23 813
82 542
515 1405
+1 1084
+1 271
+1 542
cfn=(58) bin_index
calls=271 121 
* 3126
82 271
518 271
68 271
+14 542
-14 542
+15 1626
+1 220
-16 813
521 1626
+6 20
cfn=(1998) alloc_rev
calls=10 288 
* 648
* 20
+1 6
+3 6
-3 12
+1 12
+2 6
-1 6
+1 12
+4 20
cfn=(2000) alloc_fwd
calls=10 271 
* 787
* 20
-31 20
+32 7
+2 7
-2 14
+2 7
-1 7
+1 14
+2 14
+4 271
+1 271
-1 271
+1 271
74 813
548 1897
+1 271
-1 271
+1 271
+1 271
+1 271
+2 271
-2 271
+2 2322
+1 711
fi=(26) /home/buildozer/aports/main/musl/src/musl-1.1.5/./arch/i386/atomic.h
29 237
fe=(11)
554 1185
fi=(26)
29 711
fe=(11)
+45 813
557 1806

fn=(2000)
271 154
cfi=(3)
cfn=(4)
calls=22 0 
* 44
* 44
82 44
274 88
+1 24
cfn=(58)
calls=12 121 
* 172
82 12
275 12
68 12
+14 36
-14 24
+15 60
277 36
+1 36
cfn=(164) unbin
calls=12 -17 
* 480
74 36
280 24
+4 10
+1 132

fn=(102) malloc
357 1764
cfi=(3)
cfn=(4)
calls=294 0 
* 588
* 588
+4 588
cfn=(104) adjust_size
calls=294 247 
* 2646
* 588
+2 882
129 588
+1 1158
+1 72
376 1791
82 9
376 9
82 9
376 45
+1 9
-1 9
+1 18
-1 285
82 285
376 285
82 285
376 1425
+1 285
-1 285
+1 570
-1 5
+1 1
-1 1
+1 2
+1 1
212 1
378 1
212 1
+3 1
fi=(26)
67 2
fe=(11)
214 1
fi=(26)
67 1
fe=(11)
214 1
+2 2
+5 3
cfi=(18)
cfn=(1144) __brk
calls=1 16 
* 24
+2 2
+2 2
+2 2
cfn=(1148) expand_heap
calls=1 -71 
* 70
+2 3
+8 1
-2 1
+2 1
-1 1
+1 2
cfn=(56)
calls=1 477 
* 135
fi=(26)
91 1
fe=(11)
240 1
fi=(26)
91 1
fe=(11)
240 2
82 294
fi=(26)
-73 1143
fe=(11)
+73 555
-14 555
fi=(26)
-59 109
fe=(11)
+73 327
-14 327
+15 2058
391 1176
+1 2058
cfn=(58)
calls=294 121 
* 3574
* 882
-78 294
+79 294
-79 294
+1 296
+1 4
+4 144
+2 360
cfn=(58)
calls=72 121 
* 1152
* 216
+5 61
-2 61
+2 122
+1 122
+1 122
+1 122
+1 61
+1 61
-1 122
+1 61
+1 122
+1 61
74 882
401 882
cfn=(108) trim
calls=294 -62 
* 35557
+2 588
-10 699
cfn=(164)
calls=233 261 
* 9110
* 233
+11 1764

fn=(104)
247 1292
+9 969
+1 646

fn=(164)
261 251
+1 251
-1 753
cfi=(3)
cfn=(4)
calls=251 0 
* 502
* 251
+1 502
+1 2820
fi=(26)
23 705
fe=(11)
264 705
+1 470
+1 235
+2 705
-2 235
+1 235
-1 470
+1 235
+1 235
-4 48
+1 32
+1 16
+2 48
-2 16
+1 16
-1 32
+1 16
+1 16

fn=(1148)
156 7
cfi=(3)
cfn=(4)
calls=1 0 
* 2
* 2
-88 3
+94 5
+1 1
+3 1
-3 1
+3 1
-2 2
+2 1
cfi=(18)
cfn=(1144)
calls=1 16 
* 24
* 3
+27 1
-3 2
+1 1
+4 1
-2 1
+1 1
74 3
204 7

fn=(1758) realloc
407 632
cfi=(3)
cfn=(4)
calls=79 0 
* 158
* 79
+5 308
cfn=(102)
calls=50 -55 
* 13630
* 150
+2 58
cfn=(104)
calls=29 247 
* 261
* 58
+2 58
+1 87
+2 58
+22 58
+3 58
+5 123
cfn=(2000)
calls=12 271 
* 693
* 48
+1 15
+1 5
+7 15
+1 5
+3 15
-4 72
+1 24
+3 72
+2 44
cfn=(108)
calls=22 339 
* 1202
+1 22
+4 28
cfn=(102)
calls=7 357 
* 2011
+1 14
-1 7
+1 7
+1 49
cfi=(27) /home/buildozer/aports/main/musl/src/musl-1.1.5/src/string/i386/memcpy.s
cfn=(110) 0x0004c3ce
calls=7 4 
* 208
+1 14
cfn=(56)
calls=7 +5 
* 838
+1 28
+1 553

fn=(1998)
288 70
cfi=(3)
cfn=(4)
calls=10 0 
* 20
* 20
82 20
291 40
+1 12
cfn=(58)
calls=6 121 
* 36
82 6
292 6
68 6
+14 18
-14 12
+15 30
294 18
+1 30
cfn=(164)
calls=6 -34 
* 210
74 18
297 12
+4 4
+1 60

fn=(58)
121 1310
+1 1552
+3 242
-2 1239
-3 413
+4 1652
+1 413
-1 826
+1 413

fn=(108)
339 1896
+1 316
-1 316
cfi=(3)
cfn=(4)
calls=316 0 
* 632
* 316
+1 316
+3 948
+5 210
+5 210
-7 210
+2 420
+5 210
-5 210
+1 1050
+1 210
+1 210
+2 210
-2 210
+2 210
cfn=(56)
calls=210 477 
* 26343
* 210
+1 1896

fl=(78) /home/buildozer/aports/main/musl/src/musl-1.1.5/src/conf/sysconf.c
fn=(1216) sysconf
25 12
cfi=(3)
cfn=(4)
calls=2 -25 
* 4
* 8
169 10
+3 4
+2 4
+6 14
+8 4
+27 12

fl=(106) /home/buildozer/aports/main/musl/src/musl-1.1.5/src/fcntl/fcntl.c
fn=(3358) fcntl
9 6
+6 1
-2 1
+2 1
+1 2
+1 2
+7 2
fi=(18)
+6 4
cfi=(9)
cfn=(40)
calls=1 -18 
* 20
fe=(106)
+18 3
cfi=(10)
cfn=(50)
calls=1 -43 
* 15
* 1
+2 5

fl=(84) /home/buildozer/aports/main/musl/src/musl-1.1.5/src/thread/pthread_rwlock_rdlock.c
fn=(1652) pthread_rwlock_rdlock
4 280
cfi=(3)
cfn=(4)
calls=70 -4 
* 140
* 140
+1 210
cfi=(85) /home/buildozer/aports/main/musl/src/musl-1.1.5/src/thread/pthread_rwlock_timedrdlock.c
cfn=(1654) pthread_rwlock_timedrdlock
calls=70 -1 
* 2660
* 70
+1 210

fl=(15) /home/buildozer/aports/main/musl/src/musl-1.1.5/src/fcntl/open.c
fn=(68) open
7 405
+3 243
-2 81
+2 243
+7 891
cfi=(16) /home/buildozer/aports/main/musl/src/musl-1.1.5/src/thread/__syscall_cp.c
cfn=(70) __syscall_cp
calls=81 -1 
* 6879
+1 162
-1 81
+1 139
fi=(18)
+12 112
cfi=(9)
cfn=(40)
calls=28 -18 
* 560
fe=(15)
-9 243
cfi=(10)
cfn=(50)
calls=81 -16 
* 1839
* 81
+1 243

fl=(110) /home/buildozer/aports/main/musl/src/musl-1.1.5/src/math/i386/floor.s
fn=(3544) 0x00028604
16 3
+1 3
+1 6
+1 3
+1 3
+1 3
+1 3
+1 3
+1 3
+1 3

fl=(111) /home/buildozer/aports/main/musl/src/musl-1.1.5/src/mman/msync.c
fn=(3740) msync
5 3
+1 8
cfi=(16)
cfn=(70)
calls=1 +10 
* 79
* 2
+1 1
-1 1
cfi=(10)
cfn=(50)
calls=1 -1 
* 15

fl=(35) /home/buildozer/aports/main/musl/src/musl-1.1.5/src/stdio/fopen.c
fn=(148) fopen
7 8
cfi=(3)
cfn=(4)
calls=1 -7 
* 2
* 1
+6 5
cfi=(13) /home/buildozer/aports/main/musl/src/musl-1.1.5/src/string/strchr.c
cfn=(64) strchr
calls=1 -7 
* 66
* 3
+6 3
cfi=(36) /home/buildozer/aports/main/musl/src/musl-1.1.5/src/stdio/__fmodeflags.c
cfn=(150) __fmodeflags
calls=1 -14 
* 297
+2 5
-2 1
+2 5
cfi=(16)
cfn=(70)
calls=1 -5 
* 85
* 3
cfi=(10)
cfn=(50)
calls=1 -16 
* 27
+1 2
-1 1
+1 2
+9 7

fl=(41) /home/buildozer/aports/main/musl/src/musl-1.1.5/src/string/memrchr.c
fn=(168) memrchr
5 108
+2 54
+1 3198
+2 81

fl=(73) /home/buildozer/aports/main/musl/src/musl-1.1.5/src/thread/pthread_rwlock_init.c
fn=(1090) pthread_rwlock_init
4 3
+1 2
-1 2
+1 1
+1 1
-1 9
+1 1
+2 4

fl=(47)
fn=(192) atexit
72 4
cfi=(3)
cfn=(4)
calls=1 -72 
* 2
* 2
+1 5
cfn=(194) __cxa_atexit
calls=1 -35 
* 69
* 1
+1 3

fn=(3784) __funcs_on_exit
18 6
cfi=(3)
cfn=(4)
calls=1 -18 
* 2
* 2
+3 3
cfi=(48) /home/buildozer/aports/main/musl/src/musl-1.1.5/src/thread/__lock.c
cfn=(196) __lock
calls=1 -17 
* 21
+1 8
+1 4
-1 62
+1 124
+2 1
+2 1
-1 1
+1 1
-2 1
+2 1
cfi=(48)
cfn=(198) __unlock
calls=1 -17 
* 9
+1 4
cfn=(3786) call
calls=1 +39 
* 13609
+1 2
cfi=(48)
cfn=(196)
calls=1 -25 
* 21
* 1
-7 100
+9 6

fn=(194)
38 5
cfi=(3)
cfn=(4)
calls=1 -38 
* 2
* 1
+3 4
cfi=(48)
cfn=(196)
calls=1 -37 
* 21
+3 5
+3 3
+11 5
+1 1
+3 1
-3 1
+1 2
+2 2
cfi=(48)
cfn=(198)
calls=1 -52 
* 9
+1 2
+1 5

fn=(3786)
67 1
+1 1
cfi=(2) /home/buildozer/aports/main/musl/src/musl-1.1.5/src/ldso/dynlink.c
cfn=(3788) do_fini
calls=1 935 
* 13605
+1 2

fn=(3802)
34 29

fl=(20) /home/buildozer/aports/main/musl/src/musl-1.1.5/src/unistd/read.c
fn=(86) read
6 84
+1 224
cfi=(16)
cfn=(70)
calls=28 +9 
* 2380
* 56
+1 28
-1 28
cfi=(10)
cfn=(50)
calls=28 -2 
* 420

fl=(114) /home/buildozer/aports/main/musl/src/musl-1.1.5/src/stdio/__stdio_exit.c
fn=(4606) close_file
10 2
-1 2
+1 2
-1 10
+2 4
+1 6
+1 8
+1 10

fn=(4604) __stdio_exit
17 5
cfi=(3)
cfn=(4)
calls=1 -17 
* 2
* 1
+2 4
cfi=(48)
cfn=(196)
calls=1 -15 
* 21
+1 4
+1 3
cfn=(4606)
calls=1 -11 
* 22
+1 2
+1 4
-1 1
cfn=(4606)
calls=1 -12 
* 22

fl=(17) /home/buildozer/aports/main/musl/src/musl-1.1.5/src/thread/pthread_cancel.c
fn=(72) __syscall_cp_c
19 840
cfi=(3)
cfn=(4)
calls=140 -19 
* 280
* 700
+4 280
fi=(46) /home/buildozer/aports/main/musl/src/musl-1.1.5/./arch/i386/pthread_arch.h
-19 3
fe=(17)
+19 9
fi=(18)
+28 274
+1 137
-1 137
+1 137
-1 137
+1 548
cfi=(9)
cfn=(76) 0x0001cc08
calls=137 -6 
* 4384
* 137
fe=(17)
-28 137
+2 30
cfi=(100) /home/buildozer/aports/main/musl/src/musl-1.1.5/src/thread/i386/syscall_cp.s
cfn=(3306) 0x00051c28
calls=3 -21 
* 63
+1 9
+3 840

fl=(21) /home/buildozer/aports/main/musl/src/musl-1.1.5/src/mman/mmap.c
fn=(88) mmap
18 531
cfi=(3)
cfn=(4)
calls=59 -18 
* 118
* 59
+1 354
+4 118
+4 118
+1 90
cfi=(22)
cfn=(92)
calls=30 -22 
* 840
+1 30
cfi=(22)
cfn=(94)
calls=30 -14 
* 630
* 30
fi=(18)
+22 30
fe=(21)
-19 90
fi=(18)
+19 30
fe=(21)
-19 30
fi=(18)
+19 270
cfi=(9)
cfn=(76)
calls=30 -5 
* 960
* 29
fe=(21)
-19 87
fi=(18)
+19 29
fe=(21)
-19 29
fi=(18)
+19 261
cfi=(9)
cfn=(76)
calls=29 -5 
* 928
* 59
fe=(21)
-19 177
cfi=(10)
cfn=(50)
calls=59 -27 
* 885
* 59
+4 354

fl=(42) /home/buildozer/aports/main/musl/src/musl-1.1.5/src/env/__init_tls.c
fn=(174) __init_tp
11 6
cfi=(3)
cfn=(4)
calls=1 -11 
* 2
* 1
+3 1
-1 1
+1 2
cfi=(43) /home/buildozer/aports/main/musl/src/musl-1.1.5/src/thread/i386/__set_thread_area.s
cfn=(176) 0x0004e7db
calls=1 -9 
* 17
+1 3
+1 2
+1 1
+1 1
fi=(18)
-2 2
cfi=(9)
cfn=(40)
calls=1 -4 
* 20
fe=(42)
+2 1
+1 2
+1 2
+1 5

fn=(186) __init_tls
113 1

fl=(48)
fn=(198)
10 6
+1 6
+4 6

fn=(196)
4 24
cfi=(3)
cfn=(4)
calls=4 -4 
* 8
* 12
+2 4
-1 12
+2 24

fl=(101) /home/buildozer/aports/main/musl/src/musl-1.1.5/src/time/utime.c
fn=(3314) utime
7 5
cfi=(3)
cfn=(4)
calls=1 -7 
* 2
* 4
+1 8
cfi=(102) /home/buildozer/aports/main/musl/src/musl-1.1.5/src/stat/utimensat.c
cfn=(3316) utimensat
calls=1 * 
* 57
* 1
+3 5

fl=(6) /home/buildozer/aports/main/musl/src/musl-1.1.5/src/string/strncmp.c
fn=(22) strncmp
4 994
+2 994
-2 3976
+2 3976
+1 12077
+1 1988
+1 2982

fl=(18)
fn=(1144)
16 6
cfi=(9)
cfn=(40)
calls=2 -4 
* 40
fi=(76) /home/buildozer/aports/main/musl/src/musl-1.1.5/src/malloc/__brk.c
-9 2
fe=(18)

fl=(24)
fn=(98)
11 1274
+3 6275
+1 7454
+1 3986
+1 637
+1 1274

fl=(34)
fn=(142)
12 795
+2 159
+1 1758
+1 476
+2 158
-2 316
+3 4991
+1 2539
+2 80
+1 636

fl=(44)
fn=(3152)
64 7
cfi=(3)
cfn=(4)
calls=1 -64 
* 2
* 1
+1 1
+11 4
cob=(31)
cfi=(96)
cfn=(3154)
calls=1 -76 
* 52352

fn=(184) __init_libc
30 6
cfi=(3)
cfn=(4)
calls=1 -30 
* 2
* 3
+1 2
-1 2
+1 40
+1 2
+1 52
+1 2
+1 174
+1 1
+4 1
-4 2
+1 3
+1 2
+2 1
+5 4
cfi=(42)
cfn=(186)
calls=1 +68 
* 1
+1 3
cfi=(45) /home/buildozer/aports/main/musl/src/musl-1.1.5/src/env/__stack_chk_fail.c
cfn=(188) __init_ssp
calls=1 -38 
* 48
+2 5
-7 3
+1 47
+6 3
+1 2
+12 6

fl=(107) /home/buildozer/aports/main/musl/src/musl-1.1.5/src/string/strdup.c
fn=(3424) strdup
6 6
cfi=(3)
cfn=(4)
calls=1 -6 
* 2
* 3
+1 2
cfi=(24)
cfn=(98)
calls=1 +4 
* 38
+1 3
cfi=(11)
cfn=(102)
calls=1 357 
* 330
+1 3
+1 5
cfi=(27)
cfn=(110)
calls=1 -6 
* 20
* 2
+1 6

fl=(98) /home/buildozer/aports/main/musl/src/musl-1.1.5/src/locale/__setlocalecat.c
fn=(3160) __setlocalecat
74 48
cfi=(3)
cfn=(4)
calls=6 -74 
* 12
* 12
+1 12
+3 24
cfi=(60) /home/buildozer/aports/main/musl/src/musl-1.1.5/src/env/getenv.c
cfn=(558) getenv
calls=6 -72 
* 5328
* 24
-1 6
-1 6
+1 6
-1 12
cfi=(60)
cfn=(558)
calls=6 -70 
* 5434
* 24
+1 24
cfi=(60)
cfn=(558)
calls=6 -71 
* 4104
* 24
+1 12
+5 360
+1 24
+3 12
-1 42
cfi=(7)
cfn=(34)
calls=6 -81 
* 54
* 24
+1 36
cfi=(7)
cfn=(34)
calls=6 -82 
* 54
* 30
+3 30
+2 3
fi=(26)
-1 2
fe=(98)
+4 2
+3 6
cfi=(27)
cfn=(110)
calls=1 -94 
* 30
+1 5
+4 17
cfn=(3166) findlocale
calls=4 -84 
* 3772
* 16
+1 8
+7 42

fn=(3166)
19 28
cfi=(3)
cfn=(4)
calls=4 -19 
* 8
* 12
+9 12
+3 24
cfi=(60)
cfn=(558)
calls=4 -25 
* 3640
+2 8
-2 4
+2 4
+15 8
+14 24

fl=(103) /home/buildozer/aports/main/musl/src/musl-1.1.5/src/fcntl/posix_fadvise.c
fn=(3322) posix_fadvise
6 3
+1 1
+1 1
-1 8
cfi=(9)
cfn=(3324) 0x0001cc22
calls=1 +55 
* 46
* 1
+2 1
-2 1
+2 1

fl=(105) /home/buildozer/aports/main/musl/src/musl-1.1.5/src/stdlib/atoi.c
fn=(3338) atoi
5 12
+2 3
fi=(12) /home/buildozer/aports/main/musl/src/musl-1.1.5/./include/ctype.h
+21 6
fe=(105)
-21 12
+1 12
-2 6
+8 3
-1 60
+1 72
+1 9
+1 12

fl=(109) /home/buildozer/aports/main/musl/src/musl-1.1.5/src/string/stpncpy.c
fn=(3488) stpncpy
12 54
cfi=(3)
cfn=(4)
calls=6 -12 
* 12
* 12
+4 24
+1 2
+1 4
+2 10
+4 90
+2 30
cfi=(5) /home/buildozer/aports/main/musl/src/musl-1.1.5/src/string/i386/memset.s
cfn=(10) 0x0004c919
calls=6 -22 
* 144
+1 6
+1 42

fl=(33)
fn=(138)
5 4456
cfi=(3)
cfn=(4)
calls=557 -5 
* 1114
* 1114
+3 1114
+2 2228
+2 1114
-6 1114
+17 2785
cfi=(27)
cfn=(110)
calls=557 -19 
* 11071
+2 557
-1 557
+1 1671
+1 3342

fl=(97)
fn=(3158)
11 6
cfi=(3)
cfn=(4)
calls=1 -11 
* 2
* 4
+4 2
+1 2
+4 2
+7 1
+1 2
+2 2
+6 2
+9 24
-1 6
+1 6
cfn=(3159) setlocale'2
calls=6 -34 
* 19961
-1 18
+4 6
cfi=(5)
cfn=(10)
calls=1 -44 
* 29
+1 9
+2 1
+1 2
-1 2
+1 10
-2 6
+5 2
+22 6

fn=(3159)
11 36
cfi=(3)
cfn=(4)
calls=6 -11 
* 12
* 24
+4 12
+5 12
+7 6
+31 12
+1 6
+1 30
-1 6
+1 6
cfi=(98)
cfn=(3160)
calls=6 +14 
* 19681
+2 30
fi=(26)
+13 1
fe=(97)
-10 30
+2 5
+4 1
+1 2
+2 3
+1 6
-3 4
+5 36

fl=(40) /home/buildozer/aports/main/musl/src/musl-1.1.5/src/string/strrchr.c
fn=(166) strrchr
6 162
cfi=(3)
cfn=(4)
calls=27 -6 
* 54
* 27
+1 81
cfi=(24)
cfn=(98)
calls=27 +4 
* 1768
* 162
cfi=(41)
cfn=(168)
calls=27 -2 
* 3441
* 27
+1 135

fl=(26)
fn=(1110) pthread_rwlock_trywrlock
48 184
fi=(116) /home/buildozer/aports/main/musl/src/musl-1.1.5/src/thread/pthread_rwlock_trywrlock.c
-43 184
+2 46
fe=(26)

fl=(85)
fn=(1654)
4 420
cfi=(3)
cfn=(4)
calls=70 -4 
* 140
* 70
+3 210
cfi=(86) /home/buildozer/aports/main/musl/src/musl-1.1.5/src/thread/pthread_rwlock_tryrdlock.c
cfn=(1656) pthread_rwlock_tryrdlock
calls=70 -3 
* 1260
+1 210
+15 350

fl=(22)
fn=(94)
15 31
+1 31
-1 93
cfi=(3)
cfn=(4)
calls=31 -15 
* 62
* 31
+1 93
fi=(26)
+59 62
fe=(22)
-58 124
+2 124

fn=(92)
6 186
cfi=(3)
cfn=(4)
calls=31 -6 
* 62
* 93
+3 31
-1 31
+1 124
+1 31
fi=(26)
+38 62
fe=(22)
-38 62
+2 186

fl=(39) /home/buildozer/aports/main/musl/src/musl-1.1.5/src/string/strcspn.c
fn=(160) strcspn
9 632
cfi=(3)
cfn=(4)
calls=79 -9 
* 158
* 79
+4 395
+2 474
cfi=(5)
cfn=(10)
calls=79 -11 
* 1975
+1 632
-7 79
+8 158
-1 1738
+1 8795
+1 79
+1 474

fl=(79) /home/buildozer/aports/main/musl/src/musl-1.1.5/src/time/gettimeofday.c
fn=(1252) gettimeofday
6 21
cfi=(3)
cfn=(4)
calls=3 -6 
* 6
* 3
+2 6
+1 18
cfi=(80) /home/buildozer/aports/main/musl/src/musl-1.1.5/src/time/clock_gettime.c
cfn=(1254) clock_gettime
calls=3 +18 
* 349
+1 3
+1 3
+1 3
-2 3
+1 12
+2 18

fl=(43)
fn=(176)
5 1
+1 1
+1 1
+1 1
+1 1
+1 1
+1 1
+1 1
+1 1
+1 1
+1 1
+1 1
+1 1
+1 1
+2 1
+1 1
+1 1

fl=(23) /home/buildozer/aports/main/musl/src/musl-1.1.5/src/unistd/close.c
fn=(96) close
7 87
+1 232
cfi=(16)
cfn=(70)
calls=29 +8 
* 2459
+1 87
+1 29
+1 29
-1 29
cfi=(10)
cfn=(50)
calls=29 -5 
* 435

fl=(99) /home/buildozer/aports/main/musl/src/musl-1.1.5/src/misc/getopt_long.c
fn=(3264) getopt_long
601 4
+2 1
-2 2
+2 4
+2 2
-2 1
cfn=(3266) getopt_internal
calls=1 354 
* 1093

fn=(3266)
354 7
cfi=(3)
cfn=(4)
calls=1 0 
* 2
* 1
+5 1
-5 2
+5 1
+7 4
cfi=(60)
cfn=(558)
calls=1 6 
* 955
* 5
+2 4
+2 4
+11 4
+7 4
+1 2
+2 1
+1 1
-1 1
+1 1
+1 2
+2 15
+2 3
-1 3
+1 6
-1 3
+1 3
+2 1
-1 3
+1 2
+6 2
+5 1
+2 2
+1 2
+2 10
+7 2
-1 4
+1 2
+8 4
+8 6
+1 2
+1 3
+7 4
+2 2
571 6

fl=(100)
fn=(3306)
5 3
+1 3
+1 3
+1 3
+1 3
+3 3
+1 3
+1 3
+1 3
+1 3
+1 3
+1 3
+1 3
+1 3
+1 3
+1 3
+3 3
+1 3
+1 3
+1 3
+1 3

fl=(2)
fn=(36) gnu_lookup
208 30793
+3 4399
-3 4399
+1 4399
+1 4399
-2 4399
cfi=(3)
cfn=(4)
calls=4399 0 
* 8798
* 4399
+3 4399
+5 4399
-7 4399
+1 4399
-1 4399
+3 4399
-2 4399
+2 4399
+1 13197
+3 17596
+2 8798
+2 3917
+2 15668
-2 35253
+3 7834
+1 15668
-1 8422
+1 30828
+3 16765
-2 43872
cfi=(7)
cfn=(34)
calls=1136 5 
* 98558
* 6816
-7 3263
+13 30793

fn=(52) reclaim_gaps
419 30
+4 30
-4 150
+1 30
+1 60
+2 426
+1 366
+1 240
+1 240
cfn=(54) reclaim
calls=30 -23 
* 1050
+2 90
-1 120
cfn=(54)
calls=30 -24 
* 5155
* 60
-4 549
+7 150

fn=(2) __dynlink
1098 6
cfi=(3)
cfn=(4)
calls=1 0 
* 2
* 3
+1 2
-1 1
+1 40
+11 1
-3 1
+3 2
+4 1
-4 1
+5 2
-1 51
+1 80
cfi=(4) /home/buildozer/aports/main/musl/src/musl-1.1.5/src/string/memcmp.c
cfn=(6) memcmp
calls=16 4 
* 301
* 48
+2 96
cfi=(4)
cfn=(6)
calls=16 4 
* 370
* 48
+1 3
-4 32
+7 1
-2 1
+2 2
-2 1
+2 1
cfn=(8) decode_vec
calls=1 146 
* 368
+3 8
+1 5
+5 1
+6 1
-6 1
+6 1
+7 1
+1 1
+1 1
-1 2
+3 1
-4 1
+4 1
+1 2
+1 1
-1 1
+1 1
+1 2
cfn=(18) kernel_mapped_dso
calls=1 911 
* 116
+1 2
cfn=(20) decode_dyn
calls=1 639 
* 429
+2 3
+6 1
-2 1
+1 1
-1 1
-2 1
+4 3
-1 6
-4 4
+6 18
+1 24
+1 4
+1 14
+1 2
+1 12
-5 28
+12 6
+1 5
+1 2
+1 6
cfi=(6)
cfn=(22)
calls=1 4 
* 26
* 3
+1 2
+2 1
+1 2
cfn=(18)
calls=1 911 
* 140
* 1
+63 3
+15 1
-1 1
+1 1
cfn=(20)
calls=1 639 
* 707
156 80
+1 40
-1 38
1283 1
+1 1
+2 1
-3 2
+1 2
+1 1
+1 1
cfn=(24) reloc_all
calls=1 887 
* 19179
+6 1
-5 1
+5 2
cfn=(52)
calls=1 419 
* 318
+1 2
cfn=(52)
calls=1 419 
* 304
+6 2
+1 2
cfn=(126) load_deps
calls=1 844 
* 425323
* 2
872 7
+1 184
+2 1
+1 2
-1 1
+1 1
cfn=(62) load_library
calls=1 657 
* 4489
+1 2
-6 7
fi=(12)
28 2
fe=(2)
872 5
fi=(12)
28 90
fe=(2)
873 360
+10 121
1306 1
-2 63
+1 40
+1 41
+3 2
cfn=(24)
calls=1 887 
* 12069919
+1 2
cfn=(24)
calls=1 887 
* 134228
+2 1
cfn=(170) update_tls_size
calls=1 1088 
* 17
+1 3
+1 5
cfi=(25) /home/buildozer/aports/main/musl/src/musl-1.1.5/src/malloc/calloc.c
cfn=(100) calloc
calls=1 5 
* 1201
+1 3
+8 3
cfn=(172) __copy_tls
calls=1 1004 
* 268
* 2
cfi=(42)
cfn=(174)
calls=1 11 
* 69
* 3
+4 1
+2 1
-2 1
+2 1
+1 2
+9 1
-3 1
+2 1
+4 1
-3 1
+1 2
+1 2
+2 1
cfn=(182) _dl_debug_state
calls=1 987 
* 1
+2 5
cfi=(44)
cfn=(184)
calls=1 30 
* 417
+1 3
cfi=(47)
cfn=(192)
calls=1 72 
* 86
+1 1
cfi=(37) /home/buildozer/aports/main/musl/src/musl-1.1.5/src/errno/__errno_location.c
cfn=(152) __errno_location
calls=1 4 
* 9
* 1
+1 2
cfn=(202) do_init_fini
calls=1 954 
* 436532
+3 1
-1 1
+1 6

fn=(32) sysv_lookup
194 562041
cfi=(3)
cfn=(4)
calls=62449 0 
* 124898
* 62449
+2 62449
+1 62449
-1 62449
+2 124898
+1 565374
+1 374731
+1 1294068
cfi=(7)
cfn=(34)
calls=107839 5 
* 3536218
* 539195
-2 286020
+5 49950
+1 437143

fn=(20)
639 180
+1 30
-1 30
+1 1110
+1 120
cfn=(8)
calls=30 146 
* 11591
+1 30
+2 30
-2 30
+2 30
-2 60
+1 60
+1 30
-1 30
+1 30
+1 90
+1 60
+2 60
+2 60
156 2034
+1 1354
-1 1296
+2 2
651 3
157 1342
-1 2678
653 12
+1 150

fn=(84) map_library
433 168
cfi=(3)
cfn=(4)
calls=28 0 
* 56
* 56
+15 140
-15 56
+15 28
cfi=(20)
cfn=(86)
calls=28 6 
* 3220
+2 112
+1 168
+2 84
+1 28
-1 28
+1 28
+7 140
+6 56
-32 28
+34 28
-32 28
+8 28
-1 28
-7 28
+32 506
+1 507
+1 84
+1 282
+1 1
+1 1
-1 1
+1 2
+1 2
+1 3
+1 280
+1 112
+1 140
+2 224
+1 168
+2 28
+2 28
-2 28
+1 28
-1 28
+2 28
-1 112
+2 28
-3 28
+1 28
+2 84
-1 28
+3 224
-20 507
+24 56
+1 28
+2 28
+1 28
-1 56
+1 28
-1 28
-2 28
+3 28
-2 28
+2 56
+1 140
+5 112
-5 28
+5 140
cfi=(21)
cfn=(88)
calls=28 18 
* 2660
+1 28
-1 28
+1 56
+3 56
+4 84
+1 56
+1 28
+1 450
+1 507
+3 308
+1 196
+2 84
+1 28
-1 28
+1 28
+1 28
-2 28
+2 28
+3 392
+2 56
+3 28
-2 28
-1 56
+1 28
+1 28
+1 28
-3 28
+1 28
+1 84
+2 140
-1 28
+2 364
cfi=(21)
cfn=(88)
calls=28 18 
* 4172
* 84
+2 112
+1 56
+2 28
-2 28
+1 56
+1 224
cfi=(5)
cfn=(10)
calls=28 4 
* 26784
+1 192
cfi=(21)
cfn=(88)
calls=2 18 
* 298
* 6
-25 760
+29 2588
+1 1252
+5 56
+4 28
-4 28
+1 28
+2 28
-2 28
+1 56
+2 32
+1 112
cfn=(52)
calls=28 419 
* 8124
+1 84
cfi=(11)
cfn=(56)
calls=28 -78 
* 560
+1 84
+7 168

fn=(3788)
935 6
cfi=(3)
cfn=(4)
calls=1 0 
* 2
* 3
+2 2
+1 1
-1 38
+1 60
+1 58
+1 145
cfn=(8)
calls=29 146 
* 11341
+1 87
+6 145
+1 58
cob=(2) ???
cfi=(49) ???
cfn=(4576) 0x05095ab8
calls=1 0 
* 55
cob=(2)
cfi=(49)
cfn=(4548) 0x05090784
calls=1 0 
* 55
cob=(2)
cfi=(49)
cfn=(4520) 0x050850e0
calls=1 0 
* 55
cob=(2)
cfi=(49)
cfn=(4492) 0x05067e6a
calls=1 0 
* 55
cob=(2)
cfi=(49)
cfn=(4464) 0x04fc47d1
calls=1 0 
* 55
cob=(2)
cfi=(49)
cfn=(4436) 0x04f2cb42
calls=1 0 
* 55
cob=(2)
cfi=(49)
cfn=(4408) 0x04f1b354
calls=1 0 
* 55
cob=(2)
cfi=(49)
cfn=(4380) 0x04efb622
calls=1 0 
* 55
cob=(2)
cfi=(49)
cfn=(4352) 0x04ef19c9
calls=1 0 
* 55
cob=(2)
cfi=(49)
cfn=(4324) 0x04ed6a6b
calls=1 0 
* 55
cob=(2)
cfi=(49)
cfn=(4296) 0x04e4a89c
calls=1 0 
* 55
cob=(2)
cfi=(49)
cfn=(4268) 0x04e1f624
calls=1 0 
* 55
cob=(2)
cfi=(49)
cfn=(4240) 0x04d9a49b
calls=1 0 
* 55
cob=(2)
cfi=(49)
cfn=(4212) 0x04d5cb4f
calls=1 0 
* 55
cob=(2)
cfi=(49)
cfn=(4184) 0x04d2a761
calls=1 0 
* 55
cob=(2)
cfi=(49)
cfn=(4156) 0x04d26c7e
calls=1 0 
* 55
cob=(2)
cfi=(49)
cfn=(4128) 0x04d1e29c
calls=1 0 
* 55
cob=(2)
cfi=(49)
cfn=(4100) 0x04d06362
calls=1 0 
* 55
cob=(2)
cfi=(49)
cfn=(4072) 0x04cbc967
calls=1 0 
* 55
cob=(2)
cfi=(49)
cfn=(4044) 0x04beeddd
calls=1 0 
* 55
cob=(2)
cfi=(49)
cfn=(4016) 0x04b69e5a
calls=1 0 
* 55
cob=(2)
cfi=(49)
cfn=(3988) 0x04ab04d1
calls=1 0 
* 55
cob=(2)
cfi=(49)
cfn=(3960) 0x04a5f8bc
calls=1 0 
* 55
cob=(2)
cfi=(49)
cfn=(3932) 0x04a31f86
calls=1 0 
* 55
cob=(2)
cfi=(49)
cfn=(3904) 0x04a1ba53
calls=1 0 
* 55
cob=(2)
cfi=(49)
cfn=(3876) 0x049ab301
calls=1 0 
* 55
cob=(2)
cfi=(49)
cfn=(3848) 0x048b07da
calls=1 0 
* 55
cob=(2)
cfi=(49)
cfn=(3820) 0x0488662d
calls=1 0 
* 55
cob=(2)
cfi=(49)
cfn=(3790) 0x0010acb1
calls=1 0 
* 55
-10 58
+13 6

fn=(18)
911 2
+2 2
+1 2
-3 2
+1 2
-1 2
+1 2
+2 48
+1 42
+1 8
+1 24
+1 6
+1 10
+2 20
+1 14
+2 16
-10 28
+15 2
-1 2
-1 2
+1 2
+2 2
+2 2
-3 4
+3 2
-2 2
+1 2
+1 4

fn=(62)
657 588
cfi=(3)
cfn=(4)
calls=98 0 
* 196
* 294
+4 98
-4 196
+4 4214
+7 98
-11 98
+11 196
+6 196
-8 140
+8 485
+3 582
cfi=(13)
cfn=(64)
calls=97 6 
* 10176
+1 291
+1 97
+1 2128
+1 360
-1 3577
cfi=(6)
cfn=(22)
calls=511 4 
* 13355
* 3465
cfi=(24)
cfn=(98)
calls=483 11 
* 13800
* 1932
+2 28
+12 28
-12 28
+16 588
cfi=(7)
cfn=(34)
calls=98 5 
* 891
* 294
+1 196
+1 112
+1 2
+1 1
+1 7
+4 420
cfi=(13)
cfn=(64)
calls=70 6 
* 9100
* 210
+2 5
cfi=(15)
cfn=(68)
calls=1 7 
* 160
* 4
+3 2074
+1 7183
cfi=(7)
cfn=(34)
calls=872 5 
* 36960
* 2616
+1 42
+1 42
-3 1798
+6 81
cfi=(24)
cfn=(98)
calls=27 11 
* 1434
* 81
+2 81
-1 27
-87 27
-38 54
721 424
585 148
+1 222
721 148
+38 27
-35 27
+35 27
-35 27
+1 54
+3 7
+2 69
+1 106
-1 88
+2 2
+1 2
+7 5
+2 5
-1 1
+1 3
cfi=(30) /home/buildozer/aports/main/musl/src/musl-1.1.5/src/stdio/snprintf.c
cfn=(128) snprintf
calls=1 5 
* 1179
+3 5
cfi=(35)
cfn=(148)
calls=1 7 
* 523
+1 2
-1 1
+1 1
+6 1
cfi=(37)
cfn=(152)
calls=1 4 
* 8
* 2
+1 1
+3 56
+1 6
cfn=(156) path_open.constprop.3
calls=1 565 
* 6517
* 156
cfn=(156)
calls=26 565 
* 165456
* 27
+2 27
-2 27
+4 56
+1 168
cfi=(19) /home/buildozer/aports/main/musl/src/musl-1.1.5/src/stat/fstat.c
cfn=(82) fstat
calls=28 10 
* 1708
* 84
+4 28
+1 56
-1 28
+1 112
-1 864
+1 3910
-1 808
+12 140
cfn=(84)
calls=28 433 
* 60949
* 28
+1 84
cfi=(23)
cfn=(96)
calls=28 7 
* 3276
+1 84
+7 84
cfi=(24)
cfn=(98)
calls=28 11 
* 1878
+1 56
665 28
787 28
+1 28
+7 140
cfi=(25)
cfn=(100)
calls=28 5 
* 17787
+1 56
-1 28
+1 28
+4 168
cfi=(27)
cfn=(110)
calls=28 4 
* 1624
+1 56
cfn=(20)
calls=28 639 
* 21396
+1 84
+1 28
-1 28
+1 28
+1 28
-1 28
+2 28
-2 28
+2 28
+1 56
+1 140
cfi=(28)
cfn=(122)
calls=28 6 
* 3448
+2 247
cfi=(40)
cfn=(166)
calls=27 6 
* 5857
* 81
+1 84
+1 2
+6 1
+13 1
-12 2
-1 3
+1 4
+6 1
-6 2
+6 3
+1 1
+1 1
+4 1
-4 1
-1 2
+2 1
+3 2
cfi=(24)
cfn=(98)
calls=1 11 
* 68
+1 4
-1 1
-1 2
+2 2
+3 1
+4 1
-2 1
-2 1
+1 1
+3 1
-4 27
+4 27
-2 27
-2 27
+1 27
+3 27
+3 686

fn=(172)
1004 6
cfi=(3)
cfn=(4)
calls=1 0 
* 2
* 3
+5 1
+1 1
-1 1
+1 1
+18 1
+1 1
+3 1
-4 1
+1 2
+3 62
+1 90
+1 2
+1 1
-1 1
+1 5
cfi=(27)
cfn=(110)
calls=1 4 
* 16
* 2
-3 60
+6 1
+1 1
+1 6

fn=(26) do_relocs
278 540
+1 90
-1 180
cfi=(3)
cfn=(4)
calls=90 0 
* 180
* 180
+1 90
+1 90
+1 90
-1 90
+1 90
+12 26858
+1 39612
+1 79224
+2 39612
+6 39612
+1 26408
+1 4461
+1 4461
-1 4461
+1 4461
+1 4461
-2 4461
+1 8922
+1 4461
+1 40149
cfn=(28) find_sym
calls=4461 -67 
* 11428449
* 4461
+1 4461
-1 4461
+1 4461
-1 4461
+1 5070
+1 812
+3 8743
+4 8743
-1 8743
+6 26408
+1 75138
+2 69848
+1 8946
+2 105632
+12 8922
+1 17484
+10 2
+1 1
+13 13203
+1 13203
-73 52816
394 540

fn=(30) sysv_hash
176 4461
+1 229470
+1 216087
+1 360145
+2 8922
+1 4461

fn=(24)
887 18
cfi=(3)
cfn=(4)
calls=3 0 
* 6
* 9
+1 3
-1 3
+1 117
+14 3
-13 126
+1 120
+1 150
cfn=(8)
calls=30 146 
* 11591
+4 360
cfn=(26)
calls=30 278 
* 8199143
+2 240
cfn=(26)
calls=30 278 
* 4008239
+1 240
cfn=(26)
calls=30 278 
* 870
+2 150
+1 210
cfi=(8)
cfn=(38)
calls=30 6 
* 1470
-1 90
+6 30
-17 120
+19 18

fn=(54)
403 360
+2 60
-2 60
cfi=(3)
cfn=(4)
calls=60 0 
* 120
* 120
+2 330
+1 270
+1 30
+1 30
-1 30
+1 30
+1 60
-2 30
+1 30
-1 30
+1 30
+1 180
+1 30
+5 30
-5 30
+1 30
+2 60
-1 30
+1 60
+1 30
+1 60
cfi=(11)
cfn=(56)
calls=30 +62 
* 3655
* 30
+1 360

fn=(126)
844 4
+3 1
-3 2
cfi=(3)
cfn=(4)
calls=1 0 
* 2
* 3
+1 1
+7 2
-5 92
+1 2756
+1 1318
+1 388
cfn=(62)
calls=97 657 
* 418982
+1 194
+5 194
+5 1318
-14 60
+18 6

fn=(170)
1088 2
cfi=(3)
cfn=(4)
calls=1 0 
* 2
* 1
+1 10
+6 2

fn=(156)
565 189
cfi=(3)
cfn=(4)
calls=27 0 
* 54
* 81
+5 216
cfi=(38) /home/buildozer/aports/main/musl/src/musl-1.1.5/src/string/strspn.c
cfn=(158) strspn
calls=27 7 
* 1944
* 312
cfi=(38)
cfn=(158)
calls=52 7 
* 4368
* 79
+1 395
cfi=(39)
cfn=(160)
calls=79 9 
* 15668
+1 79
-1 79
+1 237
+1 790
cfi=(30)
cfn=(128)
calls=79 5 
* 134435
* 237
+2 395
cfi=(15)
cfn=(68)
calls=79 7 
* 11912
* 237
+1 104
+2 162

fn=(202)
954 6
cfi=(3)
cfn=(4)
calls=1 0 
* 2
* 3
+1 1
-1 1
+1 37
+1 3
+4 2
+20 2
-19 62
+1 60
+2 90
-1 30
+1 60
cfn=(8)
calls=30 146 
* 11591
+1 120
+1 29
+1 29
-1 29
+4 147
+1 58
cob=(2)
cfi=(49)
cfn=(3110) 0x00108d20
calls=1 0 
* 58
cob=(2)
cfi=(49)
cfn=(3082) 0x0488634c
calls=1 0 
* 58
cob=(2)
cfi=(49)
cfn=(3054) 0x0488cc60
calls=1 0 
* 58
cob=(2)
cfi=(49)
cfn=(3026) 0x048da708
calls=1 0 
* 58
cob=(2)
cfi=(49)
cfn=(2998) 0x049f8b14
calls=1 0 
* 58
cob=(2)
cfi=(49)
cfn=(2970) 0x04a2beb8
calls=1 0 
* 58
cob=(2)
cfi=(49)
cfn=(2942) 0x04a3e38c
calls=1 0 
* 58
cob=(2)
cfi=(49)
cfn=(1036) 0x04a86948
calls=1 0 
* 58
cob=(2)
cfi=(49)
cfn=(982) 0x04ad932c
calls=1 0 
* 58
cob=(2)
cfi=(49)
cfn=(954) 0x04be90d0
calls=1 0 
* 58
cob=(2)
cfi=(49)
cfn=(926) 0x04bfcdb0
calls=1 0 
* 58
cob=(2)
cfi=(49)
cfn=(898) 0x04cf8578
calls=1 0 
* 58
cob=(2)
cfi=(49)
cfn=(870) 0x04d13980
calls=1 0 
* 58
cob=(2)
cfi=(49)
cfn=(842) 0x04d25a44
calls=1 0 
* 58
cob=(2)
cfi=(49)
cfn=(814) 0x04d2a420
calls=1 0 
* 58
cob=(2)
cfi=(49)
cfn=(786) 0x04d311ec
calls=1 0 
* 58
cob=(2)
cfi=(49)
cfn=(758) 0x04d7ce68
calls=1 0 
* 58
cob=(2)
cfi=(49)
cfn=(730) 0x04db9b4c
calls=1 0 
* 58
cob=(2)
cfi=(49)
cfn=(702) 0x04e49904
calls=1 0 
* 58
cob=(2)
cfi=(49)
cfn=(456) 0x04e51830
calls=1 0 
* 58
cob=(2)
cfi=(49)
cfn=(428) 0x04ef08f8
calls=1 0 
* 58
cob=(2)
cfi=(49)
cfn=(400) 0x04ef6748
calls=1 0 
* 58
cob=(2)
cfi=(49)
cfn=(372) 0x04f07508
calls=1 0 
* 58
cob=(2)
cfi=(49)
cfn=(344) 0x04f27138
calls=1 0 
* 58
cob=(2)
cfi=(49)
cfn=(316) 0x04f40b58
calls=1 0 
* 58
cob=(2)
cfi=(49)
cfn=(288) 0x0505d304
calls=1 0 
* 58
cob=(2)
cfi=(49)
cfn=(260) 0x0506eefc
calls=1 0 
* 58
cob=(2)
cfi=(49)
cfn=(232) 0x0508f7f8
calls=1 0 
* 58
cob=(2)
cfi=(49)
cfn=(204) 0x05093bf8
calls=1 0 
* 58
+2 60
+5 60
-4 3
+2 3
-1 6
-1 3
+2 24
cob=(24) /usr/lib/libgobject-2.0.so.0.4200.0
cfi=(72) ???
cfn=(1064) 0x00008161
calls=1 0 
* 411354
cob=(23) /usr/lib/libglib-2.0.so.0.4200.0
cfi=(71) ???
cfn=(1010) 0x000149db
calls=1 0 
* 1862
cob=(12) /usr/lib/libpixman-1.so.0.32.6
cfi=(59) ???
cfn=(484) 0x00004dd0
calls=1 0 
* 8940
* 15
+2 90
-17 60
+22 2
+1 6

fn=(8)
146 960
+1 120
-1 120
cfi=(3)
cfn=(4)
calls=120 0 
* 240
* 120
+1 600
cfi=(5)
cfn=(10)
calls=120 4 
* 6124
+1 13690
+1 11565
+1 6939
-2 5284
+4 720

fn=(28)
241 13383
+1 4461
-1 17844
+2 8922
-1 4461
+2 134254
+2 133696
+1 133696
+1 17596
-60 227136
+1 71313
-1 71313
+1 142626
+60 21995
cfn=(36)
calls=4399 -41 
* 458425
* 4399
+2 133820
cfn=(30)
calls=4461 -75 
* 823546
* 4461
+1 22305
cfn=(32)
calls=4461 -58 
* 393779
* 289940
cfn=(32)
calls=57988 -58 
* 7750553
* 66848
+2 133696
+1 27270
+1 28002
+1 18130
+2 26646
+1 13872
+2 25548
+1 21290
+2 8516
+3 8668
-24 125890
+26 558
+1 279
-1 279
+1 1395
-1 8364
+1 4182
-1 4182
+1 20910

fn=(182)
987 1

fl=(113)
fn=(3782)
21 4
cfi=(3)
cfn=(4)
calls=1 -21 
* 2
* 2
+1 1
cfi=(47)
cfn=(3784)
calls=1 -4 
* 13990
+9 1
cfi=(114)
cfn=(4604)
calls=1 -14 
* 91
+2 3
cfi=(115) /home/buildozer/aports/main/musl/src/musl-1.1.5/src/exit/_Exit.c
cfn=(4608) _Exit
calls=1 -28 
* 15

fl=(10)
fn=(50)
5 807
+5 269
-5 269
cfi=(3)
cfn=(4)
calls=269 -5 
* 538
* 269
+1 538
+1 53
cfi=(37)
cfn=(152)
calls=53 -3 
* 424
* 106
+1 53
+3 1345

fl=(80)
fn=(1254)
27 12
cfi=(3)
cfn=(4)
calls=3 -27 
* 6
* 6
+3 6
+1 7
cfi=(81) /home/buildozer/aports/main/musl/src/musl-1.1.5/src/internal/vdso.c
cfn=(1256) __vdsosym
calls=1 +12 
* 158
+1 2
-1 1
+1 2
fi=(26)
+9 2
fe=(80)
-6 5
cfn=(1258) sc_clock_gettime
calls=1 -26 
* 40
* 10
cfn=(1258)
calls=2 -26 
* 80
+4 3
-4 3
+4 6

fn=(1258)
9 3
fi=(18)
+14 3
fe=(80)
-14 12
cfi=(3)
cfn=(4)
calls=3 -9 
* 6
* 6
fi=(18)
+14 6
cfi=(9)
cfn=(40)
calls=3 -11 
* 60
* 3
fe=(80)
-12 6
+11 15

fl=(83) /home/buildozer/aports/main/musl/src/musl-1.1.5/src/thread/pthread_rwlock_unlock.c
fn=(1584) pthread_rwlock_unlock
4 580
+1 232
+3 116
+2 116
-1 232
+2 486
fi=(26)
+37 232
fe=(83)
-36 232
+2 696
+4 696

fl=(1) /home/buildozer/aports/main/musl/src/musl-1.1.5/src/ldso/i386/start.s
fn=(0) 0x0002024f
4 1
+1 1
+1 1
+1 1
+1 1
+1 1
+1 1
+1 1
+1 1
cfi=(2)
cfn=(2)
calls=1 1098 
* 13096601
+1 1
+1 1
+1 1
+1 1
+1 1
+1 1
+1 1
+1 1
+1 1
+1 1
cob=(31)
cfi=(96)
cfn=(3142)
calls=1 -22 
* 52386

fl=(16)
fn=(70)
16 560
+1 700
-1 140
cfi=(3)
cfn=(4)
calls=140 -16 
* 280
* 140
+1 420
cfi=(17)
cfn=(72)
calls=140 +2 
* 9082
* 140
+1 420

fl=(25)
fn=(100)
5 1122
cfi=(3)
cfn=(4)
calls=187 -5 
* 374
* 187
+3 1309
+4 187
+1 187
-1 187
+1 374
cfi=(11)
cfn=(102)
calls=187 357 
* 51669
+1 374
-1 187
+1 187
+2 374
+2 187
+1 187
-1 187
+1 24315
+3 935

fl=(37)
fn=(152)
4 88
cfi=(3)
cfn=(154) 0x00018de8
calls=88 -4 
* 176
* 88
+2 176
fi=(46)
-2 34
fe=(37)
+2 68
+1 54
+1 54

fl=(77) /home/buildozer/aports/main/musl/src/musl-1.1.5/src/thread/pthread_key_create.c
fn=(1188) pthread_key_create
13 5
cfi=(3)
cfn=(4)
calls=1 -13 
* 2
* 1
+1 3
+3 2
fi=(46)
-13 1
fe=(77)
+17 4
+3 3
fi=(26)
+17 3
fe=(77)
-15 2
+1 2
+1 2
+4 4

fl=(7)
fn=(34)
5 3458369
+1 13737
+1 13737
-1 96311
+1 96311

fl=(82) /home/buildozer/aports/main/musl/src/musl-1.1.5/src/thread/pthread_setspecific.c
fn=(1286) pthread_setspecific
4 2
fi=(46)
* 1
fe=(82)
+3 5
+1 1
+1 1
+3 3

fl=(45)
fn=(188)
8 6
cfi=(3)
cfn=(4)
calls=1 -8 
* 2
* 1
+1 8
cfi=(27)
cfn=(110)
calls=1 -5 
* 19
* 2
+3 2
fi=(46)
-8 1
fe=(45)
+9 2
+1 5

fl=(13)
fn=(64)
6 972
cfi=(3)
cfn=(4)
calls=243 -6 
* 486
* 486
+1 729
cfi=(14) /home/buildozer/aports/main/musl/src/musl-1.1.5/src/string/strchrnul.c
cfn=(66) strchrnul
calls=243 +5 
* 21124
+1 729
+1 243
-1 243
+1 243
-1 729
+1 486

fl=(102)
fn=(3316)
8 1
fi=(18)
+29 1
fe=(102)
-29 6
fi=(18)
+29 3
cfi=(9)
cfn=(40)
calls=1 -25 
* 20
fe=(102)
-26 2
+25 3
cfi=(10)
cfn=(50)
calls=1 -31 
* 15
* 1
+1 5

fl=(74) /home/buildozer/aports/main/musl/src/musl-1.1.5/src/thread/pthread_rwlock_wrlock.c
fn=(1106) pthread_rwlock_wrlock
4 184
cfi=(3)
cfn=(4)
calls=46 -4 
* 92
* 92
+1 138
cfi=(75) /home/buildozer/aports/main/musl/src/musl-1.1.5/src/thread/pthread_rwlock_timedwrlock.c
cfn=(1108) pthread_rwlock_timedwrlock
calls=46 -1 
* 1334
* 46
+1 138

fl=(30)
fn=(128)
5 320
+3 80
+1 80
-4 80
cfi=(3)
cfn=(4)
calls=80 -5 
* 160
* 80
+4 320
cfi=(31)
cfn=(130)
calls=80 +9 
* 134174
+2 80
+1 240

fl=(115)
fn=(4608)
5 1
-5 2
fi=(3)
cfi=(9)
cfn=(40)
calls=1 12 
0 12
fe=(115)

fl=(81)
fn=(1256)
43 1
+2 1
-2 5
cfi=(3)
cfn=(4)
calls=1 -43 
* 2
* 2
+2 61
+1 42
-1 38
+44 6

fl=(87) /home/buildozer/aports/main/musl/src/musl-1.1.5/src/string/i386/memmove.s
fn=(1802) 0x0004c891
fi=(27)
4 47
+1 47
+1 47
+1 47
+1 47
+1 47
+1 47
+1 47
+7 47
+1 47
+1 47
+2 47
+1 47
+4 47
+1 47
+1 47
fe=(87)
-25 215
+1 215
+1 215
+1 215
+1 168
+1 168
+1 168
+1 168
+1 168
+1 168
+1 168
+1 168
+1 4200
+1 168
+1 168
+1 168
+1 168
+1 168

fl=(9)
fn=(42) 0x0001cbed
25 302
+1 302
+1 302
+1 302
+1 302
+4 301
+1 301
+1 301

fn=(76)
46 199
+1 199
+1 199
+1 199
+1 199
+1 199
+1 199
+1 199
cfn=(40)
calls=199 -41 
* 3980
+1 199
+1 199
+1 199
+1 199

fn=(3324)
62 1
+1 1
+1 1
+1 1
+1 1
+1 1
+1 1
+1 1
+1 1
+1 1
cfn=(76)
calls=1 -25 
* 32
+1 1
+1 1
+1 1
+1 1

fn=(40)
12 302
+1 302
+1 302
+1 302
+1 302
+1 302
+1 302
cfn=(42)
calls=302 +7 
* 2413
+1 301
+1 301
+1 301
+1 301
+1 301

fl=(19)
fn=(82)
10 29
fi=(18)
+13 29
fe=(19)
-13 174
cfi=(3)
cfn=(4)
calls=29 -10 
* 58
* 29
fi=(18)
+13 58
cfi=(9)
cfn=(40)
calls=29 -11 
* 580
fe=(19)
-11 29
fi=(18)
+11 29
fe=(19)
-11 29
+1 87
+5 29
cfi=(10)
cfn=(50)
calls=29 -13 
* 435
* 29
+4 145

fl=(108) /home/buildozer/aports/main/musl/src/musl-1.1.5/src/string/strncpy.c
fn=(3486) strncpy
6 30
+1 6
-1 6
cfi=(3)
cfn=(4)
calls=6 -6 
* 12
* 6
+1 24
cfi=(109)
cfn=(3488)
calls=6 +5 
* 430
+1 6
+1 36

fl=(36)
fn=(150)
5 4
+2 1
-2 2
cfi=(3)
cfn=(4)
calls=1 -5 
* 2
* 3
+2 3
cfi=(13)
cfn=(64)
calls=1 -1 
* 84
* 3
+1 4
+2 5
cfi=(13)
cfn=(64)
calls=1 -4 
* 84
* 3
+1 5
cfi=(13)
cfn=(64)
calls=1 -5 
* 80
* 4
+1 3
+4 7

fl=(60)
fn=(558)
6 192
cfi=(3)
cfn=(4)
calls=32 -6 
* 64
* 64
+2 64
cfi=(24)
cfn=(98)
calls=32 +3 
* 1420
+1 500
cfi=(13)
cfn=(64)
calls=32 -3 
* 3554
* 160
+1 2032
+2 668
-2 2410
cfi=(6)
cfn=(22)
calls=482 -6 
* 13606
* 2880
+1 30
+3 192

fl=(3)
fn=(4)
0 145380

fn=(154)
0 176

fl=(5)
fn=(10)
4 234
+1 234
+1 234
+1 234
+1 234
+1 234
+1 234
+1 234
+1 234
+1 234
+1 234
+2 234
+1 234
+1 31312
+2 234
+1 234
+1 234

fl=(4)
fn=(6)
4 198
+2 388
+1 35
+1 99

fl=(104) /home/buildozer/aports/main/musl/src/musl-1.1.5/src/mman/madvise.c
fn=(3332) madvise
6 6
fi=(18)
+24 30
cfi=(9)
cfn=(40)
calls=6 -18 
* 120
fe=(104)
-23 6
+1 6
-1 6
cfi=(10)
cfn=(50)
calls=6 -2 
* 90

fl=(14)
fn=(66)
12 1458
+3 243
-3 243
cfi=(3)
cfn=(4)
calls=243 -12 
* 486
* 486
+4 486
+3 1705
-1 1479
+2 466
+1 9038
+1 3576
+2 1458

fl=(27)
fn=(110)
4 596
+1 596
+1 596
+1 596
+1 596
+1 596
+1 596
+1 596
+1 197
+1 197
+1 187
+1 187
+1 187
+1 187
+1 596
+1 596
+1 2186
+2 596
+1 596
+1 240
+1 240
+1 240
+1 596
+1 596
+1 596

fl=(29) /home/buildozer/aports/main/musl/src/musl-1.1.5/src/string/stpcpy.c
fn=(124) stpcpy
12 264
+4 264
+1 134
+1 152
-1 57
+3 1875
+3 846
+3 198

fl=(46)
fn=(1202) tss_get
4 5
fi=(117) /home/buildozer/aports/main/musl/src/musl-1.1.5/src/thread/pthread_getspecific.c
+3 15
+1 5
fe=(46)

fl=(89) /home/buildozer/aports/main/musl/src/musl-1.1.5/src/misc/syscall.c
fn=(2476) syscall
7 10
fi=(18)
+44 26
cfi=(9)
cfn=(76)
calls=2 -5 
* 64
* 2
fe=(89)
-33 4
cfi=(10)
cfn=(50)
calls=2 -13 
* 30
* 2
+1 10

fl=(75)
fn=(1108)
4 276
cfi=(3)
cfn=(4)
calls=46 -4 
* 92
* 46
+3 138
cfi=(26)
cfn=(1110)
calls=46 +41 
* 414
+1 138
+15 230

fl=(38)
fn=(158)
7 395
+2 158
-2 158
+2 790
+2 237
+1 79
+5 79
-5 158
+5 2054
-5 79
+6 1651
+1 79
+1 395

fl=(86)
fn=(1656)
4 140
+3 70
+1 140
+1 140
+1 140
+1 70
fi=(26)
+37 140
fe=(86)
-37 140
+1 140
+1 140

fl=(28)
fn=(122)
6 330
+2 66
-2 66
cfi=(3)
cfn=(4)
calls=66 -6 
* 132
* 66
+2 264
cfi=(29)
cfn=(124)
calls=66 +4 
* 3790
+1 66
+7 396

ob=(12)
fl=(59)
fn=(460) 0x00004f7b
0 58

fn=(534) 0x000360cf
0 2
cfn=(460)
calls=1 0 
0 2
0 220

fn=(552) 0x00051adb
0 20
cfn=(460)
calls=4 0 
0 8
0 40
cob=(1)
cfi=(60)
cfn=(558)
calls=4 6 
0 3892
0 4
0 52

fn=(668) 0x00037882
0 10

fn=(484)
0 2
cfn=(460)
calls=1 0 
0 2
0 6
cfn=(488) 0x00051ba9
calls=1 0 
0 8923
0 7

fn=(492) 0x0004feba
0 3
cfn=(460)
calls=1 0 
0 2
0 9
cfn=(496) 0x00051466
calls=1 0 
0 641
0 3
cfn=(520) 0x0001e725
calls=1 0 
0 214
0 2
cfn=(534)
calls=1 0 
0 224
0 10

fn=(654) 0x00089634
0 2
cfn=(460)
calls=1 0 
0 2
0 10
cfn=(496)
calls=1 0 
0 646
0 8

fn=(4340) 0x00004e0d
0 4
cfn=(460)
calls=1 0 
0 2
0 10

fn=(476) 0x00089a43
0 5
cfn=(460)
calls=1 0 
0 2
0 9

fn=(496)
0 30
cfn=(460)
calls=6 0 
0 12
0 72
cob=(1)
cfi=(11)
cfn=(102)
calls=6 357 
0 2065
0 6
0 1758

fn=(570) 0x0004e876
0 2
cfn=(460)
calls=1 0 
0 2
0 10
cfn=(496)
calls=1 0 
0 660
0 10

fn=(458) 0x00004f1e
0 6
cfn=(460)
calls=1 0 
0 2
0 18
cfn=(460)
calls=1 0 
0 2
0 9

fn=(590) 0x00037666
0 15
cfn=(460)
calls=3 0 
0 6
0 110

fn=(614) 0x000693a6
0 2
cfn=(460)
calls=1 0 
0 2

ob=(3) /usr/lib/libXdmcp.so.6.0.0
fl=(50) ???
fn=(208) 0x00000f4e
0 10

fn=(224) 0x00002a90
0 5
cfn=(208)
calls=1 0 
0 2
0 9

fn=(4578) 0x00000e62
0 5
cfn=(208)
calls=1 0 
0 2
0 8
cob=(1)
cfi=(47)
cfn=(3802)
calls=1 34 
0 1
0 1
0 10
cfn=(4592) 0x00000de0
calls=1 0 
0 16
0 8

fn=(206) 0x00000ef1
0 6
cfn=(208)
calls=1 0 
0 2

ob=(12)
fl=(59)
fn=(614)
0 10
cfn=(496)
calls=1 0 
0 637
0 56

fn=(582) 0x000377aa
0 3
cfn=(460)
calls=1 0 
0 2
0 9
cfn=(552)
calls=1 0 
0 1004
0 4
cfn=(590)
calls=1 0 
0 69
0 4
cfn=(614)
calls=1 0 
0 707
0 4
cfn=(552)
calls=1 0 
0 1004
0 4
cfn=(590)
calls=1 0 
0 31
0 4
cfn=(634) 0x00088f61
calls=1 0 
0 789
0 4
cfn=(552)
calls=1 0 
0 1004
0 4
cfn=(590)
calls=1 0 
0 31
0 4
cfn=(654)
calls=1 0 
0 668
0 9

fn=(488)
0 3
cfn=(460)
calls=1 0 
0 2
0 6
cfn=(492)
calls=1 0 
0 1108
0 4
cfn=(552)
calls=1 0 
0 1004
0 4
cfn=(570)
calls=1 0 
0 684
0 3
cfn=(582)
calls=1 0 
0 5362
0 2
cfn=(668)
calls=1 0 
0 10
0 2
cfn=(674) 0x000378ab
calls=1 0 
0 10
0 2
cfn=(680) 0x00037859
calls=1 0 
0 10
0 2
cfn=(686) 0x00054d0f
calls=1 0 
0 698
0 7

fn=(4326) 0x00004e8f
0 5
cfn=(460)
calls=1 0 
0 2
0 8
cob=(1)
cfi=(47)
cfn=(3802)
calls=1 34 
0 1
0 1
0 10
cfn=(4340)
calls=1 0 
0 16
0 8

fn=(520)
0 5
cfn=(460)
calls=1 0 
0 2
0 207

fn=(634)
0 4
cfn=(460)
calls=1 0 
0 2
0 11
cfn=(496)
calls=1 0 
0 683
0 89

fn=(680)
0 10

fn=(674)
0 10

fn=(686)
0 2
cfn=(460)
calls=1 0 
0 2
0 10
cfn=(496)
calls=1 0 
0 676
0 8

ob=(17) /usr/lib/libgthread-2.0.so.0.4200.0
fl=(65) ???
fn=(818) 0x0000061e
0 10

fn=(4186) 0x00000532
0 5
cfn=(818)
calls=1 0 
0 2
0 8
cob=(1)
cfi=(47)
cfn=(3802)
calls=1 34 
0 1
0 1
0 10
cfn=(4200) 0x000004b0
calls=1 0 
0 16
0 8

fn=(834) 0x00000739
0 5
cfn=(818)
calls=1 0 
0 2
0 9

fn=(816) 0x000005c1
0 6
cfn=(818)
calls=1 0 
0 2
0 18
cfn=(818)
calls=1 0 
0 2
0 9

fn=(4200)
0 4
cfn=(818)
calls=1 0 
0 2
0 10

ob=(20) /lib/libz.so.1.2.8
fl=(68) ???
fn=(902) 0x000019ee
0 10

fn=(918) 0x0000f33a
0 5
cfn=(902)
calls=1 0 
0 2
0 9

fn=(4102) 0x00001902
0 5
cfn=(902)
calls=1 0 
0 2
0 8
cob=(1)
cfi=(47)
cfn=(3802)
calls=1 34 
0 1
0 1
0 10
cfn=(4116) 0x00001880
calls=1 0 
0 16
0 8

fn=(900) 0x00001991
0 6
cfn=(902)
calls=1 0 
0 2
0 18
cfn=(902)
calls=1 0 
0 2
0 9

ob=(3)
fl=(50)
fn=(206)
0 18
cfn=(208)
calls=1 0 
0 2
0 9

fn=(4592)
0 4
cfn=(208)
calls=1 0 
0 2
0 10

ob=(20)
fl=(68)
fn=(4116)
0 4
cfn=(902)
calls=1 0 
0 2
0 10

ob=(5) /usr/lib/libexpat.so.1.6.0
fl=(52) ???
fn=(264) 0x000021fe
0 10

fn=(280) 0x000180b8
0 5
cfn=(264)
calls=1 0 
0 2
0 9

fn=(4522) 0x00002112
0 5
cfn=(264)
calls=1 0 
0 2
0 8
cob=(1)
cfi=(47)
cfn=(3802)
calls=1 34 
0 1
0 1
0 10
cfn=(4536) 0x00002090
calls=1 0 
0 16
0 8

fn=(262) 0x000021a1
0 6
cfn=(264)
calls=1 0 
0 2
0 18
cfn=(264)
calls=1 0 
0 2
0 9

fn=(4536)
0 4
cfn=(264)
calls=1 0 
0 2
0 10

ob=(23)
fl=(71)
fn=(1124) g_quark_from_static_string
0 18
cfn=(986) 0x00014c1c
calls=3 0 
0 6
0 27
cfn=(1126) g_mutex_lock
calls=3 0 
0 42
0 9
cfn=(1128) 0x00050c1f
calls=3 0 
0 11867
0 9
cfn=(1274) g_mutex_unlock
calls=3 0 
0 42
0 30

fn=(4018) 0x00014b30
0 5
cfn=(986)
calls=1 0 
0 2
0 8
cob=(1)
cfi=(47)
cfn=(3802)
calls=1 34 
0 1
0 1
0 10
cfn=(4032) 0x00014aae
calls=1 0 
0 16
0 8

fn=(1282) g_private_set
0 3
cfn=(986)
calls=1 0 
0 2
0 8
cfn=(1174) 0x00082878
calls=1 0 
0 26
0 4
cob=(1)
cfi=(82)
cfn=(1286)
calls=1 4 
0 13
0 1
0 9

fn=(1316) 0x00032dd4
0 3156
cfn=(1318) g_str_hash
calls=263 0 
0 27275
0 7193
cfn=(1466) g_str_equal
calls=47 0 
0 5600
0 9697

fn=(1460) g_quark_from_string
0 282
cfn=(986)
calls=47 0 
0 94
0 423
cfn=(1126)
calls=47 0 
0 658
0 141
cfn=(1128)
calls=47 0 
0 17191
0 141
cfn=(1274)
calls=47 0 
0 658
0 470

fn=(1078) 0x00082a12
0 3
cfn=(986)
calls=1 0 
0 2
0 7
cob=(1)
cfi=(11)
cfn=(102)
calls=1 357 
0 170
0 1
0 6
cob=(1)
cfi=(73)
cfn=(1090)
calls=1 4 
0 23
0 1
0 10

fn=(1308) g_hash_table_insert
0 679
cfn=(986)
calls=97 0 
0 194
0 1649
cfn=(1316)
calls=97 0 
0 17028
0 970
cfn=(1332) 0x000330e7
calls=97 0 
0 24419
0 2231

fn=(1384) g_hash_table_lookup
0 830
cfn=(986)
calls=166 0 
0 332
0 1826
cfn=(1316)
calls=166 0 
0 35893
0 1992

fn=(2446) g_slist_find
0 26

fn=(2470) g_slice_free1
0 10
cfn=(986)
calls=2 0 
0 4
0 26
cfn=(1292) 0x0005b60d
calls=2 0 
0 48
0 28
cfn=(1992) g_free
calls=2 0 
0 278
0 20

fn=(1164) g_hash_table_new_full
0 15
cfn=(986)
calls=3 0 
0 6
0 39
cfn=(1166) g_slice_alloc
calls=3 0 
0 6541
0 54
cfn=(1278) g_malloc0
calls=3 0 
0 1137
0 18
cfn=(1304) g_malloc0_n
calls=3 0 
0 1241
0 33

fn=(1172) g_private_get
0 10
cfn=(986)
calls=5 0 
0 10
0 35
cfn=(1174)
calls=5 0 
0 492
0 15
cob=(1)
cfi=(46)
cfn=(1202)
calls=5 4 
0 25
0 5
0 30

fn=(1274)
0 1792

fn=(1318)
0 27275

fn=(1416) g_intern_static_string
0 282
cfn=(986)
calls=47 0 
0 94
0 423
cfn=(1126)
calls=47 0 
0 658
0 141
cfn=(1128)
calls=47 0 
0 34631
0 188
cfn=(1274)
calls=47 0 
0 658
0 470

fn=(1756) g_realloc
0 395
cfn=(986)
calls=79 0 
0 158
0 1027
cob=(1)
cfi=(11)
cfn=(1758)
calls=79 407 
0 21765
0 474

fn=(2448) g_slist_prepend
0 8
cfn=(986)
calls=2 0 
0 4
0 18
cfn=(1166)
calls=2 0 
0 854
0 20

fn=(2466) g_slist_remove
0 8
cfn=(986)
calls=2 0 
0 4
0 34
cfn=(2468) g_slist_free_1
calls=2 0 
0 452
0 18

fn=(1304)
0 75
cfn=(986)
calls=15 0 
0 30
0 225
cfn=(1278)
calls=15 0 
0 8959
0 105

fn=(1466)
0 329
cfn=(986)
calls=47 0 
0 94
0 235
cob=(1)
cfi=(7)
cfn=(34)
calls=47 5 
0 4472
0 47
0 423

fn=(2464) g_once_init_leave
0 20
cfn=(986)
calls=2 0 
0 4
0 24
cfn=(1126)
calls=2 0 
0 28
0 8
cfn=(2466)
calls=2 0 
0 516
0 8
cfn=(2472) g_cond_broadcast
calls=2 0 
0 198
0 4
cfn=(1274)
calls=2 0 
0 28
0 18

fn=(986)
0 3328

fn=(1126)
0 1792

fn=(1480) g_quark_to_string
0 140
cfn=(986)
calls=70 0 
0 140
0 1260

fn=(4032)
0 4
cfn=(986)
calls=1 0 
0 2
0 10

fn=(1128)
0 485
cfn=(986)
calls=97 0 
0 194
0 1555
cfn=(1384)
calls=96 0 
0 25743
0 491
cfn=(1140) g_malloc_n
calls=1 0 
0 658
0 2165
cfn=(1162) g_hash_table_new
calls=1 0 
0 6377
0 14
cfn=(1308)
calls=1 0 
0 873
0 441
cfn=(1308)
calls=49 0 
0 23673
0 1020

fn=(1142) g_malloc
0 165
cfn=(986)
calls=33 0 
0 66
0 363
cob=(1)
cfi=(11)
cfn=(102)
calls=33 357 
0 9437
0 198

fn=(1662) g_rw_lock_reader_unlock
0 140
cfn=(986)
calls=70 0 
0 140
0 490
cfn=(1072) 0x00082a88
calls=70 0 
0 1820
0 140
cob=(1)
cfi=(83)
cfn=(1584)
calls=70 4 
0 2100
0 70
0 420

fn=(1992)
0 56
cfn=(986)
calls=14 0 
0 28
0 112
cob=(1)
cfi=(11)
cfn=(56)
calls=14 477 
0 2170
0 84

fn=(2472)
0 14
cfn=(986)
calls=2 0 
0 4
0 18
cob=(1)
cfi=(89)
cfn=(2476)
calls=2 7 
0 148
0 2
0 12

fn=(1070) g_rw_lock_writer_lock
0 92
cfn=(986)
calls=46 0 
0 92
0 322
cfn=(1072)
calls=46 0 
0 1425
0 92
cob=(1)
cfi=(74)
cfn=(1106)
calls=46 4 
0 2024
0 46
0 276

fn=(1072)
0 2320
cfn=(986)
calls=232 0 
0 464
0 1161
cfn=(1078)
calls=1 0 
0 223
0 2093

fn=(1248) g_get_current_time
0 5
cfn=(986)
calls=1 0 
0 2
0 10
cob=(1)
cfi=(79)
cfn=(1252)
calls=1 6 
0 263
0 1
0 11

fn=(1278)
0 790
cfn=(986)
calls=158 0 
0 316
0 1896
cob=(1)
cfi=(25)
cfn=(100)
calls=158 5 
0 63541
0 948

fn=(1332)
0 873
cfn=(986)
calls=97 0 
0 194
0 4177
cfn=(1352) 0x00032f3c
calls=97 0 
0 17003
0 786
cfn=(1342) g_memdup
calls=2 0 
0 800
0 586

fn=(1648) g_rw_lock_reader_lock
0 140
cfn=(986)
calls=70 0 
0 140
0 490
cfn=(1072)
calls=70 0 
0 1820
0 140
cob=(1)
cfi=(84)
cfn=(1652)
calls=70 4 
0 3710
0 70
0 420

fn=(1002) 0x000a3e32
0 5
cfn=(986)
calls=1 0 
0 2
0 9

fn=(1010)
0 5
cfn=(986)
calls=1 0 
0 2
0 27
cob=(1)
cfi=(60)
cfn=(558)
calls=1 6 
0 931
0 1
0 18
cob=(1)
cfi=(60)
cfn=(558)
calls=1 6 
0 859
0 1
0 18

fn=(1162)
0 21
cfn=(986)
calls=3 0 
0 6
0 21
cfn=(1164)
calls=3 0 
0 9084
0 18

fn=(1166)
0 25
cfn=(986)
calls=5 0 
0 10
0 55
cfn=(1168) 0x0005b912
calls=5 0 
0 5627
0 15
cfn=(1292)
calls=5 0 
0 120
0 35
cfn=(1142)
calls=5 0 
0 1443
0 65

fn=(1342)
0 10
cfn=(986)
calls=2 0 
0 4
0 24
cfn=(1142)
calls=2 0 
0 672
0 90

fn=(1352)
0 1164
cfn=(986)
calls=97 0 
0 194
0 1680
cfn=(1304)
calls=4 0 
0 2649
0 32
cfn=(1304)
calls=4 0 
0 2848
0 24
cfn=(1304)
calls=4 0 
0 2656
0 2659
cfn=(1992)
calls=4 0 
0 556
0 12
cfn=(1992)
calls=4 0 
0 664
0 12
cfn=(1992)
calls=4 0 
0 952
0 901

fn=(1578) g_rw_lock_writer_unlock
0 92
cfn=(986)
calls=46 0 
0 92
0 322
cfn=(1072)
calls=46 0 
0 1196
0 92
cob=(1)
cfi=(83)
cfn=(1584)
calls=46 4 
0 1518
0 46
0 276

fn=(1754) g_realloc_n
0 426
cfn=(986)
calls=71 0 
0 142
0 1207
cfn=(1756)
calls=71 0 
0 21028
0 568

fn=(2444) g_once_init_enter
0 10
cfn=(986)
calls=2 0 
0 4
0 18
cfn=(1126)
calls=2 0 
0 28
0 16
cfn=(2446)
calls=2 0 
0 26
0 14
cfn=(2448)
calls=2 0 
0 904
0 8
cfn=(1274)
calls=2 0 
0 28
0 20

fn=(2468)
0 6
cfn=(986)
calls=2 0 
0 4
0 16
cfn=(2470)
calls=2 0 
0 414
0 12

fn=(1140)
0 5
cfn=(986)
calls=1 0 
0 2
0 15
cfn=(1142)
calls=1 0 
0 629
0 7

fn=(1174)
0 60
cfn=(986)
calls=6 0 
0 12
0 54
cob=(1)
cfi=(11)
cfn=(102)
calls=1 357 
0 312
0 1
0 6
cob=(1)
cfi=(77)
cfn=(1188)
calls=1 13 
0 34
0 1
0 38

fn=(1242) 0x0005b680
0 3
cfn=(986)
calls=1 0 
0 2
0 11
cfn=(1248)
calls=1 0 
0 292
0 16

fn=(984) 0x00014bbf
0 6
cfn=(986)
calls=1 0 
0 2
0 18
cfn=(986)
calls=1 0 
0 2
0 9

fn=(1116) g_getenv
0 4
cfn=(986)
calls=1 0 
0 2
0 11
cob=(1)
cfi=(60)
cfn=(558)
calls=1 6 
0 907
0 1
0 4

fn=(1168)
0 25
cfn=(986)
calls=5 0 
0 10
0 45
cfn=(1172)
calls=5 0 
0 622
0 29
cob=(1)
cfi=(60)
cfn=(558)
calls=1 6 
0 855
0 1
0 18
cfn=(1242)
calls=1 0 
0 324
0 9
cfn=(1274)
calls=1 0 
0 14
0 8
cfn=(1278)
calls=1 0 
0 3464
0 9
cfn=(1282)
calls=1 0 
0 66
0 19
cfn=(1126)
calls=1 0 
0 14
0 5
cob=(1)
cfi=(78)
cfn=(1216)
calls=1 25 
0 36
0 1
0 53

fn=(1292)
0 21
cfn=(986)
calls=7 0 
0 14
0 133

ob=(24)
fl=(72)
fn=(1040) 0x000084bc
0 3076

fn=(1596) 0x0002ad02
0 4774

fn=(1622) 0x000270c4
0 495
cfn=(1040)
calls=45 0 
0 90
0 5499
cfn=(1644) g_type_from_name
calls=45 0 
0 18707
0 585

fn=(1670) 0x00024eef
0 182
cfn=(1040)
calls=26 0 
0 52
0 182
cfn=(1528) 0x000239f2
calls=26 0 
0 494
0 104
cfn=(1492) 0x00023a3b
calls=26 0 
0 390
0 416

fn=(1686) 0x000251ff
0 130
cfn=(1040)
calls=26 0 
0 52
0 598

fn=(1766) 0x00023e49
0 360
cfn=(1040)
calls=45 0 
0 90
0 647
cfn=(1776) 0x00023a80
calls=45 0 
0 855
0 225
cfn=(1786) 0x00023b85
calls=45 0 
0 35124
0 405

fn=(1776)
0 2145

fn=(2206) 0x00008060
0 1190
cfn=(1040)
calls=170 0 
0 340
0 2734
cob=(23)
cfi=(71)
cfn=(1756)
calls=7 0 
0 2409
0 7
0 91
cob=(1)
cfi=(87)
cfn=(1802)
calls=7 4 
0 272
0 7
0 1956
cob=(1)
cfi=(87)
cfn=(1802)
calls=163 4 
0 6824
0 163
0 1700
cfn=(1596)
calls=170 0 
0 2380
0 1190
cfn=(1596)
calls=170 0 
0 2380
0 2054

fn=(2290) 0x0001b178
0 5
cfn=(1040)
calls=1 0 
0 2
0 8
cob=(23)
cfi=(71)
cfn=(1278)
calls=1 0 
0 534
0 1
0 7
cob=(23)
cfi=(71)
cfn=(1416)
calls=1 0 
0 990
0 1
0 4
cfn=(2298) g_param_type_register_static
calls=1 0 
0 6018
0 7
cob=(23)
cfi=(71)
cfn=(1416)
calls=1 0 
0 616
0 1
0 4
cfn=(2298)
calls=1 0 
0 5181
0 8
cob=(23)
cfi=(71)
cfn=(1416)
calls=1 0 
0 792
0 1
0 4
cfn=(2298)
calls=1 0 
0 5707
0 8
cob=(23)
cfi=(71)
cfn=(1416)
calls=1 0 
0 580
0 1
0 4
cfn=(2298)
calls=1 0 
0 5067
0 8
cob=(23)
cfi=(71)
cfn=(1416)
calls=1 0 
0 906
0 1
0 4
cfn=(2298)
calls=1 0 
0 5530
0 8
cob=(23)
cfi=(71)
cfn=(1416)
calls=1 0 
0 4961
0 1
0 4
cfn=(2298)
calls=1 0 
0 5031
0 8
cob=(23)
cfi=(71)
cfn=(1416)
calls=1 0 
0 784
0 1
0 4
cfn=(2298)
calls=1 0 
0 6320
0 8
cob=(23)
cfi=(71)
cfn=(1416)
calls=1 0 
0 616
0 1
0 4
cfn=(2298)
calls=1 0 
0 4751
0 8
cob=(23)
cfi=(71)
cfn=(1416)
calls=1 0 
0 634
0 1
0 4
cfn=(2298)
calls=1 0 
0 9084
0 8
cob=(23)
cfi=(71)
cfn=(1416)
calls=1 0 
0 652
0 1
0 4
cfn=(2298)
calls=1 0 
0 5230
0 8
cob=(23)
cfi=(71)
cfn=(1416)
calls=1 0 
0 598
0 1
0 4
cfn=(2298)
calls=1 0 
0 5693
0 8
cob=(23)
cfi=(71)
cfn=(1416)
calls=1 0 
0 616
0 1
0 4
cfn=(2298)
calls=1 0 
0 5021
0 8
cob=(23)
cfi=(71)
cfn=(1416)
calls=1 0 
0 616
0 1
0 4
cfn=(2298)
calls=1 0 
0 5181
0 8
cob=(23)
cfi=(71)
cfn=(1416)
calls=1 0 
0 662
0 1
0 4
cfn=(2298)
calls=1 0 
0 5294
0 8
cob=(23)
cfi=(71)
cfn=(1416)
calls=1 0 
0 690
0 1
0 4
cfn=(2298)
calls=1 0 
0 5813
0 8
cob=(23)
cfi=(71)
cfn=(1416)
calls=1 0 
0 728
0 1
0 4
cfn=(2298)
calls=1 0 
0 5161
0 8
cob=(23)
cfi=(71)
cfn=(1416)
calls=1 0 
0 812
0 1
0 4
cfn=(2298)
calls=1 0 
0 5573
0 8
cob=(23)
cfi=(71)
cfn=(1416)
calls=1 0 
0 764
0 1
0 4
cfn=(2298)
calls=1 0 
0 5519
0 6
cfn=(2440) g_value_array_get_type
calls=1 0 
0 7543
0 4
cob=(23)
cfi=(71)
cfn=(1416)
calls=1 0 
0 706
0 1
0 4
cfn=(2298)
calls=1 0 
0 5582
0 8
cob=(23)
cfi=(71)
cfn=(1416)
calls=1 0 
0 662
0 1
0 4
cfn=(2298)
calls=1 0 
0 5137
0 8
cob=(23)
cfi=(71)
cfn=(1416)
calls=1 0 
0 754
0 1
0 4
cfn=(2298)
calls=1 0 
0 4821
0 17
cfn=(2504) g_gtype_get_type
calls=1 0 
0 5601
0 4
cob=(23)
cfi=(71)
cfn=(1416)
calls=1 0 
0 812
0 1
0 5
cfn=(2298)
calls=1 0 
0 4996
0 19
cob=(23)
cfi=(71)
cfn=(1416)
calls=1 0 
0 848
0 1
0 4
cfn=(2298)
calls=1 0 
0 5450
0 14

fn=(2910) 0x0001cda5
0 14

fn=(1696) 0x00023f24
0 270
cfn=(1040)
calls=45 0 
0 90
0 450
cfn=(1528)
calls=45 0 
0 855
0 45
cfn=(1492)
calls=45 0 
0 675
0 1946

fn=(1814) 0x000242db
0 315
cfn=(1040)
calls=45 0 
0 90
0 460
cfn=(1868) 0x00024257
calls=19 0 
0 2263
0 152
cfn=(1868)
calls=19 0 
0 2679
0 488

fn=(2504)
0 3
cfn=(1040)
calls=1 0 
0 2
0 11
cob=(23)
cfi=(71)
cfn=(2444)
calls=1 0 
0 466
0 1
0 9
cob=(23)
cfi=(71)
cfn=(1416)
calls=1 0 
0 620
0 1
0 2
cfn=(2506) g_pointer_type_register_static
calls=1 0 
0 4049
0 3
cob=(23)
cfi=(71)
cfn=(2464)
calls=1 0 
0 428
0 1
0 5

fn=(1518) 0x00024749
0 230
cfn=(1040)
calls=46 0 
0 92
0 836
cfn=(1528)
calls=27 0 
0 513
0 830
cfn=(1528)
calls=25 0 
0 475
0 100
cob=(23)
cfi=(71)
cfn=(1278)
calls=25 0 
0 11047
0 25
0 869
cfn=(1528)
calls=2 0 
0 38
0 8
cob=(23)
cfi=(71)
cfn=(1278)
calls=2 0 
0 894
0 2
0 128
cob=(23)
cfi=(71)
cfn=(1278)
calls=2 0 
0 759
0 2
0 74
cob=(23)
cfi=(71)
cfn=(1278)
calls=2 0 
0 769
0 2
0 51
cob=(23)
cfi=(71)
cfn=(1278)
calls=15 0 
0 5301
0 15
0 675
cob=(1)
cfi=(88)
cfn=(1922)
calls=19 4 
0 1614
0 19
0 358
cob=(1)
cfi=(88)
cfn=(1922)
calls=19 4 
0 1558
0 19
0 451
cfn=(1776)
calls=43 0 
0 1290
0 1049

fn=(1588) 0x0002af27
0 3
cfn=(1040)
calls=1 0 
0 2
0 14
cfn=(1596)
calls=1 0 
0 14
0 5
cob=(23)
cfi=(71)
cfn=(1142)
calls=1 0 
0 331
0 1
0 15

fn=(2308) 0x00008568
0 125
cfn=(1040)
calls=25 0 
0 50
0 325
cob=(23)
cfi=(71)
cfn=(1126)
calls=25 0 
0 350
0 25
0 225
cob=(23)
cfi=(71)
cfn=(1274)
calls=25 0 
0 350
0 25
0 250

fn=(4004) 0x0000834e
0 4
cfn=(1040)
calls=1 0 
0 2
0 10

fn=(1056) 0x000314a9
0 5
cfn=(1040)
calls=1 0 
0 2
0 9

fn=(1064)
0 5
cfn=(1040)
calls=1 0 
0 2
0 9
cob=(23)
cfi=(71)
cfn=(1070)
calls=1 0 
0 319
0 1
0 3
cob=(23)
cfi=(71)
cfn=(1116)
calls=1 0 
0 929
0 1
0 5
cob=(23)
cfi=(71)
cfn=(1124)
calls=1 0 
0 10090
0 1
0 4
cob=(23)
cfi=(71)
cfn=(1124)
calls=1 0 
0 921
0 1
0 4
cob=(23)
cfi=(71)
cfn=(1124)
calls=1 0 
0 1039
0 1
0 6
cob=(23)
cfi=(71)
cfn=(1162)
calls=1 0 
0 1434
0 1
0 5
cob=(23)
cfi=(71)
cfn=(1416)
calls=1 0 
0 546
0 1
0 4
cfn=(1420) 0x00025054
calls=1 0 
0 1635
0 19
cob=(23)
cfi=(71)
cfn=(1416)
calls=1 0 
0 626
0 1
0 4
cfn=(1420)
calls=1 0 
0 1359
0 4
cfn=(1518)
calls=1 0 
0 624
0 4
cob=(23)
cfi=(71)
cfn=(1578)
calls=1 0 
0 79
0 1
0 1
cfn=(1588)
calls=1 0 
0 385
0 1
cfn=(1618) g_type_plugin_get_type
calls=1 0 
0 4738
0 2
cfn=(1830) g_type_ensure
calls=1 0 
0 17
0 1
cfn=(1834) 0x0002f6d0
calls=1 0 
0 67648
0 1
cfn=(2088) 0x0000e782
calls=1 0 
0 9513
0 1
cfn=(2134) 0x0000a700
calls=1 0 
0 3841
0 1
cfn=(2158) 0x0001783b
calls=1 0 
0 4699
0 1
cfn=(2244) 0x00012d59
calls=1 0 
0 4976
0 1
cfn=(2290)
calls=1 0 
0 161991
0 1
cfn=(2530) 0x0002d996
calls=1 0 
0 131634
0 1
cfn=(2890) 0x0001ec95
calls=1 0 
0 2203
0 9

fn=(1786)
0 405
cfn=(1040)
calls=45 0 
0 90
0 405
cob=(23)
cfi=(71)
cfn=(1278)
calls=45 0 
0 15145
0 45
0 675
cob=(23)
cfi=(71)
cfn=(1754)
calls=45 0 
0 16109
0 45
0 675
cob=(1)
cfi=(87)
cfn=(1802)
calls=45 4 
0 900
0 45
0 585

fn=(1868)
0 304
cfn=(1040)
calls=38 0 
0 76
0 798
cob=(1)
cfi=(13)
cfn=(64)
calls=38 6 
0 3156
0 38
0 570

fn=(2088)
0 4
cfn=(1040)
calls=1 0 
0 2
0 29
cob=(23)
cfi=(71)
cfn=(1416)
calls=1 0 
0 620
0 1
0 6
cfn=(1844) g_type_register_fundamental
calls=1 0 
0 3697
0 6
cob=(23)
cfi=(71)
cfn=(1416)
calls=1 0 
0 890
0 1
0 6
cfn=(1844)
calls=1 0 
0 4241
0 10

fn=(2158)
0 4
cfn=(1040)
calls=1 0 
0 2
0 22
cob=(23)
cfi=(71)
cfn=(1416)
calls=1 0 
0 526
0 1
0 8
cfn=(1844)
calls=1 0 
0 3731
0 5
cfn=(2188) g_type_add_instance_private
calls=1 0 
0 59
0 6
cfn=(2192) g_value_register_transform_func
calls=1 0 
0 327
0 8

fn=(2298)
0 115
cfn=(1040)
calls=23 0 
0 46
0 759
cfn=(1644)
calls=23 0 
0 10415
0 161
cfn=(2300) g_type_name
calls=23 0 
0 1518
0 230
cob=(23)
cfi=(71)
cfn=(1142)
calls=23 0 
0 6800
0 23
0 483
cfn=(1620) g_type_register_static
calls=23 0 
0 106449
0 161

fn=(2530)
0 5
cfn=(1040)
calls=1 0 
0 2
0 11
cfn=(2192)
calls=1 0 
0 914
0 7
cfn=(2192)
calls=1 0 
0 456
0 6
cfn=(2192)
calls=1 0 
0 830
0 4
cfn=(2192)
calls=1 0 
0 527
0 6
cfn=(2192)
calls=1 0 
0 527
0 4
cfn=(2192)
calls=1 0 
0 540
0 4
cfn=(2192)
calls=1 0 
0 540
0 6
cfn=(2192)
calls=1 0 
0 540
0 6
cfn=(2192)
calls=1 0 
0 914
0 4
cfn=(2192)
calls=1 0 
0 611
0 4
cfn=(2192)
calls=1 0 
0 611
0 6
cfn=(2192)
calls=1 0 
0 611
0 6
cfn=(2192)
calls=1 0 
0 611
0 6
cfn=(2192)
calls=1 0 
0 624
0 6
cfn=(2192)
calls=1 0 
0 600
0 4
cfn=(2192)
calls=1 0 
0 608
0 6
cfn=(2192)
calls=1 0 
0 616
0 6
cfn=(2192)
calls=1 0 
0 616
0 4
cfn=(2192)
calls=1 0 
0 990
0 6
cfn=(2192)
calls=1 0 
0 616
0 6
cfn=(2192)
calls=1 0 
0 616
0 6
cfn=(2192)
calls=1 0 
0 687
0 6
cfn=(2192)
calls=1 0 
0 687
0 5
cfn=(2192)
calls=1 0 
0 687
0 5
cfn=(2192)
calls=1 0 
0 687
0 6
cfn=(2192)
calls=1 0 
0 687
0 6
cfn=(2192)
calls=1 0 
0 695
0 6
cfn=(2192)
calls=1 0 
0 695
0 6
cfn=(2192)
calls=1 0 
0 671
0 5
cfn=(2192)
calls=1 0 
0 684
0 4
cfn=(2192)
calls=1 0 
0 692
0 4
cfn=(2192)
calls=1 0 
0 692
0 5
cfn=(2192)
calls=1 0 
0 692
0 4
cfn=(2192)
calls=1 0 
0 692
0 4
cfn=(2192)
calls=1 0 
0 692
0 5
cfn=(2192)
calls=1 0 
0 700
0 5
cfn=(2192)
calls=1 0 
0 700
0 4
cfn=(2192)
calls=1 0 
0 700
0 4
cfn=(2192)
calls=1 0 
0 700
0 5
cfn=(2192)
calls=1 0 
0 700
0 5
cfn=(2192)
calls=1 0 
0 1050
0 5
cfn=(2192)
calls=1 0 
0 684
0 5
cfn=(2192)
calls=1 0 
0 684
0 4
cfn=(2192)
calls=1 0 
0 692
0 5
cfn=(2192)
calls=1 0 
0 692
0 4
cfn=(2192)
calls=1 0 
0 763
0 4
cfn=(2192)
calls=1 0 
0 763
0 5
cfn=(2192)
calls=1 0 
0 763
0 5
cfn=(2192)
calls=1 0 
0 763
0 4
cfn=(2192)
calls=1 0 
0 763
0 4
cfn=(2192)
calls=1 0 
0 763
0 5
cfn=(2192)
calls=1 0 
0 771
0 5
cfn=(2192)
calls=1 0 
0 771
0 5
cfn=(2192)
calls=1 0 
0 771
0 5
cfn=(2192)
calls=1 0 
0 747
0 5
cfn=(2192)
calls=1 0 
0 755
0 5
cfn=(2192)
calls=1 0 
0 755
0 5
cfn=(2192)
calls=1 0 
0 755
0 4
cfn=(2192)
calls=1 0 
0 755
0 5
cfn=(2192)
calls=1 0 
0 763
0 5
cfn=(2192)
calls=1 0 
0 763
0 5
cfn=(2192)
calls=1 0 
0 776
0 5
cfn=(2192)
calls=1 0 
0 776
0 5
cfn=(2192)
calls=1 0 
0 776
0 5
cfn=(2192)
calls=1 0 
0 776
0 5
cfn=(2192)
calls=1 0 
0 776
0 5
cfn=(2192)
calls=1 0 
0 776
0 5
cfn=(2192)
calls=1 0 
0 776
0 6
cfn=(2192)
calls=1 0 
0 752
0 6
cfn=(2192)
calls=1 0 
0 760
0 5
cfn=(2192)
calls=1 0 
0 768
0 6
cfn=(2192)
calls=1 0 
0 768
0 6
cfn=(2192)
calls=1 0 
0 768
0 4
cfn=(2192)
calls=1 0 
0 768
0 4
cfn=(2192)
calls=1 0 
0 768
0 6
cfn=(2192)
calls=1 0 
0 776
0 6
cfn=(2192)
calls=1 0 
0 776
0 4
cfn=(2192)
calls=1 0 
0 776
0 4
cfn=(2192)
calls=1 0 
0 776
0 5
cfn=(2192)
calls=1 0 
0 776
0 5
cfn=(2192)
calls=1 0 
0 776
0 5
cfn=(2192)
calls=1 0 
0 776
0 6
cfn=(2192)
calls=1 0 
0 1126
0 6
cfn=(2192)
calls=1 0 
0 760
0 5
cfn=(2192)
calls=1 0 
0 760
0 6
cfn=(2192)
calls=1 0 
0 768
0 6
cfn=(2192)
calls=1 0 
0 768
0 4
cfn=(2192)
calls=1 0 
0 768
0 4
cfn=(2192)
calls=1 0 
0 768
0 6
cfn=(2192)
calls=1 0 
0 768
0 6
cfn=(2192)
calls=1 0 
0 768
0 4
cfn=(2192)
calls=1 0 
0 776
0 4
cfn=(2192)
calls=1 0 
0 776
0 5
cfn=(2192)
calls=1 0 
0 847
0 5
cfn=(2192)
calls=1 0 
0 847
0 5
cfn=(2192)
calls=1 0 
0 847
0 5
cfn=(2192)
calls=1 0 
0 823
0 5
cfn=(2192)
calls=1 0 
0 831
0 5
cfn=(2192)
calls=1 0 
0 831
0 5
cfn=(2192)
calls=1 0 
0 831
0 5
cfn=(2192)
calls=1 0 
0 839
0 6
cfn=(2192)
calls=1 0 
0 839
0 6
cfn=(2192)
calls=1 0 
0 839
0 4
cfn=(2192)
calls=1 0 
0 839
0 5
cfn=(2192)
calls=1 0 
0 839
0 5
cfn=(2192)
calls=1 0 
0 839
0 5
cfn=(2192)
calls=1 0 
0 839
0 5
cfn=(2192)
calls=1 0 
0 847
0 5
cfn=(2192)
calls=1 0 
0 847
0 5
cfn=(2192)
calls=1 0 
0 847
0 5
cfn=(2192)
calls=1 0 
0 823
0 5
cfn=(2192)
calls=1 0 
0 831
0 5
cfn=(2192)
calls=1 0 
0 831
0 5
cfn=(2192)
calls=1 0 
0 831
0 5
cfn=(2192)
calls=1 0 
0 831
0 6
cfn=(2192)
calls=1 0 
0 839
0 6
cfn=(2192)
calls=1 0 
0 839
0 5
cfn=(2192)
calls=1 0 
0 839
0 4
cfn=(2192)
calls=1 0 
0 839
0 5
cfn=(2192)
calls=1 0 
0 839
0 5
cfn=(2192)
calls=1 0 
0 839
0 5
cfn=(2192)
calls=1 0 
0 839
0 5
cfn=(2192)
calls=1 0 
0 839
0 5
cfn=(2192)
calls=1 0 
0 847
0 5
cfn=(2192)
calls=1 0 
0 823
0 5
cfn=(2192)
calls=1 0 
0 836
0 5
cfn=(2192)
calls=1 0 
0 844
0 5
cfn=(2192)
calls=1 0 
0 844
0 4
cfn=(2192)
calls=1 0 
0 844
0 4
cfn=(2192)
calls=1 0 
0 844
0 5
cfn=(2192)
calls=1 0 
0 852
0 5
cfn=(2192)
calls=1 0 
0 852
0 4
cfn=(2192)
calls=1 0 
0 852
0 4
cfn=(2192)
calls=1 0 
0 852
0 5
cfn=(2192)
calls=1 0 
0 852
0 5
cfn=(2192)
calls=1 0 
0 828
0 5
cfn=(2192)
calls=1 0 
0 836
0 5
cfn=(2192)
calls=1 0 
0 844
0 5
cfn=(2192)
calls=1 0 
0 844
0 4
cfn=(2192)
calls=1 0 
0 844
0 4
cfn=(2192)
calls=1 0 
0 844
0 5
cfn=(2192)
calls=1 0 
0 844
0 5
cfn=(2192)
calls=1 0 
0 852
0 4
cfn=(2192)
calls=1 0 
0 852
0 5
cfn=(2192)
calls=1 0 
0 852
0 5
cfn=(2192)
calls=1 0 
0 828
0 5
cfn=(2192)
calls=1 0 
0 836
0 5
cfn=(2192)
calls=1 0 
0 844
0 5
cfn=(2192)
calls=1 0 
0 844
0 5
cfn=(2192)
calls=1 0 
0 844
0 5
cfn=(2192)
calls=1 0 
0 844
0 5
cfn=(2192)
calls=1 0 
0 844
0 5
cfn=(2192)
calls=1 0 
0 852
0 4
cfn=(2192)
calls=1 0 
0 852
0 5
cfn=(2192)
calls=1 0 
0 852
0 5
cfn=(2192)
calls=1 0 
0 852
0 5
cfn=(2192)
calls=1 0 
0 828
0 5
cfn=(2192)
calls=1 0 
0 836
0 5
cfn=(2192)
calls=1 0 
0 836
0 5
cfn=(2192)
calls=1 0 
0 844
0 5
cfn=(2192)
calls=1 0 
0 844
0 5
cfn=(2192)
calls=1 0 
0 844
0 5
cfn=(2192)
calls=1 0 
0 844
0 5
cfn=(2192)
calls=1 0 
0 844
0 5
cfn=(2192)
calls=1 0 
0 852
0 4
cfn=(2192)
calls=1 0 
0 852
0 5
cfn=(2192)
calls=1 0 
0 852
0 5
cfn=(2192)
calls=1 0 
0 828
0 9

fn=(1528)
0 585
cfn=(1040)
calls=195 0 
0 390
0 2730

fn=(1644)
0 420
cfn=(1040)
calls=70 0 
0 140
0 840
cob=(23)
cfi=(71)
cfn=(1648)
calls=70 0 
0 6930
0 70
0 280
cob=(23)
cfi=(71)
cfn=(1384)
calls=70 0 
0 15130
0 70
0 210
cob=(23)
cfi=(71)
cfn=(1662)
calls=70 0 
0 5320
0 70
0 490

fn=(2192)
0 850
cfn=(1040)
calls=170 0 
0 340
0 3400
cfn=(2194) 0x0002ad86
calls=170 0 
0 45947
0 4246
cfn=(2194)
calls=169 0 
0 46395
0 341
cfn=(2206)
calls=1 0 
0 225
0 2031
cfn=(2206)
calls=169 0 
0 25472
0 2206

fn=(1038) 0x0000845f
0 6
cfn=(1040)
calls=1 0 
0 2
0 18
cfn=(1040)
calls=1 0 
0 2
0 9

fn=(1450) 0x00008539
0 220

fn=(2300)
0 46
cfn=(1040)
calls=23 0 
0 46
0 207
cfn=(1528)
calls=23 0 
0 437
0 115
cob=(23)
cfi=(71)
cfn=(1480)
calls=23 0 
0 506
0 23
0 138

fn=(1726) 0x00025126
0 104
cfn=(1040)
calls=26 0 
0 52
0 468
cfn=(1430) 0x000244d1
calls=26 0 
0 50122
0 182

fn=(2244)
0 4
cfn=(1040)
calls=1 0 
0 2
0 27
cob=(23)
cfi=(71)
cfn=(1416)
calls=1 0 
0 572
0 1
0 8
cfn=(1844)
calls=1 0 
0 3995
0 7
cfn=(2192)
calls=1 0 
0 352
0 8

fn=(2450) g_boxed_type_register_static
0 5
cfn=(1040)
calls=1 0 
0 2
0 33
cfn=(1644)
calls=1 0 
0 451
0 8
cfn=(1620)
calls=1 0 
0 5150
0 8
cfn=(2452) 0x000293e5
calls=1 0 
0 40
0 10

fn=(1430)
0 235
cfn=(1040)
calls=47 0 
0 94
0 935
cob=(23)
cfi=(71)
cfn=(1278)
calls=21 0 
0 8134
0 21
0 104
cob=(23)
cfi=(71)
cfn=(1278)
calls=26 0 
0 11348
0 26
0 974
cfn=(1450)
calls=20 0 
0 220
0 953
cfn=(2308)
calls=25 0 
0 1725
0 309
cob=(23)
cfi=(71)
cfn=(1754)
calls=26 0 
0 7262
0 26
0 286
cob=(23)
cfi=(71)
cfn=(1460)
calls=26 0 
0 12448
0 26
0 168
cob=(23)
cfi=(71)
cfn=(1460)
calls=21 0 
0 7610
0 21
0 188
cob=(23)
cfi=(71)
cfn=(1480)
calls=47 0 
0 1034
0 47
0 282
cob=(23)
cfi=(71)
cfn=(1308)
calls=47 0 
0 22624
0 47
0 517

fn=(2452)
0 10
cfn=(1528)
calls=1 0 
0 19
0 11

fn=(1420)
0 105
cfn=(1040)
calls=21 0 
0 42
0 420
cfn=(1430)
calls=21 0 
0 27542
0 42
cfn=(1492)
calls=21 0 
0 315
0 210

fn=(1618)
0 3
cfn=(1040)
calls=1 0 
0 2
0 24
cob=(23)
cfi=(71)
cfn=(1416)
calls=1 0 
0 672
0 1
0 6
cfn=(1620)
calls=1 0 
0 4021
0 9

fn=(1834)
0 4
cfn=(1040)
calls=1 0 
0 2
0 26
cob=(23)
cfi=(71)
cfn=(1416)
calls=1 0 
0 508
0 1
0 6
cfn=(1844)
calls=1 0 
0 3980
0 5
cob=(23)
cfi=(71)
cfn=(1416)
calls=1 0 
0 3316
0 1
0 6
cfn=(1844)
calls=1 0 
0 3961
0 7
cob=(23)
cfi=(71)
cfn=(1416)
calls=1 0 
0 562
0 1
0 6
cfn=(1844)
calls=1 0 
0 3932
0 7
cob=(23)
cfi=(71)
cfn=(1416)
calls=1 0 
0 490
0 1
0 6
cfn=(1844)
calls=1 0 
0 4146
0 5
cob=(23)
cfi=(71)
cfn=(1416)
calls=1 0 
0 508
0 1
0 6
cfn=(1844)
calls=1 0 
0 6367
0 7
cob=(23)
cfi=(71)
cfn=(1416)
calls=1 0 
0 508
0 1
0 6
cfn=(1844)
calls=1 0 
0 3723
0 5
cob=(23)
cfi=(71)
cfn=(1416)
calls=1 0 
0 526
0 1
0 6
cfn=(1844)
calls=1 0 
0 4082
0 7
cob=(23)
cfi=(71)
cfn=(1416)
calls=1 0 
0 526
0 1
0 6
cfn=(1844)
calls=1 0 
0 4112
0 5
cob=(23)
cfi=(71)
cfn=(1416)
calls=1 0 
0 572
0 1
0 6
cfn=(1844)
calls=1 0 
0 4027
0 7
cob=(23)
cfi=(71)
cfn=(1416)
calls=1 0 
0 526
0 1
0 6
cfn=(1844)
calls=1 0 
0 3627
0 7
cob=(23)
cfi=(71)
cfn=(1416)
calls=1 0 
0 572
0 1
0 6
cfn=(1844)
calls=1 0 
0 3717
0 7
cob=(23)
cfi=(71)
cfn=(1416)
calls=1 0 
0 598
0 1
0 6
cfn=(1844)
calls=1 0 
0 3816
0 7
cob=(23)
cfi=(71)
cfn=(1416)
calls=1 0 
0 562
0 1
0 6
cfn=(1844)
calls=1 0 
0 3879
0 7
cob=(23)
cfi=(71)
cfn=(1416)
calls=1 0 
0 562
0 1
0 6
cfn=(1844)
calls=1 0 
0 3720
0 10

fn=(2134)
0 3
cfn=(1040)
calls=1 0 
0 2
0 22
cob=(23)
cfi=(71)
cfn=(1416)
calls=1 0 
0 582
0 1
0 8
cfn=(1844)
calls=1 0 
0 3214
0 9

fn=(2194)
0 2034
cfn=(1040)
calls=339 0 
0 678
0 32258
cfn=(2262) 0x0002ad34
calls=2012 0 
0 35294
0 22078

fn=(2506)
0 4
cfn=(1040)
calls=1 0 
0 2
0 23
cfn=(1644)
calls=1 0 
0 397
0 11
cfn=(1620)
calls=1 0 
0 3606
0 6

fn=(3990) 0x000083d0
0 5
cfn=(1040)
calls=1 0 
0 2
0 8
cob=(1)
cfi=(47)
cfn=(3802)
calls=1 34 
0 1
0 1
0 10
cfn=(4004)
calls=1 0 
0 16
0 8

fn=(1492)
0 1380

fn=(1830)
0 3
cfn=(1040)
calls=1 0 
0 2
0 12

fn=(1844)
0 133
cfn=(1040)
calls=19 0 
0 38
0 513
cfn=(1622)
calls=19 0 
0 9216
0 247
cfn=(1528)
calls=19 0 
0 361
0 114
cob=(23)
cfi=(71)
cfn=(1070)
calls=19 0 
0 1710
0 19
0 95
cfn=(1420)
calls=19 0 
0 25682
0 57
cfn=(1766)
calls=19 0 
0 14662
0 133
cfn=(1696)
calls=19 0 
0 1817
0 152
cfn=(1814)
calls=19 0 
0 5495
0 165
cfn=(1518)
calls=18 0 
0 13183
0 4
cfn=(1518)
calls=1 0 
0 461
0 38
cob=(23)
cfi=(71)
cfn=(1578)
calls=19 0 
0 1501
0 19
0 152

fn=(2188)
0 5
cfn=(1040)
calls=1 0 
0 2
0 8
cfn=(1528)
calls=1 0 
0 19
0 25

fn=(2262)
0 35294

fn=(2890)
0 3
cfn=(1040)
calls=1 0 
0 2
0 8
cob=(23)
cfi=(71)
cfn=(1126)
calls=1 0 
0 14
0 1
0 6
cob=(23)
cfi=(71)
cfn=(1162)
calls=1 0 
0 1339
0 1
0 3
cfn=(2900) 0x0001d440
calls=1 0 
0 411
0 6
cob=(23)
cfi=(71)
cfn=(1756)
calls=1 0 
0 382
0 1
0 4
cob=(23)
cfi=(71)
cfn=(1274)
calls=1 0 
0 14
0 1
0 7

fn=(1620)
0 130
cfn=(1040)
calls=26 0 
0 52
0 598
cfn=(1622)
calls=26 0 
0 16160
0 130
cfn=(1670)
calls=26 0 
0 1820
0 156
cfn=(1528)
calls=26 0 
0 494
0 130
cob=(23)
cfi=(71)
cfn=(1070)
calls=26 0 
0 2340
0 26
0 52
cfn=(1686)
calls=26 0 
0 780
0 156
cfn=(1696)
calls=26 0 
0 2514
0 182
cfn=(1726)
calls=26 0 
0 50928
0 78
cfn=(1766)
calls=26 0 
0 23044
0 130
cfn=(1814)
calls=26 0 
0 952
0 83
cfn=(1518)
calls=1 0 
0 786
0 100
cfn=(1518)
calls=25 0 
0 15039
0 78
cob=(23)
cfi=(71)
cfn=(1578)
calls=26 0 
0 2054
0 26
0 208

fn=(2440)
0 3
cfn=(1040)
calls=1 0 
0 2
0 11
cob=(23)
cfi=(71)
cfn=(2444)
calls=1 0 
0 610
0 1
0 9
cob=(23)
cfi=(71)
cfn=(1416)
calls=1 0 
0 756
0 1
0 6
cfn=(2450)
calls=1 0 
0 5707
0 3
cob=(23)
cfi=(71)
cfn=(2464)
calls=1 0 
0 428
0 1
0 5

fn=(2900)
0 3
cfn=(1040)
calls=1 0 
0 2
0 19
cfn=(2910)
calls=1 0 
0 14
0 5
cob=(23)
cfi=(71)
cfn=(1142)
calls=1 0 
0 354
0 1
0 13

ob=(27) /usr/lib/libpng16.so.16.16.0
fl=(92) ???
fn=(3000) 0x00004551
0 6
cfn=(3002) 0x000045ae
calls=1 0 
0 2
0 18
cfn=(3002)
calls=1 0 
0 2
0 9

fn=(3906) 0x000044c2
0 5
cfn=(3002)
calls=1 0 
0 2
0 8
cob=(1)
cfi=(47)
cfn=(3802)
calls=1 34 
0 1
0 1
0 10
cfn=(3920) 0x00004440
calls=1 0 
0 16

ob=(8) /usr/lib/libXrender.so.1.3.0
fl=(55) ???
fn=(348) 0x0000150e
0 10

fn=(4438) 0x00001422
0 5
cfn=(348)
calls=1 0 
0 2
0 8
cob=(1)
cfi=(47)
cfn=(3802)
calls=1 34 
0 1
0 1
0 10
cfn=(4452) 0x000013a0
calls=1 0 
0 16
0 8

fn=(364) 0x00006b1a
0 5
cfn=(348)
calls=1 0 
0 2
0 9

fn=(346) 0x000014b1
0 6
cfn=(348)
calls=1 0 
0 2
0 18
cfn=(348)
calls=1 0 
0 2
0 9

fn=(4452)
0 4
cfn=(348)
calls=1 0 
0 2
0 10

ob=(13) /usr/lib/libffi.so.6.0.1
fl=(61) ???
fn=(4298) 0x00000a62
0 5
cfn=(706) 0x00000b4e
calls=1 0 
0 2
0 8
cob=(1)
cfi=(47)
cfn=(3802)
calls=1 34 
0 1
0 1
0 10
cfn=(4312) 0x000009e0
calls=1 0 
0 16
0 8

fn=(706)
0 10

fn=(722) 0x00001874
0 5
cfn=(706)
calls=1 0 
0 2
0 5

ob=(27)
fl=(92)
fn=(3906)
0 8

fn=(3002)
0 10

fn=(3018) 0x00026a2b
0 5
cfn=(3002)
calls=1 0 
0 2
0 9

fn=(3920)
0 4
cfn=(3002)
calls=1 0 
0 2
0 10

ob=(13)
fl=(61)
fn=(722)
0 4

fn=(4312)
0 4
cfn=(706)
calls=1 0 
0 2
0 10

fn=(704) 0x00000af1
0 6
cfn=(706)
calls=1 0 
0 2
0 18
cfn=(706)
calls=1 0 
0 2
0 9

ob=(30) /usr/lib/valgrind/vgpreload_core-x86-linux.so
fl=(95) ???
fn=(3086) 0x0000050e
0 10

fn=(3822) 0x00000422
0 5
cfn=(3086)
calls=1 0 
0 2
0 8
cob=(1)
cfi=(47)
cfn=(3802)
calls=1 34 
0 1
0 1
0 10
cfn=(3836) 0x000003a0
calls=1 0 
0 16
0 8

fn=(3102) 0x00000605
0 5
cfn=(3086)
calls=1 0 
0 2
0 9

fn=(3084) 0x000004b1
0 6
cfn=(3086)
calls=1 0 
0 2
0 18
cfn=(3086)
calls=1 0 
0 2
0 9

fn=(3836)
0 4
cfn=(3086)
calls=1 0 
0 2
0 10

ob=(11) /usr/lib/libxcb-shm.so.0.0.0
fl=(58) ???
fn=(432) 0x00000b0e
0 10

fn=(448) 0x000019a1
0 5
cfn=(432)
calls=1 0 
0 2
0 9

fn=(4368) 0x000009a0
0 4
cfn=(432)
calls=1 0 
0 2
0 10

fn=(430) 0x00000ab1
0 6
cfn=(432)
calls=1 0 
0 2
0 18
cfn=(432)
calls=1 0 
0 2
0 9

fn=(4354) 0x00000a22
0 5
cfn=(432)
calls=1 0 
0 2
0 8
cob=(1)
cfi=(47)
cfn=(3802)
calls=1 34 
0 1
0 1
0 10
cfn=(4368)
calls=1 0 
0 16
0 8

ob=(16) /usr/lib/libharfbuzz.so.0.936.0
fl=(64) ???
fn=(4214) 0x000051a9
0 5
cfn=(790) 0x00005295
calls=1 0 
0 2
0 8
cob=(1)
cfi=(47)
cfn=(3802)
calls=1 34 
0 1
0 1
0 10
cfn=(4228) 0x00005127
calls=1 0 
0 16
0 8

fn=(790)
0 10

fn=(4228)
0 4
cfn=(790)
calls=1 0 
0 2
0 10

fn=(806) 0x0002fb27
0 5
cfn=(790)
calls=1 0 
0 2
0 9

fn=(788) 0x00005238
0 6
cfn=(790)
calls=1 0 
0 2
0 18
cfn=(790)
calls=1 0 
0 2
0 9

ob=(19) /usr/lib/libpangoft2-1.0.so.0.3600.8
fl=(67) ???
fn=(4130) 0x00005a22
0 5
cfn=(874) 0x00005b0e
calls=1 0 
0 2
0 8
cob=(1)
cfi=(47)
cfn=(3802)
calls=1 34 
0 1
0 1
0 10
cfn=(4144) 0x000059a0
calls=1 0 
0 16
0 8

fn=(874)
0 10

fn=(890) 0x0000f274
0 5
cfn=(874)
calls=1 0 
0 2
0 9

fn=(4144)
0 4
cfn=(874)
calls=1 0 
0 2
0 10

fn=(872) 0x00005ab1
0 6
cfn=(874)
calls=1 0 
0 2
0 18
cfn=(874)
calls=1 0 
0 2
0 9

ob=(4) /usr/lib/libXau.so.6.0.0
fl=(51) ???
fn=(234) 0x00000b01
0 6
cfn=(236) 0x00000b5e
calls=1 0 
0 2
0 18
cfn=(236)
calls=1 0 
0 2
0 9

fn=(4550) 0x00000a72
0 5
cfn=(236)
calls=1 0 
0 2
0 8
cob=(1)
cfi=(47)
cfn=(3802)
calls=1 34 
0 1
0 1
0 10
cfn=(4564) 0x000009f0
calls=1 0 
0 16
0 8

fn=(4564)
0 4
cfn=(236)
calls=1 0 
0 2
0 10

fn=(236)
0 10

fn=(252) 0x0000175c
0 5
cfn=(236)
calls=1 0 
0 2
0 9

ob=(22) /usr/lib/libintl.so.8.1.2
fl=(70) ???
fn=(958) 0x0000171e
0 10

fn=(4046) 0x00001632
0 5
cfn=(958)
calls=1 0 
0 2
0 8
cob=(1)
cfi=(47)
cfn=(3802)
calls=1 34 
0 1
0 1
0 10
cfn=(4060) 0x000015b0
calls=1 0 
0 16
0 8

fn=(974) 0x00006db5
0 5
cfn=(958)
calls=1 0 
0 2
0 9

fn=(956) 0x000016c1
0 6
cfn=(958)
calls=1 0 
0 2
0 18
cfn=(958)
calls=1 0 
0 2
0 9

fn=(4060)
0 4
cfn=(958)
calls=1 0 
0 2
0 10

ob=(7) /usr/lib/libX11.so.6.3.0
fl=(54) ???
fn=(4466) 0x000139bb
0 5
cfn=(320) 0x00013aa7
calls=1 0 
0 2
0 8
cob=(1)
cfi=(47)
cfn=(3802)
calls=1 34 
0 1
0 1
0 10
cfn=(4480) 0x00013939
calls=1 0 
0 16
0 8

fn=(336) 0x000947a9
0 5
cfn=(320)
calls=1 0 
0 2
0 9

fn=(318) 0x00013a4a
0 6
cfn=(320)
calls=1 0 
0 2
0 18
cfn=(320)
calls=1 0 
0 2
0 9

fn=(4480)
0 4
cfn=(320)
calls=1 0 
0 2
0 10

fn=(320)
0 10

ob=(26) /usr/lib/libpangocairo-1.0.so.0.3600.8
fl=(91) ???
fn=(2974) 0x00003b0e
0 10

fn=(3934) 0x00003a22
0 5
cfn=(2974)
calls=1 0 
0 2
0 8
cob=(1)
cfi=(47)
cfn=(3802)
calls=1 34 
0 1
0 1
0 10
cfn=(3948) 0x000039a0
calls=1 0 
0 16
0 8

fn=(2990) 0x00008f5e
0 5
cfn=(2974)
calls=1 0 
0 2
0 9

fn=(2972) 0x00003ab1
0 6
cfn=(2974)
calls=1 0 
0 2
0 18
cfn=(2974)
calls=1 0 
0 2
0 9

fn=(3948)
0 4
cfn=(2974)
calls=1 0 
0 2
0 10

ob=(29)
fl=(94)
fn=(3276) rrdc_is_connected
0 2
cfn=(3058) 0x00004cce
calls=1 0 
0 2
0 15

fn=(3500) rrd_set_to_DNAN
0 30
cfn=(3058)
calls=15 0 
0 30
0 244

fn=(3696) 0x00020e43
0 99

fn=(3058)
0 192

fn=(3354) rrd_lock
0 8
cfn=(3058)
calls=1 0 
0 2
0 13
cob=(1)
cfi=(106)
cfn=(3358)
calls=1 9 
0 63
0 1
0 6

fn=(3730) rrd_free
0 4
cfn=(3058)
calls=1 0 
0 2
0 12

fn=(3850) 0x00004be2
0 5
cfn=(3058)
calls=1 0 
0 2
0 8
cob=(1)
cfi=(47)
cfn=(3802)
calls=1 34 
0 1
0 1
0 10
cfn=(3864) 0x00004b60
calls=1 0 
0 16
0 8

fn=(3074) 0x000277b2
0 5
cfn=(3058)
calls=1 0 
0 2
0 9

fn=(3260)
0 5
cfn=(3058)
calls=1 0 
0 2
0 43
cob=(1)
cfi=(99)
cfn=(3264)
calls=1 601 
0 1107
0 1
0 9
cfn=(3270) rrdc_connect
calls=1 0 
0 965
0 1
0 7
cfn=(3276)
calls=1 0 
0 19
0 1
0 17
cfn=(3280) rrd_update_r
calls=1 0 
0 15383
0 1
0 16

fn=(3270)
0 7
cfn=(3058)
calls=1 0 
0 2
0 9
cob=(1)
cfi=(60)
cfn=(558)
calls=1 6 
0 931
0 1
0 15

fn=(3296) rrd_open
0 5
cfn=(3058)
calls=1 0 
0 2
0 16
cob=(1)
cfi=(78)
cfn=(1216)
calls=1 25 
0 36
0 1
0 7
cob=(1)
cfi=(11)
cfn=(102)
calls=1 357 
0 330
0 1
0 13
cob=(1)
cfi=(11)
cfn=(102)
calls=1 357 
0 330
0 1
0 36
cob=(1)
cfi=(15)
cfn=(68)
calls=1 7 
0 130
0 1
0 9
cob=(1)
cfi=(101)
cfn=(3314)
calls=1 7 
0 82
0 1
0 7
cob=(1)
cfi=(19)
cfn=(82)
calls=1 10 
0 61
0 1
0 10
cob=(1)
cfi=(103)
cfn=(3322)
calls=1 6 
0 63
0 1
0 13
cob=(1)
cfi=(104)
cfn=(3332)
calls=1 6 
0 44
0 1
0 22
cob=(1)
cfi=(104)
cfn=(3332)
calls=1 6 
0 44
0 1
0 38
cob=(1)
cfi=(21)
cfn=(88)
calls=1 18 
0 95
0 1
0 15
cob=(1)
cfi=(104)
cfn=(3332)
calls=1 6 
0 44
0 1
0 4
cob=(1)
cfi=(104)
cfn=(3332)
calls=1 6 
0 44
0 1
0 4
cob=(1)
cfi=(104)
cfn=(3332)
calls=1 6 
0 44
0 1
0 15
cob=(1)
cfi=(4)
cfn=(6)
calls=1 4 
0 49
0 1
0 13
cob=(1)
cfi=(105)
cfn=(3338)
calls=1 5 
0 69
0 1
0 5
cob=(1)
cfi=(105)
cfn=(3338)
calls=1 5 
0 69
0 1
0 17
cob=(1)
cfi=(104)
cfn=(3332)
calls=1 6 
0 44
0 1
0 118

fn=(3282) 0x000252e7
0 5
cfn=(3058)
calls=1 0 
0 2
0 20
cfn=(3290) rrd_init
calls=1 0 
0 19
0 1
0 5
cfn=(3296)
calls=1 0 
0 1964
0 1
0 9
cob=(1)
cfi=(105)
cfn=(3338)
calls=1 5 
0 69
0 1
0 5
cob=(1)
cfi=(79)
cfn=(1252)
calls=1 6 
0 91
0 1
0 6
cfn=(3354)
calls=1 0 
0 93
0 1
0 8
cob=(1)
cfi=(11)
cfn=(102)
calls=1 357 
0 330
0 1
0 7
cob=(1)
cfi=(11)
cfn=(102)
calls=1 357 
0 330
0 1
0 7
cob=(1)
cfi=(11)
cfn=(102)
calls=1 357 
0 330
0 1
0 5
cob=(1)
cfi=(11)
cfn=(102)
calls=1 357 
0 330
0 1
0 5
cob=(1)
cfi=(11)
cfn=(102)
calls=1 357 
0 330
0 1
0 34
cfn=(3388) 0x0001eaab
calls=3 0 
0 377
0 34
cob=(1)
cfi=(11)
cfn=(102)
calls=1 357 
0 330
0 1
0 18
cob=(1)
cfi=(11)
cfn=(56)
calls=1 477 
0 20
0 1
0 3
cob=(1)
cfi=(11)
cfn=(56)
calls=1 477 
0 20
0 1
0 3
cob=(1)
cfi=(11)
cfn=(56)
calls=1 477 
0 284
0 1
0 9
cob=(1)
cfi=(107)
cfn=(3424)
calls=1 6 
0 420
0 1
0 38
cob=(1)
cfi=(13)
cfn=(64)
calls=1 6 
0 98
0 1
0 6
cob=(1)
cfi=(13)
cfn=(64)
calls=1 6 
0 72
0 1
0 85
cob=(1)
cfi=(7)
cfn=(34)
calls=1 5 
0 22
0 1
0 6
cob=(1)
cfi=(79)
cfn=(1252)
calls=1 6 
0 91
0 1
0 48
cob=(1)
cfi=(108)
cfn=(3486)
calls=3 6 
0 286
0 3
0 49
cfn=(3388)
calls=3 0 
0 377
0 66
cob=(1)
cfi=(108)
cfn=(3486)
calls=3 6 
0 270
0 3
0 51
cob=(1)
cfi=(11)
cfn=(56)
calls=1 477 
0 119
0 1
0 1
cfn=(3584)
calls=1 0 
0 36
0 1
0 8
cfn=(3730)
calls=1 0 
0 18
0 1
0 3
cfn=(3736) rrd_close
calls=1 0 
0 766
0 1
0 3
cob=(1)
cfi=(11)
cfn=(56)
calls=1 477 
0 367
0 1
0 3
cob=(1)
cfi=(11)
cfn=(56)
calls=1 477 
0 284
0 1
0 3
cob=(1)
cfi=(11)
cfn=(56)
calls=1 477 
0 119
0 1
0 3
cob=(1)
cfi=(11)
cfn=(56)
calls=1 477 
0 367
0 1
0 3
cob=(1)
cfi=(11)
cfn=(56)
calls=1 477 
0 367
0 1
0 27
cfn=(3500)
calls=3 0 
0 64
0 3
0 93
cfn=(3518) 0x00023cb9
calls=3 0 
0 39
0 57
cfn=(3500)
calls=3 0 
0 60
0 3
0 21
cfn=(3388)
calls=3 0 
0 377
0 36
cob=(1)
cfi=(110)
cfn=(3544)
calls=3 16 
0 33
0 3
0 30
cfn=(3500)
calls=3 0 
0 60
0 3
0 15
cfn=(3550) 0x00023cf7
calls=3 0 
0 66
0 51
cfn=(3564) 0x0001eb82
calls=2 0 
0 206
0 62
cfn=(3584)
calls=2 0 
0 72
0 2
0 162
cfn=(3500)
calls=3 0 
0 60
0 3
0 57
cfn=(3500)
calls=3 0 
0 60
0 3
0 135
cfn=(3584)
calls=6 0 
0 216
0 6
0 308
cfn=(3666) rrd_seek
calls=2 0 
0 38
0 2
0 479
cob=(1)
cfi=(37)
cfn=(152)
calls=33 4 
0 297
0 33
0 363
cfn=(3686) rrd_write
calls=33 0 
0 1716
0 33
0 253
cfn=(3696)
calls=11 0 
0 99
0 61

fn=(3518)
0 39

fn=(3564)
0 6
cfn=(3058)
calls=2 0 
0 4
0 20
cob=(1)
cfi=(7)
cfn=(34)
calls=2 5 
0 152
0 2
0 22

fn=(3666)
0 38

fn=(3056) 0x00004c71
0 6
cfn=(3058)
calls=1 0 
0 2
0 18
cfn=(3058)
calls=1 0 
0 2
0 9

fn=(3588) rrd_get_context
0 60
cfn=(3058)
calls=10 0 
0 20
0 80

fn=(3280)
0 7
cfn=(3058)
calls=1 0 
0 2
0 10
cfn=(3282)
calls=1 0 
0 15358
0 6

fn=(3290)
0 19

fn=(3584)
0 20
cfn=(3058)
calls=10 0 
0 20
0 60
cfn=(3588)
calls=10 0 
0 160
0 10
0 90

fn=(3686)
0 165
cfn=(3058)
calls=33 0 
0 66
0 1485

fn=(3550)
0 24
cfn=(3058)
calls=3 0 
0 6
0 36

fn=(3864)
0 4
cfn=(3058)
calls=1 0 
0 2
0 10

fn=(3388)
0 27
cfn=(3058)
calls=9 0 
0 18
0 90
cob=(1)
cfi=(7)
cfn=(34)
calls=9 5 
0 81
0 9
0 63
cob=(1)
cfi=(7)
cfn=(34)
calls=9 5 
0 537
0 9
0 39
cob=(1)
cfi=(7)
cfn=(34)
calls=3 5 
0 174
0 3
0 81

fn=(3736)
0 9
cfn=(3058)
calls=1 0 
0 2
0 8
cob=(1)
cfi=(111)
cfn=(3740)
calls=1 5 
0 109
0 1
0 7
cob=(1)
cfi=(112)
cfn=(3744)
calls=1 11 
0 111
0 1
0 5
cob=(1)
cfi=(23)
cfn=(96)
calls=1 7 
0 111
0 1
0 6
cob=(1)
cfi=(11)
cfn=(56)
calls=1 477 
0 119
0 1
0 2
cob=(1)
cfi=(11)
cfn=(56)
calls=1 477 
0 263
0 1
0 9

ob=(2)
fl=(49)
fn=(232)
0 2
cob=(4)
cfi=(51)
cfn=(234)
calls=1 0 
0 37
0 1
cob=(4)
cfi=(51)
cfn=(252)
calls=1 0 
0 16
0 2

fn=(702)
0 2
cob=(13)
cfi=(61)
cfn=(704)
calls=1 0 
0 37
0 1
cob=(13)
cfi=(61)
cfn=(722)
calls=1 0 
0 16
0 2

fn=(842)
0 2
cob=(18)
cfi=(66)
cfn=(844)
calls=1 0 
0 37
0 1
cob=(18)
cfi=(66)
cfn=(862)
calls=1 0 
0 16
0 2

fn=(982)
0 2
cob=(23)
cfi=(71)
cfn=(984)
calls=1 0 
0 37
0 1
cob=(23)
cfi=(71)
cfn=(1002)
calls=1 0 
0 16
0 2

fn=(2970)
0 2
cob=(26)
cfi=(91)
cfn=(2972)
calls=1 0 
0 37
0 1
cob=(26)
cfi=(91)
cfn=(2990)
calls=1 0 
0 16
0 2

fn=(3790)
0 2
cob=(31)
cfi=(96)
cfn=(3792)
calls=1 0 
0 51
0 2

fn=(3848)
0 2
cob=(29)
cfi=(94)
cfn=(3850)
calls=1 0 
0 51
0 2

fn=(4156)
0 2
cob=(18)
cfi=(66)
cfn=(4158)
calls=1 0 
0 51
0 2

fn=(4464)
0 2
cob=(7)
cfi=(54)
cfn=(4466)
calls=1 0 
0 51
0 2

fn=(954)
0 2
cob=(22)
cfi=(70)
cfn=(956)
calls=1 0 
0 37
0 1
cob=(22)
cfi=(70)
cfn=(974)
calls=1 0 
0 16
0 2

fn=(4016)
0 2
cob=(23)
cfi=(71)
cfn=(4018)
calls=1 0 
0 51
0 2

fn=(4324)
0 2
cob=(12)
cfi=(59)
cfn=(4326)
calls=1 0 
0 51
0 2

fn=(926)
0 2
cob=(21)
cfi=(69)
cfn=(928)
calls=1 0 
0 37
0 1
cob=(21)
cfi=(69)
cfn=(946)
calls=1 0 
0 16
0 2

fn=(3876)
0 2
cob=(28)
cfi=(93)
cfn=(3878)
calls=1 0 
0 51
0 2

fn=(4184)
0 2
cob=(17)
cfi=(65)
cfn=(4186)
calls=1 0 
0 51
0 2

fn=(4492)
0 2
cob=(6)
cfi=(53)
cfn=(4494)
calls=1 0 
0 51
0 2

fn=(456)
0 2
cob=(12)
cfi=(59)
cfn=(458)
calls=1 0 
0 37
0 1
cob=(12)
cfi=(59)
cfn=(476)
calls=1 0 
0 16
0 2

fn=(3026)
0 2
cob=(28)
cfi=(93)
cfn=(3028)
calls=1 0 
0 37
0 1
cob=(28)
cfi=(93)
cfn=(3046)
calls=1 0 
0 16
0 2

fn=(4044)
0 2
cob=(22)
cfi=(70)
cfn=(4046)
calls=1 0 
0 51
0 2

fn=(4352)
0 2
cob=(11)
cfi=(58)
cfn=(4354)
calls=1 0 
0 51
0 2

fn=(204)
0 2
cob=(3)
cfi=(50)
cfn=(206)
calls=1 0 
0 37
0 1
cob=(3)
cfi=(50)
cfn=(224)
calls=1 0 
0 16
0 2

fn=(428)
0 2
cob=(11)
cfi=(58)
cfn=(430)
calls=1 0 
0 37
0 1
cob=(11)
cfi=(58)
cfn=(448)
calls=1 0 
0 16
0 2

fn=(870)
0 2
cob=(19)
cfi=(67)
cfn=(872)
calls=1 0 
0 37
0 1
cob=(19)
cfi=(67)
cfn=(890)
calls=1 0 
0 16
0 2

fn=(2998)
0 2
cob=(27)
cfi=(92)
cfn=(3000)
calls=1 0 
0 37
0 1
cob=(27)
cfi=(92)
cfn=(3018)
calls=1 0 
0 16
0 2

fn=(3904)
0 2
cob=(27)
cfi=(92)
cfn=(3906)
calls=1 0 
0 51
0 2

fn=(4212)
0 2
cob=(16)
cfi=(64)
cfn=(4214)
calls=1 0 
0 51
0 2

fn=(4520)
0 2
cob=(5)
cfi=(52)
cfn=(4522)
calls=1 0 
0 51
0 2

fn=(400)
0 2
cob=(10) /usr/lib/libxcb-render.so.0.0.0
cfi=(57) ???
cfn=(402) 0x00002991
calls=1 0 
0 37
0 1
cob=(10)
cfi=(57)
cfn=(420) 0x000075fa
calls=1 0 
0 16
0 2

fn=(3110)
0 2
cob=(31)
cfi=(96)
cfn=(3112)
calls=1 0 
0 37
0 1
cob=(31)
cfi=(96)
cfn=(3130)
calls=1 0 
0 16
0 2

fn=(4072)
0 2
cob=(21)
cfi=(69)
cfn=(4074)
calls=1 0 
0 51
0 2

fn=(4380)
0 2
cob=(10)
cfi=(57)
cfn=(4382) 0x00002902
calls=1 0 
0 51
0 2

fn=(372)
0 2
cob=(9)
cfi=(56)
cfn=(374)
calls=1 0 
0 37
0 1
cob=(9)
cfi=(56)
cfn=(392)
calls=1 0 
0 16
0 2

fn=(3932)
0 2
cob=(26)
cfi=(91)
cfn=(3934)
calls=1 0 
0 51
0 2

fn=(4240)
0 2
cob=(15) /usr/lib/libfontconfig.so.1.8.0
cfi=(63) ???
cfn=(4242) 0x00004672
calls=1 0 
0 51
0 2

fn=(4548)
0 2
cob=(4)
cfi=(51)
cfn=(4550)
calls=1 0 
0 51
0 2

fn=(344)
0 2
cob=(8)
cfi=(55)
cfn=(346)
calls=1 0 
0 37
0 1
cob=(8)
cfi=(55)
cfn=(364)
calls=1 0 
0 16
0 2

fn=(814)
0 2
cob=(17)
cfi=(65)
cfn=(816)
calls=1 0 
0 37
0 1
cob=(17)
cfi=(65)
cfn=(834)
calls=1 0 
0 16
0 2

fn=(1036)
0 2
cob=(24)
cfi=(72)
cfn=(1038)
calls=1 0 
0 37
0 1
cob=(24)
cfi=(72)
cfn=(1056)
calls=1 0 
0 16
0 2

fn=(2942)
0 2
cob=(25)
cfi=(90)
cfn=(2944)
calls=1 0 
0 37
0 1
cob=(25)
cfi=(90)
cfn=(2962)
calls=1 0 
0 16
0 2

fn=(3082)
0 2
cob=(30)
cfi=(95)
cfn=(3084)
calls=1 0 
0 37
0 1
cob=(30)
cfi=(95)
cfn=(3102)
calls=1 0 
0 16
0 2

fn=(4100)
0 2
cob=(20)
cfi=(68)
cfn=(4102)
calls=1 0 
0 51
0 2

fn=(4408)
0 2
cob=(9)
cfi=(56)
cfn=(4410)
calls=1 0 
0 51
0 2

fn=(316)
0 2
cob=(7)
cfi=(54)
cfn=(318)
calls=1 0 
0 37
0 1
cob=(7)
cfi=(54)
cfn=(336)
calls=1 0 
0 16
0 2

fn=(786)
0 2
cob=(16)
cfi=(64)
cfn=(788)
calls=1 0 
0 37
0 1
cob=(16)
cfi=(64)
cfn=(806)
calls=1 0 
0 16
0 2

fn=(898)
0 2
cob=(20)
cfi=(68)
cfn=(900)
calls=1 0 
0 37
0 1
cob=(20)
cfi=(68)
cfn=(918)
calls=1 0 
0 16
0 2

fn=(3054)
0 2
cob=(29)
cfi=(94)
cfn=(3056)
calls=1 0 
0 37
0 1
cob=(29)
cfi=(94)
cfn=(3074)
calls=1 0 
0 16
0 2

fn=(3960)
0 2
cob=(25)
cfi=(90)
cfn=(3962)
calls=1 0 
0 51
0 2

fn=(4268)
0 2
cob=(14)
cfi=(62)
cfn=(4270)
calls=1 0 
0 51
0 2

fn=(4576)
0 2
cob=(3)
cfi=(50)
cfn=(4578)
calls=1 0 
0 51
0 2

fn=(288)
0 2
cob=(6)
cfi=(53)
cfn=(290)
calls=1 0 
0 37
0 1
cob=(6)
cfi=(53)
cfn=(308)
calls=1 0 
0 16
0 2

fn=(758)
0 2
cob=(15)
cfi=(63)
cfn=(760) 0x00004701
calls=1 0 
0 37
0 1
cob=(15)
cfi=(63)
cfn=(778) 0x00021473
calls=1 0 
0 16
0 2

fn=(3820)
0 2
cob=(30)
cfi=(95)
cfn=(3822)
calls=1 0 
0 51
0 2

fn=(4128)
0 2
cob=(19)
cfi=(67)
cfn=(4130)
calls=1 0 
0 51
0 2

fn=(4436)
0 2
cob=(8)
cfi=(55)
cfn=(4438)
calls=1 0 
0 51
0 2

fn=(260)
0 2
cob=(5)
cfi=(52)
cfn=(262)
calls=1 0 
0 37
0 1
cob=(5)
cfi=(52)
cfn=(280)
calls=1 0 
0 16
0 2

fn=(730)
0 2
cob=(14)
cfi=(62)
cfn=(732)
calls=1 0 
0 37
0 1
cob=(14)
cfi=(62)
cfn=(750)
calls=1 0 
0 16
0 2

fn=(3988)
0 2
cob=(24)
cfi=(72)
cfn=(3990)
calls=1 0 
0 51
0 2

fn=(4296)
0 2
cob=(13)
cfi=(61)
cfn=(4298)
calls=1 0 
0 51
0 2

ob=(10)
fl=(57)
fn=(402)
0 6
cfn=(404) 0x000029ee
calls=1 0 
0 2
0 18
cfn=(404)
calls=1 0 
0 2
0 9

fn=(4382)
0 5
cfn=(404)
calls=1 0 
0 2
0 8
cob=(1)
cfi=(47)
cfn=(3802)
calls=1 34 
0 1
0 1
0 10
cfn=(4396) 0x00002880
calls=1 0 
0 16
0 8

fn=(404)
0 10

fn=(420)
0 5
cfn=(404)
calls=1 0 
0 2
0 9

fn=(4396)
0 4
cfn=(404)
calls=1 0 
0 2
0 10

ob=(15)
fl=(63)
fn=(762) 0x0000475e
0 10

fn=(4256) 0x000045f0
0 4
cfn=(762)
calls=1 0 
0 2
0 10

fn=(778)
0 5
cfn=(762)
calls=1 0 
0 2
0 9

fn=(760)
0 6
cfn=(762)
calls=1 0 
0 2
0 18
cfn=(762)
calls=1 0 
0 2
0 9

fn=(4242)
0 5
cfn=(762)
calls=1 0 
0 2
0 8
cob=(1)
cfi=(47)
cfn=(3802)
calls=1 34 
0 1
0 1
0 10
cfn=(4256)
calls=1 0 
0 16
0 8

totals: 13149006

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: Question re: dynamic linking in musl
  2015-05-27 11:18   ` Alex Dowad
@ 2015-05-27 13:01     ` Alexander Monakov
  2015-05-27 13:09       ` Timo Teras
  2015-05-27 13:06     ` Szabolcs Nagy
  1 sibling, 1 reply; 11+ messages in thread
From: Alexander Monakov @ 2015-05-27 13:01 UTC (permalink / raw)
  To: musl

On Wed, 27 May 2015, Alex Dowad wrote:
> > Can you also provide exact figures?  For example your callgrind logs?  Or
> > just
> > 'time' statistics for executables that spend much time in the dynamic
> > linker.
> Callgrind data attached.

Oh.  The profile makes it evident that most of the libraries lack .gnu.hash,
and the lookup is almost always using SysV lookup.  With many dependencies
SysV lookup is slower: in my testing with Clang/LLVM I got something like 420
ms (compared to 240 ms unpatched or 110 ms patched musl with .gnu.hash
lookup).

I'm not familiar with Alpine.  Hopefully someone else can chime in whether
.gnu.hash is deliberately disabled.

(since raw callgrind log is not readable, I'm pasting callgrind_annotate'd
version of your data below)

Alexander

--------------------------------------------------------------------------------
Profile data file '/tmp/callgrind.out.8354' (creator: callgrind-3.10.1)
--------------------------------------------------------------------------------
I1 cache: 
D1 cache: 
LL cache: 
Timerange: Basic block 0 - 2937079
Trigger: Program termination
Profiled target:  rrdtool update test.rrd N:0:1:U (PID 8354, part 1)
Events recorded:  Ir
Events shown:     Ir
Event sort order: Ir
Thresholds:       99
Include dirs:     
User annotated:   
Auto-annotation:  off

--------------------------------------------------------------------------------
        Ir 
--------------------------------------------------------------------------------
13,149,006  PROGRAM TOTALS

--------------------------------------------------------------------------------
       Ir  file:function
--------------------------------------------------------------------------------
4,483,216  /home/buildozer/aports/main/musl/src/musl-1.1.5/src/ldso/dynlink.c:sysv_lookup [/lib/ld-musl-i386.so.1]
3,678,465  /home/buildozer/aports/main/musl/src/musl-1.1.5/src/string/strcmp.c:strcmp [/lib/ld-musl-i386.so.1]
2,002,146  /home/buildozer/aports/main/musl/src/musl-1.1.5/src/ldso/dynlink.c:find_sym [/lib/ld-musl-i386.so.1]
  823,546  /home/buildozer/aports/main/musl/src/musl-1.1.5/src/ldso/dynlink.c:sysv_hash [/lib/ld-musl-i386.so.1]
  779,623  /home/buildozer/aports/main/musl/src/musl-1.1.5/src/ldso/dynlink.c:do_relocs [/lib/ld-musl-i386.so.1]
  351,069  /home/buildozer/aports/main/musl/src/musl-1.1.5/src/ldso/dynlink.c:gnu_lookup [/lib/ld-musl-i386.so.1]
  145,380  ???:0x00011f38 [/lib/ld-musl-i386.so.1]
   56,370  ???:0x0002ad86 [/usr/lib/libgobject-2.0.so.0.4200.0]
   48,357  /home/buildozer/aports/main/musl/src/musl-1.1.5/src/stdio/vfprintf.c:printf_core [/lib/ld-musl-i386.so.1]
   45,725  /home/buildozer/aports/main/musl/src/musl-1.1.5/src/ldso/dynlink.c:load_library [/lib/ld-musl-i386.so.1]
   40,118  /home/buildozer/aports/main/musl/src/musl-1.1.5/src/ldso/dynlink.c:decode_vec [/lib/ld-musl-i386.so.1]
   35,294  ???:0x0002ad34 [/usr/lib/libgobject-2.0.so.0.4200.0]
   35,056  /home/buildozer/aports/main/musl/src/musl-1.1.5/src/string/i386/memset.s:0x0004c919 [/lib/ld-musl-i386.so.1]
   30,486  /home/buildozer/aports/main/musl/src/musl-1.1.5/src/malloc/calloc.c:calloc [/lib/ld-musl-i386.so.1]
   29,919  /home/buildozer/aports/main/musl/src/musl-1.1.5/src/malloc/malloc.c:free [/lib/ld-musl-i386.so.1]
   28,151  /home/buildozer/aports/main/musl/src/musl-1.1.5/src/malloc/malloc.c:malloc [/lib/ld-musl-i386.so.1]
   27,275  ???:g_str_hash [/usr/lib/libglib-2.0.so.0.4200.0]
   26,987  /home/buildozer/aports/main/musl/src/musl-1.1.5/src/string/strncmp.c:strncmp [/lib/ld-musl-i386.so.1]
   20,900  /home/buildozer/aports/main/musl/src/musl-1.1.5/src/string/strlen.c:strlen [/lib/ld-musl-i386.so.1]
   20,638  /home/buildozer/aports/main/musl/src/musl-1.1.5/src/string/strchrnul.c:strchrnul [/lib/ld-musl-i386.so.1]
   20,052  /home/buildozer/aports/main/musl/src/musl-1.1.5/src/stdio/fwrite.c:__fwritex [/lib/ld-musl-i386.so.1]
   20,046  ???:0x00032dd4 [/usr/lib/libglib-2.0.so.0.4200.0]
   15,075  /home/buildozer/aports/main/musl/src/musl-1.1.5/src/ldso/dynlink.c:map_library [/lib/ld-musl-i386.so.1]
   13,535  /home/buildozer/aports/main/musl/src/musl-1.1.5/src/string/strcspn.c:strcspn [/lib/ld-musl-i386.so.1]
   13,074  ???:g_value_register_transform_func [/usr/lib/libgobject-2.0.so.0.4200.0]
   12,988  /home/buildozer/aports/main/musl/src/musl-1.1.5/src/string/i386/memcpy.s:0x0004c3ce [/lib/ld-musl-i386.so.1]
   12,720  /home/buildozer/aports/main/musl/src/musl-1.1.5/src/stdio/vfprintf.c:pad [/lib/ld-musl-i386.so.1]
   11,908  /home/buildozer/aports/main/musl/src/musl-1.1.5/src/string/memchr.c:memchr [/lib/ld-musl-i386.so.1]
   11,092  ???:0x00008060 [/usr/lib/libgobject-2.0.so.0.4200.0]
   10,941  /home/buildozer/aports/main/musl/src/musl-1.1.5/src/ldso/dynlink.c:decode_dyn [/lib/ld-musl-i386.so.1]
    9,784  /home/buildozer/aports/main/musl/src/musl-1.1.5/src/malloc/malloc.c:trim [/lib/ld-musl-i386.so.1]
    9,192  /home/buildozer/aports/main/musl/src/musl-1.1.5/src/env/getenv.c:getenv [/lib/ld-musl-i386.so.1]
    8,912  /home/buildozer/aports/main/musl/src/musl-1.1.5/src/stdio/vfprintf.c:out [/lib/ld-musl-i386.so.1]
    8,593  /home/buildozer/aports/main/musl/src/musl-1.1.5/src/malloc/malloc.c:unbin [/lib/ld-musl-i386.so.1]
    8,060  /home/buildozer/aports/main/musl/src/musl-1.1.5/src/malloc/malloc.c:bin_index [/lib/ld-musl-i386.so.1]
    7,244  /home/buildozer/aports/main/musl/src/musl-1.1.5/src/string/i386/memmove.s:0x0004c891 [/lib/ld-musl-i386.so.1]
    6,960  /home/buildozer/aports/main/musl/src/musl-1.1.5/src/stdio/vsnprintf.c:vsnprintf [/lib/ld-musl-i386.so.1]
    6,579  ???:0x000270c4 [/usr/lib/libgobject-2.0.so.0.4200.0]
    6,484  ???:0x00032f3c [/usr/lib/libglib-2.0.so.0.4200.0]
    6,422  ???:0x000330e7 [/usr/lib/libglib-2.0.so.0.4200.0]
    6,339  /home/buildozer/aports/main/musl/src/musl-1.1.5/src/ldso/dynlink.c:load_deps [/lib/ld-musl-i386.so.1]
    6,312  /home/buildozer/aports/main/musl/src/musl-1.1.5/src/string/strspn.c:strspn [/lib/ld-musl-i386.so.1]
    6,171  ???:0x00050c1f [/usr/lib/libglib-2.0.so.0.4200.0]
    6,080  /home/buildozer/aports/main/musl/src/musl-1.1.5/src/stdio/vfprintf.c:vfprintf [/lib/ld-musl-i386.so.1]
    5,743  ???:0x00024749 [/usr/lib/libgobject-2.0.so.0.4200.0]
    5,574  ???:0x00082a88 [/usr/lib/libglib-2.0.so.0.4200.0]
    5,529  ???:g_hash_table_insert [/usr/lib/libglib-2.0.so.0.4200.0]
    5,165  ???:0x000244d1 [/usr/lib/libgobject-2.0.so.0.4200.0]
    4,860  /home/buildozer/aports/main/musl/src/musl-1.1.5/src/string/strchr.c:strchr [/lib/ld-musl-i386.so.1]
    4,774  ???:0x0002ad02 [/usr/lib/libgobject-2.0.so.0.4200.0]
    4,648  ???:g_hash_table_lookup [/usr/lib/libglib-2.0.so.0.4200.0]
    3,816  /home/buildozer/aports/main/musl/src/musl-1.1.5/src/stdio/vfprintf.c:pop_arg [/lib/ld-musl-i386.so.1]
    3,790  /home/buildozer/aports/main/musl/src/musl-1.1.5/src/string/stpcpy.c:stpcpy [/lib/ld-musl-i386.so.1]
    3,709  /home/buildozer/aports/main/musl/src/musl-1.1.5/src/internal/syscall_ret.c:__syscall_ret [/lib/ld-musl-i386.so.1]
    3,634  ???:g_malloc0 [/usr/lib/libglib-2.0.so.0.4200.0]
    3,619  /home/buildozer/aports/main/musl/src/musl-1.1.5/src/internal/i386/syscall.s:0x0001cbd7 [/lib/ld-musl-i386.so.1]
    3,592  /home/buildozer/aports/main/musl/src/musl-1.1.5/src/ldso/dynlink.c:path_open.constprop.3 [/lib/ld-musl-i386.so.1]
    3,441  /home/buildozer/aports/main/musl/src/musl-1.1.5/src/string/memrchr.c:memrchr [/lib/ld-musl-i386.so.1]
    3,386  /home/buildozer/aports/main/musl/src/musl-1.1.5/src/thread/pthread_rwlock_unlock.c:pthread_rwlock_unlock [/lib/ld-musl-i386.so.1]


^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: Question re: dynamic linking in musl
  2015-05-27 11:18   ` Alex Dowad
  2015-05-27 13:01     ` Alexander Monakov
@ 2015-05-27 13:06     ` Szabolcs Nagy
  1 sibling, 0 replies; 11+ messages in thread
From: Szabolcs Nagy @ 2015-05-27 13:06 UTC (permalink / raw)
  To: musl

* Alex Dowad <alexinbeijing@gmail.com> [2015-05-27 13:18:42 +0200]:
> On 27/05/15 12:40, Alexander Monakov wrote:
> >That is not how ELF symbol lookup works.  Simply put, the symbol should be
> >taken from whatever first module in the whole lookup chain provides it; e.g.
> >if the executable exports a function that is also exported in libX11, the
> >executable's definition prevails.
> OK, I get it. So dynamic linking has O(n^2) runtime, with "n" being the
> number of dynamic libraries you link against!

yes, in the sense that a symbol lookup is O(n) and you may
have O(n) such lookups.

> >Recently I was working on some dynamic linker speedups for musl.  On my
> >testcase, Clang/LLVM with ~100-200 dynamic libraries and ~20000 symbols that
> >need to be resolved in the dynamic linker, I obtained a speedup from 240 ms to
> >110 ms, while glibc needs 50 ms with lazy binding and 140 without.  So while
> >musl's dynamic linker speed can be improved, still rrdtool is doing something
> >odd in the first place if it's performance is bound like that.  I'd like to
> >understand that.  If it's unavoidable, perhaps static linking is appropriate.
> >
> >(I didn't send my dynlink speedup patches yet;  I intend to do that sometime
> >soon)
> That speedup will be very welcome, especially for clang! clang builds are
> noticeably slower than gcc. Looking forward to it.
> 

may be clang should be linked staticly then
(if dynamic linker has meausrable overhead)

btw i recently heard that benchmarks show that
clang compiles very fast.. but only if it was
compiled with gcc.. the irony

...
> cob=(1) /lib/ld-musl-i386.so.1
> cfi=(47) /home/buildozer/aports/main/musl/src/musl-1.1.5/src/exit/atexit.c
...

i386 pic code is slow even if the musl loader
is magically fast so if you care about performance
then static linking is the right solution.


^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: Question re: dynamic linking in musl
  2015-05-27 13:01     ` Alexander Monakov
@ 2015-05-27 13:09       ` Timo Teras
  2015-05-27 13:15         ` Alex Dowad
  0 siblings, 1 reply; 11+ messages in thread
From: Timo Teras @ 2015-05-27 13:09 UTC (permalink / raw)
  To: Alexander Monakov; +Cc: musl

On Wed, 27 May 2015 16:01:50 +0300 (MSK)
Alexander Monakov <amonakov@ispras.ru> wrote:

> On Wed, 27 May 2015, Alex Dowad wrote:
> > > Can you also provide exact figures?  For example your callgrind
> > > logs?  Or just
> > > 'time' statistics for executables that spend much time in the
> > > dynamic linker.
> > Callgrind data attached.
> 
> Oh.  The profile makes it evident that most of the libraries
> lack .gnu.hash, and the lookup is almost always using SysV lookup.
> With many dependencies SysV lookup is slower: in my testing with
> Clang/LLVM I got something like 420 ms (compared to 240 ms unpatched
> or 110 ms patched musl with .gnu.hash lookup).
> 
> I'm not familiar with Alpine.  Hopefully someone else can chime in
> whether .gnu.hash is deliberately disabled.

We have not touched, so we are using the gcc default. Which apparently
then is sysv only (bummer).

I wonder if it's better to have both, or gnu only?

/Timo


^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: Question re: dynamic linking in musl
  2015-05-27 13:09       ` Timo Teras
@ 2015-05-27 13:15         ` Alex Dowad
  2015-05-27 13:23           ` Timo Teras
  0 siblings, 1 reply; 11+ messages in thread
From: Alex Dowad @ 2015-05-27 13:15 UTC (permalink / raw)
  To: musl



On 27/05/15 15:09, Timo Teras wrote:
> On Wed, 27 May 2015 16:01:50 +0300 (MSK)
> Alexander Monakov <amonakov@ispras.ru> wrote:
>
>> On Wed, 27 May 2015, Alex Dowad wrote:
>>>> Can you also provide exact figures?  For example your callgrind
>>>> logs?  Or just
>>>> 'time' statistics for executables that spend much time in the
>>>> dynamic linker.
>>> Callgrind data attached.
>> Oh.  The profile makes it evident that most of the libraries
>> lack .gnu.hash, and the lookup is almost always using SysV lookup.
>> With many dependencies SysV lookup is slower: in my testing with
>> Clang/LLVM I got something like 420 ms (compared to 240 ms unpatched
>> or 110 ms patched musl with .gnu.hash lookup).
>>
>> I'm not familiar with Alpine.  Hopefully someone else can chime in
>> whether .gnu.hash is deliberately disabled.
> We have not touched, so we are using the gcc default. Which apparently
> then is sysv only (bummer).
>
Yes, that callgrind profile was from a program installed from Alpine repos.

Use --hash-style=both in LD_FLAGS when building the APKs, and dynamic 
linking will become much faster!

Alex


^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: Question re: dynamic linking in musl
  2015-05-27 13:15         ` Alex Dowad
@ 2015-05-27 13:23           ` Timo Teras
  2015-05-27 14:06             ` Szabolcs Nagy
  2015-05-27 14:06             ` Rich Felker
  0 siblings, 2 replies; 11+ messages in thread
From: Timo Teras @ 2015-05-27 13:23 UTC (permalink / raw)
  To: Alex Dowad; +Cc: musl

On Wed, 27 May 2015 15:15:03 +0200
Alex Dowad <alexinbeijing@gmail.com> wrote:

> On 27/05/15 15:09, Timo Teras wrote:
> > On Wed, 27 May 2015 16:01:50 +0300 (MSK)
> > Alexander Monakov <amonakov@ispras.ru> wrote:
> >
> >> I'm not familiar with Alpine.  Hopefully someone else can chime in
> >> whether .gnu.hash is deliberately disabled.
> > We have not touched, so we are using the gcc default. Which
> > apparently then is sysv only (bummer).
>
> Yes, that callgrind profile was from a program installed from Alpine
> repos.
> 
> Use --hash-style=both in LD_FLAGS when building the APKs, and dynamic 
> linking will become much faster!

We want that in the toolchain. It's gcc configure option:
  --with-linker-hash-style={sysv,gnu,both}

I wonder if it should be 'gnu' or 'both'. Apparently 'both' will be
larger as then everything is hashed twice.

Is there any known issues if I just specify 'gnu' ?



^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: Question re: dynamic linking in musl
  2015-05-27 13:23           ` Timo Teras
@ 2015-05-27 14:06             ` Szabolcs Nagy
  2015-05-27 14:06             ` Rich Felker
  1 sibling, 0 replies; 11+ messages in thread
From: Szabolcs Nagy @ 2015-05-27 14:06 UTC (permalink / raw)
  To: musl; +Cc: Alex Dowad

* Timo Teras <timo.teras@iki.fi> [2015-05-27 16:23:26 +0300]:
> 
> We want that in the toolchain. It's gcc configure option:
>   --with-linker-hash-style={sysv,gnu,both}
> 
> I wonder if it should be 'gnu' or 'both'. Apparently 'both' will be
> larger as then everything is hashed twice.
> 
> Is there any known issues if I just specify 'gnu' ?

sysv is the standard so in theory if it's not there then
the dso is not standard elf.

(in practice my guess would be that any option is fine,
unless you try to load the dso with some old version of
musl..)



^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: Question re: dynamic linking in musl
  2015-05-27 13:23           ` Timo Teras
  2015-05-27 14:06             ` Szabolcs Nagy
@ 2015-05-27 14:06             ` Rich Felker
  2015-05-28 14:03               ` Natanael Copa
  1 sibling, 1 reply; 11+ messages in thread
From: Rich Felker @ 2015-05-27 14:06 UTC (permalink / raw)
  To: musl

On Wed, May 27, 2015 at 04:23:26PM +0300, Timo Teras wrote:
> On Wed, 27 May 2015 15:15:03 +0200
> Alex Dowad <alexinbeijing@gmail.com> wrote:
> 
> > On 27/05/15 15:09, Timo Teras wrote:
> > > On Wed, 27 May 2015 16:01:50 +0300 (MSK)
> > > Alexander Monakov <amonakov@ispras.ru> wrote:
> > >
> > >> I'm not familiar with Alpine.  Hopefully someone else can chime in
> > >> whether .gnu.hash is deliberately disabled.
> > > We have not touched, so we are using the gcc default. Which
> > > apparently then is sysv only (bummer).
> >
> > Yes, that callgrind profile was from a program installed from Alpine
> > repos.
> > 
> > Use --hash-style=both in LD_FLAGS when building the APKs, and dynamic 
> > linking will become much faster!
> 
> We want that in the toolchain. It's gcc configure option:
>   --with-linker-hash-style={sysv,gnu,both}
> 
> I wonder if it should be 'gnu' or 'both'. Apparently 'both' will be
> larger as then everything is hashed twice.
> 
> Is there any known issues if I just specify 'gnu' ?

In the sense of "known issues" I would say no, but I would still
strongly discourage this. A valid dynamic ELF file requries the sysv
(standard ELF) hash table; the original reason musl added support for
GNU hash was for ABI-compat to be able to run binaries from distros
that were producing "invalid" ELF files. :-) While musl fully supports
either, and will perform considerably better when GNU hash is present
once we get Alexander Monakov's improvements in, it's possible that
some simple tools for processing ELF files, or programs which do
various sorts of introspection via dl_iterate_phdr or otherwise, may
expect the sysv hash table to be present and fail badly without it.

Rich


^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: Question re: dynamic linking in musl
  2015-05-27 14:06             ` Rich Felker
@ 2015-05-28 14:03               ` Natanael Copa
  0 siblings, 0 replies; 11+ messages in thread
From: Natanael Copa @ 2015-05-28 14:03 UTC (permalink / raw)
  To: Rich Felker; +Cc: musl

On Wed, 27 May 2015 10:06:58 -0400
Rich Felker <dalias@libc.org> wrote:

> On Wed, May 27, 2015 at 04:23:26PM +0300, Timo Teras wrote:
> > On Wed, 27 May 2015 15:15:03 +0200
> > Alex Dowad <alexinbeijing@gmail.com> wrote:
> > 
> > > On 27/05/15 15:09, Timo Teras wrote:
> > > > On Wed, 27 May 2015 16:01:50 +0300 (MSK)
> > > > Alexander Monakov <amonakov@ispras.ru> wrote:
> > > >
> > > >> I'm not familiar with Alpine.  Hopefully someone else can chime in
> > > >> whether .gnu.hash is deliberately disabled.
> > > > We have not touched, so we are using the gcc default. Which
> > > > apparently then is sysv only (bummer).
> > >
> > > Yes, that callgrind profile was from a program installed from Alpine
> > > repos.
> > > 
> > > Use --hash-style=both in LD_FLAGS when building the APKs, and dynamic 
> > > linking will become much faster!
> > 
> > We want that in the toolchain. It's gcc configure option:
> >   --with-linker-hash-style={sysv,gnu,both}
> > 
> > I wonder if it should be 'gnu' or 'both'. Apparently 'both' will be
> > larger as then everything is hashed twice.
> > 
> > Is there any known issues if I just specify 'gnu' ?
> 
> In the sense of "known issues" I would say no, but I would still
> strongly discourage this. A valid dynamic ELF file requries the sysv
> (standard ELF) hash table; the original reason musl added support for
> GNU hash was for ABI-compat to be able to run binaries from distros
> that were producing "invalid" ELF files. :-) While musl fully supports
> either, and will perform considerably better when GNU hash is present
> once we get Alexander Monakov's improvements in, it's possible that
> some simple tools for processing ELF files, or programs which do
> various sorts of introspection via dl_iterate_phdr or otherwise, may
> expect the sysv hash table to be present and fail badly without it.

Seems like at least ubuntu has done gnu-only hash style last 5 years.
https://bugs.launchpad.net/ubuntu/+source/gcc-4.4/+bug/704691

-nc


^ permalink raw reply	[flat|nested] 11+ messages in thread

end of thread, other threads:[~2015-05-28 14:03 UTC | newest]

Thread overview: 11+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-05-27 10:08 Question re: dynamic linking in musl Alex Dowad
2015-05-27 10:40 ` Alexander Monakov
2015-05-27 11:18   ` Alex Dowad
2015-05-27 13:01     ` Alexander Monakov
2015-05-27 13:09       ` Timo Teras
2015-05-27 13:15         ` Alex Dowad
2015-05-27 13:23           ` Timo Teras
2015-05-27 14:06             ` Szabolcs Nagy
2015-05-27 14:06             ` Rich Felker
2015-05-28 14:03               ` Natanael Copa
2015-05-27 13:06     ` Szabolcs Nagy

Code repositories for project(s) associated with this public inbox

	https://git.vuxu.org/mirror/musl/

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).