Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 15 Apr 2012 11:51:12 +0000
From:      Alexander Best <arundel@freebsd.org>
To:        Alexander Leidinger <Alexander@Leidinger.net>
Cc:        freebsd-emulation@FreeBSD.org, Jung-uk Kim <jkim@FreeBSD.org>
Subject:   Re: [PATCH] pipe2 for Linuxulator
Message-ID:  <20120415115112.GA83717@freebsd.org>
In-Reply-To: <20120415134444.000005cc@unknown>
References:  <201204102027.42344.jkim@FreeBSD.org> <20120413203222.GA80646@freebsd.org> <20120414155427.000056c1@unknown> <20120414203256.GB19712@freebsd.org> <20120414224746.000005fb@unknown> <20120415000246.0000736b@unknown> <20120415000216.GA53624@freebsd.org> <20120415101157.GA67049@freebsd.org> <20120415112308.GA77985@freebsd.org> <20120415134444.000005cc@unknown>

next in thread | previous in thread | raw e-mail | index | archive | help

--huq684BweRXVnRxX
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline

On Sun Apr 15 12, Alexander Leidinger wrote:
> On Sun, 15 Apr 2012 11:23:08 +0000 Alexander Best <arundel@freebsd.org>
> wrote:
> 
> > On Sun Apr 15 12, Alexander Best wrote:
> > > On Sun Apr 15 12, Alexander Best wrote:
> > > > On Sun Apr 15 12, Alexander Leidinger wrote:
> > > > > On Sat, 14 Apr 2012 22:47:46 +0200 Alexander Leidinger
> > > > > <Alexander@Leidinger.net> wrote:
> > > > > 
> > > > > > On Sat, 14 Apr 2012 20:32:56 +0000 Alexander Best
> > > > > > <arundel@freebsd.org> wrote:
> > > > > > 
> > > > > > > On Sat Apr 14 12, Alexander Leidinger wrote:
> > > > > > > > On Fri, 13 Apr 2012 20:32:22 +0000 Alexander Best
> > > > > > > > <arundel@freebsd.org> wrote:
> > > > > > > > 
> > > > > > > > > i'm having problems with the patch. beforehand, playing
> > > > > > > > > music from www.mixcloud.com worked. now the flash based
> > > > > > > > > player is initialising forever.
> > > > > > > > 
> > > > > > > > > just drop me a note with exact instructions and i can
> > > > > > > > > give you more verbose information or debugging stats.
> > > > > > > > > again: this issue might be futex related and not a
> > > > > > > > > result of your patch.
> > > > > > > > 
> > > > > > > > Are you running -current? If yes I Looks try to get some
> > > > > > > > time to commit the linuxulator-dtrace probes, now that
> > > > > > > > SDT probes can be loaded dynamically there is no risk to
> > > > > > > > panic the system when the linuxulator is loaded after
> > > > > > > > boot and dtrace is used. This could help looking at
> > > > > > > > problems with locks.
> > > > > > > 
> > > > > > > yes i'm running a very recent HEAD on amd64.
> > > > > > 
> > > > > > I'm in the process of merging all the new stuff from HEAD
> > > > > > into my SVN branch. With a slow system and a slow line this
> > > > > > may take a while. I hope to at least update my branch in SVN
> > > > > > (users/netchild/linuxulator-dtrace) today. I don't know if I
> > > > > > get the time to merge it to HEAD today.
> > > > > 
> > > > > Hmmm... do I remember correctly that I already gave a dtrace
> > > > > patch to you to check for futex problems? I think I changed the
> > > > > locking-probes since I gave the patch to you, but I'm not sure.
> > > > > Anyway, the patch against a recent -current is available from
> > > > > http://www.leidinger.net/FreeBSD/current-patches now.
> > > > 
> > > > yeah you're right. i've applied the patch and compiled and
> > > > installed the kernel. i'm not very experienced with dtrace, so
> > > > i'll need some instructions on how to proceed.
> > > 
> > > buildkernel suceeded, but i got this error during buildworld:
> > 
> > it seems your patch breaks building world with MODULES_WITH_WORLD
> > defined. when modules get buildduring buildkernel, i don't see that
> > error.
> 
> opt_kdtrace.h is generated by config. I've never used
> MODULES_WITH_WORLD, so I have no idea how this case is handled.

