From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753371AbbCJOhf (ORCPT ); Tue, 10 Mar 2015 10:37:35 -0400 Received: from mail-we0-f178.google.com ([74.125.82.178]:36590 "EHLO mail-we0-f178.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753251AbbCJOhb (ORCPT ); Tue, 10 Mar 2015 10:37:31 -0400 From: Frederic Weisbecker To: Ingo Molnar Cc: LKML , Frederic Weisbecker , Paolo Bonzini , Alexander Graf , Luiz Capitulino , Christian Borntraeger , Benjamin Herrenschmidt , Marcelo Tosatti , "Paul E . McKenney" , Andy Lutomirski , Will deacon , Rik van Riel , Thomas Gleixner Subject: [GIT PULL] nohz: Enable full dynticks on guest mode Date: Tue, 10 Mar 2015 15:37:11 +0100 Message-Id: <1425998238-4954-1-git-send-email-fweisbec@gmail.com> X-Mailer: git-send-email 2.1.4 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Ingo, Please pull the nohz/guest branch that can be found at: git://git.kernel.org/pub/scm/linux/kernel/git/frederic/linux-dynticks.git nohz/guest This is 4.1 material. HEAD: 126a6a542446f1a49b9f3c69237c87df3eb4e6e1 --- 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 vcpu runs, it consumes CPU time and cache 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 implemented for idle and userspace. This patchset now brings it for guest through the following steps: * Generalize the context tracking APIs to also track guest * Rename/sanitize a few CPP symbols accordingly * Report guest entry/exit to RCU and define this context area as an RCU extended quiescent state. --- Thanks, Frederic --- Rik van Riel (5): context_tracking: Generalize context tracking APIs to support user and guest context_tracking: Add stub context_tracking_is_enabled context_tracking: Run vtime_user_enter/exit only when state == CONTEXT_USER context_tracking: Export context_tracking_user_enter/exit kvm,rcu,nohz: use RCU extended quiescent state when running KVM guest Frederic Weisbecker (2): ppc: Remove unused cpp symbols in kvm headers context_tracking: Rename context symbols to prepare for transition state arch/powerpc/include/asm/kvm_book3s.h | 4 --- arch/x86/kernel/traps.c | 2 +- include/linux/context_tracking.h | 15 +++++++-- include/linux/context_tracking_state.h | 9 ++++-- include/linux/kvm_host.h | 3 +- kernel/context_tracking.c | 59 ++++++++++++++++++++++------------ kernel/sched/core.c | 2 +- 7 files changed, 61 insertions(+), 33 deletions(-)