Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openanolis
cloud-kernel
提交
2ef27778
cloud-kernel
项目概览
openanolis
/
cloud-kernel
1 年多 前同步成功
通知
160
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看板
提交
2ef27778
编写于
8月 30, 2005
作者:
D
David S. Miller
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
[SPARC64]: Preserve nucleus ctx page size during TLB flushes.
Signed-off-by:
N
David S. Miller
<
davem@davemloft.net
>
上级
3c2cafaf
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
25 addition
and
14 deletion
+25
-14
arch/sparc64/mm/ultra.S
arch/sparc64/mm/ultra.S
+25
-14
未找到文件。
arch/sparc64/mm/ultra.S
浏览文件 @
2ef27778
...
...
@@ -10,6 +10,7 @@
#include <asm/page.h>
#include <asm/spitfire.h>
#include <asm/mmu_context.h>
#include <asm/mmu.h>
#include <asm/pil.h>
#include <asm/head.h>
#include <asm/thread_info.h>
...
...
@@ -45,6 +46,8 @@ __flush_tlb_mm: /* %o0=(ctx & TAG_CONTEXT_BITS), %o1=SECONDARY_CONTEXT */
nop
nop
nop
nop
nop
.
align
32
.
globl
__flush_tlb_pending
...
...
@@ -73,6 +76,9 @@ __flush_tlb_pending:
retl
wrpr
%
g7
,
0x0
,
%
pstate
nop
nop
nop
nop
.
align
32
.
globl
__flush_tlb_kernel_range
...
...
@@ -224,16 +230,8 @@ __update_mmu_cache: /* %o0=hw_context, %o1=address, %o2=pte, %o3=fault_code */
or
%
o5
,
%
o0
,
%
o5
ba
,
a
,
pt
%
xcc
,
__prefill_itlb
/
*
Cheetah
specific
versions
,
patched
at
boot
time
.
*
*
This
writes
of
the
PRIMARY_CONTEXT
register
in
this
file
are
*
safe
even
on
Cheetah
+
and
later
wrt
.
the
page
size
fields
.
*
The
nucleus
page
size
fields
do
not
matter
because
we
make
*
no
data
references
,
and
these
instructions
execute
out
of
a
*
locked
I
-
TLB
entry
sitting
in
the
fully
assosciative
I
-
TLB
.
*
This
sequence
should
also
never
trap
.
*/
__cheetah_flush_tlb_mm
:
/
*
15
insns
*/
/
*
Cheetah
specific
versions
,
patched
at
boot
time
.
*/
__cheetah_flush_tlb_mm
:
/
*
18
insns
*/
rdpr
%
pstate
,
%
g7
andn
%
g7
,
PSTATE_IE
,
%
g2
wrpr
%
g2
,
0x0
,
%
pstate
...
...
@@ -241,6 +239,9 @@ __cheetah_flush_tlb_mm: /* 15 insns */
mov
PRIMARY_CONTEXT
,
%
o2
mov
0x40
,
%
g3
ldxa
[%
o2
]
ASI_DMMU
,
%
g2
srlx
%
g2
,
CTX_PGSZ1_NUC_SHIFT
,
%
o1
sllx
%
o1
,
CTX_PGSZ1_NUC_SHIFT
,
%
o1
or
%
o0
,
%
o1
,
%
o0
/*
Preserve
nucleus
page
size
fields
*/
stxa
%
o0
,
[%
o2
]
ASI_DMMU
stxa
%
g0
,
[%
g3
]
ASI_DMMU_DEMAP
stxa
%
g0
,
[%
g3
]
ASI_IMMU_DEMAP
...
...
@@ -250,7 +251,7 @@ __cheetah_flush_tlb_mm: /* 15 insns */
retl
wrpr
%
g7
,
0x0
,
%
pstate
__cheetah_flush_tlb_pending
:
/
*
2
3
insns
*/
__cheetah_flush_tlb_pending
:
/
*
2
6
insns
*/
/
*
%
o0
=
context
,
%
o1
=
nr
,
%
o2
=
vaddrs
[]
*/
rdpr
%
pstate
,
%
g7
sllx
%
o1
,
3
,
%
o1
...
...
@@ -259,6 +260,9 @@ __cheetah_flush_tlb_pending: /* 23 insns */
wrpr
%
g0
,
1
,
%
tl
mov
PRIMARY_CONTEXT
,
%
o4
ldxa
[%
o4
]
ASI_DMMU
,
%
g2
srlx
%
g2
,
CTX_PGSZ1_NUC_SHIFT
,
%
o3
sllx
%
o3
,
CTX_PGSZ1_NUC_SHIFT
,
%
o3
or
%
o0
,
%
o3
,
%
o0
/*
Preserve
nucleus
page
size
fields
*/
stxa
%
o0
,
[%
o4
]
ASI_DMMU
1
:
sub
%
o1
,
(
1
<<
3
),
%
o1
ldx
[%
o2
+
%
o1
],
%
o3
...
...
@@ -311,14 +315,14 @@ cheetah_patch_cachetlbops:
sethi
%
hi
(
__cheetah_flush_tlb_mm
),
%
o1
or
%
o1
,
%
lo
(
__cheetah_flush_tlb_mm
),
%
o1
call
cheetah_patch_one
mov
1
5
,
%
o2
mov
1
8
,
%
o2
sethi
%
hi
(
__flush_tlb_pending
),
%
o0
or
%
o0
,
%
lo
(
__flush_tlb_pending
),
%
o0
sethi
%
hi
(
__cheetah_flush_tlb_pending
),
%
o1
or
%
o1
,
%
lo
(
__cheetah_flush_tlb_pending
),
%
o1
call
cheetah_patch_one
mov
2
3
,
%
o2
mov
2
6
,
%
o2
#ifdef DCACHE_ALIASING_POSSIBLE
sethi
%
hi
(
__flush_dcache_page
),
%
o0
...
...
@@ -352,9 +356,12 @@ cheetah_patch_cachetlbops:
.
globl
xcall_flush_tlb_mm
xcall_flush_tlb_mm
:
mov
PRIMARY_CONTEXT
,
%
g2
mov
0x40
,
%
g4
ldxa
[%
g2
]
ASI_DMMU
,
%
g3
srlx
%
g3
,
CTX_PGSZ1_NUC_SHIFT
,
%
g4
sllx
%
g4
,
CTX_PGSZ1_NUC_SHIFT
,
%
g4
or
%
g5
,
%
g4
,
%
g5
/*
Preserve
nucleus
page
size
fields
*/
stxa
%
g5
,
[%
g2
]
ASI_DMMU
mov
0x40
,
%
g4
stxa
%
g0
,
[%
g4
]
ASI_DMMU_DEMAP
stxa
%
g0
,
[%
g4
]
ASI_IMMU_DEMAP
stxa
%
g3
,
[%
g2
]
ASI_DMMU
...
...
@@ -366,6 +373,10 @@ xcall_flush_tlb_pending:
sllx
%
g1
,
3
,
%
g1
mov
PRIMARY_CONTEXT
,
%
g4
ldxa
[%
g4
]
ASI_DMMU
,
%
g2
srlx
%
g2
,
CTX_PGSZ1_NUC_SHIFT
,
%
g4
sllx
%
g4
,
CTX_PGSZ1_NUC_SHIFT
,
%
g4
or
%
g5
,
%
g4
,
%
g5
mov
PRIMARY_CONTEXT
,
%
g4
stxa
%
g5
,
[%
g4
]
ASI_DMMU
1
:
sub
%
g1
,
(
1
<<
3
),
%
g1
ldx
[%
g7
+
%
g1
],
%
g5
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录