rsc 
								
							 
						 
						
							
							
							
							
								
							
							
								0ca9ca0c55 
								
							 
						 
						
							
							
								
								slight rearrangement; sleep on b not buf.  
							
							
							
						 
						
							2009-05-31 00:23:00 +00:00 
							
								 
							
						 
					 
				
					
						
							
								
								
									rsc 
								
							 
						 
						
							
							
							
							
								
							
							
								d827c8f3c8 
								
							 
						 
						
							
							
								
								Add MIT license file; update xv6-rev2.tar.gz with LICENSE.  
							
							... 
							
							
							
							Other files unchanged. 
							
						 
						
							2009-05-26 16:58:33 +00:00 
							
								 
							
						 
					 
				
					
						
							
								
								
									rsc 
								
							 
						 
						
							
							
							
							
								
							
							
								2157576107 
								
							 
						 
						
							
							
								
								be consistent: no underscores in function names  
							
							
							
						 
						
							2009-03-08 22:07:13 +00:00 
							
								 
							
						 
					 
				
					
						
							
								
								
									rsc 
								
							 
						 
						
							
							
							
							
								
							
							
								b7f653dc49 
								
							 
						 
						
							
							
								
								xv6: boot loader adjustments  
							
							... 
							
							
							
							do Bochs breakpoint and spin in bootasm.S.
