Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 21 Apr 2012 22:16:56 +0000
From:      Alexander Best <arundel@freebsd.org>
To:        Alexander Leidinger <Alexander@Leidinger.net>
Cc:        freebsd-emulation@freebsd.org
Subject:   Re: [PATCH] pipe2 for Linuxulator
Message-ID:  <20120421221656.GA12936@freebsd.org>
In-Reply-To: <20120415210352.GA88669@freebsd.org>
References:  <20120415143441.00000948@unknown> <20120415130306.GA95208@freebsd.org> <20120415163059.0000715d@unknown> <20120415144155.GA15993@freebsd.org> <20120415181613.GA52958@freebsd.org> <20120415205302.00005855@unknown> <20120415190408.GA61246@freebsd.org> <20120415211656.000053b9@unknown> <20120415205732.GA65853@freebsd.org> <20120415210352.GA88669@freebsd.org>

next in thread | previous in thread | raw e-mail | index | archive | help
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 Sun, 15 Apr 2012 19:04:08 +0000 Alexander Best <arundel@freebsd.org>
> > > wrote:
> > > 
> > > > On Sun Apr 15 12, Alexander Leidinger wrote:
> > > > > On Sun, 15 Apr 2012 18:16:13 +0000 Alexander Best
> > > > > <arundel@freebsd.org> wrote:
> > > 
> > > > > > also...even after installing a fresh kernel and world with dtrace
> > > > > > enabled, the "check_error.d" and "trace_futexes.d" fail and
> > > > > > sometimes even render the flash instance unusable.
> > > > > 
> > > > > I assume with unusable you mean not fast enough. Well... buy a
> > > > > faster CPU. No, just kidding. Depending on what a D script does and
> > > > > how many probes are enabled in the D script, it is not unexpected
> > > > > that the system slows down. As told above, the scripts show what is
> > > > > possible. For real debugging you may want to use stripped down
> > > > > versions.
> > > > 
> > > > no actually. what i meant by "unusable" is that the d-scripts
> > > > themself crash the flash instances.
> > > 
> > > Uhm... this is unexpected. DTrace disables destructive actions by
> > > default, and I do not activate them. Maybe some timing-sensitive code
> > > in the flash-player which does not handle the case that some parts can
> > > take longer than expected? I assume there is not bug in DTrace itself.
> > > There could be a bug in my patch, but I would assume it is not a
> > > heisen-bug as described here (the probes are handled by
> > > DTrace-macros, just the variables which are provided to D scripts
> > > are different from other probes).
> > 
> > this sounds reasonable. after exiting the dtrace script the crashed flash
> > instance partially returns to normal behaviour. so indeed it seems that
> > dtrace is having only an impact on flash's timing-code.
> > 
> > none of the linux processes actually crashes (that is is being terminated) in
> > this scenario. ps alx shows that all processes still exist.
> > 
> > i'll play a bit more with the dtrace scripts and see if i can remove more
> > stuff that isn't important for futex related matters.
> 
> one more thing:
> 
> i'm seeing a lot of defunct processes in connection with flash:
> 
>  1001 1023  988    0   4  0 283916  56620 kqread   I     -    2:36,17 chrome: --type=plugin --plugin-path=/usr/home/arundel/.mozilla/plugins/npwrapper.libflashplayer.so --lang=en-GB --channel=988.0x65c6b90.321991751 (chrome)
>  1001 1047 1023    0  20  0      0      0 -        Z     -    0:00,01 <defunct>
>  1001 1048 1023    0  20  0      0      0 -        Z     -    0:00,01 <defunct>
>  1001 1049 1023    0  20  0      0      0 -        Z     -    0:00,01 <defunct>
>  1001 1050 1023    0  20  0      0      0 -        Z     -    0:00,01 <defunct>
>  1001 1052 1023    0  20  0      0      0 -        Z     -    0:00,01 <defunct>
>  1001 1065 1023    0  20  0      0      0 -        Z     -    0:00,01 <defunct>
>  1001 1067 1023    0  20  0      0      0 -        Z     -    0:05,89 <defunct>
>  1001 1069 1023    0  20  0      0      0 -        Z     -    0:00,01 <defunct>
>  1001 1074  988    0  40  0 292244  86844 uwait    S     -    0:26,94 chrome: --type=gpu-process --channel=988.0x67e2960.1399124120 (chrome)
>  1001 1544  990    0  40  0 922080 129268 usem     S     -    2:05,13 chrome: --type=zygote (chrome)
>  1001 1558 1023    3  40  0 577080  91848 futex    I     -    0:00,28 /usr/local/lib/nspluginwrapper/i386/linux/npviewer.bin --plugin .mozilla/plugins/libflashplayer.so --connection /org/wrapper/NSPlugins/libflashplayer.so/1023-4/1681692777
>  1001 1559 1023    1  40  0 577080  91848 futex    I     -    0:00,00 /usr/local/lib/nspluginwrapper/i386/linux/npviewer.bin --plugin .mozilla/plugins/libflashplayer.so --connection /org/wrapper/NSPlugins/libflashplayer.so/1023-4/1681692777
>  1001 1605 1023    0  20  0      0      0 -        Z     -    0:00,01 <defunct>
>  1001 1606 1023    0  20  0      0      0 -        Z     -    0:00,01 <defunct>
>  1001 1607 1023    0  20  0      0      0 -        Z     -    0:00,01 <defunct>
>  1001 1609 1023    0  20  0      0      0 -        Z     -    0:00,01 <defunct>
>  1001 1610 1023    0  20  0      0      0 -        Z     -    0:00,01 <defunct>
>  1001 1611 1023    0  20  0      0      0 -        Z     -    0:00,01 <defunct>
>  1001 1614 1023    0  20  0      0      0 -        Z     -    0:00,01 <defunct>
>  1001 1615 1023    0  20  0      0      0 -        Z     -    0:00,49 <defunct>
>  1001 1616 1023    0  20  0      0      0 -        Z     -    0:07,52 <defunct>
>  1001 1655 1023    0  20  0      0      0 -        Z     -    0:00,00 <defunct>
>  1001 1656 1023    7  40  0 577080  91848 futex    I     -    0:00,28 /usr/local/lib/nspluginwrapper/i386/linux/npviewer.bin --plugin .mozilla/plugins/libflashplayer.so --connection /org/wrapper/NSPlugins/libflashplayer.so/1023-4/1681692777
>  1001 1657 1023    5  40  0 577080  91848 futex    I     -    0:00,32 /usr/local/lib/nspluginwrapper/i386/linux/npviewer.bin --plugin .mozilla/plugins/libflashplayer.so --connection /org/wrapper/NSPlugins/libflashplayer.so/1023-4/1681692777
>  1001 1713 1023   21  41  0 297812  41476 futex    I     -    0:00,01 /usr/local/lib/nspluginwrapper/i386/linux/npviewer.bin --plugin .mozilla/plugins/libflashplayer.so --connection /org/wrapper/NSPlugins/libflashplayer.so/1023-5/1714636915
>  1001 1714 1023  112  47  0 297812  41476 futex    I     -    0:00,00 /usr/local/lib/nspluginwrapper/i386/linux/npviewer.bin --plugin .mozilla/plugins/libflashplayer.so --connection /org/wrapper/NSPlugins/libflashplayer.so/1023-5/1714636915
>  1001 1715 1023    0  20  0      0      0 -        Z     -    0:00,00 <defunct>
>  1001 1716 1023    0  40  0 297812  41476 futex    I     -    0:00,04 /usr/local/lib/nspluginwrapper/i386/linux/npviewer.bin --plugin .mozilla/plugins/libflashplayer.so --connection /org/wrapper/NSPlugins/libflashplayer.so/1023-5/1714636915
>  1001 1717    1    0  40  0 297812  41476 pcmwrv   S     -    0:19,05 /usr/local/lib/nspluginwrapper/i386/linux/npviewer.bin --plugin .mozilla/plugins/libflashplayer.so --connection /org/wrapper/NSPlugins/libflashplayer.so/1023-5/1714636915
>  1001 1718    1   30  41  0 297812  41476 futex    I     -    0:00,01 /usr/local/lib/nspluginwrapper/i386/linux/npviewer.bin --plugin .mozilla/plugins/libflashplayer.so --connection /org/wrapper/NSPlugins/libflashplayer.so/1023-5/1714636915
>  1001 1719    1   30  41  0 297812  41476 futex    I     -    0:00,00 /usr/local/lib/nspluginwrapper/i386/linux/npviewer.bin --plugin .mozilla/plugins/libflashplayer.so --connection /org/wrapper/NSPlugins/libflashplayer.so/1023-5/1714636915
>  1001 1785 1023    1  40  0 444464  66512 futex    I     -    0:03,40 /usr/local/lib/nspluginwrapper/i386/linux/npviewer.bin --plugin .mozilla/plugins/libflashplayer.so --connection /org/wrapper/NSPlugins/libflashplayer.so/1023-6/1957747793
>  1001 1786 1023   85  45  0 444464  66512 futex    I     -    0:00,00 /usr/local/lib/nspluginwrapper/i386/linux/npviewer.bin --plugin .mozilla/plugins/libflashplayer.so --connection /org/wrapper/NSPlugins/libflashplayer.so/1023-6/1957747793
>  1001 1788 1023    0  20  0      0      0 -        Z     -    0:00,26 <defunct>
>  1001 1790 1023    0  20  0      0      0 -        Z     -    0:00,26 <defunct>
>  1001 1791 1023    0  20  0      0      0 -        Z     -    5:19,32 <defunct>
>  1001 2126 1023    0  20  0      0      0 -        Z     -    0:00,11 <defunct>
>  1001 2127 1023    0  20  0      0      0 -        Z     -    0:00,10 <defunct>
>  1001 2180 1023    0  20  0      0      0 -        Z     -    0:00,10 <defunct>
> 
> procstat reports:
> 
>  1047  1023   988   988     0   1 arundel  -         Linux ELF32   npviewer.bin
>  1048  1023   988   988     0   1 arundel  -         Linux ELF32   npviewer.bin
>  1049  1023   988   988     0   1 arundel  -         Linux ELF32   npviewer.bin
>  1050  1023   988   988     0   1 arundel  -         Linux ELF32   npviewer.bin
>  1052  1023   988   988     0   1 arundel  -         Linux ELF32   npviewer.bin
>  1065  1023   988   988     0   1 arundel  -         Linux ELF32   npviewer.bin
>  1067  1023   988   988     0   1 arundel  -         Linux ELF32   npviewer.bin
>  1069  1023   988   988     0   1 arundel  -         Linux ELF32   npviewer.bin
>  1558  1023   988   988     0   1 arundel  futex     Linux ELF32   npviewer.bin
>  1559  1023   988   988     0   1 arundel  futex     Linux ELF32   npviewer.bin
>  1605  1023   988   988     0   1 arundel  -         Linux ELF32   npviewer.bin
>  1606  1023   988   988     0   1 arundel  -         Linux ELF32   npviewer.bin
>  1607  1023   988   988     0   1 arundel  -         Linux ELF32   npviewer.bin
>  1609  1023   988   988     0   1 arundel  -         Linux ELF32   npviewer.bin
>  1610  1023   988   988     0   1 arundel  -         Linux ELF32   npviewer.bin
>  1611  1023   988   988     0   1 arundel  -         Linux ELF32   npviewer.bin
>  1614  1023   988   988     0   1 arundel  -         Linux ELF32   npviewer.bin
>  1615  1023   988   988     0   1 arundel  -         Linux ELF32   npviewer.bin
>  1616  1023   988   988     0   1 arundel  -         Linux ELF32   npviewer.bin
>  1655  1023   988   988     0   1 arundel  -         Linux ELF32   npviewer.bin
>  1656  1023   988   988     0   1 arundel  futex     Linux ELF32   npviewer.bin
>  1657  1023   988   988     0   1 arundel  futex     Linux ELF32   npviewer.bin
>  1713  1023   988   988     0   1 arundel  futex     Linux ELF32   npviewer.bin
>  1714  1023   988   988     0   1 arundel  futex     Linux ELF32   npviewer.bin
>  1715  1023   988   988     0   1 arundel  -         Linux ELF32   npviewer.bin
>  1716  1023   988   988     0   1 arundel  futex     Linux ELF32   npviewer.bin
>  1717     1   988   988     0   1 arundel  pcmwrv    Linux ELF32   npviewer.bin
>  1718     1   988   988     0   1 arundel  futex     Linux ELF32   npviewer.bin
>  1719     1   988   988     0   1 arundel  futex     Linux ELF32   npviewer.bin
>  1785  1023   988   988     0   1 arundel  futex     Linux ELF32   npviewer.bin
>  1786  1023   988   988     0   1 arundel  futex     Linux ELF32   npviewer.bin
>  1788  1023   988   988     0   1 arundel  -         Linux ELF32   npviewer.bin
>  1790  1023   988   988     0   1 arundel  -         Linux ELF32   npviewer.bin
>  1791  1023   988   988     0   1 arundel  -         Linux ELF32   npviewer.bin
>  2126  1023   988   988     0   1 arundel  -         Linux ELF32   npviewer.bin
>  2127  1023   988   988     0   1 arundel  -         Linux ELF32   npviewer.bin
>  2180  1023   988   988     0   1 arundel  -         Linux ELF32   npviewer.bin
>  2354  1023   988   988     0   1 arundel  futex     Linux ELF32   npviewer.bin

