Hi, I've been running some benchmarks recently on many of my machines across different kernels, and have been horrified by a sudden drop in the performance measured by the Byte Benchmarks.
See: http://www.arm.linux.org.uk/docs/bench.shtml I originally ran them against 2.2.9 kernels back in 1999, and were built using gcc 2.7.2.2, libc 4, a.out. I re-ran them against a variety of kernels, some 2.2 series, 2.4 series and 2.5 series after rebuilding the benchmark suite for ELF. Mulling over any changes in the kernel didn't produce anything which could really account for a 50% drop in performance. I then rebuilt the benchmarks using gcc 2.7.2.2 against libc 4, and therefore a.out. Here are my results: GCC 2.96, GLIBC 2.1.3, ELF -------------------------- BYTE UNIX Benchmarks (Version 3.11) System -- assabet Start Benchmark Run: Thu Jan 1 03:01:26 /usr/local/arm 1970 1 interactive users. Process Creation Test 349.4 lps (10 secs, 6 samples) GCC 2.7.2.2, LIBC 4.6.27, A.OUT ------------------------------- BYTE UNIX Benchmarks (Version 3.11) System -- assabet Start Benchmark Run: Thu Jan 1 03:09:35 /usr/local/arm 1970 1 interactive users. Process Creation Test 600.2 lps (10 secs, 6 samples) Both these results were taken from the same machine running the same kernel without a reboot between the two runs. The process creation test is basically the following code, which gets run for a set amount of time - iter is gives the number of loops over this time period. 6 tests are run, and the geometric average taken to arrive at the above result. while (1) { if ((slave = fork()) == 0) { /* slave .. boring */ /* kill it right away */ exit(0); } else if (slave < 0) { /* woops ... */ printf("Fork failed at iteration %d\n", iter); perror("Reason"); exit(2); } else /* master */ wait(&status); if (status != 0) { printf("Bad wait status: 0x%x\n", status); exit(2); } iter++; } Other notes: ------------ Note that if you look closely, a similar slowdown can be seen in the execl case as well, it looks like a similar problem. The ELF results for this one are on the web page, machine id ass2416. Here are the a.out results: --------------------------------------------------------------------------- BYTE UNIX Benchmarks (Version 3.11) System -- assabet Start Benchmark Run: Thu Jan 1 03:23:51 /usr/local/arm 1970 1 interactive users. Execl Throughput Test 181.0 lps (9 secs, 6 samples) INDEX VALUES TEST BASELINE RESULT INDEX Execl Throughput Test 16.5 181.0 11.0 ========= SUM of 1 items 11.0 AVERAGE 11.0 --------------------------------------------------------------------------- The double cases are directly attributable to the performance difference between the C coded nwfpe, and the highly optimised Acorn FPE, so I'm not worried about these ones. _______________________________________________ http://lists.arm.linux.org.uk/mailman/listinfo/linux-arm Please visit the above address for information on this list.
