Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openeuler
raspberrypi-kernel
提交
7d5b1583
R
raspberrypi-kernel
项目概览
openeuler
/
raspberrypi-kernel
通知
13
Star
1
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
R
raspberrypi-kernel
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
提交
7d5b1583
编写于
11年前
作者:
I
Ingo Molnar
浏览文件
操作
浏览文件
下载
差异文件
Merge branch 'core/urgent' into core/locking
Prepare for dependent patch. Signed-off-by:
N
Ingo Molnar
<
mingo@kernel.org
>
上级
e0edc78f
f1a83e65
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
47 addition
and
10 deletion
+47
-10
kernel/softirq.c
kernel/softirq.c
+45
-9
lib/Kconfig
lib/Kconfig
+2
-1
未找到文件。
kernel/softirq.c
浏览文件 @
7d5b1583
...
...
@@ -211,14 +211,52 @@ EXPORT_SYMBOL(local_bh_enable_ip);
#define MAX_SOFTIRQ_TIME msecs_to_jiffies(2)
#define MAX_SOFTIRQ_RESTART 10
#ifdef CONFIG_TRACE_IRQFLAGS
/*
* Convoluted means of passing __do_softirq() a message through the various
* architecture execute_on_stack() bits.
*
* When we run softirqs from irq_exit() and thus on the hardirq stack we need
* to keep the lockdep irq context tracking as tight as possible in order to
* not miss-qualify lock contexts and miss possible deadlocks.
*/
static
DEFINE_PER_CPU
(
int
,
softirq_from_hardirq
);
static
inline
void
lockdep_softirq_from_hardirq
(
void
)
{
this_cpu_write
(
softirq_from_hardirq
,
1
);
}
static
inline
void
lockdep_softirq_start
(
void
)
{
if
(
this_cpu_read
(
softirq_from_hardirq
))
trace_hardirq_exit
();
lockdep_softirq_enter
();
}
static
inline
void
lockdep_softirq_end
(
void
)
{
lockdep_softirq_exit
();
if
(
this_cpu_read
(
softirq_from_hardirq
))
{
this_cpu_write
(
softirq_from_hardirq
,
0
);
trace_hardirq_enter
();
}
}
#else
static
inline
void
lockdep_softirq_from_hardirq
(
void
)
{
}
static
inline
void
lockdep_softirq_start
(
void
)
{
}
static
inline
void
lockdep_softirq_end
(
void
)
{
}
#endif
asmlinkage
void
__do_softirq
(
void
)
{
struct
softirq_action
*
h
;
__u32
pending
;
unsigned
long
end
=
jiffies
+
MAX_SOFTIRQ_TIME
;
int
cpu
;
unsigned
long
old_flags
=
current
->
flags
;
int
max_restart
=
MAX_SOFTIRQ_RESTART
;
struct
softirq_action
*
h
;
__u32
pending
;
int
cpu
;
/*
* Mask out PF_MEMALLOC s current task context is borrowed for the
...
...
@@ -231,7 +269,7 @@ asmlinkage void __do_softirq(void)
account_irq_enter_time
(
current
);
__local_bh_disable
(
_RET_IP_
,
SOFTIRQ_OFFSET
);
lockdep_softirq_
enter
();
lockdep_softirq_
start
();
cpu
=
smp_processor_id
();
restart:
...
...
@@ -278,16 +316,13 @@ asmlinkage void __do_softirq(void)
wakeup_softirqd
();
}
lockdep_softirq_exit
();
lockdep_softirq_end
();
account_irq_exit_time
(
current
);
__local_bh_enable
(
SOFTIRQ_OFFSET
);
WARN_ON_ONCE
(
in_interrupt
());
tsk_restore_flags
(
current
,
old_flags
,
PF_MEMALLOC
);
}
asmlinkage
void
do_softirq
(
void
)
{
__u32
pending
;
...
...
@@ -330,6 +365,7 @@ void irq_enter(void)
static
inline
void
invoke_softirq
(
void
)
{
if
(
!
force_irqthreads
)
{
lockdep_softirq_from_hardirq
();
#ifdef CONFIG_HAVE_IRQ_EXIT_ON_IRQ_STACK
/*
* We can safely execute softirq on the current stack if
...
...
@@ -375,13 +411,13 @@ void irq_exit(void)
#endif
account_irq_exit_time
(
current
);
trace_hardirq_exit
();
preempt_count_sub
(
HARDIRQ_OFFSET
);
if
(
!
in_interrupt
()
&&
local_softirq_pending
())
invoke_softirq
();
tick_irq_exit
();
rcu_irq_exit
();
trace_hardirq_exit
();
/* must be last! */
}
/*
...
...
This diff is collapsed.
Click to expand it.
lib/Kconfig
浏览文件 @
7d5b1583
...
...
@@ -342,7 +342,8 @@ config CHECK_SIGNATURE
bool
config CPUMASK_OFFSTACK
bool "Force CPU masks off stack" if DEBUG_PER_CPU_MAPS
bool "Force CPU masks off stack"
depends on SMP
help
Use dynamic allocation for cpumask_var_t, instead of putting
them on the stack. This is a bit more expensive, but avoids
...
...
This diff is collapsed.
Click to expand it.
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录
新手
引导
客服
返回
顶部