ahh ok. i've managed to get some stats via stats_timing.d. this is a
snapshot during which a newly loaded tab in chromium was unresponsive for
about 5 seconds. without the linux flash plugin running i never experienced
such lock ups.

i've attached the d-script stats.

cheers.
alex

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

--huq684BweRXVnRxX
Content-Type: text/plain; charset=us-ascii
Content-Disposition: attachment; filename=lock_up

otaku% sudo ./stats_timing.d
^C
Number of calls per provider/application/kernel function:
  linuxulator32                                       npviewer.bin                                        linux_schedtail                                                   1
  linuxulator32                                       npviewer.bin                                        linux_set_robust_list                                             1
  linuxulator32                                       npviewer.bin                                        proc_init                                                         1
  linuxulator32                                       npviewer.bin                                        linux_kernver                                                     3
  linuxulator32                                       npviewer.bin                                        linux_get_osname                                                  4
  linuxulator32                                       npviewer.bin                                        linux_get_osrelease                                               4
  linuxulator32                                       npviewer.bin                                        em_find                                                           7
  linuxulator32                                       npviewer.bin                                        linux_get_prison                                                 11
  linuxulator32                                       npviewer.bin                                        futex_atomic_op                                                 335
  linuxulator32                                       npviewer.bin                                        linux_emul_convpath                                             372
  linuxulator32                                       npviewer.bin                                        futex_sleep                                                     411
  linuxulator32                                       npviewer.bin                                        futex_wait                                                      411
  linuxulator32                                       npviewer.bin                                        futex_wake                                                      492
  linuxulator32                                       npviewer.bin                                        futex_put                                                      1289
  linuxulator32                                       npviewer.bin                                        linux_sys_futex                                                1372
  linuxulator32                                       npviewer.bin                                        futex_get                                                      1707
  linuxulator32                                       npviewer.bin                                        futex_get0                                                     1707
  linuxulator32                                       npviewer.bin                                        linux_clock_gettime                                           10694
  linuxulator32                                       npviewer.bin                                        linux_to_native_clockid                                       10694
  linuxulator32                                       npviewer.bin                                        native_to_linux_timespec                                      10694
