[PATCH] pipe2 for Linuxulator
Alexander Best
arundel at freebsd.org
Sun Apr 15 11:51:12 UTC 2012
On Sun Apr 15 12, Alexander Leidinger wrote:
> On Sun, 15 Apr 2012 11:23:08 +0000 Alexander Best <arundel at freebsd.org>
> wrote:
>
> > On Sun Apr 15 12, Alexander Best wrote:
> > > On Sun Apr 15 12, Alexander Best wrote:
> > > > On Sun Apr 15 12, Alexander Leidinger wrote:
> > > > > On Sat, 14 Apr 2012 22:47:46 +0200 Alexander Leidinger
> > > > > <Alexander at Leidinger.net> wrote:
> > > > >
> > > > > > On Sat, 14 Apr 2012 20:32:56 +0000 Alexander Best
> > > > > > <arundel at freebsd.org> wrote:
> > > > > >
> > > > > > > On Sat Apr 14 12, Alexander Leidinger wrote:
> > > > > > > > On Fri, 13 Apr 2012 20:32:22 +0000 Alexander Best
> > > > > > > > <arundel at freebsd.org> wrote:
> > > > > > > >
> > > > > > > > > i'm having problems with the patch. beforehand, playing
> > > > > > > > > music from www.mixcloud.com worked. now the flash based
> > > > > > > > > player is initialising forever.
> > > > > > > >
> > > > > > > > > just drop me a note with exact instructions and i can
> > > > > > > > > give you more verbose information or debugging stats.
> > > > > > > > > again: this issue might be futex related and not a
> > > > > > > > > result of your patch.
> > > > > > > >
> > > > > > > > Are you running -current? If yes I Looks try to get some
> > > > > > > > time to commit the linuxulator-dtrace probes, now that
> > > > > > > > SDT probes can be loaded dynamically there is no risk to
> > > > > > > > panic the system when the linuxulator is loaded after
> > > > > > > > boot and dtrace is used. This could help looking at
> > > > > > > > problems with locks.
> > > > > > >
> > > > > > > yes i'm running a very recent HEAD on amd64.
> > > > > >
> > > > > > I'm in the process of merging all the new stuff from HEAD
> > > > > > into my SVN branch. With a slow system and a slow line this
> > > > > > may take a while. I hope to at least update my branch in SVN
> > > > > > (users/netchild/linuxulator-dtrace) today. I don't know if I
> > > > > > get the time to merge it to HEAD today.
> > > > >
> > > > > Hmmm... do I remember correctly that I already gave a dtrace
> > > > > patch to you to check for futex problems? I think I changed the
> > > > > locking-probes since I gave the patch to you, but I'm not sure.
> > > > > Anyway, the patch against a recent -current is available from
> > > > > http://www.leidinger.net/FreeBSD/current-patches now.
> > > >
> > > > yeah you're right. i've applied the patch and compiled and
> > > > installed the kernel. i'm not very experienced with dtrace, so
> > > > i'll need some instructions on how to proceed.
> > >
> > > buildkernel suceeded, but i got this error during buildworld:
> >
> > it seems your patch breaks building world with MODULES_WITH_WORLD
> > defined. when modules get buildduring buildkernel, i don't see that
> > error.
>
> opt_kdtrace.h is generated by config. I've never used
> MODULES_WITH_WORLD, so I have no idea how this case is handled.
ahh ok. i've managed to get some stats via stats_timing.d. this is a
snapshot during which a newly loaded tab in chromium was unresponsive for
about 5 seconds. without the linux flash plugin running i never experienced
such lock ups.
i've attached the d-script stats.
cheers.
alex
>
> Bye,
> Alexander.
>
> --
> http://www.Leidinger.net Alexander @ Leidinger.net: PGP ID = B0063FE7
> http://www.FreeBSD.org netchild @ FreeBSD.org : PGP ID = 72077137
-------------- next part --------------
otaku% sudo ./stats_timing.d
^C
Number of calls per provider/application/kernel function:
linuxulator32 npviewer.bin linux_schedtail 1
linuxulator32 npviewer.bin linux_set_robust_list 1
linuxulator32 npviewer.bin proc_init 1
linuxulator32 npviewer.bin linux_kernver 3
linuxulator32 npviewer.bin linux_get_osname 4
linuxulator32 npviewer.bin linux_get_osrelease 4
linuxulator32 npviewer.bin em_find 7
linuxulator32 npviewer.bin linux_get_prison 11
linuxulator32 npviewer.bin futex_atomic_op 335
linuxulator32 npviewer.bin linux_emul_convpath 372
linuxulator32 npviewer.bin futex_sleep 411
linuxulator32 npviewer.bin futex_wait 411
linuxulator32 npviewer.bin futex_wake 492
linuxulator32 npviewer.bin futex_put 1289
linuxulator32 npviewer.bin linux_sys_futex 1372
linuxulator32 npviewer.bin futex_get 1707
linuxulator32 npviewer.bin futex_get0 1707
linuxulator32 npviewer.bin linux_clock_gettime 10694
linuxulator32 npviewer.bin linux_to_native_clockid 10694
linuxulator32 npviewer.bin native_to_linux_timespec 10694
CPU-timing statistics per provider/application/kernel function (in ns):
linuxulator32 npviewer.bin linux_sys_futex
value ------------- Distribution ------------- count
-131072 | 0
-65536 |@ 21
-32768 |@@@@@ 172
-16384 |@@@@@@ 199
-8192 |@@@@@@@@@@@ 392
-4096 |@@@@ 136
-2048 |@@@@@ 156
-1024 |@@@@@@@@ 289
-512 | 0
linuxulator32 npviewer.bin linux_clock_gettime
value ------------- Distribution ------------- count
-65536 | 0
-32768 | 1
-16384 | 5
-8192 | 66
-4096 |@ 164
-2048 |@ 315
-1024 |@@ 479
-512 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 9664
-256 | 0
linuxulator32 npviewer.bin futex_get
value ------------- Distribution ------------- count
-131072 | 0
-65536 | 5
-32768 |@ 37
-16384 | 14
-8192 |@ 34
-4096 |@@@@ 164
-2048 |@@@@@@@@@@@@@@@@@@@ 822
-1024 |@@@@@@@@@@@ 449
-512 |@@@@ 182
-256 | 0
linuxulator32 npviewer.bin futex_wait
value ------------- Distribution ------------- count
-65536 | 0
-32768 |@@ 17
-16384 |@@@@@@@@@@@@@@@@@@@@ 201
-8192 |@@@@@@@@ 82
-4096 |@@@@@@@@@@ 104
-2048 | 0
linuxulator32 npviewer.bin futex_sleep
value ------------- Distribution ------------- count
-65536 | 0
-32768 |@ 13
-16384 |@@@@@@@@@@@@@@@@@@@@ 202
-8192 |@@@@@@@ 72
-4096 |@@@@@@@@@@@ 112
-2048 | 5
-1024 | 0
linuxulator32 npviewer.bin futex_get0
value ------------- Distribution ------------- count
-131072 | 0
-65536 | 4
-32768 |@ 38
-16384 | 12
-8192 |@ 24
-4096 |@@@ 119
-2048 |@@@@@@@@@@@ 489
-1024 |@@@@@@@@@@@@@@@@ 691
-512 |@@@@@@@@ 330
-256 | 0
linuxulator32 npviewer.bin linux_emul_convpath
value ------------- Distribution ------------- count
-131072 | 0
-65536 | 2
-32768 |@@ 14
-16384 |@@@@@ 42
-8192 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 314
-4096 | 0
linuxulator32 npviewer.bin futex_put
value ------------- Distribution ------------- count
-16384 | 0
-8192 | 8
-4096 |@@ 58
-2048 |@@@@@@@ 222
-1024 |@@@@@@@@@@@@@@@@@ 535
-512 |@@@@@@@@@@@@@@ 466
-256 | 0
linuxulator32 npviewer.bin native_to_linux_timespec
value ------------- Distribution ------------- count
-65536 | 0
-32768 | 1
-16384 | 0
-8192 | 9
-4096 | 26
-2048 | 9
-1024 | 3
-512 | 13
-256 |@ 213
-128 |@@ 498
-64 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 9922
-32 | 0
linuxulator32 npviewer.bin linux_to_native_clockid
value ------------- Distribution ------------- count
-16384 | 0
-8192 | 5
-4096 | 15
-2048 | 6
-1024 | 4
-512 | 20
-256 |@ 309
-128 |@@@@ 1072
-64 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 9263
-32 | 0
linuxulator32 npviewer.bin futex_wake
value ------------- Distribution ------------- count
-16384 | 0
-8192 | 2
-4096 |@ 12
-2048 |@@@@@@@@@@@@@@@@@@@@ 252
-1024 |@@@@@@@@@ 105
-512 | 5
-256 | 1
-128 |@@@@@ 65
-64 |@@@@ 50
-32 | 0
linuxulator32 npviewer.bin futex_atomic_op
value ------------- Distribution ------------- count
-8192 | 0
-4096 | 2
-2048 | 0
-1024 | 4
-512 |@@@@@@@@@@@@@@@@@@@@@@@@@@ 221
-256 |@@@@@@@@ 63
-128 |@@@@@ 45
-64 | 0
linuxulator32 npviewer.bin linux_get_osname
value ------------- Distribution ------------- count
-2048 | 0
-1024 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 3
-512 |@@@@@@@@@@ 1
-256 | 0
linuxulator32 npviewer.bin em_find
value ------------- Distribution ------------- count
-2048 | 0
-1024 |@@@@@@ 1
-512 |@@@@@@@@@@@ 2
-256 |@@@@@@@@@@@@@@@@@ 3
-128 | 0
-64 |@@@@@@ 1
-32 | 0
linuxulator32 npviewer.bin linux_kernver
value ------------- Distribution ------------- count
-2048 | 0
-1024 |@@@@@@@@@@@@@@@@@@@@@@@@@@@ 2
-512 |@@@@@@@@@@@@@ 1
-256 | 0
linuxulator32 npviewer.bin linux_get_prison
value ------------- Distribution ------------- count
-1024 | 0
-512 |@@@@ 1
-256 |@@@@@@@@@@@@@@@@@@ 5
-128 |@@@@@@@@@@@@@@@@@@ 5
-64 | 0
linuxulator32 npviewer.bin linux_get_osrelease
value ------------- Distribution ------------- count
-1024 | 0
-512 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 4
-256 | 0
linuxulator32 npviewer.bin linux_schedtail
value ------------- Distribution ------------- count
-4096 | 0
-2048 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
-1024 | 0
linuxulator32 npviewer.bin proc_init
value ------------- Distribution ------------- count
-4096 | 0
-2048 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
-1024 | 0
linuxulator32 npviewer.bin linux_set_robust_list
value ------------- Distribution ------------- count
-2048 | 0
-1024 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
-512 | 0
Longest running (CPU-time!) functions per provider (in ns):
linuxulator32 linux_emul_convpath -11315
linuxulator32 futex_wait -4120
linuxulator32 futex_sleep -3655
linuxulator32 proc_init -3015
linuxulator32 linux_schedtail -2705
linuxulator32 linux_set_robust_list -1550
linuxulator32 linux_sys_futex -1030
linuxulator32 linux_get_osname -1015
linuxulator32 linux_get_osrelease -855
linuxulator32 futex_get -740
linuxulator32 linux_clock_gettime -615
linuxulator32 futex_put -575
linuxulator32 linux_kernver -530
linuxulator32 futex_get0 -520
linuxulator32 linux_get_prison -180
linuxulator32 futex_atomic_op -150
linuxulator32 em_find -125
linuxulator32 futex_wake -100
linuxulator32 linux_to_native_clockid -95
linuxulator32 native_to_linux_timespec -95
Lock CPU-timing statistics:
futex_mtx
value ------------- Distribution ------------- count
-16384 | 0
-8192 | 1
-4096 | 3
-2048 | 5
-1024 |@ 78
-512 |@@@@@ 444
-256 |@@@@@@@@@@@ 1037
-128 |@@@@@@@@@@@@@@@@@@ 1771
-64 |@@@@@ 501
-32 | 0
emul_lock
value ------------- Distribution ------------- count
-1024 | 0
-512 |@@@@@@@@@@@@@ 1
-256 |@@@@@@@@@@@@@ 1
-128 |@@@@@@@@@@@@@ 1
-64 | 0
emul_shared_wlock
value ------------- Distribution ------------- count
-256 | 0
-128 |@@@@@@@@@@@@@@@@@@@@ 1
-64 |@@@@@@@@@@@@@@@@@@@@ 1
-32 | 0
Longest running (CPU-time!) locks:
emul_lock -250
emul_shared_wlock -120
futex_mtx -95
More information about the freebsd-emulation
mailing list