[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <CAFTL4hy1PB3u+i3xEXvz0Zt4kNQx9ioAHaM2BPMfXiNm7Koxmg@mail.gmail.com>
Date: Tue, 27 Nov 2012 23:53:07 +0100
From: Frederic Weisbecker <fweisbec@...il.com>
To: Gleb Natapov <gleb@...hat.com>
Cc: Li Zhong <zhong@...ux.vnet.ibm.com>,
linux-next list <linux-next@...r.kernel.org>,
LKML <linux-kernel@...r.kernel.org>, paulmck@...ux.vnet.ibm.com,
sasha.levin@...cle.com, avi@...hat.com
Subject: Re: [RFC PATCH] Fix abnormal rcu dynticks_nesting values related to
async page fault
2012/11/27 Gleb Natapov <gleb@...hat.com>:
> 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@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists