提交 3bda7e20 创建 作者: Nickolai Zeldovich's avatar Nickolai Zeldovich

cache line alignment

上级 20caefe7
...@@ -7,6 +7,6 @@ struct kmem { ...@@ -7,6 +7,6 @@ struct kmem {
struct spinlock lock; struct spinlock lock;
struct run *freelist; struct run *freelist;
uint nfree; uint nfree;
}; } __attribute__ ((aligned (CACHELINE)));
extern struct kmem kmems[NCPU]; extern struct kmem kmems[NCPU];
...@@ -13,3 +13,4 @@ ...@@ -13,3 +13,4 @@
#define MAXNAME 16 // max string names #define MAXNAME 16 // max string names
#define MINCYCTHRESH 1000000 // min cycles a proc executes on a core before allowed to be stolen #define MINCYCTHRESH 1000000 // min cycles a proc executes on a core before allowed to be stolen
#define INF 0xFFFFFFFF #define INF 0xFFFFFFFF
#define CACHELINE 64 // cache line size
...@@ -115,19 +115,19 @@ struct cpu { ...@@ -115,19 +115,19 @@ struct cpu {
struct proc *proc; // The currently-running process. struct proc *proc; // The currently-running process.
struct kmem *kmem; // The per-core memory table struct kmem *kmem; // The per-core memory table
struct runq *runq; // The per-core runq struct runq *runq; // The per-core runq
}; } __attribute__ ((aligned (CACHELINE)));
struct runq { struct runq {
char name[MAXNAME]; char name[MAXNAME];
struct spinlock lock; struct spinlock lock;
STAILQ_HEAD(runlist, proc) runq; STAILQ_HEAD(runlist, proc) runq;
}; } __attribute__ ((aligned (CACHELINE)));
struct condtab { struct condtab {
char name[MAXNAME]; char name[MAXNAME];
struct spinlock lock; struct spinlock lock;
struct condvar condtab[NPROC]; struct condvar condtab[NPROC];
}; } __attribute__ ((aligned (CACHELINE)));
extern struct cpu cpus[NCPU]; extern struct cpu cpus[NCPU];
extern struct runq runqs[NCPU]; extern struct runq runqs[NCPU];
......
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论