Re: lmbench lat_mmap slowdown with CONFIG_PARAVIRT

From: Ingo Molnar
Date: Tue Jan 20 2009 - 14:37:34 EST



* Ingo Molnar <mingo@xxxxxxx> wrote:

> -----------------------------------------------
> | Performance counter stats for './mmap-perf' |
> -----------------------------------------------
> | |
> | x86-defconfig | PARAVIRT=y
> |------------------------------------------------------------------
> |
> | 1311.554526 | 1360.624932 task clock ticks (msecs) +3.74%
> | |
> | 1 | 1 CPU migrations
> | 91 | 79 context switches
> | 55945 | 55943 pagefaults
> | ............................................
> | 3781392474 | 3918777174 CPU cycles +3.63%
> | 1957153827 | 2161280486 instructions +10.43%
> | 50234816 | 51303520 cache references +2.12%
> | 5428258 | 5583728 cache misses +2.86%
> | |
> | 1314.782469 | 1363.694447 time elapsed (msecs) +3.72%
> | |
> -----------------------------------
>
> The most surprising element is that in the paravirt_ops case we run 204
> million more instructions - out of the ~2000 million instructions total.

So because this test does exactly 1 million MM syscalls, the average is
easy to calculate:

The native kernel's average MM syscall cost is 1957 instructions - with
CONFIG_PARAVIRT=y that increases by +10.43% to 2161 instructions. There's
over 200 extra instructions executed per MM syscall that we only do due to
CONFIG_PARAVIRT=y.

Ingo
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/