Commit graph

49 commits

Author SHA1 Message Date
Austin Clements b1d41d6788 Remove the stack guard page. Processes are now contiguous from 0 to proc->sz, which means our syscall argument validation is correct. Add a pointer validation test and remove the stack test, which tested for the guard page. 2010-09-01 16:46:37 -04:00
Austin Clements b0751a3e9b Space police 2010-09-01 00:41:25 -04:00
Austin Clements dd645ef119 Cleanup if allocuvm fails to alloc. Add a test. 2010-08-31 21:49:49 -04:00
Robert Morris 789b508d53 uptime() sys call for benchmarking
increase PHYSTOP
2010-08-11 14:34:45 -04:00
Robert Morris 83d2db91f7 allow sbrk(-x) to de-allocate user memory 2010-08-10 17:08:41 -04:00
Robert Morris c4cc10da7e fix corner cases in exec of ELF
put an invalid page below the stack
have fork() handle invalid pages
2010-08-06 11:12:18 -04:00
Robert Morris eb18645f17 fix allocuvm() to handle sbrk() with non-page-granularity argument
(maybe this never worked, but it works now)
2010-08-05 12:10:54 -04:00
rsc 34295f461a group locks into structs they protect.
few naming nits.
2009-05-31 05:12:21 +00:00
rsc d522571068 make slow bigdir last test 2007-09-27 12:29:06 +00:00
rsc 666f58c711 believe it or not, this was working
the macro expansion of "char *cp;" turned into
char *(curproc[cpu()]);  which declares a dynamically
sized array of char* called curproc.

so then &cp == &(curproc[cpu()]) was actually a
stack variable as "expected".  it was one past the
end of the array, but the implicit alloca allocated
more than was necessary.

do not tell me that making cp a #define was a bad idea.
there are worse problems to fix.  more on that later.
2007-09-27 05:13:10 +00:00
rsc 56c1a151d2 debugging prints 2007-09-26 23:24:23 +00:00
rsc e0e7d07e5a test that fork fails gracefully 2007-08-24 20:20:23 +00:00
rtm 2036534834 add missing iput() at end of _namei() 2007-08-24 14:56:17 +00:00
rtm b55513796f oops, O_CREATE doesn't truncate, so holes can't exist, thus no bug 2007-08-24 12:55:15 +00:00
rtm 3d5f21ee1f test concurrent open/unlink of same file (ok)
test files with holes (not ok)
2007-08-24 12:19:13 +00:00
rsc c88bf235fe check unlink of non-empty directory 2007-08-22 02:21:22 +00:00
rsc 2d61a40b20 bug in usertests! 2007-08-20 21:00:20 +00:00
rsc 5e03dd86c8 add test for rm . 2007-08-10 17:53:09 +00:00
rsc dca5b5ca2e avoid assignments in declarations 2007-08-10 17:17:42 +00:00
rsc c664dd5d23 missing void 2007-08-08 09:32:39 +00:00
rsc 115e177400 standardize on not using unsigned keyword 2007-08-08 09:30:48 +00:00
rsc f3c393ba9f fix tests 2006-09-07 20:06:08 +00:00
rsc 0517a730db remove bogus test 2006-09-07 15:31:40 +00:00
rsc 6c8acf9e04 check super-long lookups 2006-09-07 15:15:46 +00:00
kaashoek a64cd81342 one regression test program 2006-09-07 13:23:41 +00:00
rsc 9e9bcaf143 standardize various * conventions 2006-09-06 17:27:19 +00:00
rtm dfcc5b997c prune unneeded panics and debug output 2006-08-29 19:06:37 +00:00
rtm 3b95801add i broke sbrk, fix it 2006-08-29 17:01:40 +00:00
kaashoek 74493bf446 kill user process when it generates an unhandled trap (e.g., 13)
fix bug in test code of malloc
2006-08-25 00:43:17 +00:00
kaashoek 81d5219998 bug in sbrk
test malloc
2006-08-24 19:24:36 +00:00
kaashoek 8787cd01df chdir
cd in shell
nits in mkdir, ls, etc.
2006-08-19 23:41:34 +00:00
rtm 350e63f7a9 no more proc[] entry per cpu for idle loop
each cpu[] has its own gdt and tss
no per-proc gdt or tss, re-write cpu's in scheduler (you win, cliff)
main0() switches to cpu[0].mpstack
2006-08-15 22:18:20 +00:00
rtm 211ff0c67e namei returns locked parent dir inode for create / unlink
don't hold fd table lock across idecref() (latter does block i/o)
idecref calls iput() in case last ref -> freeing inode
dir size is 512 * # blocks, so readi/writei &c work
unlink deletes dirent even if ip->nlink > 0
2006-08-13 12:22:44 +00:00
rtm 9e5970d596 link() 2006-08-13 02:12:44 +00:00
rtm cd93074e5b LRU disk cache replacement 2006-08-12 22:34:13 +00:00
rtm 14938f9392 buffer cache, fifo replacement 2006-08-12 17:17:35 +00:00
rtm 7ce01cf9be mknod set nlink = 1
usertests for concurrent create/delete, and read() after unlink()
2006-08-12 16:47:48 +00:00
rtm 4357207237 fix getblk to actually lock the block
no more cons_put system calls
usertests tests two processes writing files
2006-08-12 11:38:57 +00:00
rtm 8455980b27 exec arguments 2006-07-28 22:33:07 +00:00
rsc c54c79267f nitpicks 2006-07-17 01:25:22 +00:00
rsc 9b37d1bfaa Add user.h for prototypes.
Add cons_puts for cleaner output.
2006-07-16 15:36:31 +00:00
rtm 46bbd72f3e no more recursive locks
wakeup1() assumes you hold proc_table_lock
sleep(chan, lock) provides atomic sleep-and-release to wait for condition
ugly code in swtch/scheduler to implement new sleep
fix lots of bugs in pipes, wait, and exit
fix bugs if timer interrupt goes off in schedule()
console locks per line, not per byte
2006-07-15 12:03:57 +00:00
rtm 6eb6f10c56 passes both usertests
exit had acquire where I meant release
swtch now checks that you hold no locks
2006-07-12 15:35:33 +00:00
rtm 664324745e cvs add spinlock.h
fix race in schedule()
2006-07-12 09:10:25 +00:00
rtm 4e8f237be8 no more big kernel lock
succeeds at usertests.c pipe test
2006-07-12 01:48:35 +00:00
rtm b41b38d0da give each cpu its own clock, so that preemption works on cpu 1 2006-07-11 18:45:27 +00:00
rtm b548df152b pre-empt both user and kernel, in clock interrupt
usertest.c tests pre-emption
kill()
2006-07-11 17:39:45 +00:00
rtm 8b4e2a08fe swtch saves callee-saved registers
swtch idles on per-CPU stack, not on calling process's stack
fix pipe bugs
usertest.c tests pipes, fork, exit, close
2006-07-01 21:26:01 +00:00
rtm c41f1de5d4 file descriptors
pipes
2006-06-27 14:35:53 +00:00