diff options
| author | rtm <rtm> | 2006-07-12 15:35:33 +0000 | 
|---|---|---|
| committer | rtm <rtm> | 2006-07-12 15:35:33 +0000 | 
| commit | 6eb6f10c5668bc2bdf5e561e0060e7e917ed55c1 (patch) | |
| tree | 8245cefe266e75ca9836cbde2f86114cb6222fe4 /Notes | |
| parent | 8148b6ee535b85e97f3b5f3a850b70fdfbbcaf2d (diff) | |
| download | xv6-labs-6eb6f10c5668bc2bdf5e561e0060e7e917ed55c1.tar.gz xv6-labs-6eb6f10c5668bc2bdf5e561e0060e7e917ed55c1.tar.bz2 xv6-labs-6eb6f10c5668bc2bdf5e561e0060e7e917ed55c1.zip | |
passes both usertests
exit had acquire where I meant release
swtch now checks that you hold no locks
Diffstat (limited to 'Notes')
| -rw-r--r-- | Notes | 23 | 
1 files changed, 6 insertions, 17 deletions
| @@ -114,26 +114,15 @@ wakeup needs proc_table_lock    so we need recursive locks?    or you must hold the lock to call wakeup? -if locks contain proc *, they can't be used at interrupt time -  only proc_table_lock will be used at interrupt time? -  maybe it doesn't matter if we use curproc? -  in general, the table locks protect both free-ness and    public variables of table elements    in many cases you can use table elements w/o a lock    e.g. if you are the process, or you are using an fd -why can't i get a lock in console code? -  always triple fault -  because release turns on interrupts! -  a bad idea very early in main() -  but mp_init() calls cprintf -  lock code shouldn't call cprintf... -ide_init doesn't work now? -and IOAPIC: read from unsupported address -  when running pre-empt user test -  so maybe something wrong with clock interrupts -  no! if one cpu holds lock w/ curproc0=, -    then another cpu can take it, it looks like -    a recursive acquire() + +nasty hack to allow locks before first process, +  and to allow them in interrupts when curproc may be zero + +race between release and sleep in sys_wait() +race between sys_exit waking up parent and setting state=ZOMBIE | 
