Re: [PATCH] x86: Use asm-goto to implement mutex fast path on x86-64

From: Borislav Petkov
Date: Mon Jul 01 2013 - 08:30:41 EST


On Mon, Jul 01, 2013 at 01:11:22PM +0200, Ingo Molnar wrote:
> Hm, a 6 seconds win looks _way_ too much - we don't execute that much
> mutex code, let alone a portion of it.
>
> This could perhaps be a bootup-to-bootup cache layout systematic jitter
> artifact, which isn't captured by stddev observations?
>
> Doing something like this with a relatively fresh version of perf:
>
> perf stat --repeat 10 -a --sync \
> --pre 'make -s O=defconfig-build/ clean; echo 1 > /proc/sys/vm/drop_caches' \
> make -s -j64 O=defconfig-build/ bzImage
>
> ... might do the trick (untested!). (Also note the use of -a: this should
> run on an otherwise quiescent system.)

Yep, I didn't run -a since I wanted to trace only the build process.
Btw, the build-kernel.sh script looks like this:

#!/bin/bash

NUM_CPUS=$(cat /proc/cpuinfo | grep processor | wc -l)
MAKE_OPTS=-j$(($NUM_CPUS+1))

echo 3 > /proc/sys/vm/drop_caches
make $MAKE_OPTS mrproper
make $MAKE_OPTS oldconfig
make $MAKE_OPTS
<EOF>

Let me try your perf tracing variant.

> As a sidenote, we could add this as a convenience feature, triggered via:
>
> perf stat --flush-vm-caches
>
> ... or so, in addition to the already existing --sync option.

Is this something which we want to use a lot? Also, there's 1, 2 and 3
as arg to drop_caches:

drop_caches

Writing to this will cause the kernel to drop clean caches, dentries and
inodes from memory, causing that memory to become free.

To free pagecache:
echo 1 > /proc/sys/vm/drop_caches
To free dentries and inodes:
echo 2 > /proc/sys/vm/drop_caches
To free pagecache, dentries and inodes:
echo 3 > /proc/sys/vm/drop_caches

--
Regards/Gruss,
Boris.

Sent from a fat crate under my desk. Formatting is fine.
--
--
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/