not needed in bootmain too.
fix readseg bug (rounding of va).
zero segments when memsz > filesz.
no need to clear BSS in kernel main.
make bootother.S like bootasm.S 
							
						 
						
							2009-03-08 21:41:30 +00:00 
							
								 
							
						 
					 
				
					
						
							
								
								
									rsc 
								
							 
						 
						
							
							
							
							
								
							
							
								8220135362 
								
							 
						 
						
							
							
								
								xv6: use stosb for memset  
							
							
							
						 
						
							2009-03-08 21:38:30 +00:00 
							
								 
							
						 
					 
				
					
						
							
								
								
									rsc 
								
							 
						 
						
							
							
							
							
								
							
							
								c396d065d3 
								
							 
						 
						
							
							
								
								xv6/x86.h: add stosb, fix bugs in insl/outsl (rep not repne)  
							
							
							
						 
						
							2009-03-08 21:27:57 +00:00 
							
								 
							
						 
					 
				
					
						
							
								
								
									rsc 
								
							 
						 
						
							
							
							
							
								
							
							
								4003e9bed8 
								
							 
						 
						
							
							
								
								xv6/x86.h: inline assembly cleanup  
							
							
							
						 
						
							2009-03-08 20:56:38 +00:00 
							
								 
							
						 
					 
				
					
						
							
								
								
									rtm 
								
							 
						 
						
							
							
							
							
								
							
							
								8eb20827c2 
								
							 
						 
						
							
							
								
								Explain why itrunc() is OK w.r.t. crashes.  
							
							
							
						 
						
							2008-10-20 18:05:48 +00:00 
							
								 
							
						 
					 
				
					
						
							
								
								
									kolya 
								
							 
						 
						
							
							
							
							
								
							
							
								15a2693637 
								
							 
						 
						
							
							
								
								try harder to get directory refcounts right  
							
							
							
						 
						
							2008-10-17 12:42:13 +00:00 
							
								 
							
						 
					 
				
					
						
							
								
								
									kolya 
								
							 
						 
						
							
							
							
							
								
							
							
								f3e87bc838 
								
							 
						 
						
							
							
								
								make mkdir crash-safer, as noticed by many students on midterm  
							
							
							
						 
						
							2008-10-16 15:18:49 +00:00 
							
								 
							
						 
					 
				
					
						
							
								
								
									kolya 
								
							 
						 
						
							
							
							
							
								
							
							
								e1626709d6 
								
							 
						 
						
							
							
								
								free the indirect block  
							
							
							
						 
						
							2008-10-16 15:00:23 +00:00 
							
								 
							
						 
					 
				
					
						
							
								
								
									kolya 
								
							 
						 
						
							
							
							
							
								
							
							
								e670a48358 
								
							 
						 
						
							
							
								
								as rtm noticed, avoid doubly-freeing pipe page  
							
							
							
						 
						
							2008-10-15 17:42:56 +00:00 
							
								 
							
						 
					 
				
					
						
							
								
								
									kolya 
								
							 
						 
						
							
							
							
							
								
							
							
								deca9fef83 
								
							 
						 
						
							
							
								
								indent  
							
							
							
						 
						
							2008-10-15 05:15:32 +00:00 
							
								 
							
						 
					 
				
					
						
							
								
								
									kolya 
								
							 
						 
						
							
							
							
							
								
							
							
								c100d9ee2d 
								
							 
						 
						
							
							
								
								cleaner swtch.S  
							
							
							
						 
						
							2008-10-15 05:14:10 +00:00 
							
								 
							
						 
					 
				
					
						
							
								
								
									kolya 
								
							 
						 
						
							
							
							
							
								
							
							
								228e500a0c 
								
							 
						 
						
							
							
								
								save cpus.intena in sched(), so we get the right EFLAGS.IF value once a  
							
							... 
							
							
							
							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 05:01:39 +00:00 
							
								 
							
						 
					 
				
					
						
							
								
								
									kolya 
								
							 
						 
						
							
							
							
							
								
							
							
								15ce79de14 
								
							 
						 
						
							
							
								
								check cp->killed before returning to user from a timer interrupt  
							
							
							
						 
						
							2008-10-15 04:57:02 +00:00 
							
								 
							
						 
					 
				
					
						
							
								
								
									kolya 
								
							 
						 
						
							
							
							
							
								
							
							
								00ce31c09c 
								
							 
						 
						
							
							
								
								update .cvsignore  
							
							
							
						 
						
							2008-10-15 04:54:24 +00:00 
							
								 
							
						 
					 
				
					
						
							
								
								
									kolya 
								
							 
						 
						
							
							
							
							
								
							
							
								289bbef733 
								
							 
						 
						
							
							
								
								minor cleanup  
							
							
							
						 
						
							2008-10-12 20:19:16 +00:00 
							
								 
							
						 
					 
				
					
						
							
								
								
									kolya 
								
							 
						 
						
							
							
							
							
								
							
							
								f73b81205e 
								
							 
						 
						
							
							
								
								minor cleanup with STUB macro  
							
							
							
						 
						
							2008-10-12 19:54:11 +00:00 
							
								 
							
						 
					 
				
					
						
							
								
								
									kolya 
								
							 
						 
						
							
							
							
							
								
							
							
								c780dbf967 
								
							 
						 
						
							
							
								
								include explicitly initialized globals (int x = 0;) in cross-refs,  
							
							... 
							
							
							
							also thanks to greg price. 
							
						 
						
							2008-10-12 18:45:30 +00:00 
							
								 
							
						 
					 
				
					
						
							
								
								
									kolya 
								
							 
						 
						
							
							
							
							
								
							
							
								6186836d28 
								
							 
						 
						
							
							
								
								fix: when two names only differed in case, crossrefs only included one of them.  
							
							... 
							
							
							
							thanks to greg price. 
							
						 
						
							2008-10-12 18:33:14 +00:00 
							
								 
							
						 
					 
				
					
						
							
								
								
									rtm 
								
							 
						 
						
							
							
							
							
								
							
							
								2ce40d7088 
								
							 
						 
						
							
							
								
								be clear what the root i-number is  
							
							
							
						 
						
							2008-10-08 18:57:13 +00:00 
							
								 
							
						 
					 
				
					
						
							
								
								
									rtm 
								
							 
						 
						
							
							
							
							
								
							
							
								be38c8413e 
								
							 
						 
						
							
							
								
								document lock->locked=0 vs xchg(&lock->locked, 0)  
							
							
							
						 
						
							2008-09-28 10:53:54 +00:00 
							
								 
							
						 
					 
				
					
						
							
								
								
									kolya 
								
							 
						 
						
							
							
							
							
								
							
							
								0159c8bb94 
								
							 
						 
						
							
							
								
								trap 9 does not push ec: fix from Greg Price <price@mit.edu>  
							
							
							
						 
						
							2008-09-24 18:20:56 +00:00 
							
								 
							
						 
					 
				
					
						
							
								
								
									kolya 
								
							 
						 
						
							
							
							
							
								
							
							
								c7317d4dc7 
								
							 
						 
						
							
							
								
								always save and restore %fs, %gs to ensure old segment entries are never  
							
							... 
							
							
							
							accessible to user from the hidden CPU segment registers. 
							
						 
						
							2008-09-24 01:48:31 +00:00 
							
								 
							
						 
					 
				
					
						
							
								
								
									rtm 
								
							 
						 
						
							
							
							
							
								
							
							
								adcd16c3f7 
								
							 
						 
						
							
							
								
								restore std toolprefix  
							
							
							
						 
						
							2008-09-11 10:22:01 +00:00 
							
								 
							
						 
					 
				
					
						
							
								
								
									rtm 
								
							 
						 
						
							
							
							
							
								
							
							
								4651d04ad1 
								
							 
						 
						
							
							
								
								omit *.d from tar file  
							
							
							
						 
						
							2008-09-11 10:20:40 +00:00 
							
								 
							
						 
					 
				
					
						
							
								
								
									kaashoek 
								
							 
						 
						
							
							
							
							
								
							
							
								e9ae6f5cbe 
								
							 
						 
						
							
							
								
								add copyright notice  
							
							
							
						 
						
							2008-09-09 11:42:44 +00:00 
							
								 
							
						 
					 
				
					
						
							
								
								
									kolya 
								
							 
						 
						
							
							
							
							
								
							
							
								f68317533e 
								
							 
						 
						
							
							
								
								make bochsrc work for bochs 2.2.6  
							
							
							
						 
						
							2008-09-03 14:10:47 +00:00 
							
								 
							
						 
					 
				
					
						
							
								
								
									kolya 
								
							 
						 
						
							
							
							
							
								
							
							
								35a6cf84ec 
								
							 
						 
						
							
							
								
								make pdf, ps, tarball  
							
							
							
						 
						
							2008-09-03 14:05:52 +00:00 
							
								 
							
						 
					 
				
					
						
							
								
								
									kaashoek 
								
							 
						 
						
							
							
							
							
								
							
							
								e87dca5cc5 
								
							 
						 
						
							
							
								
								nits in index.txt  
							
							... 
							
							
							
							add slides for shell, x86 intro, x86 virtual memory  (deleted JOS from slides) 
							
						 
						
							2008-09-03 12:29:44 +00:00 
							
								 
							
						 
					 
				
					
						
							
								
								
									rsc 
								
							 
						 
						
							
							
							
							
								
							
							
								f53494c28e 
								
							 
						 
						
							
							
								
								DO NOT MAIL: xv6 web pages  
							
							
							
						 
						
							2008-09-03 04:50:04 +00:00 
							
								 
							
						 
					 
				
					
						
							
								
								
									rtm 
								
							 
						 
						
							
							
							
							
								
							
							
								ee3f75f229 
								
							 
						 
						
							
							
								
								simplify growproc  
							
							
							
						 
						
							2008-08-28 17:57:47 +00:00 
							
								 
							
						 
					 
				
					
						
							
								
								
									rtm 
								
							 
						 
						
							
							
							
							
								
							
							
								98754d687e 
								
							 
						 
						
							
							
								
								avoid a bug w/ exit()  
							
							
							
						 
						
							2008-08-28 00:53:24 +00:00 
							
								 
							
						 
					 
				
					
						
							
								
								
									rtm 
								
							 
						 
						
							
							
							
							
								
							
							
								56082468ea 
								
							 
						 
						
							
							
								
								the old explanation of AP startup might have been correct, but  
							
							... 
							
							
							
							I understand this one. 
							
						 
						
							2008-08-28 00:52:05 +00:00 
							
								 
							
						 
					 
				
					
						
							
								
								
									kolya 
								
							 
						 
						
							
							
							
							
								
							
							
								02cc595f28 
								
							 
						 
						
							
							
								
								clean up circular buffers, so pipe can queue 512 bytes rather than 511  
							
							
							
						 
						
							2008-08-22 00:26:22 +00:00 
							
								 
							
						 
					 
				
					
						
							
								
								
									kolya 
								
							 
						 
						
							
							
							
							
								
							
							
								5c5470a2fa 
								
							 
						 
						
							
							
								
								fix obvious printf nits after reading through code  
							
							
							
						 
						
							2008-08-21 23:24:02 +00:00 
							
								 
							
						 
					 
				
					
						
							
								
								
									rsc 
								
							 
						 
						
							
							
							
							
								
							
							
								1808b2f1b3 
								
							 
						 
						
							
							
								
								now rev2  
							
							
							
						 
						
							2008-08-20 18:00:35 +00:00 
							
								 
							
						 
					 
				
					
						
							
								
								
									rsc 
								
							 
						 
						
							
							
							
							
								
							
							
								150785a1fd 
								
							 
						 
						
							
							
								
								add nice font  
							
							
							
						 
						
							2008-08-20 18:00:24 +00:00 
							
								 
							
						 
					 
				
					
						
							
								
								
									rsc 
								
							 
						 
						
							
							
							
							
								
							
							
								9b62657ecd 
								
							 
						 
						
							
							
								
								formatting updates  
							
							
							
						 
						
							2008-08-20 18:00:13 +00:00 
							
								 
							
						 
					 
				
					
						
							
								
								
									rsc 
								
							 
						 
						
							
							
							
							
								
							
							
								5b7f8cbe7c 
								
							 
						 
						
							
							
								
								bochs faster  
							
							
							
						 
						
							2008-08-20 17:59:29 +00:00 
							
								 
							
						 
					 
				
					
						
							
								
								
									rsc 
								
							 
						 
						
							
							
							
							
								
							
							
								174729fc55 
								
							 
						 
						
							
							
								
								xv6: latest (as of January 2008)  
							
							
							
						 
						
							2008-08-20 17:46:32 +00:00 
							
								 
							
						 
					 
				
					
						
							
								
								
									rsc 
								
							 
						 
						
							
							
							
							
								
							
							
								eadbd55af2 
								
							 
						 
						
							
							
								
								oops - wrong bit (vic zandy)  
							
							
							
						 
						
							2007-12-20 18:27:07 +00:00 
							
								 
							
						 
					 
				
					
						
							
								
								
									rsc 
								
							 
						 
						
							
							
							
							
								
							
							
								c2258bf4d2 
								
							 
						 
						
							
							
								
								fork minibug  
							
							
							
						 
						
							2007-11-28 20:47:22 +00:00 
							
								 
							
						 
					 
				
					
						
							
								
								
									rsc 
								
							 
						 
						
							
							
							
							
								
							
							
								4f06ae0d42 
								
							 
						 
						
							
							
								
								More complete lapic startup (thanks Silas)  
							
							
							
						 
						
							2007-11-28 20:47:10 +00:00 
							
								 
							
						 
					 
				
					
						
							
								
								
									rsc 
								
							 
						 
						
							
							
							
							
								
							
							
								a6c4711a38 
								
							 
						 
						
							
							
								
								bda[0xE] is a 16-bit segment number,  
							
							... 
							
							
							
							not a real address.  So shift 4.
