Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
X
xv6-public
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
统计图
问题
0
问题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
银宸时代
OS Lab Group
奖励实验
xv6-public
提交
bda02179
提交
bda02179
4月 11, 2012
创建
作者:
Austin Clements
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Yikes. Fix format specifiers throughout ascopes and avars
上级
423e4293
隐藏空白字符变更
内嵌
并排
正在显示
3 个修改的文件
包含
12 行增加
和
12 行删除
+12
-12
futex.cc
kernel/futex.cc
+5
-5
sysproc.cc
kernel/sysproc.cc
+2
-2
vm.cc
kernel/vm.cc
+5
-5
没有找到文件。
kernel/futex.cc
浏览文件 @
bda02179
...
@@ -172,7 +172,7 @@ futexwait(futexkey_t key, u64 val, u64 timer)
...
@@ -172,7 +172,7 @@ futexwait(futexkey_t key, u64 val, u64 timer)
{
{
futexaddr
*
fa
;
futexaddr
*
fa
;
mtreadavar
(
"futex:ns:%
lx
"
,
key
);
mtreadavar
(
"futex:ns:%
p
"
,
key
);
{
{
scoped_gc_epoch
gc
;
scoped_gc_epoch
gc
;
again
:
again
:
...
@@ -187,7 +187,7 @@ futexwait(futexkey_t key, u64 val, u64 timer)
...
@@ -187,7 +187,7 @@ futexwait(futexkey_t key, u64 val, u64 timer)
fa
->
dec
();
fa
->
dec
();
goto
again
;
goto
again
;
}
}
mtwriteavar
(
"futex:ns:%
lx
"
,
key
);
mtwriteavar
(
"futex:ns:%
p
"
,
key
);
fa
->
inserted_
=
true
;
fa
->
inserted_
=
true
;
}
else
{
}
else
{
if
(
!
fa
->
tryinc
())
{
if
(
!
fa
->
tryinc
())
{
...
@@ -196,7 +196,7 @@ futexwait(futexkey_t key, u64 val, u64 timer)
...
@@ -196,7 +196,7 @@ futexwait(futexkey_t key, u64 val, u64 timer)
}
}
}
}
assert
(
fa
->
key_
==
key
);
assert
(
fa
->
key_
==
key
);
mtwriteavar
(
"futex:%
lx
.%p"
,
key
,
fa
);
mtwriteavar
(
"futex:%
p
.%p"
,
key
,
fa
);
acquire
(
&
myproc
()
->
futex_lock
);
acquire
(
&
myproc
()
->
futex_lock
);
auto
cleanup
=
scoped_cleanup
([
&
fa
](){
auto
cleanup
=
scoped_cleanup
([
&
fa
](){
...
@@ -232,7 +232,7 @@ futexwake(futexkey_t key, u64 nwake)
...
@@ -232,7 +232,7 @@ futexwake(futexkey_t key, u64 nwake)
if
(
nwake
==
0
)
if
(
nwake
==
0
)
return
-
1
;
return
-
1
;
mtreadavar
(
"futex:ns:%
lx
"
,
key
);
mtreadavar
(
"futex:ns:%
p
"
,
key
);
{
{
scoped_gc_epoch
gc
;
scoped_gc_epoch
gc
;
fa
=
nsfutex
->
lookup
(
key
);
fa
=
nsfutex
->
lookup
(
key
);
...
@@ -243,7 +243,7 @@ futexwake(futexkey_t key, u64 nwake)
...
@@ -243,7 +243,7 @@ futexwake(futexkey_t key, u64 nwake)
auto
cleanup
=
scoped_cleanup
([
&
fa
](){
auto
cleanup
=
scoped_cleanup
([
&
fa
](){
fa
->
dec
();
fa
->
dec
();
});
});
mtwriteavar
(
"futex:%
lx
.%p"
,
key
,
fa
);
mtwriteavar
(
"futex:%
p
.%p"
,
key
,
fa
);
fa
->
nspid_
->
enumerate
([
&
nwoke
,
&
nwake
](
u32
pid
,
proc
*
p
)
{
fa
->
nspid_
->
enumerate
([
&
nwoke
,
&
nwake
](
u32
pid
,
proc
*
p
)
{
acquire
(
&
p
->
futex_lock
);
acquire
(
&
p
->
futex_lock
);
...
...
kernel/sysproc.cc
浏览文件 @
bda02179
...
@@ -104,7 +104,7 @@ sys_map(userptr<void> addr, size_t len)
...
@@ -104,7 +104,7 @@ sys_map(userptr<void> addr, size_t len)
ANON_REGION
(
__func__
,
&
perfgroup
);
ANON_REGION
(
__func__
,
&
perfgroup
);
#if MTRACE
#if MTRACE
mt_ascope
ascope
(
"%s(%p,%#lx)"
,
__func__
,
addr
,
len
);
mt_ascope
ascope
(
"%s(%p,%#lx)"
,
__func__
,
addr
.
unsafe_get
()
,
len
);
for
(
uptr
i
=
addr
/
PGSIZE
;
i
<
PGROUNDUP
(
addr
+
len
)
/
PGSIZE
;
i
++
)
for
(
uptr
i
=
addr
/
PGSIZE
;
i
<
PGROUNDUP
(
addr
+
len
)
/
PGSIZE
;
i
++
)
mtwriteavar
(
"pte:%p.%#lx"
,
myproc
()
->
vmap
,
i
);
mtwriteavar
(
"pte:%p.%#lx"
,
myproc
()
->
vmap
,
i
);
#endif
#endif
...
@@ -129,7 +129,7 @@ sys_unmap(userptr<void> addr, size_t len)
...
@@ -129,7 +129,7 @@ sys_unmap(userptr<void> addr, size_t len)
ANON_REGION
(
__func__
,
&
perfgroup
);
ANON_REGION
(
__func__
,
&
perfgroup
);
#if MTRACE
#if MTRACE
mt_ascope
ascope
(
"%s(%p,%#lx)"
,
__func__
,
addr
,
len
);
mt_ascope
ascope
(
"%s(%p,%#lx)"
,
__func__
,
addr
.
unsafe_get
()
,
len
);
for
(
uptr
i
=
addr
/
PGSIZE
;
i
<
PGROUNDUP
(
addr
+
len
)
/
PGSIZE
;
i
++
)
for
(
uptr
i
=
addr
/
PGSIZE
;
i
<
PGROUNDUP
(
addr
+
len
)
/
PGSIZE
;
i
++
)
mtwriteavar
(
"pte:%p.%#lx"
,
myproc
()
->
vmap
,
i
);
mtwriteavar
(
"pte:%p.%#lx"
,
myproc
()
->
vmap
,
i
);
#endif
#endif
...
...
kernel/vm.cc
浏览文件 @
bda02179
...
@@ -130,7 +130,7 @@ vmnode::loadpg(off_t off)
...
@@ -130,7 +130,7 @@ vmnode::loadpg(off_t off)
{
{
#ifdef MTRACE
#ifdef MTRACE
mtreadavar
(
"inode:%x.%x"
,
ip
->
dev
,
ip
->
inum
);
mtreadavar
(
"inode:%x.%x"
,
ip
->
dev
,
ip
->
inum
);
mtwriteavar
(
"vmnode:%
016x
"
,
this
);
mtwriteavar
(
"vmnode:%
p
"
,
this
);
#endif
#endif
assert
(
off
<=
sz
);
assert
(
off
<=
sz
);
...
@@ -627,7 +627,7 @@ vmap::pagefault(uptr va, u32 err)
...
@@ -627,7 +627,7 @@ vmap::pagefault(uptr va, u32 err)
*
pte
=
v2p
(
m
->
n
->
page
[
npg
])
|
PTE_P
|
PTE_U
|
PTE_W
;
*
pte
=
v2p
(
m
->
n
->
page
[
npg
])
|
PTE_P
|
PTE_U
|
PTE_W
;
}
}
mtreadavar
(
"vmnode:%
016x
"
,
m
->
n
);
mtreadavar
(
"vmnode:%
p
"
,
m
->
n
);
return
1
;
return
1
;
}
}
...
@@ -636,7 +636,7 @@ int
...
@@ -636,7 +636,7 @@ int
pagefault
(
vmap
*
vmap
,
uptr
va
,
u32
err
)
pagefault
(
vmap
*
vmap
,
uptr
va
,
u32
err
)
{
{
#if MTRACE
#if MTRACE
mt_ascope
ascope
(
"%s(%
p
)"
,
__func__
,
va
);
mt_ascope
ascope
(
"%s(%
#lx
)"
,
__func__
,
va
);
mtwriteavar
(
"pte:%p.%#lx"
,
vmap
,
va
/
PGSIZE
);
mtwriteavar
(
"pte:%p.%#lx"
,
vmap
,
va
/
PGSIZE
);
#endif
#endif
...
@@ -678,7 +678,7 @@ vmap::pagelookup(uptr va)
...
@@ -678,7 +678,7 @@ vmap::pagelookup(uptr va)
throw_bad_alloc
();
throw_bad_alloc
();
char
*
kptr
=
(
char
*
)(
m
->
n
->
page
[
npg
]);
char
*
kptr
=
(
char
*
)(
m
->
n
->
page
[
npg
]);
mtreadavar
(
"vmnode:%
016x
"
,
m
->
n
);
mtreadavar
(
"vmnode:%
p
"
,
m
->
n
);
return
&
kptr
[
va
&
(
PGSIZE
-
1
)];
return
&
kptr
[
va
&
(
PGSIZE
-
1
)];
}
}
...
@@ -686,7 +686,7 @@ void*
...
@@ -686,7 +686,7 @@ void*
pagelookup
(
vmap
*
vmap
,
uptr
va
)
pagelookup
(
vmap
*
vmap
,
uptr
va
)
{
{
#if MTRACE
#if MTRACE
mt_ascope
ascope
(
"%s(%
p
)"
,
__func__
,
va
);
mt_ascope
ascope
(
"%s(%
#lx
)"
,
__func__
,
va
);
mtwriteavar
(
"pte:%p.%#lx"
,
vmap
,
va
/
PGSIZE
);
mtwriteavar
(
"pte:%p.%#lx"
,
vmap
,
va
/
PGSIZE
);
#endif
#endif
...
...
编写
预览
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论