atom feed29 messages in org.freebsd.freebsd-emulationRe: [PATCH] pipe2 for Linuxulator
FromSent OnAttachments
Jung-uk KimApr 10, 2012 3:56 pm.diff
Jung-uk KimApr 10, 2012 4:39 pm 
Jung-uk KimApr 10, 2012 5:27 pm 
Alexander BestApr 13, 2012 1:31 pm 
Alexander LeidingerApr 14, 2012 6:50 am 
Alexander LeidingerApr 14, 2012 6:54 am 
Alexander BestApr 14, 2012 1:32 pm 
Alexander LeidingerApr 14, 2012 1:47 pm 
Alexander LeidingerApr 14, 2012 3:02 pm 
Alexander BestApr 14, 2012 5:01 pm 
Alexander BestApr 15, 2012 3:11 am 
Alexander BestApr 15, 2012 4:22 am 
Alexander LeidingerApr 15, 2012 4:44 am 
Alexander BestApr 15, 2012 4:50 am.Other
Alexander BestApr 15, 2012 6:02 am 
Alexander LeidingerApr 15, 2012 7:30 am 
Alexander BestApr 15, 2012 7:41 am 
Alexander BestApr 15, 2012 11:15 am 
Alexander BestApr 15, 2012 11:29 am 
Alexander BestApr 15, 2012 11:46 am 
Alexander LeidingerApr 15, 2012 11:52 am 
Alexander LeidingerApr 15, 2012 12:00 pm 
Alexander BestApr 15, 2012 12:03 pm 
Alexander LeidingerApr 15, 2012 12:05 pm 
Alexander LeidingerApr 15, 2012 12:16 pm 
Alexander BestApr 15, 2012 1:56 pm 
Alexander BestApr 15, 2012 2:03 pm 
Jung-uk KimApr 16, 2012 2:32 pm 
Alexander BestApr 21, 2012 3:16 pm 
Subject:Re: [PATCH] pipe2 for Linuxulator
From:Alexander Best (arun@freebsd.org)
Date:Apr 15, 2012 4:50:40 am
List:org.freebsd.freebsd-emulation
Attachments:
lock_up - 22k

On Sun Apr 15 12, Alexander Leidinger wrote:

On Sun, 15 Apr 2012 11:23:08 +0000 Alexander Best <arun@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 <Alex@Leidinger.net> wrote:

On Sat, 14 Apr 2012 20:32:56 +0000 Alexander Best <arun@freebsd.org> wrote:

On Sat Apr 14 12, Alexander Leidinger wrote:

On Fri, 13 Apr 2012 20:32:22 +0000 Alexander Best <arun@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.

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