aboutsummaryrefslogtreecommitdiff
path: root/arch/riscv64/kernel/entry.S
AgeCommit message (Collapse)Author
2024-10-30most of the way to passing testsKimplul
2024-10-29start moving towards threads always being in rpcKimplul
2024-08-30speed up ipc_resp a bitKimplul
+ Skip unwinding stack and just jump directly to userspace
2024-07-07smp now seems to workKimplul
+ Had some minor issues with a wraparound of size_t that effectively meant that some regions were allocated twice. Also, booting should be a bit more reliable now, turned out that the previous iteration of the booting was just accidentally working due to the kernel being placed 'close enough' in RAM to where it was linked to. Fixed by allocating a vmem of O1 that maps the kernel to a 2MiB boundary at boot, pretty nifty.
2024-07-06pretty massive virtual memory rewriteKimplul
+ The system is now a bit simpler and hopefully easier to understand, while also extending the shared memory to be 1:N, where there is one owner who may become a zombie while waiting for the N to die.
2024-07-05implement bklKimplul
+ Start out using big kernel lock, apparently seL4 thinks its good enough. I might have a go at using a more fair lock, and possibly moving to more fine-grained locks if I really feel the need to get scalability up.
2023-10-09move rpc stack handling to arch-specific codeKimplul
+ Fairly considerable speedup, as we don't have to look up the rpc pte every time separately, instead cacheing them. Adds an architecture specific limitation to total rpc stack size, though.
2023-08-04add initial smp bringupKimplul
2023-07-31start working on irqsKimplul
2023-06-08skip saving registers when possibleKimplul
2023-06-08add fast userspace return to do_ipcKimplul
2023-06-07change register save/load to increasing orderKimplul
2023-05-17align handle_irq to four byte boundaries alwaysKimplul
+ CSR_STVEC requires four byte alignment
2023-05-12fix LLVM compilationKimplul
+ RELEASE=1 doesn't work for some reason, though
2023-05-01update license stuffKimplul
2022-11-21make syscall handlers voidKimplul
2022-11-13~700k ipc requestsKimplul
+ Eliminated need for save/load_regs, now the register save area is behind a pointer which _slightly_ increases overall syscall delay, but speeds up ipc requests by a fair bit.
2022-11-09add basic IPI structureKimplul
2022-10-21initial spawn implementationKimplul
2022-09-15change syscalls to take 5 params and return 6Kimplul
+ In total, a syscall is built up of 6 values, with the first being the syscall number. Symmetrically, the first value is now a status and the following five values return "values". This allows us to cram in more info into the ipc_* functions. The performance difference is absolutely minimal, at least from my testing in qemu.
2022-09-14add putch syscall for easier userspace debuggingKimplul
+ Note that it is NOT intended for end user usage, just for debugging.
2022-09-14add canary to kernel stackKimplul
2022-06-12add license textsKimplul
2022-06-11continue documentationKimplul
2022-05-23modify file genKimplul
2022-05-23new include structure, make parse easier for doxyKimplul
2022-05-21add status info to memory mappingsKimplul
+ next up would probably be to start working on process/thread relationships, largely as documented. Still not entirely sure about how I want to handle fork, but I suppose I might figure it out at some point.
2022-05-09improve uapiKimplul