| Age | Commit message (Collapse) | Author |
|
+ Allow threads to make themselves become orphants
|
|
|
|
+ Should write this down somewhere but the idea is that when a process
gets killed, it frees all the memory it can, making all threads within
that process orphans. Orphaned threads are assigned to the init
process, which will generally call exit() on each one. Zombie threads
are threads that own some bit of shared data, and whose reference
count is above zero. They may not be swapped to or called, even though
they take up space in thread map and reserve their thread ID.
|
|
|
|
+ Also swap checks if thread is running
|
|
+ Still largely untested, should really try to come up with a proper
testsuite, at the moment it's mostly me trying things out in the (as
of yet unreleased) kmx repo
|
|
+ Terminology is still a bit poor, and will still have to write
documentation + implement ipis properly
|
|
+ Largely inconsequential, but might make more sense for 32 bit
platforms
|
|
|
|
+ Sets the current core to sleep
|
|
|
|
+ I keep starting to type src and wondering why autocomplete won't work,
I guess src is just uncounciously a better name
|
|
+ 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
|
|
|
|
|
|
|
|
|
|
|
|
+ Had a slight brainfart when refactoring
|
|
+ Gives a very slight improvement to RPC speeds, but mostly cleans up
code a little bit.
|
|
+ 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.
|
|
|
|
+ Only occur with my version of riscv64-linux-gnu-gcc. Funny, that.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
+ 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
|
|
+ Tests will have to come later
|
|
|
|
|
|
|
|
|
|
+ First part generates deps.mk, second part reads it.
Allows us to use both bmake and gmake with the same makefiles.
Only drawback seems to be that the first makefile considers all
individual files as 'finished' targets, meaning that it's more
difficult to do something like
make kernel.elf
though I haven't found this to be an issue.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
+ User can now specify debug, release and assert handling
|
|
|
|
|
|
|
|
+ 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.
|
|
|
|
|