same application code - different behavior with kernels 2.4 vs. 2.6

same application code - different behavior with kernels 2.4 vs. 2.6

Alexander Indenbaum alexander.indenbaum at gmail.com
Tue Apr 27 06:17:29 IDT 2010


Hey,

I'm playing with a Linux embedded box. Some time ago, we (finally)
switched from kernel 2.4.36 to 2.6.18.8. Naturally libc was also
upgraded. What have not changed was the sources of the applications:
Firefox 2.0 running on top of custom X server. GTK/pango/cairo/etc are
also identical in both systems. So far so good, yet we have found out
that the kernel/libc upgrade basically broke the customer's code:
CSS/Javascript timers driven application, running inside the browser,
which started to run much slower, from user experience point of view.
Unfortunately, the customer's user experience is extremely important
;)

Black box analysis showed differences in system behavior, see bellow.
Any idea about what else should be checked are greatly appreciated.
And yeah, the final goal is a happy customer. Please share you
thoughts - bounce some ideas.

Thanks in advance,
~baum


---------------------------------------------------------------------------------------------------------------------------------------------------------------------
TOP
2.4 The system CPU is 5% idle, utilization is between browser and X
server in 60%-40% ratio.
2.6 The system CPU is 80% idle, utilization is between browser and X
server in 60%-40% ratio.

---------------------------------------------------------------------------------------------------------------------------------------------------------------------
STRACE (strace -c -p PID / during 100 secs). NOTE: In case of Firefox,
it is not a really apple to apple comparison,  since only "active
thread" pid was straced.
2.4 kernel - "FAST user experience"
X server
% time     seconds  usecs/call     calls    errors syscall
------ ----------- ----------- --------- --------- ----------------
 90.70   15.259293        1045     14600       204 select
 4.55    0.765248          19     39678     11956 read
 3.59    0.604554          33     18350         2 writev
 0.52    0.087052          62      1415           munmap
 0.46    0.077625           3     29071           gettimeofday
 0.10    0.017304           3      4951      1821 sigreturn
 0.07    0.011463           8      1415           old_mmap
 0.01    0.002002           3       764           setitimer
------ ----------- ----------- --------- --------- ----------------
100.00   16.824541                110244     13983 total

Firefox browser
------ ----------- ----------- --------- --------- ----------------
 47.54    3.022460        1947      1552           select
 19.00    1.207781         272      4446           poll
 12.43    0.789926          41     19280           write
 8.32    0.529035          29     18218        37 readv
 7.37    0.468285         179      2618         2 writev
 1.51    0.095897           5     19428      1253 read
 1.20    0.076559          50      1544           old_mmap
 0.75    0.047951           7      6426           brk
 0.64    0.040452           9      4471           ioctl
 0.58    0.036982          24      1545           munmap
 0.57    0.035924           2     15927           gettimeofday
 0.09    0.005809           5      1156           kill
------ ----------- ----------- --------- --------- ----------------
100.00    6.357061                 96611      1292 total

2.6 kernel - "SLOW user experience"
X server
% time     seconds  usecs/call     calls    errors syscall
------ ----------- ----------- --------- --------- ----------------
 55.00    0.003374           1      5287           writev
 35.18    0.002158           0      8580      2217 select
 9.81    0.000602           0     14486      6008 read
 0.00    0.000000           0     17114           gettimeofday
 0.00    0.000000           0        41           munmap
 0.00    0.000000           0      4454           setitimer
 0.00    0.000000           0      2543      2479 sigreturn
 0.00    0.000000           0        41           mmap2
------ ----------- ----------- --------- --------- ----------------
100.00    0.006134                 52546     10704 total

Firefox browser
% time     seconds  usecs/call     calls    errors syscall
------ ----------- ----------- --------- --------- ----------------
 81.95    0.021973           3      7421           writev
 13.55    0.003634           0     13674      5906 read
 3.68    0.000986           0     13012           select
 0.51    0.000138           1       170           stat64
 0.31    0.000082           1       118           futex
 0.00    0.000000           0        90           write
 0.00    0.000000           0      1789           gettimeofday
 0.00    0.000000           0       249           poll
------ ----------- ----------- --------- --------- ----------------
100.00    0.026813                 36523      5906 total



More information about the Linux-il mailing list