Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
X
xv6-public
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
统计图
问题
0
问题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
银宸时代
OS Lab Group
奖励实验
xv6-public
提交
a47f4a3f
提交
a47f4a3f
4月 01, 2012
创建
作者:
Silas Boyd-Wickizer
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
param.h tweaks
上级
bdd6f279
隐藏空白字符变更
内嵌
并排
正在显示
3 个修改的文件
包含
23 行增加
和
42 行删除
+23
-42
kalloc.cc
kernel/kalloc.cc
+0
-20
kmalloc.cc
kernel/kmalloc.cc
+0
-1
param.h
param.h
+23
-21
没有找到文件。
kernel/kalloc.cc
浏览文件 @
a47f4a3f
...
...
@@ -315,7 +315,6 @@ initkalloc(u64 mbaddr)
void
kfree
(
void
*
v
)
{
verifyfree
((
char
*
)
v
,
mykmem
()
->
size
);
kfree_pool
(
mykmem
(),
(
char
*
)
v
);
}
...
...
@@ -324,22 +323,3 @@ ksfree(int slab, void *v)
{
kfree_pool
(
slabmem
[
slab
],
(
char
*
)
v
);
}
void
verifyfree
(
char
*
ptr
,
u64
nbytes
)
{
#if VERIFYFREE
char
*
p
=
ptr
;
char
*
e
=
p
+
nbytes
;
for
(;
p
<
e
;
p
++
)
{
// Search for pointers in the ptr region
u64
x
=
*
(
uptr
*
)
p
;
if
((
KBASE
<
x
&&
x
<
KBASE
+
(
128ull
<<
30
))
||
(
KCODE
<
x
))
{
struct
klockstat
*
kls
=
(
struct
klockstat
*
)
x
;
if
(
kls
->
magic
==
LOCKSTAT_MAGIC
)
panic
(
"LOCKSTAT_MAGIC %p(%lu):%p->%p"
,
ptr
,
nbytes
,
p
,
kls
);
}
}
#endif
}
kernel/kmalloc.cc
浏览文件 @
a47f4a3f
...
...
@@ -117,7 +117,6 @@ kmfree(void *ap, u64 nbytes)
int
b
=
bucket
(
nbytes
);
struct
header
*
h
=
(
struct
header
*
)
ap
;
verifyfree
((
char
*
)
ap
,
(
1
<<
b
));
if
(
ALLOC_MEMSET
)
memset
(
ap
,
3
,
(
1
<<
b
));
...
...
param.h
浏览文件 @
a47f4a3f
#pragma once
#define DEBUG 0
#define NPROC 64 // maximum number of processes
#define KSTACKSIZE 8192 // size of per-process kernel stack
#define NOFILE 64 // open files per process
...
...
@@ -14,13 +13,11 @@
#define CACHELINE 64 // cache line size
#define CPUKSTACKS (NPROC + NCPU*2)
#define QUANTUM 10 // scheduling time quantum and tick length (in msec)
#define CILKSHIFT 4 // 2^WORKSHIFT work queue slots
#define VICTIMAGE 1000000 // cycles a proc executes before an eligible victim
#define VERBOSE 0 // print kernel diagnostics
#define SPINLOCK_DEBUG DEBUG // Debug spin locks
#define RCU_TYPE_DEBUG DEBUG
#define LOCKSTAT DEBUG
#define VERIFYFREE 0 // Unreliable, e.g. vma's vmnode pointer gets reused
#define ALLOC_MEMSET DEBUG
#define KSHAREDSIZE (32 << 10)
#define USERWQSIZE (1 << 14)
...
...
@@ -28,29 +25,34 @@
#define WQSHIFT 7
#define CILKENABLE 0
#if defined(HW_qemu)
#define NCPU 8 // maximum number of CPUs
#define MTRACE 0
#define PERFSIZE (16<<20ull)
#define NCPU
8 // maximum number of CPUs
#define MTRACE
0
#define PERFSIZE
(16<<20ull)
#elif defined(HW_josmp)
#define NCPU 16 // maximum number of CPUs
#define MTRACE 0
#define PERFSIZE (1<<20ull)
#define DEBUG 0
#define NCPU 16 // maximum number of CPUs
#define MTRACE 0
#define PERFSIZE (1<<20ull)
#elif defined(HW_ud0)
#define NCPU 4 // maximum number of CPUs
#define MTRACE 0
#define PERFSIZE (512<<20ull)
#define NCPU
4 // maximum number of CPUs
#define MTRACE
0
#define PERFSIZE
(512<<20ull)
#elif defined(HW_tom)
#define NCPU 48 // maximum number of CPUs
#define MTRACE 0
#define PERFSIZE (1<<20ull)
#define NCPU
48 // maximum number of CPUs
#define MTRACE
0
#define PERFSIZE
(1<<20ull)
#elif defined(HW_user)
#define NCPU 256
#define MTRACE 0
#define PERFSIZE (16<<20ull)
#define NCPU
256
#define MTRACE
0
#define PERFSIZE
(16<<20ull)
#elif defined(HW_wq)
#define NCPU 2
#define MTRACE 0
#define PERFSIZE (16<<20ull)
#define NCPU
2
#define MTRACE
0
#define PERFSIZE
(16<<20ull)
#else
#error "Unknown HW"
#endif
#ifndef DEBUG
#define DEBUG 1
#endif
编写
预览
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论