Pad and align percpu array elements

上级 8be977ab
struct pad {
__padout__;
} __mpalign__;
template <typename T> template <typename T>
struct percpu { struct percpu {
int myid() { int myid() {
...@@ -25,8 +21,11 @@ struct percpu { ...@@ -25,8 +21,11 @@ struct percpu {
} }
T* cpu(int id) { T* cpu(int id) {
return &v_[id]; return &pad_[id].v_;
} }
T v_[NCPU] __mpalign__; struct {
T v_ __mpalign__;
__padout__;
} pad_[NCPU];
}; };
...@@ -8,7 +8,7 @@ ...@@ -8,7 +8,7 @@
#include "sched.hh" #include "sched.hh"
#include "percpu.hh" #include "percpu.hh"
struct idle : public pad { struct idle {
struct proc *cur; struct proc *cur;
struct proc *heir; struct proc *heir;
SLIST_HEAD(zombies, proc) zombies; SLIST_HEAD(zombies, proc) zombies;
......
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论