Subject: Re: [PATCH 2.6.14] mm: 8xx MM fix for

From: David Jander <[email-masked]>
Date: Thu, 10 Nov 2005 09:48:45 +0200

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: 310ms

Hmmm. 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