Merge branch 'nohz/guest' of git://git.kernel.org/pub/scm/linux/kernel/git/frederic...
authorIngo Molnar <mingo@kernel.org>
Mon, 16 Mar 2015 14:49:30 +0000 (15:49 +0100)
committerIngo Molnar <mingo@kernel.org>
Mon, 16 Mar 2015 14:49:30 +0000 (15:49 +0100)
commit1524b745406a85ba201cb25df72110c1ccac0f72
tree66e4ac8b03dab66849ef815d836a25f38da61a91
parentfba9e07208c0f9d92d9f73761c99c8612039da44
parent126a6a542446f1a49b9f3c69237c87df3eb4e6e1
Merge branch 'nohz/guest' of git://git./linux/kernel/git/frederic/linux-dynticks into timers/nohz

Pull full dynticks support for virt guests from Frederic Weisbecker:

 "Some measurements showed that disabling the tick on the host while the
  guest is running can be interesting on some workloads. Indeed the
  host tick is irrelevant while a vcpu runs, it consumes CPU time and cache
  footprint for no good reasons.

  Full dynticks already works in every context, but RCU prevents it to
  be effective outside userspace, because the CPU needs to take part of
  RCU grace period completion as long as RCU may be used on it, which is
  the case in kernel context.

  However guest is similar to userspace and idle in that we know RCU is
  unused on such context. Therefore a CPU in guest/userspace/idle context
  can let other CPUs report its own RCU quiescent state on its behalf
  and shut down the tick safely, provided it isn't needed for other
  reasons than RCU. This is called RCU extended quiescent state.

  This was already implemented for idle and userspace. This patchset now
  brings it for guest contexts through the following steps:

  - Generalize the context tracking APIs to also track guest state
  - Rename/sanitize a few CPP symbols accordingly
  - Report guest entry/exit to RCU and define this context area as an RCU
    extended quiescent state."

Signed-off-by: Ingo Molnar <mingo@kernel.org>