Re: [PATCH 0/4] Fix ebizzy performance regression due to X86 TLBrange flush v2

From: Ingo Molnar
Date: Mon Dec 16 2013 - 08:45:03 EST



* Mel Gorman <mgorman@xxxxxxx> wrote:

> > Whatever we did right in v3.4 we want to do in v3.13 as well - or
> > at least understand it.
>
> Also agreed. I started a bisection before answering this mail. It
> would be cooler and potentially faster to figure it out from direct
> analysis but bisection is reliable and less guesswork.

Trying to guess can potentially last a _lot_ longer than a generic,
no-assumptions bisection ...

The symptoms could point to anything: scheduler, locking details, some
stupid little change in a wakeup sequence somewhere, etc.

It might even be a non-deterministic effect of some timing change
causing the workload 'just' to avoid a common point of preemption and
not scheduling as much - and become more unfair and thus certain
threads lasting longer to finish.

Does the benchmark execute a fixed amount of transactions per thread?

That might artificially increase the numeric regression: with more
threads it 'magnifies' any unfairness effects because slower threads
will become slower, faster threads will become faster, as the thread
count increases.

[ That in itself is somewhat artificial, because real workloads tend
to balance between threads dynamically and don't insist on keeping
the fastest threads idle near the end of a run. It does not
invalidate the complaint about the unfairness itself, obviously. ]

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/