Quantcast

[PATCH] pipe2 for Linuxulator

classic Classic list List threaded Threaded
29 messages Options
12
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate
star

[PATCH] pipe2 for Linuxulator

Jung-uk Kim
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]"

linux_pipe2.diff (14K) Download Attachment
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate
star

Re: [PATCH] pipe2 for Linuxulator

Jung-uk Kim
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]"
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate
star

Re: [PATCH] pipe2 for Linuxulator

Jung-uk Kim
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]"
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate
star

Re: [PATCH] pipe2 for Linuxulator

Alexander Best-4
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]"
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate
star

Re: [PATCH] pipe2 for Linuxulator

Alexander Leidinger
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]"
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate
star

Re: [PATCH] pipe2 for Linuxulator

Alexander Leidinger
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]"
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate
star

Re: [PATCH] pipe2 for Linuxulator

Alexander Best-4
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]"
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate
star

Re: [PATCH] pipe2 for Linuxulator

Alexander Leidinger
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]"
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate
star

Re: [PATCH] pipe2 for Linuxulator

Alexander Leidinger
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]"
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate
star

Re: [PATCH] pipe2 for Linuxulator

Alexander Best-4
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]"
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate
star

Re: [PATCH] pipe2 for Linuxulator

Alexander Best-4
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]"
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate
star

Re: [PATCH] pipe2 for Linuxulator

Alexander Best-4
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]"
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate
star

Re: [PATCH] pipe2 for Linuxulator

Alexander Leidinger
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]"
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate
star

Re: [PATCH] pipe2 for Linuxulator

Alexander Best-4
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.
ahh ok. i've managed to get some stats via stats_timing.d. this is a
snapshot during which a newly loaded tab in chromium was unresponsive for
about 5 seconds. without the linux flash plugin running i never experienced
such lock ups.

i've attached the d-script stats.

cheers.
alex

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

_______________________________________________
[hidden email] mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-emulation
To unsubscribe, send any mail to "[hidden email]"

lock_up (21K) Download Attachment
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate
star

Re: [PATCH] pipe2 for Linuxulator

Alexander Best-4
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]"
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate
star

Re: [PATCH] pipe2 for Linuxulator

Alexander Leidinger
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]"
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate
star

Re: [PATCH] pipe2 for Linuxulator

Alexander Best-4
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]"
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate
star

Re: [PATCH] pipe2 for Linuxulator

Alexander Best-4
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]"
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate
star

Re: [PATCH] pipe2 for Linuxulator

Alexander Best-4
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]"
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate
star

Re: [PATCH] pipe2 for Linuxulator

Alexander Best-4
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]"
12
Loading...