|
Th attached patch implements pipe2 syscall for Linuxulator, which is
quite trivial. Although it was added in Linux 2.6.27 (thanks, netchild!), it is often used by popular Linux applications, e.g., Adobe Flash plugin. Please note linux_pipe() was moved from MD files to sys/compat/linux/linux_file.c because both amd64 and i386 versions looked the same and I failed to see any reason. I also changed file descriptor argument from l_ulong * to l_int *, which seemed more appropriate. Any objections? Thanks! Jung-uk Kim * PS: This patch is also available from here: http://people.freebsd.org/~jkim/linux_pipe2.diff _______________________________________________ [hidden email] mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-emulation To unsubscribe, send any mail to "[hidden email]" |
|
On Tuesday 10 April 2012 06:56 pm, Jung-uk Kim wrote:
> Th attached patch implements pipe2 syscall for Linuxulator, which > is quite trivial. Although it was added in Linux 2.6.27 (thanks, > netchild!), it is often used by popular Linux applications, e.g., > Adobe Flash plugin. Please note linux_pipe() was moved from MD > files to sys/compat/linux/linux_file.c because both amd64 and i386 > versions looked the same and I failed to see any reason. I also > changed file descriptor argument from l_ulong * to l_int *, which > seemed more appropriate. Any objections? Oops, I missed a patch for sys/kern/kern_descript.c: Index: sys/kern/kern_descrip.c =================================================================== --- sys/kern/kern_descrip.c (revision 234112) +++ sys/kern/kern_descrip.c (working copy) @@ -1681,6 +1681,8 @@ finstall(struct thread *td, struct file *fp, int * } fhold(fp); fdp->fd_ofiles[*fd] = fp; + if ((flags & O_NONBLOCK) != 0) + fp->f_flag |= FNONBLOCK; if ((flags & O_CLOEXEC) != 0) fdp->fd_ofileflags[*fd] |= UF_EXCLOSE; FILEDESC_XUNLOCK(fdp); > * PS: This patch is also available from here: > > http://people.freebsd.org/~jkim/linux_pipe2.diff This patch is updated with it. Sorry, Jung-uk Kim _______________________________________________ [hidden email] mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-emulation To unsubscribe, send any mail to "[hidden email]" |
|
On Tuesday 10 April 2012 07:39 pm, Jung-uk Kim wrote:
> On Tuesday 10 April 2012 06:56 pm, Jung-uk Kim wrote: > > Th attached patch implements pipe2 syscall for Linuxulator, which > > is quite trivial. Although it was added in Linux 2.6.27 (thanks, > > netchild!), it is often used by popular Linux applications, e.g., > > Adobe Flash plugin. Please note linux_pipe() was moved from MD > > files to sys/compat/linux/linux_file.c because both amd64 and > > i386 versions looked the same and I failed to see any reason. I > > also changed file descriptor argument from l_ulong * to l_int *, > > which seemed more appropriate. Any objections? > > Oops, I missed a patch for sys/kern/kern_descript.c: > > Index: sys/kern/kern_descrip.c > =================================================================== > --- sys/kern/kern_descrip.c (revision 234112) > +++ sys/kern/kern_descrip.c (working copy) > @@ -1681,6 +1681,8 @@ finstall(struct thread *td, struct file *fp, > int * > } > fhold(fp); > fdp->fd_ofiles[*fd] = fp; > + if ((flags & O_NONBLOCK) != 0) > + fp->f_flag |= FNONBLOCK; > if ((flags & O_CLOEXEC) != 0) > fdp->fd_ofileflags[*fd] |= UF_EXCLOSE; > FILEDESC_XUNLOCK(fdp); > > > * PS: This patch is also available from here: > > > > http://people.freebsd.org/~jkim/linux_pipe2.diff > > This patch is updated with it. Oops, oops... I found that non-blocking does not really work because finit() resets the flag later. The patch was re-done to set the non-blocking flag correctly. I'm really sorry about the mess. Jung-uk Kim _______________________________________________ [hidden email] mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-emulation To unsubscribe, send any mail to "[hidden email]" |
|
On Tue Apr 10 12, Jung-uk Kim wrote:
> On Tuesday 10 April 2012 07:39 pm, Jung-uk Kim wrote: > > On Tuesday 10 April 2012 06:56 pm, Jung-uk Kim wrote: > > > Th attached patch implements pipe2 syscall for Linuxulator, which > > > is quite trivial. Although it was added in Linux 2.6.27 (thanks, > > > netchild!), it is often used by popular Linux applications, e.g., > > > Adobe Flash plugin. Please note linux_pipe() was moved from MD > > > files to sys/compat/linux/linux_file.c because both amd64 and > > > i386 versions looked the same and I failed to see any reason. I > > > also changed file descriptor argument from l_ulong * to l_int *, > > > which seemed more appropriate. Any objections? > > > > Oops, I missed a patch for sys/kern/kern_descript.c: > > > > Index: sys/kern/kern_descrip.c > > =================================================================== > > --- sys/kern/kern_descrip.c (revision 234112) > > +++ sys/kern/kern_descrip.c (working copy) > > @@ -1681,6 +1681,8 @@ finstall(struct thread *td, struct file *fp, > > int * > > } > > fhold(fp); > > fdp->fd_ofiles[*fd] = fp; > > + if ((flags & O_NONBLOCK) != 0) > > + fp->f_flag |= FNONBLOCK; > > if ((flags & O_CLOEXEC) != 0) > > fdp->fd_ofileflags[*fd] |= UF_EXCLOSE; > > FILEDESC_XUNLOCK(fdp); > > > > > * PS: This patch is also available from here: > > > > > > http://people.freebsd.org/~jkim/linux_pipe2.diff > > > > This patch is updated with it. > > Oops, oops... I found that non-blocking does not really work because > finit() resets the flag later. The patch was re-done to set the > non-blocking flag correctly. > > I'm really sorry about the mess. i'm having problems with the patch. beforehand, playing music from www.mixcloud.com worked. now the flash based player is initialising forever. 'ps alx' says the following about the npviewer.bin task: UID PID PPID CPU PRI NI VSZ RSS MWCHAN STAT TT TIME COMMAND 1001 1044 1034 0 40 0 0 0 - Z - 0:00,05 <defunct> and procstat -a says: PID PPID PGID SID TSID THR LOGIN WCHAN EMUL COMM 0 0 0 0 0 11 - - - kernel 1 0 1 1 0 1 root wait FreeBSD ELF64 init 2 0 0 0 0 1 - ccb_scan - xpt_thrd 3 0 0 0 0 1 - psleep - pagedaemon 4 0 0 0 0 1 - psleep - vmdaemon 5 0 0 0 0 1 - pgzero - pagezero 6 0 0 0 0 1 - psleep - bufdaemon 7 0 0 0 0 1 - syncer - syncer 8 0 0 0 0 1 - vlruwt - vnlru 9 0 0 0 0 1 - sdflush - softdepflush 10 0 0 0 0 2 - - - idle 11 0 0 0 0 15 - - - intr 12 0 0 0 0 3 - - - geom 13 0 0 0 0 1 - - - yarrow 14 0 0 0 0 32 - - - usb 15 0 0 0 0 1 - - - schedcpu 325 1 325 325 0 1 root select FreeBSD ELF64 wpa_supplicant 429 1 429 429 0 1 root select FreeBSD ELF64 devd 616 1 616 616 0 1 root select FreeBSD ELF64 syslogd 680 1 680 680 0 1 root select FreeBSD ELF64 powerd 708 1 707 707 0 1 root nanslp FreeBSD ELF64 smartd 713 1 713 713 0 1 root select FreeBSD ELF64 dbus-daemon 725 1 725 725 0 3 root uwait FreeBSD ELF64 musicpd 730 1 730 730 0 1 root select FreeBSD ELF64 mpdscribble 771 1 771 771 0 1 root select FreeBSD ELF64 sendmail 774 1 774 774 0 1 root pause FreeBSD ELF64 sendmail 778 1 778 778 0 1 root nanslp FreeBSD ELF64 cron 788 1 788 788 0 1 root select FreeBSD ELF64 identd 816 1 816 816 816 1 arundel wait FreeBSD ELF64 login 817 1 817 817 817 1 root ttyin FreeBSD ELF64 getty 818 1 818 818 818 1 root ttyin FreeBSD ELF64 getty 819 1 819 819 819 1 root ttyin FreeBSD ELF64 getty 820 1 820 820 820 1 root ttyin FreeBSD ELF64 getty 821 1 821 821 821 1 root ttyin FreeBSD ELF64 getty 822 1 822 822 822 1 root ttyin FreeBSD ELF64 getty 823 1 823 823 823 1 root ttyin FreeBSD ELF64 getty 828 1 828 828 0 2 root piperd FreeBSD ELF64 hald 830 1 713 713 0 18 root waitvt FreeBSD ELF64 console-kit-daemon 832 1 713 713 0 2 root select FreeBSD ELF64 polkitd 834 1 833 833 0 1 root select FreeBSD ELF64 gam_server 835 828 828 828 0 1 root select FreeBSD ELF64 hald-runner 866 835 828 828 0 1 root kqread FreeBSD ELF64 hald-addon-mouse-sy 886 835 828 828 0 1 root select FreeBSD ELF64 hald-addon-storage 902 816 902 816 816 1 arundel pause FreeBSD ELF64 zsh 930 1 930 930 0 1 arundel select FreeBSD ELF64 ssh-agent 950 902 950 816 816 1 arundel wait FreeBSD ELF64 sh 968 950 950 816 816 1 arundel wait FreeBSD ELF64 xinit 969 968 969 816 816 1 arundel select FreeBSD ELF64 Xorg 972 968 972 816 816 1 arundel wait FreeBSD ELF64 sh 973 972 972 816 816 1 arundel kqread FreeBSD ELF64 awesome 977 1 972 816 816 1 arundel select FreeBSD ELF64 dbus-launch 978 1 978 978 0 1 arundel select FreeBSD ELF64 dbus-daemon 982 1 982 982 0 2 arundel piperd FreeBSD ELF64 sakura 983 982 982 982 0 1 arundel sbwait FreeBSD ELF64 gnome-pty-helper 984 982 984 984 984 1 arundel pause FreeBSD ELF64 zsh 986 1 986 986 0 1 arundel select FreeBSD ELF64 pidgin 989 984 989 984 984 1 arundel select FreeBSD ELF64 ssh 991 1 991 991 0 18 arundel uwait FreeBSD ELF64 chrome 992 991 991 991 0 1 arundel select FreeBSD ELF64 chrome 993 991 991 991 0 1 arundel sbwait FreeBSD ELF64 chrome 996 993 991 991 0 4 arundel usem FreeBSD ELF64 chrome 997 993 991 991 0 4 arundel usem FreeBSD ELF64 chrome 998 993 991 991 0 4 arundel usem FreeBSD ELF64 chrome 1000 993 991 991 0 4 arundel usem FreeBSD ELF64 chrome 1001 993 991 991 0 4 arundel usem FreeBSD ELF64 chrome 1003 993 991 991 0 4 arundel usem FreeBSD ELF64 chrome 1004 993 991 991 0 4 arundel usem FreeBSD ELF64 chrome 1007 993 991 991 0 4 arundel usem FreeBSD ELF64 chrome 1008 993 991 991 0 4 arundel usem FreeBSD ELF64 chrome 1009 993 991 991 0 4 arundel usem FreeBSD ELF64 chrome 1010 993 991 991 0 4 arundel usem FreeBSD ELF64 chrome 1011 993 991 991 0 4 arundel usem FreeBSD ELF64 chrome 1012 993 991 991 0 4 arundel usem FreeBSD ELF64 chrome 1034 991 991 991 0 2 arundel kqread FreeBSD ELF64 chrome 1044 1034 991 991 0 1 arundel - Linux ELF32 npviewer.bin 1053 993 991 991 0 4 arundel usem FreeBSD ELF64 chrome 1062 982 1062 1062 1062 1 arundel pause FreeBSD ELF64 zsh 1096 982 1096 1096 1096 1 arundel ttyin FreeBSD ELF64 zsh 1139 1062 1139 1062 1062 1 arundel - FreeBSD ELF64 procstat process 1044 was not killable via 'kill -9'. i had to wait for about a minute, until eventually some timeout was hit and the process was ended. eventually i managed to get the flash player to work. this might be related to your patch or it might have been a bug in the linux futex implementation, which has also caused some problems before your patch. now that the flash player is running 'procstat -a' reports: PID PPID PGID SID TSID THR LOGIN WCHAN EMUL COMM 0 0 0 0 0 11 - - - kernel 1 0 1 1 0 1 root wait FreeBSD ELF64 init 2 0 0 0 0 1 - ccb_scan - xpt_thrd 3 0 0 0 0 1 - psleep - pagedaemon 4 0 0 0 0 1 - psleep - vmdaemon 5 0 0 0 0 1 - pgzero - pagezero 6 0 0 0 0 1 - psleep - bufdaemon 7 0 0 0 0 1 - syncer - syncer 8 0 0 0 0 1 - vlruwt - vnlru 9 0 0 0 0 1 - sdflush - softdepflush 10 0 0 0 0 2 - - - idle 11 0 0 0 0 15 - - - intr 12 0 0 0 0 3 - - - geom 13 0 0 0 0 1 - - - yarrow 14 0 0 0 0 32 - - - usb 15 0 0 0 0 1 - - - schedcpu 325 1 325 325 0 1 root select FreeBSD ELF64 wpa_supplicant 429 1 429 429 0 1 root select FreeBSD ELF64 devd 616 1 616 616 0 1 root select FreeBSD ELF64 syslogd 680 1 680 680 0 1 root select FreeBSD ELF64 powerd 708 1 707 707 0 1 root nanslp FreeBSD ELF64 smartd 713 1 713 713 0 1 root select FreeBSD ELF64 dbus-daemon 725 1 725 725 0 3 root uwait FreeBSD ELF64 musicpd 730 1 730 730 0 1 root select FreeBSD ELF64 mpdscribble 771 1 771 771 0 1 root select FreeBSD ELF64 sendmail 774 1 774 774 0 1 root pause FreeBSD ELF64 sendmail 778 1 778 778 0 1 root nanslp FreeBSD ELF64 cron 788 1 788 788 0 1 root select FreeBSD ELF64 identd 816 1 816 816 816 1 arundel wait FreeBSD ELF64 login 817 1 817 817 817 1 root ttyin FreeBSD ELF64 getty 818 1 818 818 818 1 root ttyin FreeBSD ELF64 getty 819 1 819 819 819 1 root ttyin FreeBSD ELF64 getty 820 1 820 820 820 1 root ttyin FreeBSD ELF64 getty 821 1 821 821 821 1 root ttyin FreeBSD ELF64 getty 822 1 822 822 822 1 root ttyin FreeBSD ELF64 getty 823 1 823 823 823 1 root ttyin FreeBSD ELF64 getty 828 1 828 828 0 2 root piperd FreeBSD ELF64 hald 830 1 713 713 0 18 root waitvt FreeBSD ELF64 console-kit-daemon 832 1 713 713 0 2 root select FreeBSD ELF64 polkitd 834 1 833 833 0 1 root select FreeBSD ELF64 gam_server 835 828 828 828 0 1 root select FreeBSD ELF64 hald-runner 866 835 828 828 0 1 root kqread FreeBSD ELF64 hald-addon-mouse-sy 886 835 828 828 0 1 root select FreeBSD ELF64 hald-addon-storage 902 816 902 816 816 1 arundel pause FreeBSD ELF64 zsh 930 1 930 930 0 1 arundel select FreeBSD ELF64 ssh-agent 950 902 950 816 816 1 arundel wait FreeBSD ELF64 sh 968 950 950 816 816 1 arundel wait FreeBSD ELF64 xinit 969 968 969 816 816 1 arundel select FreeBSD ELF64 Xorg 972 968 972 816 816 1 arundel wait FreeBSD ELF64 sh 973 972 972 816 816 1 arundel kqread FreeBSD ELF64 awesome 977 1 972 816 816 1 arundel select FreeBSD ELF64 dbus-launch 978 1 978 978 0 1 arundel select FreeBSD ELF64 dbus-daemon 982 1 982 982 0 2 arundel piperd FreeBSD ELF64 sakura 983 982 982 982 0 1 arundel sbwait FreeBSD ELF64 gnome-pty-helper 984 982 984 984 984 1 arundel pause FreeBSD ELF64 zsh 986 1 986 986 0 1 arundel select FreeBSD ELF64 pidgin 989 984 989 984 984 1 arundel select FreeBSD ELF64 ssh 991 1 991 991 0 21 arundel uwait FreeBSD ELF64 chrome 992 991 991 991 0 1 arundel select FreeBSD ELF64 chrome 993 991 991 991 0 1 arundel sbwait FreeBSD ELF64 chrome 996 993 991 991 0 4 arundel usem FreeBSD ELF64 chrome 997 993 991 991 0 4 arundel usem FreeBSD ELF64 chrome 998 993 991 991 0 4 arundel usem FreeBSD ELF64 chrome 1000 993 991 991 0 4 arundel usem FreeBSD ELF64 chrome 1001 993 991 991 0 4 arundel usem FreeBSD ELF64 chrome 1003 993 991 991 0 4 arundel usem FreeBSD ELF64 chrome 1004 993 991 991 0 4 arundel usem FreeBSD ELF64 chrome 1007 993 991 991 0 4 arundel usem FreeBSD ELF64 chrome 1008 993 991 991 0 4 arundel usem FreeBSD ELF64 chrome 1009 993 991 991 0 4 arundel usem FreeBSD ELF64 chrome 1010 993 991 991 0 4 arundel usem FreeBSD ELF64 chrome 1011 993 991 991 0 4 arundel usem FreeBSD ELF64 chrome 1012 993 991 991 0 4 arundel usem FreeBSD ELF64 chrome 1053 993 991 991 0 4 arundel usem FreeBSD ELF64 chrome 1062 982 1062 1062 1062 1 arundel pause FreeBSD ELF64 zsh 1096 982 1096 1096 1096 1 arundel ttyin FreeBSD ELF64 zsh 1197 991 991 991 0 2 arundel kqread FreeBSD ELF64 chrome 1207 1197 991 991 0 1 arundel select Linux ELF32 npviewer.bin 1234 1197 991 991 0 1 arundel futex Linux ELF32 npviewer.bin 1235 1197 991 991 0 1 arundel futex Linux ELF32 npviewer.bin 1236 1197 991 991 0 1 arundel futex Linux ELF32 npviewer.bin 1237 1197 991 991 0 1 arundel futex Linux ELF32 npviewer.bin 1238 1197 991 991 0 1 arundel futex Linux ELF32 npviewer.bin 1240 1197 991 991 0 1 arundel pcmwrv Linux ELF32 npviewer.bin 1246 1062 1246 1062 1062 1 arundel - FreeBSD ELF64 procstat 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. cheers. alex > > Jung-uk Kim _______________________________________________ [hidden email] mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-emulation To unsubscribe, send any mail to "[hidden email]" |
|
In reply to this post by Jung-uk Kim
On Tue, 10 Apr 2012 18:56:43 -0400 Jung-uk Kim <[hidden email]> wrote:
> Th attached patch implements pipe2 syscall for Linuxulator, which is > quite trivial. Although it was added in Linux 2.6.27 (thanks, > netchild!), it is often used by popular Linux applications, e.g., > Adobe Flash plugin. Please note linux_pipe() was moved from MD files > to sys/compat/linux/linux_file.c because both amd64 and i386 versions > looked the same and I failed to see any reason. I also changed file > descriptor argument from l_ulong * to l_int *, which seemed more > appropriate. Any objections? Do you have the resources to run a before/after test of the LTP on amd64 and i386? This is mostly to make sure the MD -> MI move does not cause regressions. Bye, Alexander. -- http://www.Leidinger.net Alexander @ Leidinger.net: PGP ID = B0063FE7 http://www.FreeBSD.org netchild @ FreeBSD.org : PGP ID = 72077137 _______________________________________________ [hidden email] mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-emulation To unsubscribe, send any mail to "[hidden email]" |
|
In reply to this post by Alexander Best-4
On Fri, 13 Apr 2012 20:32:22 +0000 Alexander Best <[hidden email]>
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. Bye, Alexander. -- http://www.Leidinger.net Alexander @ Leidinger.net: PGP ID = B0063FE7 http://www.FreeBSD.org netchild @ FreeBSD.org : PGP ID = 72077137 _______________________________________________ [hidden email] mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-emulation To unsubscribe, send any mail to "[hidden email]" |
|
On Sat Apr 14 12, Alexander Leidinger wrote:
> On Fri, 13 Apr 2012 20:32:22 +0000 Alexander Best <[hidden email]> > 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. cheers. alex > > Bye, > Alexander. > > -- > http://www.Leidinger.net Alexander @ Leidinger.net: PGP ID = B0063FE7 > http://www.FreeBSD.org netchild @ FreeBSD.org : PGP ID = 72077137 _______________________________________________ [hidden email] mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-emulation To unsubscribe, send any mail to "[hidden email]" |
|
On Sat, 14 Apr 2012 20:32:56 +0000 Alexander Best <[hidden email]>
wrote: > On Sat Apr 14 12, Alexander Leidinger wrote: > > On Fri, 13 Apr 2012 20:32:22 +0000 Alexander Best > > <[hidden email]> 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. Bye, Alexander. -- http://www.Leidinger.net Alexander @ Leidinger.net: PGP ID = B0063FE7 http://www.FreeBSD.org netchild @ FreeBSD.org : PGP ID = 72077137 _______________________________________________ [hidden email] mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-emulation To unsubscribe, send any mail to "[hidden email]" |
|
On Sat, 14 Apr 2012 22:47:46 +0200 Alexander Leidinger
<[hidden email]> wrote: > On Sat, 14 Apr 2012 20:32:56 +0000 Alexander Best > <[hidden email]> wrote: > > > On Sat Apr 14 12, Alexander Leidinger wrote: > > > On Fri, 13 Apr 2012 20:32:22 +0000 Alexander Best > > > <[hidden email]> 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. Bye, Alexander. -- http://www.Leidinger.net Alexander @ Leidinger.net: PGP ID = B0063FE7 http://www.FreeBSD.org netchild @ FreeBSD.org : PGP ID = 72077137 _______________________________________________ [hidden email] mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-emulation To unsubscribe, send any mail to "[hidden email]" |
|
On Sun Apr 15 12, Alexander Leidinger wrote:
> On Sat, 14 Apr 2012 22:47:46 +0200 Alexander Leidinger > <[hidden email]> wrote: > > > On Sat, 14 Apr 2012 20:32:56 +0000 Alexander Best > > <[hidden email]> wrote: > > > > > On Sat Apr 14 12, Alexander Leidinger wrote: > > > > On Fri, 13 Apr 2012 20:32:22 +0000 Alexander Best > > > > <[hidden email]> 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. cheers. alex btw: i saw some of these warnings: ctfconvert -L VERSION -g ieee80211_sta.o ERROR: ieee80211_sta.c: die 41029: failed to retrieve array bounds ...i hope their aren't anything to worry about. > > Bye, > Alexander. > > -- > http://www.Leidinger.net Alexander @ Leidinger.net: PGP ID = B0063FE7 > http://www.FreeBSD.org netchild @ FreeBSD.org : PGP ID = 72077137 _______________________________________________ [hidden email] mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-emulation To unsubscribe, send any mail to "[hidden email]" |
|
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 > > <[hidden email]> wrote: > > > > > On Sat, 14 Apr 2012 20:32:56 +0000 Alexander Best > > > <[hidden email]> wrote: > > > > > > > On Sat Apr 14 12, Alexander Leidinger wrote: > > > > > On Fri, 13 Apr 2012 20:32:22 +0000 Alexander Best > > > > > <[hidden email]> 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: /usr/github-freebsd-head/sys/modules/linux/../../compat/linux/linux_fork.c:33:10: fatal error: 'opt_kdtrace.h' file not found #include "opt_kdtrace.h" ^ 1 error generated. mkdep: compile failed alex > > cheers. > alex > > btw: i saw some of these warnings: > > ctfconvert -L VERSION -g ieee80211_sta.o > ERROR: ieee80211_sta.c: die 41029: failed to retrieve array bounds > > ...i hope their aren't anything to worry about. > > > > > Bye, > > Alexander. > > > > -- > > http://www.Leidinger.net Alexander @ Leidinger.net: PGP ID = B0063FE7 > > http://www.FreeBSD.org netchild @ FreeBSD.org : PGP ID = 72077137 [hidden email] mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-emulation To unsubscribe, send any mail to "[hidden email]" |
|
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 > > > <[hidden email]> wrote: > > > > > > > On Sat, 14 Apr 2012 20:32:56 +0000 Alexander Best > > > > <[hidden email]> wrote: > > > > > > > > > On Sat Apr 14 12, Alexander Leidinger wrote: > > > > > > On Fri, 13 Apr 2012 20:32:22 +0000 Alexander Best > > > > > > <[hidden email]> 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. cheers. alex > > /usr/github-freebsd-head/sys/modules/linux/../../compat/linux/linux_fork.c:33:10: fatal error: 'opt_kdtrace.h' file not found > #include "opt_kdtrace.h" > ^ > 1 error generated. > mkdep: compile failed > > alex > > > > > cheers. > > alex > > > > btw: i saw some of these warnings: > > > > ctfconvert -L VERSION -g ieee80211_sta.o > > ERROR: ieee80211_sta.c: die 41029: failed to retrieve array bounds > > > > ...i hope their aren't anything to worry about. > > > > > > > > Bye, > > > Alexander. > > > > > > -- > > > http://www.Leidinger.net Alexander @ Leidinger.net: PGP ID = B0063FE7 > > > http://www.FreeBSD.org netchild @ FreeBSD.org : PGP ID = 72077137 [hidden email] mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-emulation To unsubscribe, send any mail to "[hidden email]" |
|
On Sun, 15 Apr 2012 11:23:08 +0000 Alexander Best <[hidden email]>
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 > > > > <[hidden email]> wrote: > > > > > > > > > On Sat, 14 Apr 2012 20:32:56 +0000 Alexander Best > > > > > <[hidden email]> wrote: > > > > > > > > > > > On Sat Apr 14 12, Alexander Leidinger wrote: > > > > > > > On Fri, 13 Apr 2012 20:32:22 +0000 Alexander Best > > > > > > > <[hidden email]> 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. Bye, Alexander. -- http://www.Leidinger.net Alexander @ Leidinger.net: PGP ID = B0063FE7 http://www.FreeBSD.org netchild @ FreeBSD.org : PGP ID = 72077137 _______________________________________________ [hidden email] mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-emulation To unsubscribe, send any mail to "[hidden email]" |
|
On Sun Apr 15 12, Alexander Leidinger wrote:
> On Sun, 15 Apr 2012 11:23:08 +0000 Alexander Best <[hidden email]> > 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 > > > > > <[hidden email]> wrote: > > > > > > > > > > > On Sat, 14 Apr 2012 20:32:56 +0000 Alexander Best > > > > > > <[hidden email]> wrote: > > > > > > > > > > > > > On Sat Apr 14 12, Alexander Leidinger wrote: > > > > > > > > On Fri, 13 Apr 2012 20:32:22 +0000 Alexander Best > > > > > > > > <[hidden email]> 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. 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 _______________________________________________ [hidden email] mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-emulation To unsubscribe, send any mail to "[hidden email]" |
|
On Sun Apr 15 12, Alexander Leidinger wrote:
> On Sun, 15 Apr 2012 11:51:12 +0000 Alexander Best <[hidden email]> > wrote: > > > 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. > > What about the trace_futexes script and the two check_* scripts? The > stats show that there is a lot of work spend in the futexes. i'm having problems with those scripts. they have a negative impact on the linux processes. when i have the player at www.mixcloud.com running and run those scripts the music stops and the flash graphics get all distorted. here's some output from the trace_futexes.d script: otaku% sudo ./trace_futexes.d dtrace: 808 dynamic variable drops with non-empty dirty list dtrace: 833 failed speculations (available buffer(s) still busy) Stacktrace of last lock operation of the futex_mtx: kernel`linux_sys_futex+0xd34 kernel`ia32_syscall+0x299 kernel`0xffffffff805b05e5 Stacktrace of last lock operation of the futex_mtx: kernel`linux_sys_futex+0xd57 kernel`ia32_syscall+0x299 kernel`0xffffffff805b05e5 Stacktrace of last lock operation of the futex_mtx: kernel`linux_sys_futex+0xd57 kernel`ia32_syscall+0x299 kernel`0xffffffff805b05e5 ERROR: missing_access_check in linuxulator32:futex:futex_atomic_op kernel`ia32_syscall+0x299 kernel`0xffffffff805b05e5 dtrace: ERROR: open failed: No such file or directory `0x287b6533 Fatal error 'mutex is on list' at line 424 in file /usr/github-freebsd-head/lib/libthr/thread/thr_mutex.c (errno = 0) this is from the check_error.d script: otaku% sudo ./check_error.d ERROR: sleep_error in linuxulator32:futex:futex_sleep kernel`ia32_syscall+0x299 kernel`0xffffffff805b05e5 0x287b6278 0x2a12800029d5fa5c ERROR: sleep_error in linuxulator32:futex:futex_wait kernel`ia32_syscall+0x299 kernel`0xffffffff805b05e5 0x287b6278 0x2a12800029d5fa5c ERROR: sleep_error in linuxulator32:futex:futex_sleep kernel`ia32_syscall+0x299 kernel`0xffffffff805b05e5 0x287b6278 0x2e94900029d5fa5c ERROR: sleep_error in linuxulator32:futex:futex_wait kernel`ia32_syscall+0x299 kernel`0xffffffff805b05e5 0x287b6278 0x2e94900029d5fa5c ERROR: sleep_error in linuxulator32:futex:futex_sleep kernel`ia32_syscall+0x299 kernel`0xffffffff805b05e5 0x287b6278 0x30c4f00029d5fa5c ERROR: sleep_error in linuxulator32:futex:futex_wait kernel`ia32_syscall+0x299 kernel`0xffffffff805b05e5 0x287b6278 0x30c4f00029d5fa5c ERROR: sleep_error in linuxulator32:futex:futex_sleep kernel`ia32_syscall+0x299 kernel`0xffffffff805b05e5 0x287b6278 0x2e94900029d5fa5c ERROR: sleep_error in linuxulator32:futex:futex_wait kernel`ia32_syscall+0x299 kernel`0xffffffff805b05e5 0x287b6278 0x2e94900029d5fa5c ERROR: sleep_error in linuxulator32:futex:futex_sleep kernel`ia32_syscall+0x299 kernel`0xffffffff805b05e5 0x287b6278 0x2a12800029d5fa5c ERROR: sleep_error in linuxulator32:futex:futex_wait kernel`ia32_syscall+0x299 kernel`0xffffffff805b05e5 0x287b6278 0x2a12800029d5fa5c ERROR: sleep_error in linuxulator32:futex:futex_sleep kernel`ia32_syscall+0x299 kernel`0xffffffff805b05e5 0x287b6278 0x30c4f00029d5fa5c ERROR: sleep_error in linuxulator32:futex:futex_wait kernel`ia32_syscall+0x299 kernel`0xffffffff805b05e5 0x287b6278 0x30c4f00029d5fa5c the check_internal_locks.d scripts seems to work fine. i think we talked about the failed-speculation-warnings beforehand and that they aren't critical: otaku% sudo ./check_internal_locks.d ^C Number of locks per type: otaku% sudo ./check_internal_locks.d dtrace: 42 failed speculations (available buffer(s) still busy) dtrace: 61 failed speculations (available buffer(s) still busy) dtrace: 183 failed speculations (available buffer(s) still busy) dtrace: 830 failed speculations (available buffer(s) still busy) dtrace: 893 failed speculations (available buffer(s) still busy) dtrace: 1489 failed speculations (available buffer(s) still busy) dtrace: 1546 failed speculations (available buffer(s) still busy) dtrace: 1208 failed speculations (available buffer(s) still busy) dtrace: 1418 failed speculations (available buffer(s) still busy) dtrace: 1219 failed speculations (available buffer(s) still busy) dtrace: 249 failed speculations (available buffer(s) still busy) dtrace: 248 failed speculations (available buffer(s) still busy) dtrace: 1487 failed speculations (available buffer(s) still busy) dtrace: 443 failed speculations (available buffer(s) still busy) dtrace: 684 failed speculations (available buffer(s) still busy) dtrace: 726 failed speculations (available buffer(s) still busy) dtrace: 745 failed speculations (available buffer(s) still busy) dtrace: 800 failed speculations (available buffer(s) still busy) dtrace: 1033 failed speculations (available buffer(s) still busy) dtrace: 1693 failed speculations (available buffer(s) still busy) dtrace: 3461 failed speculations (available buffer(s) still busy) dtrace: 4746 failed speculations (available buffer(s) still busy) dtrace: 2645 failed speculations (available buffer(s) still busy) dtrace: 965 failed speculations (available buffer(s) still busy) ^C dtrace: 1394 failed speculations (available buffer(s) still busy) Number of locks per type: emul_shared_rlock 3 emul_shared_wlock 37 emul_lock 55 futex_mtx 31179 cheers. alex ps: i added freebsd-emulation@ back to the CC list. > > We don't have emulation@ in CC anymore, but I think the output of the > stats and the output of the other scripts could be interesting for > people on emulation@. > > Bye, > Alexander. > > -- > http://www.Leidinger.net Alexander @ Leidinger.net: PGP ID = B0063FE7 > http://www.FreeBSD.org netchild @ FreeBSD.org : PGP ID = 72077137 [hidden email] mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-emulation To unsubscribe, send any mail to "[hidden email]" |
|
On Sun, 15 Apr 2012 13:03:06 +0000 Alexander Best <[hidden email]>
wrote: > On Sun Apr 15 12, Alexander Leidinger wrote: > > On Sun, 15 Apr 2012 11:51:12 +0000 Alexander Best > > <[hidden email]> wrote: > > > > > 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. > > > > What about the trace_futexes script and the two check_* scripts? The > > stats show that there is a lot of work spend in the futexes. > > i'm having problems with those scripts. they have a negative impact > on the linux processes. when i have the player at www.mixcloud.com > running and run those scripts the music stops and the flash graphics > get all distorted. here's some output from the trace_futexes.d script: > > otaku% sudo ./trace_futexes.d > dtrace: 808 dynamic variable drops with non-empty dirty list > dtrace: 833 failed speculations (available buffer(s) still busy) You should increase the buffers in the scripts, they are overflowing. [...] > ERROR: missing_access_check in linuxulator32:futex:futex_atomic_op This is missing code in the kernel... or a superfluous comment. > kernel`ia32_syscall+0x299 > kernel`0xffffffff805b05e5 > > dtrace: ERROR: open failed: No such file or directory > `0x287b6533 > Fatal error 'mutex is on list' at line 424 in > file /usr/github-freebsd-head/lib/libthr/thread/thr_mutex.c (errno = > 0) No idea. > this is from the check_error.d script: > > otaku% sudo ./check_error.d > ERROR: sleep_error in linuxulator32:futex:futex_sleep Well... the sx_sleep returned with a non-null value. I assume this means a timeout fired. No idea if it is good or bad. > kernel`ia32_syscall+0x299 > kernel`0xffffffff805b05e5 > > 0x287b6278 > 0x2a12800029d5fa5c > ERROR: sleep_error in linuxulator32:futex:futex_wait As above. > kernel`ia32_syscall+0x299 > kernel`0xffffffff805b05e5 > > 0x287b6278 > 0x2a12800029d5fa5c > the check_internal_locks.d scripts seems to work fine. i think we > talked about the failed-speculation-warnings beforehand and that they > aren't critical: Yes and no... you do not have enough buffers to store all the info the script want to store. As such it does not work as intended. > Number of locks per type: > emul_shared_rlock 3 > emul_shared_wlock 37 > emul_lock 55 > futex_mtx 31179 Depending on how long you traced: that's a lot of futex operations. Bye, Alexander. -- http://www.Leidinger.net Alexander @ Leidinger.net: PGP ID = B0063FE7 http://www.FreeBSD.org netchild @ FreeBSD.org : PGP ID = 72077137 _______________________________________________ [hidden email] mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-emulation To unsubscribe, send any mail to "[hidden email]" |
|
On Sun Apr 15 12, Alexander Leidinger wrote:
> On Sun, 15 Apr 2012 13:03:06 +0000 Alexander Best <[hidden email]> > wrote: > > > On Sun Apr 15 12, Alexander Leidinger wrote: > > > On Sun, 15 Apr 2012 11:51:12 +0000 Alexander Best > > > <[hidden email]> wrote: > > > > > > > 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. > > > > > > What about the trace_futexes script and the two check_* scripts? The > > > stats show that there is a lot of work spend in the futexes. > > > > i'm having problems with those scripts. they have a negative impact > > on the linux processes. when i have the player at www.mixcloud.com > > running and run those scripts the music stops and the flash graphics > > get all distorted. here's some output from the trace_futexes.d script: > > > > otaku% sudo ./trace_futexes.d > > dtrace: 808 dynamic variable drops with non-empty dirty list > > dtrace: 833 failed speculations (available buffer(s) still busy) > > You should increase the buffers in the scripts, they are overflowing. > > [...] > > ERROR: missing_access_check in linuxulator32:futex:futex_atomic_op > > This is missing code in the kernel... or a superfluous comment. > > > kernel`ia32_syscall+0x299 > > kernel`0xffffffff805b05e5 > > > > dtrace: ERROR: open failed: No such file or directory > > `0x287b6533 > > Fatal error 'mutex is on list' at line 424 in > > file /usr/github-freebsd-head/lib/libthr/thread/thr_mutex.c (errno = > > 0) > > No idea. > > > this is from the check_error.d script: > > > > otaku% sudo ./check_error.d > > ERROR: sleep_error in linuxulator32:futex:futex_sleep > > Well... the sx_sleep returned with a non-null value. I assume this > means a timeout fired. No idea if it is good or bad. > > > kernel`ia32_syscall+0x299 > > kernel`0xffffffff805b05e5 > > > > 0x287b6278 > > 0x2a12800029d5fa5c > > ERROR: sleep_error in linuxulator32:futex:futex_wait > > As above. > > > kernel`ia32_syscall+0x299 > > kernel`0xffffffff805b05e5 > > > > 0x287b6278 > > 0x2a12800029d5fa5c > > > the check_internal_locks.d scripts seems to work fine. i think we > > talked about the failed-speculation-warnings beforehand and that they > > aren't critical: > > Yes and no... you do not have enough buffers to store all the info the > script want to store. As such it does not work as intended. i've set #pragma D option dynvarsize=512m #pragma D option specsize=512m in check_internal_locks.d however i get a warning that the size got downgraded and still the buffers don't seem to be large enough: dtrace: dynamic variable size lowered to 256m dtrace: 220 failed speculations (available buffer(s) still busy) dtrace: 206 failed speculations (available buffer(s) still busy) dtrace: 205 failed speculations (available buffer(s) still busy) dtrace: 206 failed speculations (available buffer(s) still busy) dtrace: 182 failed speculations (available buffer(s) still busy) dtrace: 219 failed speculations (available buffer(s) still busy) dtrace: 194 failed speculations (available buffer(s) still busy) dtrace: 210 failed speculations (available buffer(s) still busy) dtrace: 218 failed speculations (available buffer(s) still busy) dtrace: 206 failed speculations (available buffer(s) still busy) dtrace: 222 failed speculations (available buffer(s) still busy) dtrace: 214 failed speculations (available buffer(s) still busy) dtrace: 213 failed speculations (available buffer(s) still busy) dtrace: 205 failed speculations (available buffer(s) still busy) dtrace: 216 failed speculations (available buffer(s) still busy) dtrace: 220 failed speculations (available buffer(s) still busy) dtrace: 210 failed speculations (available buffer(s) still busy) maybe the problem with the above errors was that my kernel got built with dtrace support, but my world didn't. i'm now rebuilding and installing world. maybe that fixes some of the issues. > > > > Number of locks per type: > > emul_shared_rlock 3 > > emul_shared_wlock 37 > > emul_lock 55 > > futex_mtx 31179 > > Depending on how long you traced: that's a lot of futex operations. i traced for ~ 5 seconds. i'll make sure to prepend the time command to any dtrace script next time to give you more exact numbers. cheers. alex > > Bye, > Alexander. > > -- > http://www.Leidinger.net Alexander @ Leidinger.net: PGP ID = B0063FE7 > http://www.FreeBSD.org netchild @ FreeBSD.org : PGP ID = 72077137 _______________________________________________ [hidden email] mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-emulation To unsubscribe, send any mail to "[hidden email]" |
|
On Sun Apr 15 12, Alexander Best wrote:
> On Sun Apr 15 12, Alexander Leidinger wrote: > > On Sun, 15 Apr 2012 13:03:06 +0000 Alexander Best <[hidden email]> > > wrote: > > > > > On Sun Apr 15 12, Alexander Leidinger wrote: > > > > On Sun, 15 Apr 2012 11:51:12 +0000 Alexander Best > > > > <[hidden email]> wrote: > > > > > > > > > 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. > > > > > > > > What about the trace_futexes script and the two check_* scripts? The > > > > stats show that there is a lot of work spend in the futexes. > > > > > > i'm having problems with those scripts. they have a negative impact > > > on the linux processes. when i have the player at www.mixcloud.com > > > running and run those scripts the music stops and the flash graphics > > > get all distorted. here's some output from the trace_futexes.d script: > > > > > > otaku% sudo ./trace_futexes.d > > > dtrace: 808 dynamic variable drops with non-empty dirty list > > > dtrace: 833 failed speculations (available buffer(s) still busy) > > > > You should increase the buffers in the scripts, they are overflowing. > > > > [...] > > > ERROR: missing_access_check in linuxulator32:futex:futex_atomic_op > > > > This is missing code in the kernel... or a superfluous comment. > > > > > kernel`ia32_syscall+0x299 > > > kernel`0xffffffff805b05e5 > > > > > > dtrace: ERROR: open failed: No such file or directory > > > `0x287b6533 > > > Fatal error 'mutex is on list' at line 424 in > > > file /usr/github-freebsd-head/lib/libthr/thread/thr_mutex.c (errno = > > > 0) > > > > No idea. > > > > > this is from the check_error.d script: > > > > > > otaku% sudo ./check_error.d > > > ERROR: sleep_error in linuxulator32:futex:futex_sleep > > > > Well... the sx_sleep returned with a non-null value. I assume this > > means a timeout fired. No idea if it is good or bad. > > > > > kernel`ia32_syscall+0x299 > > > kernel`0xffffffff805b05e5 > > > > > > 0x287b6278 > > > 0x2a12800029d5fa5c > > > ERROR: sleep_error in linuxulator32:futex:futex_wait > > > > As above. > > > > > kernel`ia32_syscall+0x299 > > > kernel`0xffffffff805b05e5 > > > > > > 0x287b6278 > > > 0x2a12800029d5fa5c > > > > > the check_internal_locks.d scripts seems to work fine. i think we > > > talked about the failed-speculation-warnings beforehand and that they > > > aren't critical: > > > > Yes and no... you do not have enough buffers to store all the info the > > script want to store. As such it does not work as intended. > > i've set > > #pragma D option dynvarsize=512m > #pragma D option specsize=512m > > in check_internal_locks.d > > however i get a warning that the size got downgraded and still the buffers > don't seem to be large enough: > > dtrace: dynamic variable size lowered to 256m > dtrace: 220 failed speculations (available buffer(s) still busy) > dtrace: 206 failed speculations (available buffer(s) still busy) > dtrace: 205 failed speculations (available buffer(s) still busy) > dtrace: 206 failed speculations (available buffer(s) still busy) > dtrace: 182 failed speculations (available buffer(s) still busy) > dtrace: 219 failed speculations (available buffer(s) still busy) > dtrace: 194 failed speculations (available buffer(s) still busy) > dtrace: 210 failed speculations (available buffer(s) still busy) > dtrace: 218 failed speculations (available buffer(s) still busy) > dtrace: 206 failed speculations (available buffer(s) still busy) > dtrace: 222 failed speculations (available buffer(s) still busy) > dtrace: 214 failed speculations (available buffer(s) still busy) > dtrace: 213 failed speculations (available buffer(s) still busy) > dtrace: 205 failed speculations (available buffer(s) still busy) > dtrace: 216 failed speculations (available buffer(s) still busy) > dtrace: 220 failed speculations (available buffer(s) still busy) > dtrace: 210 failed speculations (available buffer(s) still busy) > > maybe the problem with the above errors was that my kernel got built with > dtrace support, but my world didn't. i'm now rebuilding and installing world. > maybe that fixes some of the issues. > > > > > > > > Number of locks per type: > > > emul_shared_rlock 3 > > > emul_shared_wlock 37 > > > emul_lock 55 > > > futex_mtx 31179 here are the results for a single flash instance: otaku% sudo time ./check_internal_locks.d dtrace: 217 failed speculations (available buffer(s) still busy) dtrace: 223 failed speculations (available buffer(s) still busy) dtrace: 218 failed speculations (available buffer(s) still busy) dtrace: 216 failed speculations (available buffer(s) still busy) dtrace: 206 failed speculations (available buffer(s) still busy) dtrace: 200 failed speculations (available buffer(s) still busy) dtrace: 218 failed speculations (available buffer(s) still busy) dtrace: 246 failed speculations (available buffer(s) still busy) dtrace: 218 failed speculations (available buffer(s) still busy) dtrace: 258 failed speculations (available buffer(s) still busy) dtrace: 223 failed speculations (available buffer(s) still busy) dtrace: 246 failed speculations (available buffer(s) still busy) dtrace: 240 failed speculations (available buffer(s) still busy) dtrace: 258 failed speculations (available buffer(s) still busy) dtrace: 252 failed speculations (available buffer(s) still busy) dtrace: 230 failed speculations (available buffer(s) still busy) dtrace: 257 failed speculations (available buffer(s) still busy) ^C dtrace: 227 failed speculations (available buffer(s) still busy) Number of locks per type: futex_mtx 4585 18,48 real 0,10 user 0,36 sys and here for two flash tabs: otaku% sudo time ./check_internal_locks.d dtrace: 1148 failed speculations (available buffer(s) still busy) dtrace: 1524 failed speculations (available buffer(s) still busy) dtrace: 1604 failed speculations (available buffer(s) still busy) dtrace: 1029 failed speculations (available buffer(s) still busy) dtrace: 1471 failed speculations (available buffer(s) still busy) dtrace: 1466 failed speculations (available buffer(s) still busy) dtrace: 1720 failed speculations (available buffer(s) still busy) dtrace: 1049 failed speculations (available buffer(s) still busy) dtrace: 1549 failed speculations (available buffer(s) still busy) dtrace: 1421 failed speculations (available buffer(s) still busy) dtrace: 1595 failed speculations (available buffer(s) still busy) dtrace: 1097 failed speculations (available buffer(s) still busy) dtrace: 1853 failed speculations (available buffer(s) still busy) dtrace: 1900 failed speculations (available buffer(s) still busy) dtrace: 1729 failed speculations (available buffer(s) still busy) dtrace: 1389 failed speculations (available buffer(s) still busy) dtrace: 1314 failed speculations (available buffer(s) still busy) dtrace: 1712 failed speculations (available buffer(s) still busy) ^C dtrace: 1615 failed speculations (available buffer(s) still busy) Number of locks per type: futex_mtx 29364 19,41 real 0,09 user 0,32 sys ...and for three flash tabs: otaku% sudo time ./check_internal_locks.d dtrace: 535 failed speculations (available buffer(s) still busy) dtrace: 213 failed speculations (available buffer(s) still busy) dtrace: 282 failed speculations (available buffer(s) still busy) dtrace: 571 failed speculations (available buffer(s) still busy) dtrace: 666 failed speculations (available buffer(s) still busy) dtrace: 857 failed speculations (available buffer(s) still busy) dtrace: 1310 failed speculations (available buffer(s) still busy) dtrace: 1277 failed speculations (available buffer(s) still busy) dtrace: 118 failed speculations (available buffer(s) still busy) dtrace: 1503 failed speculations (available buffer(s) still busy) dtrace: 2069 failed speculations (available buffer(s) still busy) dtrace: 3562 failed speculations (available buffer(s) still busy) dtrace: 6561 failed speculations (available buffer(s) still busy) dtrace: 3750 failed speculations (available buffer(s) still busy) dtrace: 2569 failed speculations (available buffer(s) still busy) dtrace: 1362 failed speculations (available buffer(s) still busy) dtrace: 2722 failed speculations (available buffer(s) still busy) dtrace: 3461 failed speculations (available buffer(s) still busy) dtrace: 2579 failed speculations (available buffer(s) still busy) dtrace: 3451 failed speculations (available buffer(s) still busy) dtrace: 2325 failed speculations (available buffer(s) still busy) ^C dtrace: 2632 failed speculations (available buffer(s) still busy) Number of locks per type: emul_shared_wlock 14 emul_lock 20 futex_mtx 45571 22,46 real 0,11 user 0,35 sys i've tuned the script to have the maximum buffer size of 256 megabyte via #pragma D option dynvarsize=256m #pragma D option specsize=256m ...still the buffers seem to be too small. 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. cheers. alex > > > > Depending on how long you traced: that's a lot of futex operations. > > i traced for ~ 5 seconds. i'll make sure to prepend the time command to any > dtrace script next time to give you more exact numbers. > > cheers. > alex > > > > > Bye, > > Alexander. > > > > -- > > http://www.Leidinger.net Alexander @ Leidinger.net: PGP ID = B0063FE7 > > http://www.FreeBSD.org netchild @ FreeBSD.org : PGP ID = 72077137 [hidden email] mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-emulation To unsubscribe, send any mail to "[hidden email]" |
|
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 13:03:06 +0000 Alexander Best <[hidden email]> > > > wrote: > > > > > > > On Sun Apr 15 12, Alexander Leidinger wrote: > > > > > On Sun, 15 Apr 2012 11:51:12 +0000 Alexander Best > > > > > <[hidden email]> wrote: > > > > > > > > > > > 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. > > > > > > > > > > What about the trace_futexes script and the two check_* scripts? The > > > > > stats show that there is a lot of work spend in the futexes. > > > > > > > > i'm having problems with those scripts. they have a negative impact > > > > on the linux processes. when i have the player at www.mixcloud.com > > > > running and run those scripts the music stops and the flash graphics > > > > get all distorted. here's some output from the trace_futexes.d script: > > > > > > > > otaku% sudo ./trace_futexes.d > > > > dtrace: 808 dynamic variable drops with non-empty dirty list > > > > dtrace: 833 failed speculations (available buffer(s) still busy) > > > > > > You should increase the buffers in the scripts, they are overflowing. > > > > > > [...] > > > > ERROR: missing_access_check in linuxulator32:futex:futex_atomic_op > > > > > > This is missing code in the kernel... or a superfluous comment. > > > > > > > kernel`ia32_syscall+0x299 > > > > kernel`0xffffffff805b05e5 > > > > > > > > dtrace: ERROR: open failed: No such file or directory > > > > `0x287b6533 > > > > Fatal error 'mutex is on list' at line 424 in > > > > file /usr/github-freebsd-head/lib/libthr/thread/thr_mutex.c (errno = > > > > 0) > > > > > > No idea. > > > > > > > this is from the check_error.d script: > > > > > > > > otaku% sudo ./check_error.d > > > > ERROR: sleep_error in linuxulator32:futex:futex_sleep > > > > > > Well... the sx_sleep returned with a non-null value. I assume this > > > means a timeout fired. No idea if it is good or bad. > > > > > > > kernel`ia32_syscall+0x299 > > > > kernel`0xffffffff805b05e5 > > > > > > > > 0x287b6278 > > > > 0x2a12800029d5fa5c > > > > ERROR: sleep_error in linuxulator32:futex:futex_wait > > > > > > As above. > > > > > > > kernel`ia32_syscall+0x299 > > > > kernel`0xffffffff805b05e5 > > > > > > > > 0x287b6278 > > > > 0x2a12800029d5fa5c > > > > > > > the check_internal_locks.d scripts seems to work fine. i think we > > > > talked about the failed-speculation-warnings beforehand and that they > > > > aren't critical: > > > > > > Yes and no... you do not have enough buffers to store all the info the > > > script want to store. As such it does not work as intended. > > > > i've set > > > > #pragma D option dynvarsize=512m > > #pragma D option specsize=512m > > > > in check_internal_locks.d > > > > however i get a warning that the size got downgraded and still the buffers > > don't seem to be large enough: > > > > dtrace: dynamic variable size lowered to 256m > > dtrace: 220 failed speculations (available buffer(s) still busy) > > dtrace: 206 failed speculations (available buffer(s) still busy) > > dtrace: 205 failed speculations (available buffer(s) still busy) > > dtrace: 206 failed speculations (available buffer(s) still busy) > > dtrace: 182 failed speculations (available buffer(s) still busy) > > dtrace: 219 failed speculations (available buffer(s) still busy) > > dtrace: 194 failed speculations (available buffer(s) still busy) > > dtrace: 210 failed speculations (available buffer(s) still busy) > > dtrace: 218 failed speculations (available buffer(s) still busy) > > dtrace: 206 failed speculations (available buffer(s) still busy) > > dtrace: 222 failed speculations (available buffer(s) still busy) > > dtrace: 214 failed speculations (available buffer(s) still busy) > > dtrace: 213 failed speculations (available buffer(s) still busy) > > dtrace: 205 failed speculations (available buffer(s) still busy) > > dtrace: 216 failed speculations (available buffer(s) still busy) > > dtrace: 220 failed speculations (available buffer(s) still busy) > > dtrace: 210 failed speculations (available buffer(s) still busy) > > > > maybe the problem with the above errors was that my kernel got built with > > dtrace support, but my world didn't. i'm now rebuilding and installing world. > > maybe that fixes some of the issues. > > > > > > > > > > > > Number of locks per type: > > > > emul_shared_rlock 3 > > > > emul_shared_wlock 37 > > > > emul_lock 55 > > > > futex_mtx 31179 > > here are the results for a single flash instance: > > otaku% sudo time ./check_internal_locks.d > dtrace: 217 failed speculations (available buffer(s) still busy) > dtrace: 223 failed speculations (available buffer(s) still busy) > dtrace: 218 failed speculations (available buffer(s) still busy) > dtrace: 216 failed speculations (available buffer(s) still busy) > dtrace: 206 failed speculations (available buffer(s) still busy) > dtrace: 200 failed speculations (available buffer(s) still busy) > dtrace: 218 failed speculations (available buffer(s) still busy) > dtrace: 246 failed speculations (available buffer(s) still busy) > dtrace: 218 failed speculations (available buffer(s) still busy) > dtrace: 258 failed speculations (available buffer(s) still busy) > dtrace: 223 failed speculations (available buffer(s) still busy) > dtrace: 246 failed speculations (available buffer(s) still busy) > dtrace: 240 failed speculations (available buffer(s) still busy) > dtrace: 258 failed speculations (available buffer(s) still busy) > dtrace: 252 failed speculations (available buffer(s) still busy) > dtrace: 230 failed speculations (available buffer(s) still busy) > dtrace: 257 failed speculations (available buffer(s) still busy) > ^C > dtrace: 227 failed speculations (available buffer(s) still busy) > Number of locks per type: > futex_mtx 4585 > > 18,48 real 0,10 user 0,36 sys > > and here for two flash tabs: > > otaku% sudo time ./check_internal_locks.d > dtrace: 1148 failed speculations (available buffer(s) still busy) > dtrace: 1524 failed speculations (available buffer(s) still busy) > dtrace: 1604 failed speculations (available buffer(s) still busy) > dtrace: 1029 failed speculations (available buffer(s) still busy) > dtrace: 1471 failed speculations (available buffer(s) still busy) > dtrace: 1466 failed speculations (available buffer(s) still busy) > dtrace: 1720 failed speculations (available buffer(s) still busy) > dtrace: 1049 failed speculations (available buffer(s) still busy) > dtrace: 1549 failed speculations (available buffer(s) still busy) > dtrace: 1421 failed speculations (available buffer(s) still busy) > dtrace: 1595 failed speculations (available buffer(s) still busy) > dtrace: 1097 failed speculations (available buffer(s) still busy) > dtrace: 1853 failed speculations (available buffer(s) still busy) > dtrace: 1900 failed speculations (available buffer(s) still busy) > dtrace: 1729 failed speculations (available buffer(s) still busy) > dtrace: 1389 failed speculations (available buffer(s) still busy) > dtrace: 1314 failed speculations (available buffer(s) still busy) > dtrace: 1712 failed speculations (available buffer(s) still busy) > ^C > dtrace: 1615 failed speculations (available buffer(s) still busy) > Number of locks per type: > futex_mtx 29364 > > 19,41 real 0,09 user 0,32 sys > > ...and for three flash tabs: > > otaku% sudo time ./check_internal_locks.d > dtrace: 535 failed speculations (available buffer(s) still busy) > dtrace: 213 failed speculations (available buffer(s) still busy) > dtrace: 282 failed speculations (available buffer(s) still busy) > dtrace: 571 failed speculations (available buffer(s) still busy) > dtrace: 666 failed speculations (available buffer(s) still busy) > dtrace: 857 failed speculations (available buffer(s) still busy) > dtrace: 1310 failed speculations (available buffer(s) still busy) > dtrace: 1277 failed speculations (available buffer(s) still busy) > dtrace: 118 failed speculations (available buffer(s) still busy) > dtrace: 1503 failed speculations (available buffer(s) still busy) > dtrace: 2069 failed speculations (available buffer(s) still busy) > dtrace: 3562 failed speculations (available buffer(s) still busy) > dtrace: 6561 failed speculations (available buffer(s) still busy) > dtrace: 3750 failed speculations (available buffer(s) still busy) > dtrace: 2569 failed speculations (available buffer(s) still busy) > dtrace: 1362 failed speculations (available buffer(s) still busy) > dtrace: 2722 failed speculations (available buffer(s) still busy) > dtrace: 3461 failed speculations (available buffer(s) still busy) > dtrace: 2579 failed speculations (available buffer(s) still busy) > dtrace: 3451 failed speculations (available buffer(s) still busy) > dtrace: 2325 failed speculations (available buffer(s) still busy) > ^C > dtrace: 2632 failed speculations (available buffer(s) still busy) > Number of locks per type: > emul_shared_wlock 14 > emul_lock 20 > futex_mtx 45571 > > 22,46 real 0,11 user 0,35 sys running stats_timing.d revealed something strange...according to this section: Number of calls per provider/application/kernel function: linuxulator32 npviewer.bin linux_schedtail 2 linuxulator32 npviewer.bin linux_set_robust_list 2 linuxulator32 npviewer.bin proc_exit 2 linuxulator32 npviewer.bin proc_init 2 linuxulator32 npviewer.bin release_futexes 2 linuxulator32 npviewer.bin fetch_robust_entry 4 linuxulator32 npviewer.bin linux_get_osname 8 linuxulator32 npviewer.bin linux_get_osrelease 8 linuxulator32 npviewer.bin em_find 12 linuxulator32 npviewer.bin linux_get_prison 16 linuxulator32 npviewer.bin futex_atomic_op 734 linuxulator32 npviewer.bin futex_wake 1082 linuxulator32 npviewer.bin futex_sleep 1133 linuxulator32 npviewer.bin futex_wait 1133 linuxulator32 npviewer.bin linux_emul_convpath 2949 linuxulator32 npviewer.bin futex_put 2970 linuxulator32 npviewer.bin linux_sys_futex 3211 linuxulator32 npviewer.bin futex_get 3945 linuxulator32 npviewer.bin futex_get0 3945 linuxulator32 npviewer.bin linux_clock_gettime 75342 linuxulator32 npviewer.bin linux_to_native_clockid 75342 linuxulator32 npviewer.bin native_to_linux_timespec 75342 proc_exit only got callded twice. however according to this section: Longest running (CPU-time!) functions per provider (in ns): linuxulator32 proc_exit -16995 linuxulator32 linux_emul_convpath -11330 linuxulator32 futex_wait -3950 linuxulator32 futex_sleep -3535 linuxulator32 proc_init -3310 linuxulator32 release_futexes -2075 linuxulator32 linux_schedtail -1350 linuxulator32 linux_get_osname -1280 linuxulator32 linux_sys_futex -1090 linuxulator32 linux_set_robust_list -860 linuxulator32 futex_get -770 linuxulator32 linux_get_osrelease -760 linuxulator32 linux_clock_gettime -570 linuxulator32 futex_put -560 linuxulator32 futex_get0 -555 linuxulator32 futex_atomic_op -325 linuxulator32 em_find -190 linuxulator32 fetch_robust_entry -180 linuxulator32 linux_get_prison -155 linuxulator32 futex_wake -120 linuxulator32 linux_to_native_clockid -90 linuxulator32 native_to_linux_timespec -90 the CPU spent a lot of time for those two calls. cheers. alex > > > i've tuned the script to have the maximum buffer size of 256 megabyte via > > #pragma D option dynvarsize=256m > #pragma D option specsize=256m > > ...still the buffers seem to be too small. > > 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. > > cheers. > alex > > > > > > > Depending on how long you traced: that's a lot of futex operations. > > > > i traced for ~ 5 seconds. i'll make sure to prepend the time command to any > > dtrace script next time to give you more exact numbers. > > > > cheers. > > alex > > > > > > > > Bye, > > > Alexander. > > > > > > -- > > > http://www.Leidinger.net Alexander @ Leidinger.net: PGP ID = B0063FE7 > > > http://www.FreeBSD.org netchild @ FreeBSD.org : PGP ID = 72077137 [hidden email] mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-emulation To unsubscribe, send any mail to "[hidden email]" |
|
On Sun Apr 15 12, Alexander Best 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 Sun, 15 Apr 2012 13:03:06 +0000 Alexander Best <[hidden email]> > > > > wrote: > > > > > > > > > On Sun Apr 15 12, Alexander Leidinger wrote: > > > > > > On Sun, 15 Apr 2012 11:51:12 +0000 Alexander Best > > > > > > <[hidden email]> wrote: > > > > > > > > > > > > > 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. > > > > > > > > > > > > What about the trace_futexes script and the two check_* scripts? The > > > > > > stats show that there is a lot of work spend in the futexes. > > > > > > > > > > i'm having problems with those scripts. they have a negative impact > > > > > on the linux processes. when i have the player at www.mixcloud.com > > > > > running and run those scripts the music stops and the flash graphics > > > > > get all distorted. here's some output from the trace_futexes.d script: > > > > > > > > > > otaku% sudo ./trace_futexes.d > > > > > dtrace: 808 dynamic variable drops with non-empty dirty list > > > > > dtrace: 833 failed speculations (available buffer(s) still busy) > > > > > > > > You should increase the buffers in the scripts, they are overflowing. > > > > > > > > [...] > > > > > ERROR: missing_access_check in linuxulator32:futex:futex_atomic_op > > > > > > > > This is missing code in the kernel... or a superfluous comment. > > > > > > > > > kernel`ia32_syscall+0x299 > > > > > kernel`0xffffffff805b05e5 > > > > > > > > > > dtrace: ERROR: open failed: No such file or directory > > > > > `0x287b6533 > > > > > Fatal error 'mutex is on list' at line 424 in > > > > > file /usr/github-freebsd-head/lib/libthr/thread/thr_mutex.c (errno = > > > > > 0) > > > > > > > > No idea. > > > > > > > > > this is from the check_error.d script: > > > > > > > > > > otaku% sudo ./check_error.d > > > > > ERROR: sleep_error in linuxulator32:futex:futex_sleep > > > > > > > > Well... the sx_sleep returned with a non-null value. I assume this > > > > means a timeout fired. No idea if it is good or bad. > > > > > > > > > kernel`ia32_syscall+0x299 > > > > > kernel`0xffffffff805b05e5 > > > > > > > > > > 0x287b6278 > > > > > 0x2a12800029d5fa5c > > > > > ERROR: sleep_error in linuxulator32:futex:futex_wait > > > > > > > > As above. > > > > > > > > > kernel`ia32_syscall+0x299 > > > > > kernel`0xffffffff805b05e5 > > > > > > > > > > 0x287b6278 > > > > > 0x2a12800029d5fa5c > > > > > > > > > the check_internal_locks.d scripts seems to work fine. i think we > > > > > talked about the failed-speculation-warnings beforehand and that they > > > > > aren't critical: > > > > > > > > Yes and no... you do not have enough buffers to store all the info the > > > > script want to store. As such it does not work as intended. > > > > > > i've set > > > > > > #pragma D option dynvarsize=512m > > > #pragma D option specsize=512m > > > > > > in check_internal_locks.d > > > > > > however i get a warning that the size got downgraded and still the buffers > > > don't seem to be large enough: > > > > > > dtrace: dynamic variable size lowered to 256m > > > dtrace: 220 failed speculations (available buffer(s) still busy) > > > dtrace: 206 failed speculations (available buffer(s) still busy) > > > dtrace: 205 failed speculations (available buffer(s) still busy) > > > dtrace: 206 failed speculations (available buffer(s) still busy) > > > dtrace: 182 failed speculations (available buffer(s) still busy) > > > dtrace: 219 failed speculations (available buffer(s) still busy) > > > dtrace: 194 failed speculations (available buffer(s) still busy) > > > dtrace: 210 failed speculations (available buffer(s) still busy) > > > dtrace: 218 failed speculations (available buffer(s) still busy) > > > dtrace: 206 failed speculations (available buffer(s) still busy) > > > dtrace: 222 failed speculations (available buffer(s) still busy) > > > dtrace: 214 failed speculations (available buffer(s) still busy) > > > dtrace: 213 failed speculations (available buffer(s) still busy) > > > dtrace: 205 failed speculations (available buffer(s) still busy) > > > dtrace: 216 failed speculations (available buffer(s) still busy) > > > dtrace: 220 failed speculations (available buffer(s) still busy) > > > dtrace: 210 failed speculations (available buffer(s) still busy) > > > > > > maybe the problem with the above errors was that my kernel got built with > > > dtrace support, but my world didn't. i'm now rebuilding and installing world. > > > maybe that fixes some of the issues. > > > > > > > > > > > > > > > > Number of locks per type: > > > > > emul_shared_rlock 3 > > > > > emul_shared_wlock 37 > > > > > emul_lock 55 > > > > > futex_mtx 31179 > > > > here are the results for a single flash instance: > > > > otaku% sudo time ./check_internal_locks.d > > dtrace: 217 failed speculations (available buffer(s) still busy) > > dtrace: 223 failed speculations (available buffer(s) still busy) > > dtrace: 218 failed speculations (available buffer(s) still busy) > > dtrace: 216 failed speculations (available buffer(s) still busy) > > dtrace: 206 failed speculations (available buffer(s) still busy) > > dtrace: 200 failed speculations (available buffer(s) still busy) > > dtrace: 218 failed speculations (available buffer(s) still busy) > > dtrace: 246 failed speculations (available buffer(s) still busy) > > dtrace: 218 failed speculations (available buffer(s) still busy) > > dtrace: 258 failed speculations (available buffer(s) still busy) > > dtrace: 223 failed speculations (available buffer(s) still busy) > > dtrace: 246 failed speculations (available buffer(s) still busy) > > dtrace: 240 failed speculations (available buffer(s) still busy) > > dtrace: 258 failed speculations (available buffer(s) still busy) > > dtrace: 252 failed speculations (available buffer(s) still busy) > > dtrace: 230 failed speculations (available buffer(s) still busy) > > dtrace: 257 failed speculations (available buffer(s) still busy) > > ^C > > dtrace: 227 failed speculations (available buffer(s) still busy) > > Number of locks per type: > > futex_mtx 4585 > > > > 18,48 real 0,10 user 0,36 sys > > > > and here for two flash tabs: > > > > otaku% sudo time ./check_internal_locks.d > > dtrace: 1148 failed speculations (available buffer(s) still busy) > > dtrace: 1524 failed speculations (available buffer(s) still busy) > > dtrace: 1604 failed speculations (available buffer(s) still busy) > > dtrace: 1029 failed speculations (available buffer(s) still busy) > > dtrace: 1471 failed speculations (available buffer(s) still busy) > > dtrace: 1466 failed speculations (available buffer(s) still busy) > > dtrace: 1720 failed speculations (available buffer(s) still busy) > > dtrace: 1049 failed speculations (available buffer(s) still busy) > > dtrace: 1549 failed speculations (available buffer(s) still busy) > > dtrace: 1421 failed speculations (available buffer(s) still busy) > > dtrace: 1595 failed speculations (available buffer(s) still busy) > > dtrace: 1097 failed speculations (available buffer(s) still busy) > > dtrace: 1853 failed speculations (available buffer(s) still busy) > > dtrace: 1900 failed speculations (available buffer(s) still busy) > > dtrace: 1729 failed speculations (available buffer(s) still busy) > > dtrace: 1389 failed speculations (available buffer(s) still busy) > > dtrace: 1314 failed speculations (available buffer(s) still busy) > > dtrace: 1712 failed speculations (available buffer(s) still busy) > > ^C > > dtrace: 1615 failed speculations (available buffer(s) still busy) > > Number of locks per type: > > futex_mtx 29364 > > > > 19,41 real 0,09 user 0,32 sys > > > > ...and for three flash tabs: > > > > otaku% sudo time ./check_internal_locks.d > > dtrace: 535 failed speculations (available buffer(s) still busy) > > dtrace: 213 failed speculations (available buffer(s) still busy) > > dtrace: 282 failed speculations (available buffer(s) still busy) > > dtrace: 571 failed speculations (available buffer(s) still busy) > > dtrace: 666 failed speculations (available buffer(s) still busy) > > dtrace: 857 failed speculations (available buffer(s) still busy) > > dtrace: 1310 failed speculations (available buffer(s) still busy) > > dtrace: 1277 failed speculations (available buffer(s) still busy) > > dtrace: 118 failed speculations (available buffer(s) still busy) > > dtrace: 1503 failed speculations (available buffer(s) still busy) > > dtrace: 2069 failed speculations (available buffer(s) still busy) > > dtrace: 3562 failed speculations (available buffer(s) still busy) > > dtrace: 6561 failed speculations (available buffer(s) still busy) > > dtrace: 3750 failed speculations (available buffer(s) still busy) > > dtrace: 2569 failed speculations (available buffer(s) still busy) > > dtrace: 1362 failed speculations (available buffer(s) still busy) > > dtrace: 2722 failed speculations (available buffer(s) still busy) > > dtrace: 3461 failed speculations (available buffer(s) still busy) > > dtrace: 2579 failed speculations (available buffer(s) still busy) > > dtrace: 3451 failed speculations (available buffer(s) still busy) > > dtrace: 2325 failed speculations (available buffer(s) still busy) > > ^C > > dtrace: 2632 failed speculations (available buffer(s) still busy) > > Number of locks per type: > > emul_shared_wlock 14 > > emul_lock 20 > > futex_mtx 45571 > > > > 22,46 real 0,11 user 0,35 sys > > running stats_timing.d revealed something strange...according to this section: > > Number of calls per provider/application/kernel function: > linuxulator32 npviewer.bin linux_schedtail 2 > linuxulator32 npviewer.bin linux_set_robust_list 2 > linuxulator32 npviewer.bin proc_exit 2 > linuxulator32 npviewer.bin proc_init 2 > linuxulator32 npviewer.bin release_futexes 2 > linuxulator32 npviewer.bin fetch_robust_entry 4 > linuxulator32 npviewer.bin linux_get_osname 8 > linuxulator32 npviewer.bin linux_get_osrelease 8 > linuxulator32 npviewer.bin em_find 12 > linuxulator32 npviewer.bin linux_get_prison 16 > linuxulator32 npviewer.bin futex_atomic_op 734 > linuxulator32 npviewer.bin futex_wake 1082 > linuxulator32 npviewer.bin futex_sleep 1133 > linuxulator32 npviewer.bin futex_wait 1133 > linuxulator32 npviewer.bin linux_emul_convpath 2949 > linuxulator32 npviewer.bin futex_put 2970 > linuxulator32 npviewer.bin linux_sys_futex 3211 > linuxulator32 npviewer.bin futex_get 3945 > linuxulator32 npviewer.bin futex_get0 3945 > linuxulator32 npviewer.bin linux_clock_gettime 75342 > linuxulator32 npviewer.bin linux_to_native_clockid 75342 > linuxulator32 npviewer.bin native_to_linux_timespec 75342 > > proc_exit only got callded twice. however according to this section: > > Longest running (CPU-time!) functions per provider (in ns): > linuxulator32 proc_exit -16995 > linuxulator32 linux_emul_convpath -11330 > linuxulator32 futex_wait -3950 > linuxulator32 futex_sleep -3535 > linuxulator32 proc_init -3310 > linuxulator32 release_futexes -2075 > linuxulator32 linux_schedtail -1350 > linuxulator32 linux_get_osname -1280 > linuxulator32 linux_sys_futex -1090 > linuxulator32 linux_set_robust_list -860 > linuxulator32 futex_get -770 > linuxulator32 linux_get_osrelease -760 > linuxulator32 linux_clock_gettime -570 > linuxulator32 futex_put -560 > linuxulator32 futex_get0 -555 > linuxulator32 futex_atomic_op -325 > linuxulator32 em_find -190 > linuxulator32 fetch_robust_entry -180 > linuxulator32 linux_get_prison -155 > linuxulator32 futex_wake -120 > linuxulator32 linux_to_native_clockid -90 > linuxulator32 native_to_linux_timespec -90 > > the CPU spent a lot of time for those two calls. > > cheers. > alex > > > > > > > i've tuned the script to have the maximum buffer size of 256 megabyte via > > > > #pragma D option dynvarsize=256m > > #pragma D option specsize=256m > > > > ...still the buffers seem to be too small. > > > > 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. eventually after trying a lot of time i managed to gather some stats from the "trace_futexes.d" script: Number of locks per type: futex_mtx 91 Number of maximum number of futexes in the futex list: 1 Number of futexes still existing: -9Number of calls per provider/application/kernel function: linuxulator32 npviewer.bin futex_atomic_op 5 linuxulator32 npviewer.bin futex_wake 6 linuxulator32 npviewer.bin futex_sleep 14 linuxulator32 npviewer.bin futex_wait 14 linuxulator32 npviewer.bin linux_sys_futex 33 linuxulator32 npviewer.bin futex_put 34 linuxulator32 npviewer.bin futex_get 38 linuxulator32 npviewer.bin futex_get0 38 Wallclock-timing statistics per provider/application/kernel function (in ns): linuxulator32 npviewer.bin linux_sys_futex value ------------- Distribution ------------- count -1073741824 | 0 -536870912 |@@@@@ 4 -268435456 | 0 -134217728 |@@@@@@@ 6 -67108864 |@ 1 -33554432 |@ 1 -16777216 |@ 1 -8388608 | 0 -4194304 | 0 -2097152 | 0 -1048576 | 0 -524288 | 0 -262144 |@ 1 -131072 |@@@@@@ 5 -65536 | 0 -32768 |@@@@@@@@@@@ 9 -16384 |@@@@@@ 5 -8192 | 0 linuxulator32 npviewer.bin futex_sleep value ------------- Distribution ------------- count -1073741824 | 0 -536870912 |@@@@@@@@@@@ 4 -268435456 | 0 -134217728 |@@@@@@@@@@@@@@@@@ 6 -67108864 |@@@ 1 -33554432 |@@@ 1 -16777216 |@@@ 1 -8388608 | 0 -4194304 | 0 -2097152 | 0 -1048576 | 0 -524288 | 0 -262144 | 0 -131072 | 0 -65536 |@@@ 1 -32768 | 0 linuxulator32 npviewer.bin futex_wait value ------------- Distribution ------------- count -1073741824 | 0 -536870912 |@@@@@@@@@@@ 4 -268435456 | 0 -134217728 |@@@@@@@@@@@@@@@@@ 6 -67108864 |@@@ 1 -33554432 |@@@ 1 -16777216 |@@@ 1 -8388608 | 0 -4194304 | 0 -2097152 | 0 -1048576 | 0 -524288 | 0 -262144 | 0 -131072 | 0 -65536 |@@@ 1 -32768 | 0 linuxulator32 npviewer.bin futex_put value ------------- Distribution ------------- count -524288 | 0 -262144 |@ 1 -131072 |@@ 2 -65536 | 0 -32768 |@@@@@@@ 6 -16384 |@@@@@@@@@@@ 9 -8192 |@@@@@@@@@@@@@@@@@@@ 16 -4096 | 0 linuxulator32 npviewer.bin futex_get value ------------- Distribution ------------- count -65536 | 0 -32768 |@@@@@@@@@@@@@ 12 -16384 |@@@@@@@@@@@@@@@@@@@@@@@@@@@ 26 -8192 | 0 linuxulator32 npviewer.bin futex_get0 value ------------- Distribution ------------- count -32768 | 0 -16384 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 30 -8192 |@@@@@@@@ 8 -4096 | 0 linuxulator32 npviewer.bin futex_atomic_op value ------------- Distribution ------------- count -32768 | 0 -16384 |@@@@@@@@ 1 -8192 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 4 -4096 | 0 linuxulator32 npviewer.bin futex_wake value ------------- Distribution ------------- count -16384 | 0 -8192 |@@@@@@@ 1 -4096 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 5 -2048 | 0 Longest running (wallclock!) functions per provider (in ns): linuxulator32 futex_wait -100195 linuxulator32 futex_sleep -91565 linuxulator32 linux_sys_futex -30010 linuxulator32 futex_get -21060 linuxulator32 futex_atomic_op -15885 linuxulator32 futex_get0 -12540 linuxulator32 futex_put -11825 linuxulator32 futex_wake -5610 13,22 real 0,09 user 0,13 sys cheers. alex > > > > cheers. > > alex > > > > > > > > > > Depending on how long you traced: that's a lot of futex operations. > > > > > > i traced for ~ 5 seconds. i'll make sure to prepend the time command to any > > > dtrace script next time to give you more exact numbers. > > > > > > cheers. > > > alex > > > > > > > > > > > Bye, > > > > Alexander. > > > > > > > > -- > > > > http://www.Leidinger.net Alexander @ Leidinger.net: PGP ID = B0063FE7 > > > > http://www.FreeBSD.org netchild @ FreeBSD.org : PGP ID = 72077137 [hidden email] mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-emulation To unsubscribe, send any mail to "[hidden email]" |
| Powered by Nabble | Edit this page |
