On 20/03/13 17:48, Daniel Willmann wrote: > On 20/03/13 13:55, Bertrand Jacquin wrote: >> Le mercredi 20 mars 2013 à 14h53, « Daniel Willmann » a écrit : >>> On 20/03/13 13:41, Bertrand Jacquin wrote: >>>> Just upgraded to 1GB for temporary files. I still does not understand >>>> what does need more than 128MB of space disk for temporary files. I >>> >>> Thanks. > > We just hit this issue again - this time with the 1GB space... > I debugged more on my local machine, here is the setup: > > Running > watch -n 1 -d df -k /tmp/ > > in one terminal I ran make check on efl. > > Before running make check that filesystem used 70989912 1k blocks (so > roughly 7GB - it's just one big partition for /) somewhere during the > Eina checks the disk usage sky-rocketed to 71308212. This means that > during make check as much as 300MB are consumed, which is really less > than ideal. :-( > (And would explain why even with 1GB space four concurrent builds might > fail) > > I will investigate further.
The issue is eina_list_shuffle and its use of fail_if. Every fail_if() call will call send_loc_info() (no matter if the expression is false or not). This emits the current file name and line number to the temporary file libcheck uses to communicate. All that would not be a problem, BUT.... fail_if is called in a loop which is run 100000 times. Within that loop fail_if is called inside another loop which iterates 100 times. So if my math is correct this alone results in roughly 10 million calls to fail_if() (and thus send_loc_info()). Assume now that the file name is "eina_test_list.c", so it contains 16 characters (not including \0). There is some more overhead involved in packing that message within libcheck, one int for the type, one int for the length of the string and one int for the line number. Each of these fail_if invocations would write 28 bytes to this temporary file. Multiply that with the number of invocations and you get way over 200MB from this test alone... So that's where the problems originate. I'll rewrite the tests to not use fail_if in the hot path which should also cut down the time eina_suite needs considerably. Regards, Daniel ------------------------------------------------------------------------------ Everyone hates slow websites. So do we. Make your web apps faster with AppDynamics Download AppDynamics Lite for free today: http://p.sf.net/sfu/appdyn_d2d_mar _______________________________________________ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel