lkml.org 
[lkml]   [2012]   [Nov]   [27]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
SubjectRe: [RFC PATCH] Fix abnormal rcu dynticks_nesting values related to async page fault
From
2012/11/27 Gleb Natapov <gleb@redhat.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.


\
 
 \ /
  Last update: 2012-11-28 00:01    [W:0.062 / U:0.720 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site