From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753864AbbCECPG (ORCPT ); Wed, 4 Mar 2015 21:15:06 -0500 Received: from mail-we0-f179.google.com ([74.125.82.179]:43955 "EHLO mail-we0-f179.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751941AbbCECPE (ORCPT ); Wed, 4 Mar 2015 21:15:04 -0500 From: Frederic Weisbecker To: LKML Cc: Frederic Weisbecker , Paolo Bonzini , Alexander Graf , Luiz Capitulino , Christian Borntraeger , Benjamin Herrenschmidt , Marcelo Tosatti , "Paul E . McKenney" , Andy Lutomirski , Will deacon , Rik van Riel Subject: [PATCH 0/7] nohz/rcu: Consider guest context as extended quiescent state (ie: enable full nohz on guest) Date: Thu, 5 Mar 2015 03:14:49 +0100 Message-Id: <1425521696-4471-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 Hi, Rik sent out this patchset a few weeks ago. It appears to be interesting to disable the tick on the host while the guest is running. 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 need to take part of RCU grace period completion as long as RCU may be used, which is the case in kernel context. However guest is similar to userspace and idle in that we know RCU is unused in such context. As such a guest/userspace/idle CPU can let other CPUs report its 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 brings it for guest. Before pushing to Ingo, I've just cleaned out a few boring details on naming and changelogs. So I'm just posting the whole in case somebody has a comment before doing the pull request in a few days Thanks. Frederic Weisbecker (2): ppc: Remove unused cpp symbols in kvm headers context_tracking: Rename context symbols to prepare for transition state 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 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(-) -- 2.1.4