Re: [GIT PULL] First batch of KVM changes for 4.1

Paolo Bonzini
2015-04-17T14:57:56Z

On 17/04/2015 15:43, Peter Zijlstra wrote:
> On Fri, Apr 17, 2015 at 03:38:58PM +0200, Paolo Bonzini wrote:
>>> The path this notifier is called from has nothing to do with those
>>> costs.
>
> Its attributed to the entity doing the migration, which can be the
> wakeup path or a softirq. And we very much do care about the wakeup
> path.

It's not run on all wakeups. It's within an "if (task_cpu(p) !=
new_cpu)". WF_MIGRATED _is_ a slow path for wakeups, even though wakeup
itself is of course something we care about.

For load balancing, calculate_imbalance alone is orders of magnitudes
more expensive than this notifier (which can be optimized to two
instructions with at most one cache miss).

>> ... that's a valid objection. Please look at the patch below.
>
> Still a NAK on that, distros have no choice but to enable that CONFIG
> option because people might want to run KVM.

Again: running virtual machines does not require these notifiers. KVM
needs preempt and MMU notifiers, and also enables user return notifiers,
but does not need these ones.

It's only paravirt that needs them. It's perfectly fine for distros to
disable paravirt. Some do, some don't.

Paolo