From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752202AbdI2Kk6 (ORCPT ); Fri, 29 Sep 2017 06:40:58 -0400 Received: from mail-oi0-f66.google.com ([209.85.218.66]:33925 "EHLO mail-oi0-f66.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751456AbdI2Kkz (ORCPT ); Fri, 29 Sep 2017 06:40:55 -0400 X-Google-Smtp-Source: AOwi7QABfrzMQbUneEajnsz6pYHnz+3WWryUavjXbX0puyVhX/bM0D6dGA9X8v5uyymocLu6HEzAhg== Cc: linux-kernel@vger.kernel.org, kvm@vger.kernel.org, wanpeng.li@hotmail.com, mst@redhat.com, pbonzini@redhat.com, tglx@linutronix.de, rkrcmar@redhat.com, dmatlack@google.com, agraf@suse.de, peterz@infradead.org, linux-doc@vger.kernel.org, Ingo Molnar , "H. Peter Anvin" , x86@kernel.org, Kyle Huey , Andy Lutomirski , Len Brown Subject: Re: [RFC PATCH v2 3/7] sched/idle: Add poll before enter real idle path From: Quan Xu To: Borislav Petkov , Yang Zhang References: <1504007201-12904-1-git-send-email-yang.zhang.wz@gmail.com> <1504007201-12904-4-git-send-email-yang.zhang.wz@gmail.com> <20170829143909.thgizi4myouyt3ch@pd.tnic> Message-ID: <2c4fc9d1-3e57-19ae-7b68-7bbeeaed3ccf@gmail.com> Date: Fri, 29 Sep 2017 18:39:33 +0800 User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:52.0) Gecko/20100101 Thunderbird/52.3.0 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 2017/9/1 14:49, Quan Xu wrote: > on 2017/8/29 22:39, Borislav Petkov wrote: >> On Tue, Aug 29, 2017 at 11:46:37AM +0000, Yang Zhang wrote: >>> Add poll in do_idle. For UP VM, if there are running task, it will not >>> goes into idle path, so we only enable poll in SMP VM. >>> >>> Signed-off-by: Yang Zhang >>> Signed-off-by: Quan Xu >>> Cc: Thomas Gleixner >>> Cc: Ingo Molnar >>> Cc: "H. Peter Anvin" >>> Cc: x86@kernel.org >>> Cc: Peter Zijlstra >>> Cc: Borislav Petkov >>> Cc: Kyle Huey >>> Cc: Andy Lutomirski >>> Cc: Len Brown >>> Cc: linux-kernel@vger.kernel.org >>> --- >>>   arch/x86/kernel/process.c | 7 +++++++ >>>   kernel/sched/idle.c       | 2 ++ >>>   2 files changed, 9 insertions(+) >>> >>> diff --git a/arch/x86/kernel/process.c b/arch/x86/kernel/process.c >>> index 3ca1980..def4113 100644 >>> --- a/arch/x86/kernel/process.c >>> +++ b/arch/x86/kernel/process.c >>> @@ -332,6 +332,13 @@ void arch_cpu_idle(void) >>>       x86_idle(); >>>   } >>>   +#if defined(CONFIG_SMP) && defined(CONFIG_PARAVIRT) >>> +void arch_cpu_idle_poll(void) >>> +{ >>> +    paravirt_idle_poll(); >>> +} >>> +#endif >> So this will get called on any system which has CONFIG_PARAVIRT enabled >> *even* if they're not running any guests. >> >> Huh?      Borislav,      think twice, it is better to run ander an IF condition, to make sure they are running any guests.       Quan > Borislav , >    yes, this will get called on any system which has CONFIG_PARAVIRT > enabled. > >    but if they are not running any guests,  the callback is > paravirt_nop() , >    IIUC which is as similar as the other paravirt_*, such as > paravirt_pgd_free().. > >  - Quan