Am Donnerstag, den 20.09.2012, 15:56 +0200 schrieb Estanislao Gonzalez: > 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 > > >
I might have answered too fast... #0 0xb653b8ec in epoll_wait () from /lib/libc.so.6 #1 0xb5b5ec97 in ?? () from /usr/lib/libevent-1.4.so.2 #2 0xb5b51c5a in event_base_loop () from /usr/lib/libevent-1.4.so.2 #3 0xb7330e80 in ?? () from /usr/lib/xulrunner-10.0/libxul.so #4 0xb7702ea2 in moz_free () from /usr/lib/xulrunner-10.0/libmozalloc.so #5 0xb771a580 in ?? () from /lib/ld-linux.so.2 #6 0xb7323c3b in ?? () from /usr/lib/xulrunner-10.0/libxul.so #7 0xb653b0be in clone () from /lib/libc.so.6 How can I check how many calls come from which library to see who's the relevant culprit? (a step by step shows (now) one from each...) Thanks, Estani PS: feel free to dismiss this subject by not answering. -- 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: estanislao.gonza...@met.fu-berlin.de _______________________________________________ dev-platform mailing list dev-platform@lists.mozilla.org https://lists.mozilla.org/listinfo/dev-platform