Age | Commit message (Collapse) | Author | Files | Lines | |
---|---|---|---|---|---|
2008-10-15 | save cpus.intena in sched(), so we get the right EFLAGS.IF value once a | kolya | 1 | -1/+5 | |
timer-preempted kernel thread resumes execution in trap() after yield(). otherwise the kernel could get an arbitrary number of nested timer intrs. | |||||
2008-10-15 | check cp->killed before returning to user from a timer interrupt | kolya | 1 | -0/+4 | |
2008-10-15 | update .cvsignore | kolya | 1 | -0/+2 | |
2008-10-12 | minor cleanup | kolya | 2 | -3/+3 | |
2008-10-12 | minor cleanup with STUB macro | kolya | 1 | -1/+3 | |
2008-10-12 | include explicitly initialized globals (int x = 0;) in cross-refs, | kolya | 2 | -5/+2 | |
also thanks to greg price. | |||||
2008-10-12 | fix: when two names only differed in case, crossrefs only included one of them. | kolya | 1 | -1/+1 | |
thanks to greg price. | |||||
2008-10-08 | be clear what the root i-number is | rtm | 3 | -2/+3 | |
2008-09-28 | document lock->locked=0 vs xchg(&lock->locked, 0) | rtm | 1 | -4/+8 | |
2008-09-24 | trap 9 does not push ec: fix from Greg Price <[email protected]> | kolya | 1 | -1/+1 | |
2008-09-24 | always save and restore %fs, %gs to ensure old segment entries are never | kolya | 2 | -4/+12 | |
accessible to user from the hidden CPU segment registers. | |||||
2008-09-11 | restore std toolprefix | rtm | 2 | -2/+2 | |
2008-09-11 | omit *.d from tar file | rtm | 3 | -3/+2 | |
2008-09-09 | add copyright notice | kaashoek | 1 | -1/+2 | |
2008-09-03 | make bochsrc work for bochs 2.2.6 | kolya | 2 | -1/+1 | |
2008-09-03 | make pdf, ps, tarball | kolya | 3 | -12454/+12697 | |
2008-09-03 | nits in index.txt | kaashoek | 9 | -13/+19 | |
add slides for shell, x86 intro, x86 virtual memory (deleted JOS from slides) | |||||
2008-09-03 | DO NOT MAIL: xv6 web pages | rsc | 37 | -0/+9034 | |
2008-08-28 | simplify growproc | rtm | 1 | -3/+2 | |
2008-08-28 | avoid a bug w/ exit() | rtm | 1 | -0/+1 | |
2008-08-28 | the old explanation of AP startup might have been correct, but | rtm | 1 | -9/+10 | |
I understand this one. | |||||
2008-08-22 | clean up circular buffers, so pipe can queue 512 bytes rather than 511 | kolya | 2 | -14/+12 | |
2008-08-21 | fix obvious printf nits after reading through code | kolya | 2 | -2/+2 | |
2008-08-20 | now rev2 | rsc | 1 | -1/+1 | |
2008-08-20 | add nice font | rsc | 2 | -1/+704 | |
2008-08-20 | formatting updates | rsc | 2 | -43/+33 | |
2008-08-20 | bochs faster | rsc | 1 | -1/+1 | |
2008-08-20 | xv6: latest (as of January 2008) | rsc | 2 | -0/+0 | |
2007-12-20 | oops - wrong bit (vic zandy) | rsc | 1 | -1/+1 | |
2007-11-28 | fork minibug | rsc | 2 | -1/+27 | |
2007-11-28 | More complete lapic startup (thanks Silas) | rsc | 1 | -8/+26 | |
2007-11-28 | bda[0xE] is a 16-bit segment number, | rsc | 1 | -1/+1 | |
not a real address. So shift 4. Reported by Silas. Jim McKie says this code only matters on ancient EISA MP systems. | |||||
2007-10-20 | proc_wait -> wait | rtm | 1 | -1/+1 | |
2007-10-12 | Model verifying that wakeup really | rsc | 2 | -0/+150 | |
can be called after release without causing deadlock. | |||||
2007-10-01 | Incorporate new understanding of/with Intel SMP spec. | rsc | 5 | -36/+25 | |
Dropped cmpxchg in favor of xchg, to match lecture notes. Use xchg to release lock, for future protection and to keep gcc from acting clever. | |||||
2007-09-30 | Re: why cpuid() in locking code? | rsc | 3 | -9/+9 | |
rtm wrote: > Why does acquire() call cpuid()? Why does release() call cpuid()? The cpuid in acquire is redundant with the cmpxchg, as you said. I have removed the cpuid from acquire. The cpuid in release is actually doing something important, but not on the hardware. It keeps gcc from reordering the lock->locked assignment above the other two during optimization. (Not that current gcc -O2 would choose to do that, but it is allowed to.) I have replaced the cpuid in release with a "gcc barrier" that keeps gcc from moving things around but has no hardware effect. On a related note, I don't think the cpuid in mpmain is necessary, for the same reason that the cpuid wasn't needed in release. As to the question of whether acquire(); x = protected; release(); might read protected after release(), I still haven't convinced myself whether it can. I'll put the cpuid back into release if we determine that it can. Russ | |||||
2007-09-30 | tricks | rsc | 1 | -0/+106 | |
2007-09-27 | interrupts during system calls | rsc | 1 | -1/+1 | |
"It just works." | |||||
2007-09-27 | Final word on the locking fiasco? | rsc | 5 | -33/+24 | |
Change pushcli / popcli so that they can never turn on interrupts unexpectedly. That is, if interrupts are on, then pushcli(); popcli(); turns them off and back on, but if they are off to begin with, then pushcli(); popcli(); is a no-op. I think our fundamental mistake was having a primitive (release and then popcli nee spllo) that could turn interrupts on at unexpected moments instead of being explicit about when we want to start allowing interrupts. With the new semantics, all the manual fiddling of ncli to force interrupts off in certain sections goes away. In return, we must explicitly mark the places where we want to enable interrupts unconditionally, by calling sti(). There is only one: inside the scheduler loop. | |||||
2007-09-27 | cleaner | rsc | 2 | -11/+3 | |
2007-09-27 | yank out stack overflow checking ugliness | rsc | 4 | -14/+2 | |
2007-09-27 | okay, that was long enough - revert | rsc | 3 | -16/+14 | |
2007-09-27 | test: store curproc at top of stack | rsc | 3 | -14/+16 | |
I don't actually think this is worthwhile, but I figured I would check it in before reverting it, so that it can be in the revision history. Pros: * curproc doesn't need to turn on/off interrupts * scheduler doesn't have to edit curproc anymore Cons: * it's ugly * all the stack computation is more complicated. * it doesn't actually simplify anything but curproc, and even curproc is harder to follow. | |||||
2007-09-27 | nit | rsc | 1 | -1/+1 | |
2007-09-27 | rename splhi/spllo to pushcli/popcli | rsc | 6 | -22/+22 | |
2007-09-27 | overkill: use segments to catch stack overflow (delete before next year) | rsc | 3 | -2/+13 | |
2007-09-27 | now spllo is okay | rsc | 1 | -8/+2 | |
2007-09-27 | better lapic writes, suggested by cliff | rsc | 1 | -19/+26 | |
2007-09-27 | use larger, allocated cpu stacks | rsc | 2 | -23/+16 | |
2007-09-27 | don't call it ss - that's the stack segment | rsc | 1 | -2/+2 | |