提交 f99953a0 创建 作者: Silas Boyd-Wickizer's avatar Silas Boyd-Wickizer

Rejigger param.h, add per-machine options.

e.g. "make" and "make HW=qemu" build for qemu "make HW=josmp" builds for josmp
上级 96d12f3e
#pragma once
#define NPROC 64 // maximum number of processes
#define KSTACKSIZE 8192 // size of per-process kernel stack
#define NCPU 4 // maximum number of CPUs
#define NOFILE 16 // open files per process
#define NFILE 100 // open files per system
#define NBUF 10000 // size of disk block cache
......@@ -10,12 +9,21 @@
#define ROOTDEV 1 // device number of file system root disk
#define MAXARG 32 // max exec arguments
#define MAXNAME 16 // max string names
#define MINCYCTHRESH 1000000 // min cycles a proc executes on a core before allowed to be stolen
#define INF (~0UL)
#define CACHELINE 64 // cache line size
#define MTRACE 0
#define PHYSTOP 0xE000000 // use phys mem up to here as free pool
#define CPUKSTACKS (NPROC + NCPU)
#define QUANTUN 10 // scheduling time quantum and tick length (in msec)
#define WQSHIFT 4 // 2^WORKSHIFT work queue slots
#define PHYSTOP 0xE000000 // use phys mem up to here as free pool
#define VICTIMAGE 1000000 // cycles a proc executes before an eligible victim
#if defined(HW_josmp)
#define NCPU 16 // maximum number of CPUs
#define MTRACE 0
#define WQENABLE 0 // Enable work queue
#elif defined(HW_qemu)
#define NCPU 4 // maximum number of CPUs
#define MTRACE 0
#define WQENABLE 0 // Enable work queue
#else
#error "Unknown HW"
#endif
......@@ -69,7 +69,7 @@ steal(void)
acquire(&q->lock);
STAILQ_FOREACH(p, &q->q, runqlink) {
if (p->state == RUNNABLE && !p->cpu_pin &&
p->curcycles != 0 && p->curcycles > MINCYCTHRESH)
p->curcycles != 0 && p->curcycles > VICTIMAGE)
{
steal = p;
break;
......@@ -80,7 +80,7 @@ steal(void)
if (steal) {
acquire(&steal->lock);
if (steal->state == RUNNABLE && !steal->cpu_pin &&
steal->curcycles != 0 && steal->curcycles > MINCYCTHRESH)
steal->curcycles != 0 && steal->curcycles > VICTIMAGE)
{
delrun(steal);
steal->curcycles = 0;
......@@ -182,7 +182,7 @@ steal_cb(void *vk, void *v, void *arg)
return 0;
}
if (p->curcycles == 0 || p->curcycles > MINCYCTHRESH) {
if (p->curcycles == 0 || p->curcycles > VICTIMAGE) {
if (sched_debug)
cprintf("cpu%d: steal %d (cycles=%d) from %d\n",
mycpu()->id, p->pid, (int)p->curcycles, p->cpuid);
......
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论