Am Donnerstag, den 20.09.2012, 09:29 -0400 schrieb Benjamin Smedberg:
> On 9/20/2012 9:14 AM, Estanislao Gonzalez wrote:
> > Hi,
> >
> > This is probably nothing... but I was testing something else and I wondered
> > why there are so many calls to getrlimit about the size of the stack...
> >
> > These are the "top 10" calls from one second dump of strace for the
> > xulrunner process (first field is the count):
> >
> > $ (strace -p 10762 2>&1 & sleep 1 && pkill strace) | awk '{a[$0]+=1} END
> > {for (k in a) {print a[k],k}}' | sort -k 1 -rn | head
> >
> > 58498 getrlimit(RLIMIT_STACK, {rlim_cur=8192*1024, rlim_max=RLIM_INFINITY})
> > = 0
> > 53 read(13, 0xb4d65058, 4096) = -1 EAGAIN (Resource
> > temporarily unavailable)
> > 26 poll([{fd=4, events=POLLIN}, {fd=13, events=POLLIN}, {fd=6,
> > events=POLLIN}], 3, 0) = 0 (Timeout)
> > 16 poll([{fd=4, events=POLLIN}, {fd=13, events=POLLIN}], 2, 0) = 0 (Timeout)
> > 12 semop(131073, {{0, -1, SEM_UNDO}}, 1) = 0
> > 12 semop(131073, {{0, 1, SEM_UNDO}}, 1) = 0
> > 6 poll([{fd=4, events=POLLIN}, {fd=13, events=POLLIN}, {fd=6,
> > events=POLLIN}], 3, 9) = 0 (Timeout)
> > 5 write(7, "!", 1) = 1
> > 5 read(6, "!", 1) = 1
> > 5 poll([{fd=4, events=POLLIN}, {fd=13, events=POLLIN}, {fd=6,
> > events=POLLIN}], 3, 0) = 1 ([{fd=6, revents=POLLIN}])
> >
> > so there are almost 60.000 calls per second (min:53.000 max:64.000) to
> > RLIMIT_STACK ...
> This is while running Firefox? Or some other XULRunner-based app?
>
> The ps list below shows seems to indicate that you're seeing the
> plugin-container process for Flash player. If this is correct, and
> you're looking at a Flash-based video, it is *probably* the Flash player
> code which is making these getrlimit calls. It would be good to get
> some basic stack traces from the calls to verify my hunch, of course. If
> they walk directly into libflashplayer.so then this is something you
> should report to Adobe.
>
> Does anyone know how expensive getrlimit is?
>
> --BDS
>
I did asume this was caused by the flash player library (to some extent). It is
while running iceweasel (firefox debian version).
And you were right:
#0 0xb65dbd7a in pthread_cond_wait@@GLIBC_2.3.2 () from /lib/libpthread.so.0
#1 0xb320659f in ?? () from /usr/lib/flashplayer-mozilla/libflashplayer.so
#2 0xb2dce2e5 in ?? () from /usr/lib/flashplayer-mozilla/libflashplayer.so
#3 0xb320685c in ?? () from /usr/lib/flashplayer-mozilla/libflashplayer.so
#4 0xb3206f06 in ?? () from /usr/lib/flashplayer-mozilla/libflashplayer.so
#5 0xb65d77b0 in start_thread () from /lib/libpthread.so.0
#6 0xb653b0be in clone () from /lib/libc.so.6
So, wrong list :-)
getrlimit is not expensive at all... but that doesn't mean you can call it
60.000 per second without incurring in any penalty...
Thanks,
Estani
--
Estanislao Gonzalez
Institute of Meteorology
Freie Universität Berlin
Climate System Modeling Working Group
Carl-Heinrich-Becker Weg 6-10, Room 079 AB/1
D-12165 Berlin
Phone: +49 30 838-71116
Mail: [email protected]
_______________________________________________
dev-platform mailing list
[email protected]
https://lists.mozilla.org/listinfo/dev-platform