62313be582another fork test
Robert Morris
2019-07-07 06:39:31 -04:00
dabbc348bcMaybe fix two races identified by rtm (thx!):
Frans Kaashoek
2019-07-06 16:38:41 -04:00
75b0c6fc91back-port fork/exit/exit tests to xv6-riscv
Robert Morris
2019-07-05 12:33:26 -04:00
be88befed7two exit/exit tests
Robert Morris
2019-07-05 11:44:51 -04:00
fab5e7c1deMake size in stat.h be a uint64 Supporting print long using %l (a bit of cheat) Modify ls to print size using %l We should probably update size in inode too.
Frans Kaashoek
2019-07-04 08:54:23 -04:00
6bfb078b14x
Frans Kaashoek
2019-07-04 08:54:16 -04:00
47e69250d0Simplify wakeup1
Frans Kaashoek
2019-07-03 15:38:30 -04:00
cee830af24Apply some corresponding bug fixes from wq branch here
Frans Kaashoek
2019-07-03 15:18:55 -04:00
ccf299850bRemove some debugging code
Frans Kaashoek
2019-07-02 20:52:30 -04:00
26f306113aFix a lost wakeup bug: the disk driver's wakeup() can run after the reading process acquired p->lock and released virtio lock in sleep(), but before the process had set p->status to SLEEPING, because the wakeup tested p->status without holding p's lock. Thus, wakeup can complete without seeing any process SLEEPING and then p sets p->status to SLEEPING.
Frans Kaashoek
2019-07-02 19:29:14 -04:00
1e4d7065d6Merge branch 'riscv' into riscv-proc
Frans Kaashoek
2019-07-02 14:19:31 -04:00
84c759fc02x
Frans Kaashoek
2019-07-02 14:09:38 -04:00
37ac6f8f4fDon't start processes at the end of the proc table
Frans Kaashoek
2019-07-02 13:55:52 -04:00
da51735980Avoid two cores selecting the same process to run
Frans Kaashoek
2019-07-02 13:40:33 -04:00
f59c1bf1d8try to continue from walk() failing to allocate a page-table page
Robert Morris
2019-07-02 11:45:06 -04:00
b27f275014avoid allocproc() returning a struct proc with non-zero p->sz
Robert Morris
2019-07-02 11:17:50 -04:00
1540c8b15aCOW tests
Robert Morris
2019-07-02 11:04:35 -04:00
67702cf706Checkpoint 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.
Frans Kaashoek
2019-07-02 09:14:47 -04:00
40f1041a0adon't enable interrupts until done with sstatus, scause, &c
Robert Morris
2019-07-02 05:20:11 -04:00
535ac52efaoops, don't hold mycpu() result across intr_off()
Robert Morris
2019-07-01 14:15:18 -04:00
abfe9999f4have fork() fail, not panic, if not enough phys mem
Robert Morris
2019-07-01 17:46:06 -04:00
18e76a6c47sbrk() returns a pointer, so it should be 64 bits
Robert Morris
2019-07-01 17:01:50 -04:00
9b99f00743oops, don't hold mycpu() result across intr_off()
Robert Morris
2019-07-01 14:15:18 -04:00
0498bfd159timer interrupt in the kernel -> yield
Robert Morris
2019-07-01 13:46:11 -04:00
c34bd3d167Checkpoint some progress compiling xv6.pdf
Frans Kaashoek
2019-07-01 13:02:24 -04:00
2c0338fe42x
Frans Kaashoek
2019-07-01 08:28:14 -04:00
af6c35e14bIntroduce alloc3_desc and UsedArea to make code easier to read
Frans Kaashoek
2019-07-01 08:20:35 -04:00
a8305b7318FD_DEVICE
Robert Morris
2019-06-13 10:29:27 -04:00
46744c4a13for spinlocks, use gcc intrinsics, but say what they compile to
Robert Morris
2019-06-13 10:00:50 -04:00
ca39672a30clean up virtio code
Robert Morris
2019-06-13 09:40:17 -04:00
4adf016925eliminate ramdisk
Robert Morris
2019-06-13 06:57:38 -04:00
de9d72c908virtio disk driver
Robert Morris
2019-06-13 06:49:02 -04:00
5753553213separate source into kernel/ user/ mkfs/
Robert Morris
2019-06-11 09:57:14 -04:00
91ba81110agdb backtraces: -ggdb, -fno-omit-frame-pointer, BSIZE=1024
Robert Morris
2019-06-06 13:54:03 -04:00
8607051b5ffix a create()/unlink() deadlock
Robert Morris
2019-06-06 10:38:11 -04:00
31ef85f552add plic.c
Robert Morris
2019-06-06 05:19:59 -04:00
b05bcce939add kernelvec
Robert Morris
2019-06-06 05:19:35 -04:00
dff7ab3f8fmake -O work with asm volatile(...)
Robert Morris
2019-06-05 15:05:56 -04:00
5684556c19clean up -Wall
Robert Morris
2019-06-05 14:31:13 -04:00
5eb1cb4972push_off() and pop_off() in myproc()
Robert Morris
2019-06-05 14:14:57 -04:00
3113643768spinlocks using gcc intrinsics push_off() / pop_off() set up per-hart plic stuff so all harts get device interrupts
Robert Morris
2019-06-05 14:05:46 -04:00
f1a727b971start at support for multiple CPUs
Robert Morris
2019-06-05 11:42:03 -04:00
ec3d3a1fceyield if timer interrupt all user tests passed
Robert Morris
2019-06-04 14:25:48 -04:00
cff3ce6e04more sbrk fixes
Robert Morris
2019-06-04 11:31:50 -04:00
0e131b2263fix a problem with end. make uartputc() wait until h/w is ready.
Robert Morris
2019-06-04 10:43:45 -04:00
b78894f34echeck that arguments aren't more than a page in exec()
Robert Morris
2019-06-04 06:51:01 -04:00
0f684b9150fix exec argc
Robert Morris
2019-06-04 06:45:09 -04:00
8baac76050support read() and write() bigger than one page
Robert Morris
2019-06-04 05:57:47 -04:00
cefe223bf5console input and sbrk
Robert Morris
2019-06-03 17:59:17 -04:00
efecbee7c0xx
Robert Morris
2019-06-03 17:49:27 -04:00
6eae1be755push/pop all registers when handling interrupt from kernel
Robert Morris
2019-06-03 15:23:12 -04:00
e630e0743bxx
Robert Morris
2019-06-03 14:16:51 -04:00
a9c1a6f742takes one uart input interrupt, then panics
Robert Morris
2019-06-03 14:13:07 -04:00
50cbc75102first shell prints $ prompt, though no console input yet
Robert Morris
2019-06-01 05:33:38 -04:00
7fd1f1eb0aexec compiles but argstr() doesn't work yet
Robert Morris
2019-05-31 12:43:20 -04:00
5d34fa2a48-initrd fs.img, ramdisk.c, file system
Robert Morris
2019-05-31 11:45:42 -04:00
2ec1959fd1fork/wait/exit work
Robert Morris
2019-05-31 09:45:59 -04:00
0f90388c89No T_SYSCALL
Frans Kaashoek
2018-10-10 21:50:58 -04:00
a7ca32e3a3Change mycpu() to use %gs.
Frans Kaashoek
2018-10-09 20:22:48 -04:00
821ee3fc99not much
Frans Kaashoek
2018-10-09 19:33:06 -04:00
54e6f829e4Separate system call path from trap path. Passes usertests on 1 and 2 cpus.
Frans Kaashoek
2018-10-09 14:28:54 -04:00
f241e67d91x
Frans Kaashoek
2018-10-07 18:14:53 -04:00
704775b63dMake names line up with text
Frans Kaashoek
2018-10-04 09:21:36 -04:00
2fa3a8fd05Oops, didn't commit these changes with last commit
Frans Kaashoek
2018-10-04 09:21:10 -04:00
a7ef9a40c4x
Frans Kaashoek
2018-10-03 21:00:32 -04:00
7ccc5f5f4fNames of text are better.
Frans Kaashoek
2018-10-03 20:14:36 -04:00
eb72653bd7use x86-64 names
Frans Kaashoek
2018-10-03 18:13:51 -04:00
23a58370a4Switch back bpmain back to main
Frans Kaashoek
2018-10-03 17:58:21 -04:00
020fc6a1c6don't care about bootloader
Frans Kaashoek
2018-10-03 07:53:37 -04:00
343080f7aeRemove unused typedefs
Frans Kaashoek
2018-10-02 09:06:41 -04:00
ec110149edsimplify layout pic
Frans Kaashoek
2018-10-02 08:50:05 -04:00
a0389f707fRemove now unused PDX
Frans Kaashoek
2018-10-02 08:43:25 -04:00
d448fd5e6cSimplify by freeing user part of addres pace in one page increments. This undoes commit ffe444 and 052e18, which skipped page directories, but was tailored to two-level page table. Undoing doesn't seem to affect boottime for xv6 visibly.
Frans Kaashoek
2018-10-02 08:36:02 -04:00
a42b7d5dbbSimplify freeing page table
Frans Kaashoek
2018-10-02 08:12:01 -04:00
155c13b7f8Avoid repition in walkpgdir
Frans Kaashoek
2018-10-02 07:37:49 -04:00
572e106e6fx
Frans Kaashoek
2018-09-29 09:05:25 -04:00
3bfcaeaf01Make sysexit and trapret paths the same, so that forkret can return through either path. This helped tracking down a bug: use 144 instead of 32 to find cs in trapframe so that gs is correctly saved and restored.
Frans Kaashoek
2018-09-29 08:30:50 -04:00
322990649bx
Frans Kaashoek
2018-09-29 08:29:34 -04:00
ab0db651afCheckpoint port of xv6 to x86-64. Passed usertests on 2 processors a few times.
Frans Kaashoek
2018-09-23 08:24:42 -04:00
b818915f79Update name Use generic 6.828 url (without year)
Frans Kaashoek
2018-09-02 08:33:55 -04:00
308a3b88c9thanks tyfkda
Frans Kaashoek
2018-08-31 09:21:19 -04:00
343255189ethanks Wolfgang Keller
Frans Kaashoek
2018-08-31 08:41:23 -04:00
80f70c46dfx
Frans Kaashoek
2018-08-30 16:20:16 -04:00
1d19081efbAllow holding to be called with interrupts enabled (for Mark Morrissey).
Frans Kaashoek
2018-08-30 16:14:34 -04:00
2c73068e82Delete a patch Adjust typesetting of code
Frans Kaashoek
2018-08-30 15:45:16 -04:00
e559fd2c5ax
Frans Kaashoek
2018-08-30 14:47:07 -04:00
f30488793bx
Frans Kaashoek
2018-08-30 14:16:29 -04:00
76d4005f9ethanks mtasm
Frans Kaashoek
2018-08-30 14:09:03 -04:00
6710e5589dthanks wxdao
Frans Kaashoek
2018-08-30 13:48:47 -04:00
96e4e2f4d1thanks eyalz800
Frans Kaashoek
2018-08-30 13:46:48 -04:00
8f63beaacbvectors.pl is executable and asks shell for perl
Frans Kaashoek
2018-08-30 13:36:07 -04:00
171c2cc6b8thanks mataness
Frans Kaashoek
2018-08-30 13:30:50 -04:00
26108a3b99thanks tyfkda
Frans Kaashoek
2018-08-30 13:27:57 -04:00
7f3528bcb3x
Frans Kaashoek
2018-08-30 13:25:54 -04:00
210a0f0b30Remove unused flags (thanks Wolfgang Keller)
Frans Kaashoek
2018-08-30 13:14:01 -04:00
b2ca8e3e23x
Frans Kaashoek
2018-08-30 13:09:03 -04:00
960a94fb87x
Frans Kaashoek
2018-08-30 12:12:16 -04:00
0b86d03767Because sleeplocks replaced B_BUSY the holding test can be more specific (thanks Mark Morrissey)
Frans Kaashoek
2018-08-30 11:57:46 -04:00
0b6f4c08b9x
Frans Kaashoek
2018-08-30 11:42:10 -04:00