diff options
author | Frans Kaashoek <[email protected]> | 2019-07-02 09:14:47 -0400 |
---|---|---|
committer | Frans Kaashoek <[email protected]> | 2019-07-02 09:14:47 -0400 |
commit | 67702cf706bce7adef472f0caa48d81ddfaeb33a (patch) | |
tree | fd61e4036c4f5ec0944c987a7dffc9c04422d8c6 /kernel/proc.h | |
parent | 535ac52efadc5c5cdb0483ad55c306cfaff71d50 (diff) | |
download | xv6-labs-67702cf706bce7adef472f0caa48d81ddfaeb33a.tar.gz xv6-labs-67702cf706bce7adef472f0caa48d81ddfaeb33a.tar.bz2 xv6-labs-67702cf706bce7adef472f0caa48d81ddfaeb33a.zip |
Checkpoint switching to per-process locks, in attempt clarify xv6's
locking plan, which is a difficult to understand because ptable lock
protects many invariants. This implementation has a bug: once in a
while xv6 unlocks a proc lock that is locked by another core.
Diffstat (limited to 'kernel/proc.h')
-rw-r--r-- | kernel/proc.h | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/kernel/proc.h b/kernel/proc.h index 278e4cd..0fa61ff 100644 --- a/kernel/proc.h +++ b/kernel/proc.h @@ -82,6 +82,7 @@ enum procstate { UNUSED, EMBRYO, SLEEPING, RUNNABLE, RUNNING, ZOMBIE }; // Per-process state struct proc { + struct spinlock lock; char *kstack; // Bottom of kernel stack for this process uint64 sz; // Size of process memory (bytes) pagetable_t pagetable; // Page table |