Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 15 Apr 2012 14:41:55 +0000
From:      Alexander Best <arundel@freebsd.org>
To:        Alexander Leidinger <Alexander@Leidinger.net>
Cc:        freebsd-emulation@freebsd.org
Subject:   Re: [PATCH] pipe2 for Linuxulator
Message-ID:  <20120415144155.GA15993@freebsd.org>
In-Reply-To: <20120415163059.0000715d@unknown>
References:  <20120414224746.000005fb@unknown> <20120415000246.0000736b@unknown> <20120415000216.GA53624@freebsd.org> <20120415101157.GA67049@freebsd.org> <20120415112308.GA77985@freebsd.org> <20120415134444.000005cc@unknown> <20120415115112.GA83717@freebsd.org> <20120415143441.00000948@unknown> <20120415130306.GA95208@freebsd.org> <20120415163059.0000715d@unknown>

next in thread | previous in thread | raw e-mail | index | archive | help
On Sun Apr 15 12, Alexander Leidinger wrote:
> On Sun, 15 Apr 2012 13:03:06 +0000 Alexander Best <arundel@freebsd.org>
> wrote:
> 
> > On Sun Apr 15 12, Alexander Leidinger wrote:
> > > On Sun, 15 Apr 2012 11:51:12 +0000 Alexander Best
> > > <arundel@freebsd.org> 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



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