CPU-timing statistics per provider/application/kernel function (in ns):
  linuxulator32                                       npviewer.bin                                        linux_sys_futex                                   
           value  ------------- Distribution ------------- count    
         -131072 |                                         0        
          -65536 |@                                        21       
          -32768 |@@@@@                                    172      
          -16384 |@@@@@@                                   199      
           -8192 |@@@@@@@@@@@                              392      
           -4096 |@@@@                                     136      
           -2048 |@@@@@                                    156      
           -1024 |@@@@@@@@                                 289      
            -512 |                                         0        

  linuxulator32                                       npviewer.bin                                        linux_clock_gettime                               
           value  ------------- Distribution ------------- count    
          -65536 |                                         0        
          -32768 |                                         1        
          -16384 |                                         5        
           -8192 |                                         66       
           -4096 |@                                        164      
           -2048 |@                                        315      
           -1024 |@@                                       479      
            -512 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@     9664     
            -256 |                                         0        

  linuxulator32                                       npviewer.bin                                        futex_get                                         
           value  ------------- Distribution ------------- count    
         -131072 |                                         0        
          -65536 |                                         5        
          -32768 |@                                        37       
          -16384 |                                         14       
           -8192 |@                                        34       
           -4096 |@@@@                                     164      
           -2048 |@@@@@@@@@@@@@@@@@@@                      822      
           -1024 |@@@@@@@@@@@                              449      
            -512 |@@@@                                     182      
            -256 |                                         0        

  linuxulator32                                       npviewer.bin                                        futex_wait                                        
           value  ------------- Distribution ------------- count    
          -65536 |                                         0        
          -32768 |@@                                       17       
          -16384 |@@@@@@@@@@@@@@@@@@@@                     201      
           -8192 |@@@@@@@@                                 82       
           -4096 |@@@@@@@@@@                               104      
           -2048 |                                         0        

  linuxulator32                                       npviewer.bin                                        futex_sleep                                       
           value  ------------- Distribution ------------- count    
          -65536 |                                         0        
          -32768 |@                                        13       
          -16384 |@@@@@@@@@@@@@@@@@@@@                     202      
           -8192 |@@@@@@@                                  72       
           -4096 |@@@@@@@@@@@                              112      
           -2048 |                                         5        
           -1024 |                                         0        

  linuxulator32                                       npviewer.bin                                        futex_get0                                        
           value  ------------- Distribution ------------- count    
         -131072 |                                         0        
          -65536 |                                         4        
          -32768 |@                                        38       
          -16384 |                                         12       
           -8192 |@                                        24       
           -4096 |@@@                                      119      
           -2048 |@@@@@@@@@@@                              489      
           -1024 |@@@@@@@@@@@@@@@@                         691      
            -512 |@@@@@@@@                                 330      
            -256 |                                         0        

  linuxulator32                                       npviewer.bin                                        linux_emul_convpath                               
           value  ------------- Distribution ------------- count    
         -131072 |                                         0        
          -65536 |                                         2        
          -32768 |@@                                       14       
          -16384 |@@@@@                                    42       
           -8192 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@       314      
           -4096 |                                         0        

  linuxulator32                                       npviewer.bin                                        futex_put                                         
           value  ------------- Distribution ------------- count    
          -16384 |                                         0        
           -8192 |                                         8        
           -4096 |@@                                       58       
           -2048 |@@@@@@@                                  222      
           -1024 |@@@@@@@@@@@@@@@@@                        535      
            -512 |@@@@@@@@@@@@@@                           466      
            -256 |                                         0        

  linuxulator32                                       npviewer.bin                                        native_to_linux_timespec                          
           value  ------------- Distribution ------------- count    
          -65536 |                                         0        
          -32768 |                                         1        
          -16384 |                                         0        
           -8192 |                                         9        
           -4096 |                                         26       
           -2048 |                                         9        
           -1024 |                                         3        
            -512 |                                         13       
            -256 |@                                        213      
            -128 |@@                                       498      
             -64 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@    9922     
             -32 |                                         0        

  linuxulator32                                       npviewer.bin                                        linux_to_native_clockid                           
           value  ------------- Distribution ------------- count    
          -16384 |                                         0        
           -8192 |                                         5        
           -4096 |                                         15       
           -2048 |                                         6        
           -1024 |                                         4        
            -512 |                                         20       
            -256 |@                                        309      
            -128 |@@@@                                     1072     
             -64 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@      9263     
             -32 |                                         0        

  linuxulator32                                       npviewer.bin                                        futex_wake                                        
           value  ------------- Distribution ------------- count    
          -16384 |                                         0        
           -8192 |                                         2        
           -4096 |@                                        12       
           -2048 |@@@@@@@@@@@@@@@@@@@@                     252      
           -1024 |@@@@@@@@@                                105      
            -512 |                                         5        
            -256 |                                         1        
            -128 |@@@@@                                    65       
             -64 |@@@@                                     50       
             -32 |                                         0        

  linuxulator32                                       npviewer.bin                                        futex_atomic_op                                   
           value  ------------- Distribution ------------- count    
           -8192 |                                         0        
           -4096 |                                         2        
           -2048 |                                         0        
           -1024 |                                         4        
            -512 |@@@@@@@@@@@@@@@@@@@@@@@@@@               221      
            -256 |@@@@@@@@                                 63       
            -128 |@@@@@                                    45       
             -64 |                                         0        

  linuxulator32                                       npviewer.bin                                        linux_get_osname                                  
           value  ------------- Distribution ------------- count    
           -2048 |                                         0        
           -1024 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@           3        
            -512 |@@@@@@@@@@                               1        
            -256 |                                         0        

  linuxulator32                                       npviewer.bin                                        em_find                                           
           value  ------------- Distribution ------------- count    
           -2048 |                                         0        
           -1024 |@@@@@@                                   1        
            -512 |@@@@@@@@@@@                              2        
            -256 |@@@@@@@@@@@@@@@@@                        3        
            -128 |                                         0        
             -64 |@@@@@@                                   1        
             -32 |                                         0        

  linuxulator32                                       npviewer.bin                                        linux_kernver                                     
           value  ------------- Distribution ------------- count    
           -2048 |                                         0        
           -1024 |@@@@@@@@@@@@@@@@@@@@@@@@@@@              2        
            -512 |@@@@@@@@@@@@@                            1        
            -256 |                                         0        

  linuxulator32                                       npviewer.bin                                        linux_get_prison                                  
           value  ------------- Distribution ------------- count    
           -1024 |                                         0        
            -512 |@@@@                                     1        
            -256 |@@@@@@@@@@@@@@@@@@                       5        
            -128 |@@@@@@@@@@@@@@@@@@                       5        
             -64 |                                         0        

  linuxulator32                                       npviewer.bin                                        linux_get_osrelease                               
           value  ------------- Distribution ------------- count    
           -1024 |                                         0        
            -512 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 4        
            -256 |                                         0        

  linuxulator32                                       npviewer.bin                                        linux_schedtail                                   
           value  ------------- Distribution ------------- count    
           -4096 |                                         0        
           -2048 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
           -1024 |                                         0        

  linuxulator32                                       npviewer.bin                                        proc_init                                         
           value  ------------- Distribution ------------- count    
           -4096 |                                         0        
           -2048 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
           -1024 |                                         0        

  linuxulator32                                       npviewer.bin                                        linux_set_robust_list                             
           value  ------------- Distribution ------------- count    
           -2048 |                                         0        
           -1024 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
            -512 |                                         0        

