Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1755597Ab2K0WxK (ORCPT ); Tue, 27 Nov 2012 17:53:10 -0500 Received: from mail-vb0-f46.google.com ([209.85.212.46]:57927 "EHLO mail-vb0-f46.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753746Ab2K0WxI (ORCPT ); Tue, 27 Nov 2012 17:53:08 -0500 MIME-Version: 1.0 In-Reply-To: <20121127192748.GB7695@redhat.com> References: <1353993325.14050.49.camel@ThinkPad-T5421.cn.ibm.com> <20121127154455.GK12969@redhat.com> <20121127163910.GL12969@redhat.com> <20121127170026.GM12969@redhat.com> <20121127174737.GN12969@redhat.com> <20121127192748.GB7695@redhat.com> Date: Tue, 27 Nov 2012 23:53:07 +0100 Message-ID: Subject: Re: [RFC PATCH] Fix abnormal rcu dynticks_nesting values related to async page fault From: Frederic Weisbecker To: Gleb Natapov Cc: Li Zhong , linux-next list , LKML , paulmck@linux.vnet.ibm.com, sasha.levin@oracle.com, avi@redhat.com Content-Type: text/plain; charset=ISO-8859-1 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1282 Lines: 28 2012/11/27 Gleb Natapov : > What is the semantics of enter_idle()/exit_idle(), what are they used for? It's used by drivers/idle/i7300_idle.c for some tracking. I don't know much the details. enter_idle() is called right before the CPU is set to lower power mode: hlt() exit_idle() is called anytime we exit this low power mode: irq, polling on need_resched(), etc... > Not present fault happening in idle task does not mean we exit idle > task. If this happens exception handler will execute sti; hlt waiting > for missing page to be ready. Any interrupt happening during this hlt > will do exit_idle() by itself. Well, the code executed by this fault should be considered as an exit from idle mode. Now it's a small piece of code and we hlt() quickly so I guess getting of idle_exit() there wouldn't hurt much. It's buggy for now anyway due to that race where we may not have an opportunity to call back idle_enter() if the fault happens between the idle_enter() in the idle loop and the hlt() in the idle loop. -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/