after enabling a few more debugging features in my kernel conf i also saw these
messages:

lock order reversal:
 1st 0xfffffe0007c57098 pseudofs (pseudofs) @ /usr/github-freebsd-head/sys/kern/vfs_lookup.c:542
 2nd 0xffffffff80bca9a0 allproc (allproc) @ /usr/github-freebsd-head/sys/kern/kern_proc.c:298
KDB: stack backtrace:
db_trace_self_wrapper() at db_trace_self_wrapper+0x2b
kdb_backtrace() at kdb_backtrace+0x39
witness_checkorder() at witness_checkorder+0x66c
_sx_slock() at _sx_slock+0x61
pfind() at pfind+0x27
pfs_lookup() at pfs_lookup+0x472
VOP_CACHEDLOOKUP_APV() at VOP_CACHEDLOOKUP_APV+0xda
vfs_cache_lookup() at vfs_cache_lookup+0xcb
VOP_LOOKUP_APV() at VOP_LOOKUP_APV+0xe2
lookup() at lookup+0x8c5
namei() at namei+0x67a
kern_alternate_path() at kern_alternate_path+0x260
linux_emul_convpath() at linux_emul_convpath+0x29
linux_open() at linux_open+0x42
ia32_syscall() at ia32_syscall+0x299
Xint0x80_syscall() at Xint0x80_syscall+0x95
--- syscall (5, Linux ELF32, linux_open), rip = 0x288a9181, rsp = 0xffff9f24, rbp = 0 ---
tvotohz: negative time difference 0 sec -1 usec
tvotohz: negative time difference 0 sec -1 usec

cheers.
alex

> 
> cheers.
> alex
> 
> > 
> > good night.
> > alex
> > 
> > > 
> > > Bye,
> > > Alexander.
> > > 
> > > -- 
> > > http://www.Leidinger.net    Alexander @ Leidinger.net: PGP ID = B0063FE7
> > > http://www.FreeBSD.org       netchild @ FreeBSD.org  : PGP ID = 72077137



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20120421221656.GA12936>