当前位置: 技术问答>linux和unix
mwait_idle函数的具体含义
来源: 互联网 发布时间:2017-01-31
本文导语: 如下是内核开源的process.c实现,看英文的注释,是缺省情况下的无提示的等待、监控操作,用于C1 state的监控? 看注释是大概了解,哪位高手能解读一下下面的代码实现,以及这个函数典型的应用场景和限制。 先行...
如下是内核开源的process.c实现,看英文的注释,是缺省情况下的无提示的等待、监控操作,用于C1 state的监控?
看注释是大概了解,哪位高手能解读一下下面的代码实现,以及这个函数典型的应用场景和限制。
先行谢过!
/* Default MONITOR/MWAIT with no hints, used for default C1 state */
static void mwait_idle(void)
{
struct power_trace it;
if (!need_resched()) {
trace_power_start(&it, POWER_CSTATE, 1);
if (cpu_has(¤t_cpu_data, X86_FEATURE_CLFLUSH_MONITOR))
clflush((void *)¤t_thread_info()->flags);
__monitor((void *)¤t_thread_info()->flags, 0, 0);
smp_mb();
if (!need_resched())
__sti_mwait(0, 0);
else
local_irq_enable();
trace_power_end(&it);
} else
local_irq_enable();
}
看注释是大概了解,哪位高手能解读一下下面的代码实现,以及这个函数典型的应用场景和限制。
先行谢过!
/* Default MONITOR/MWAIT with no hints, used for default C1 state */
static void mwait_idle(void)
{
struct power_trace it;
if (!need_resched()) {
trace_power_start(&it, POWER_CSTATE, 1);
if (cpu_has(¤t_cpu_data, X86_FEATURE_CLFLUSH_MONITOR))
clflush((void *)¤t_thread_info()->flags);
__monitor((void *)¤t_thread_info()->flags, 0, 0);
smp_mb();
if (!need_resched())
__sti_mwait(0, 0);
else
local_irq_enable();
trace_power_end(&it);
} else
local_irq_enable();
}
|
不懂,顶一下。
|
貌似有点难
您可能感兴趣的文章:
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。