Longest running (CPU-time!) functions per provider (in ns):
  linuxulator32                                       linux_emul_convpath                                          -11315
  linuxulator32                                       futex_wait                                                    -4120
  linuxulator32                                       futex_sleep                                                   -3655
  linuxulator32                                       proc_init                                                     -3015
  linuxulator32                                       linux_schedtail                                               -2705
  linuxulator32                                       linux_set_robust_list                                         -1550
  linuxulator32                                       linux_sys_futex                                               -1030
  linuxulator32                                       linux_get_osname                                              -1015
  linuxulator32                                       linux_get_osrelease                                            -855
  linuxulator32                                       futex_get                                                      -740
  linuxulator32                                       linux_clock_gettime                                            -615
  linuxulator32                                       futex_put                                                      -575
  linuxulator32                                       linux_kernver                                                  -530
  linuxulator32                                       futex_get0                                                     -520
  linuxulator32                                       linux_get_prison                                               -180
  linuxulator32                                       futex_atomic_op                                                -150
  linuxulator32                                       em_find                                                        -125
  linuxulator32                                       futex_wake                                                     -100
  linuxulator32                                       linux_to_native_clockid                                         -95
  linuxulator32                                       native_to_linux_timespec                                        -95
Lock CPU-timing statistics:
  futex_mtx                                         
           value  ------------- Distribution ------------- count    
          -16384 |                                         0        
           -8192 |                                         1        
           -4096 |                                         3        
           -2048 |                                         5        
           -1024 |@                                        78       
            -512 |@@@@@                                    444      
            -256 |@@@@@@@@@@@                              1037     
            -128 |@@@@@@@@@@@@@@@@@@                       1771     
             -64 |@@@@@                                    501      
             -32 |                                         0        

  emul_lock                                         
           value  ------------- Distribution ------------- count    
           -1024 |                                         0        
            -512 |@@@@@@@@@@@@@                            1        
            -256 |@@@@@@@@@@@@@                            1        
            -128 |@@@@@@@@@@@@@                            1        
             -64 |                                         0        

  emul_shared_wlock                                 
           value  ------------- Distribution ------------- count    
            -256 |                                         0        
            -128 |@@@@@@@@@@@@@@@@@@@@                     1        
             -64 |@@@@@@@@@@@@@@@@@@@@                     1        
             -32 |                                         0        

Longest running (CPU-time!) locks:
  emul_lock                                                      -250
  emul_shared_wlock                                              -120
  futex_mtx                                                       -95



--huq684BweRXVnRxX--



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