Reported by Silas.
Jim McKie says this code only matters
on ancient EISA MP systems. 
							
						 
						
							2007-11-28 20:17:04 +00:00 
							
								 
							
						 
					 
				
					
						
							
								
								
									rtm 
								
							 
						 
						
							
							
							
							
								
							
							
								fd6b029401 
								
							 
						 
						
							
							
								
								proc_wait -> wait  
							
							
							
						 
						
							2007-10-20 18:25:38 +00:00 
							
								 
							
						 
					 
				
					
						
							
								
								
									rsc 
								
							 
						 
						
							
							
							
							
								
							
							
								949352af66 
								
							 
						 
						
							
							
								
								Model verifying that wakeup really  
							
							... 
							
							
							
							can be called after release without
causing deadlock. 
							
						 
						
							2007-10-12 04:21:04 +00:00 
							
								 
							
						 
					 
				
					
						
							
								
								
									rsc 
								
							 
						 
						
							
							
							
							
								
							
							
								943fd378a1 
								
							 
						 
						
							
							
								
								Incorporate new understanding of/with Intel SMP spec.  
							
							... 
							
							
							
							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-10-01 20:43:15 +00:00 
							
								 
							
						 
					 
				
					
						
							
								
								
									rsc 
								
							 
						 
						
							
							
							
							
								
							
							
								9fd9f80431 
								
							 
						 
						
							
							
								
								Re: why cpuid() in locking code?  
							
							... 
							
							
							
							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 14:30:04 +00:00