Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openanolis
cloud-kernel
提交
b70c0fa1
cloud-kernel
项目概览
openanolis
/
cloud-kernel
大约 1 年 前同步成功
通知
158
Star
36
Fork
7
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
10
列表
看板
标记
里程碑
合并请求
2
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
cloud-kernel
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
10
Issue
10
列表
看板
标记
里程碑
合并请求
2
合并请求
2
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
b70c0fa1
编写于
1月 31, 2006
作者:
D
David S. Miller
提交者:
David S. Miller
3月 20, 2006
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
[SPARC64]: Preload TSB entries from update_mmu_cache().
Signed-off-by:
N
David S. Miller
<
davem@davemloft.net
>
上级
bd40791e
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
29 addition
and
0 deletion
+29
-0
arch/sparc64/kernel/tsb.S
arch/sparc64/kernel/tsb.S
+17
-0
arch/sparc64/mm/init.c
arch/sparc64/mm/init.c
+10
-0
include/asm-sparc64/mmu.h
include/asm-sparc64/mmu.h
+2
-0
未找到文件。
arch/sparc64/kernel/tsb.S
浏览文件 @
b70c0fa1
...
...
@@ -126,6 +126,23 @@ winfix_trampoline:
wrpr
%
g3
,
%
tnpc
!
Write
it
into
TNPC
done
!
Trap
return
/
*
Insert
an
entry
into
the
TSB
.
*
*
%
o0
:
TSB
entry
pointer
*
%
o1
:
tag
*
%
o2
:
pte
*/
.
align
32
.
globl
tsb_insert
tsb_insert
:
rdpr
%
pstate
,
%
o5
wrpr
%
o5
,
PSTATE_IE
,
%
pstate
TSB_LOCK_TAG
(%
o0
,
%
g2
,
%
g3
)
TSB_WRITE
(%
o0
,
%
o2
,
%
o1
)
wrpr
%
o5
,
%
pstate
retl
nop
/
*
Reload
MMU
related
context
switch
state
at
*
schedule
()
time
.
*
...
...
arch/sparc64/mm/init.c
浏览文件 @
b70c0fa1
...
...
@@ -277,6 +277,16 @@ void update_mmu_cache(struct vm_area_struct *vma, unsigned long address, pte_t p
mm_rss
=
get_mm_rss
(
mm
);
if
(
mm_rss
>=
mm
->
context
.
tsb_rss_limit
)
tsb_grow
(
mm
,
mm_rss
,
GFP_ATOMIC
);
if
((
pte_val
(
pte
)
&
_PAGE_ALL_SZ_BITS
)
==
_PAGE_SZBITS
)
{
struct
tsb
*
tsb
;
unsigned
long
tag
;
tsb
=
&
mm
->
context
.
tsb
[(
address
>>
PAGE_SHIFT
)
&
(
mm
->
context
.
tsb_nentries
-
1UL
)];
tag
=
(
address
>>
22UL
)
|
CTX_HWBITS
(
mm
->
context
)
<<
48UL
;
tsb_insert
(
tsb
,
tag
,
pte_val
(
pte
));
}
}
void
flush_dcache_page
(
struct
page
*
page
)
...
...
include/asm-sparc64/mmu.h
浏览文件 @
b70c0fa1
...
...
@@ -97,6 +97,8 @@ struct tsb {
unsigned
long
pte
;
}
__attribute__
((
aligned
(
TSB_ENTRY_ALIGNMENT
)));
extern
void
tsb_insert
(
struct
tsb
*
ent
,
unsigned
long
tag
,
unsigned
long
pte
);
typedef
struct
{
unsigned
long
sparc64_ctx_val
;
struct
tsb
*
tsb
;
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录