aboutsummaryrefslogtreecommitdiff
path: root/common
AgeCommit message (Collapse)Author
2024-05-24rename common to srcKimplul
+ I keep starting to type src and wondering why autocomplete won't work, I guess src is just uncounciously a better name
2024-05-23improve id handlingKimplul
+ The number of allowed threads running at the same time is limited to num_tids, but each thread's ID can be any larger than that. This should make ID reuse a lot more rare, and probably makes certain kinds of time-of-check-to-time-of-use attacks more difficult
2024-05-10implement faster page allocatorKimplul
2024-05-10update formatting configKimplul
2024-01-10silence warningKimplul
2024-01-10some kmx alleviationsKimplul
2023-10-10fix enough_rpc_stackKimplul
+ Had a slight brainfart when refactoring
2023-10-09experimenting with removing lists threads per procKimplul
+ Gives a very slight improvement to RPC speeds, but mostly cleans up code a little bit.
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-10-03fix fork return valuesKimplul
2023-08-04add initial smp bringupKimplul
2023-08-03dispatch doesn't have to worry about ipiKimplul
2023-07-31add copyright stuff to new filesKimplul
2023-07-31start working on irqsKimplul
2023-07-27use nifty variable argument count trickKimplul
+ Found it in newlib. This allows the compiler to more effectively optimize away unnecessary register operations. Applied to both kernel and init.c for a slight speed increase. I really should move init.c to some other repository though, the binary files are starting to get annoying
2023-07-27add ipc_kickKimplul
+ Tests will have to come later
2023-07-26allow tail call optimizations to happen easierKimplul
2023-07-26fix possible segfault with non-gig memory sizesKimplul
2023-07-25simplify fdt reg readingKimplul
2023-07-25simplify populate/probe pmapKimplul
2023-06-14move rpc check to ipc_respoKimplul
2023-06-11add some clarifications to rpc stack stuffKimplul
2023-06-08add fast userspace return to do_ipcKimplul
2023-06-07add unlikely hint to leave_rpcKimplul
2023-06-07fix root node get_reginfoKimplul
2023-06-05add check against calling ipc_resp erroneouslyKimplul
2023-06-05give compiler more room to optimize rpc invocationKimplul
+ Try to write arguments to memory as fast as possible to free up some registers that the compiler can then play with. Qemu runs ~1 700 000 rpc's per second, visionfive2 @1GHz (I think) ~800 000.
2023-06-04clarify a few thingsKimplul
2023-06-04slight optimization and brainfart fixKimplul
2023-06-04remove misleading commentKimplul
2023-06-04visionfive2 bootsKimplul
+ Make 8250 serial driver more generic + Still TODO: write a tutorial on how to boot on the visionfive2
2023-06-04visionfive2 boots until debugging is initializedKimplul
2023-05-29start trying to boot on visionfive 2Kimplul
+ Not bootable quite yet. Among other things, I couldn't get the current starfive u-boot fork to boot, so try adding support for booting with precompiled u-boot via the `go` command. Initial testing with qemu shows that this should be possible, and if it works, might be useful in the (far) future with other slightly janky SBCs. Also, NS16550 is 8250-based, and I'm really only using the base 8250, so rename and add visionfive 2 uart to list of compatibles. Visionfive 2 is still completely untested.
2023-05-11only init is pic and fix a warningKimplul
2023-05-11arbitrary load address and RAM base detectionKimplul
+ Both kind of go hand in hand, made sense to do both at the same time. Some parts feel slightly hacky, the loader works by placing everything on the stack and avoiding global values. Still, seems to work?
2023-05-01update license stuffKimplul
2023-04-30rename to kmiKimplul
2023-01-26add req_page syscallKimplul
2023-01-16initialize variable to zeroKimplul
+ Silences possible warning
2023-01-16make process ids signedKimplul
+ Unlikely to ever run into billions of threads, and this keeps in line with stuff like Linux. Also allows C to relatively painlessly implement hashmaps of pids, if neccessary.
2022-12-02remove MR_SHAREDKimplul
+ The new shared memory plan doesn't need it.
2022-12-02initial shared memory workingKimplul
2022-12-01start looking into memory handlingKimplul
+ Now 10M alloc/frees succeed, which totals more memory than the virtual machine has, so no too obvious leaks are occuring. For future debugging speed, changed 10M to 1M. + Also quick fix to rpcs, stacks are now assigned. Not entirely sure why they worked before this, but good that I found it.
2022-11-21make syscall handlers voidKimplul
2022-11-21fix formattingKimplul
2022-11-21possible optimisationsKimplul
2022-11-13improve tcb list handlingKimplul
2022-11-13give symbolic name to rpc stack ratioKimplul
2022-11-13outline rpc stack handlingKimplul
2022-11-13improve documentation on new featuresKimplul