On Wednesday 09 November 2005 13:04, Marcelo Tosatti wrote:
>[...]
>
> ** 2.6.14 DataTLBHandler jump direct ("two exceptions"):
>
> first batch:
> avg: 287ms
> avg: 287ms
> avg: 287ms
> avg: 287ms
> avg: 287ms
>
> second batch:
> avg: 287ms
> avg: 287ms
> avg: 287ms
> avg: 287ms
> avg: 287ms
>
> ** 2.6.14 vanilla ("three exceptions"):
>
> first batch:
> avg: 288ms
> avg: 285ms
> avg: 287ms
> avg: 287ms
> avg: 288ms
>
> second batch:
> avg: 288ms
> avg: 288ms
> avg: 287ms
> avg: 287ms
> avg: 287ms
>
> ** 2.4.17 (root on RAMDISK):
>
> avg: 309ms
> avg: 313ms
> avg: 312ms
> avg: 311ms
> avg: 310msHmmm. This is a lot in the line of the tests I did with (the more generic benchmark) nbench. After looking at those results (see my other post in this thread) I already suspected something like this. > The v2.6.14's kernel jump-direct is more consistent at 287ms, > while vanilla 2.6.14 oscillates between 285 and 288ms, but > no significant difference between the two. > > v2.6's fault handling is clearly faster than 2.4's (note that the compiler > is also different, 2.4 uses gcc 2.95 and 2.6 gcc 3.3). I don't think the compiler does much difference here though. In my test the exact same compiler was used for both kernels, and the same rootfs and binary of nbench. gcc-3.3.3. I did also use oprofile to get an idea of where the code spent its most cpu time during nbench, and AFAIR flush_dcache_icache() took quite a chunk of it, so I assume page fault latency is of importance there too, and might account for the huge difference between 2.4 and 2.6. Greetings, -- David Jander
