Messages in this thread | | | Date | Mon, 16 Dec 2013 14:44:49 +0100 | From | Ingo Molnar <> | Subject | Re: [PATCH 0/4] Fix ebizzy performance regression due to X86 TLB range flush v2 |
| |
* Mel Gorman <mgorman@suse.de> 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
| |