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

Reply via email to